Privileges
如果使用者正在使用磁碟組,如何防止提權?
一個基本的 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 ~]$
問題:如果我們需要將“普通”使用者分配給“磁碟”組,我們如何防禦提權等攻擊?使用者可以讀取/寫入 RAW 磁碟,從而為所欲為,例如:在下次重新啟動時木馬核心或將其 uid/gid 修改為 god 0/0。
例如,需要將普通使用者添加到磁碟組:普通使用者正在使用 VirtualBox,並且由於性能原因,它想為來賓使用 RAW LV,而不是 FS 之上的文件。
如果我們需要將“普通”使用者分配給“磁碟”組,我們如何防禦提權等攻擊?
你不能。解決方案是不要將使用者放入
disk
組中。這不是為了那個。要授予使用者對原始卷的訪問權限,請將該卷放在不同的組中,並且僅將該卷放在該組中。這樣做的方法是添加一個udev規則。請參閱為特定設備授予組權限、未設置組的 Udev 規則、允許非 root 使用者讀/寫 /dev 文件,…