基本 Centos7 安装:
[root@teszt ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─cl-root 253:0 0 50G 0 lvm /
├─cl-swap 253:1 0 2G 0 lvm [SWAP]
└─cl-home 253:2 0 47G 0 lvm /home
sr0 11:0 1 56.6M 0 rom
[root@teszt ~]# ls -lah /dev/sda1
brw-rw----. 1 root disk 8, 1 Mar 12 09:25 /dev/sda1
[root@teszt ~]# useradd -m tesztuser
[root@teszt ~]# id tesztuser
uid=1000(tesztuser) gid=1000(tesztuser) groups=1000(tesztuser)
[root@teszt ~]# usermod -a -G disk tesztuser
[root@teszt ~]# id tesztuser
uid=1000(tesztuser) gid=1000(tesztuser) groups=1000(tesztuser),6(disk)
[root@teszt ~]# su - tesztuser
[tesztuser@teszt ~]$ id
uid=1000(tesztuser) gid=1000(tesztuser) groups=1000(tesztuser),6(disk) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[tesztuser@teszt ~]$ dd if=/dev/sda1 of=copy-of-boot-fs
2097152+0 records in
2097152+0 records out
1073741824 bytes (1.1 GB) copied, 5.33951 s, 201 MB/s
[tesztuser@teszt ~]$ ls -lah copy-of-boot-fs
-rw-rw-r--. 1 tesztuser tesztuser 1.0G Mar 12 09:28 copy-of-boot-fs
[tesztuser@teszt ~]$
问题:如果我们需要将“普通”用户分配给“disk”组,我们如何防御提权等攻击?用户可以读/写RAW磁盘,从而做任何想做的事,例如:在下次重新启动时木马内核或将其uid/gid修改为god 0/0。
需要将普通用户添加到磁盘组,例如:普通用户正在使用 VirtualBox,并且由于性能原因希望为来宾使用 RAW LV,而不是 FS 之上的文件。
答案1
如果我们需要将“普通”用户分配给“disk”组,我们如何防御提权等攻击?
你不能。解决方案是不要将用户放入disk
组中。它不是为了这个。
要授予用户访问原始卷的权限,请输入那不同组中的卷,并且仅该卷。做到这一点的方法是添加一个乌德夫规则。看向特定设备授予组权限,Udev 规则未设置组,允许非root用户读/写/dev文件, …