Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Nơi chứa các tài liệu tham khảo của dịch vụ Cloud365.
Thư mục /tmp được sử dụng để chứa file tạm, và sẽ bị xóa trong một khoảng thời gian nhất định, tùy thuộc vào tmpwatch
hoặc systemd-tmpfiles-setup.service
. Tuy nhiên, các file trong thư mục này có quyền thực thi. Vì vậy, bài viết này sẽ hướng dẫn cách để hạn chế các rủi ro khi hacker thực hiện tấn công và thực thi các mã độc trong thư mục /tmp
dd if=/dev/zero of=/dev/tmpDIR bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 3.54446 s, 289 MB/s
Sau khi tạo file cần format file định dạng ext3 hoặc định dạng filesystem khác. Khi hiển thị “Proceed anyway?” , bấm “y” để tiếp tục:
/sbin/mkfs.ext3 /dev/tmpDIR
mke2fs 1.42.9 (28-Dec-2013)
/dev/tmpDIR is not a block special device.
Proceed anyway? (y,n) y
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
62592 inodes, 250000 blocks
12500 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=260046848
8 block groups
32768 blocks per group, 32768 fragments per group
7824 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
Backup dữ liệu thư mục /tmp hiện tại (giữ nguyên permisssions)
cp -Rpf /tmp /tmpbak
Sau khi backup thư mục /tmp cũ, thực hiện mount /dev/tmpDIR
mới tạo vào /tmp
mount -o loop,noexec,nosuid,rw /dev/tmpDIR /tmp
Khi mount /tmp với noexec
, nosuid
nhằm ngăn việc thực thi file
Notice we are mounting the /tmp
directory with noexec and nosuid which will stop direct execution of binary files and not allow set-user-identifier or set-group-identifier bits to take effect respectively.
chmod 1777 /tmp
Cần copy dữ liệu cũ hiện có ở /tmpbak
sang thư mục /tmp
mới:
cd /tmpbak
cp -Rpf * /tmp/
Thêm vào dòng cuối cùng của file /etc/fstab
để thư mục /tmp
mới mount có thể hoạt động mỗi lần server khởi động lại
/dev/tmpDIR /tmp ext3 loop,nosuid,noexec,rw 0 0
nodev
– Không cho tạo device
nosuid
– Bỏ qua suid bit
noexec
– Không cho thực thi
Sau khi hoàn thành thực hiện test thực thi file ở trong thư mục /tmp
Backup thư mục /var/tmp
và tạo symlink từ /var/tmp
vào /tmp
mv /var/tmp /var/tmpbak
ln -s /tmp /var/tmp
Khi thực hiện mv có thể xuất hiện lỗi device đang busy thì cần kiểm tra xem tiến trình nào đang sử dụng thư mục này, và tạm thời stop.
Copy dữ liệu trong /var/tmp vào /tmp
cp -pR /var/tmpbak/* /tmp/
dd if=/dev/zero of=/dev/tmpDIR bs=1024 count=1000000
/sbin/mkfs.ext3 -F /dev/tmpDIR
cp -Rpf /tmp /tmpbak
mount -o loop,noexec,nosuid,rw /dev/tmpDIR /tmp
chmod 1777 /tmp
cd /tmpbak
cp -Rpf * /tmp/
echo "/dev/tmpDIR /tmp ext3 loop,nosuid,noexec,rw 0 0" >> /etc/fstab
mv /var/tmp /var/tmpbak
ln -s /tmp /var/tmp
cp -pR /var/tmpbak/* /tmp/
Thực hiện bởi cloud365.vn