1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) 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)

12 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu cách tấn công Dirty Cow (Dirty Cow Attack Lab)
Người hướng dẫn PGS.TS Lương Thế Dũng
Trường học Học Viện Kỹ Thuật Mật Mã
Chuyên ngành An Toàn Thông Tin
Thể loại Thực Tập Cơ Sở
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 0,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để có được thành quả như ngày hôm nay, ngoài sự nỗ lực không ngừng nghỉ của các thành viên trong nhóm thì một phần không nhỏ đóng góp nên thành công này là nhờ sự quan tâm, chỉ bảo, giúp

Trang 1

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TOÀN THÔNG TIN



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: PGS.TS Lương Thế Dũng

Sinh viên thực hiện: Huỳnh Hải Bằng

Trang 2

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TOÀN THÔNG TIN



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 DIRTY-COW (DIRTY-DIRTY-COW ATTACK LAB)

Nhận xét của giáo viên hướng dẫn:

Điểm báo cáo:

Xác nhận của giáo viên hướng dẫn:

Trang 3

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, chỉ bảo, tạo mọi điều kiện thuận lợi giúp đỡ chúng em trong quá trình thực hiện

đề tài

Để có được thành quả như ngày hôm nay, ngoài sự nỗ lực không ngừng nghỉ của các thành viên trong nhóm thì một phần không nhỏ đóng góp nên thành công này là nhờ sự quan tâm, chỉ bảo, giúp đỡ của các thầy cô, các anh chị khóa trên và bạn bè xung quanh

Tuy đã có rất nhiều cố gắng và sự nỗ lực của các thành viên để hoàn thiện đề tài,

nhưng chắc chắn đề tài “NGHIÊN CỨU CÁCH TẤN CÔNG DIRTY- COW

(DIRTY-COW ATTACK LAB)” của chúng em còn nhiều thiếu sót Chúng em rất mong nhận được

sự góp ý từ các thầy giáo để nhóm em có thể hoàn thiện tốt hơn các đề tài nghiên cứu sau

Chúng em xin chân thành cảm ơn!

Trang 4

LỜI MỞ ĐẦU

Ngày nay, với xu hướng chuyển đổi số mạnh mẽ của các doanh nghiệp, công ty, tổ chức dẫn đến việc tạo ra những phần mềm quản lý, điều hành và làm việc cũng hết sức thiết yếu Bên cạnh đó, ảnh hưởng của đại dịch COVID-19 cũng đã thúc đẩy nhanh việc chuyển đổi số Để đảm bảo an toàn cho phần mềm khi tạo ra và vận hành tránh bị kẻ xấu tấn công gây thiệt hại nghiêm trọng Đó cũng là lý do để chúng em chọn chuyên đề Software Security và đặc biệt là nghiên cứu cách tấn công Dirty-Cow

Trang 5

MỤC LỤC

LỜI CẢM ƠN 3

LỜI MỞ ĐẦU 4

MỤC LỤC 5

CHƯƠNG I: TỔNG QUAN VỀ DIRTY-COW LAB 6

1 Giới thiệu 6

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 7

1 Task 1: Modify a Dummy Read-Only File, Create a Dummy File 7

2 Set Up the Memory Mapping, write and madvise Thread 7

3 Task 2: Modify the Password File to Gain the Root Privilege 8

CHƯƠNG III: KẾT LUẬN 11

TÀI LIỆU THAM KHẢO 12

Trang 6

CHƯƠNG I: TỔNG QUAN VỀ DIRTY-COW LAB

1 Giới thiệu

Lỗ hổng Dirty COW là một trường hợp đặc biệt của dạng lỗ hổng race condition Nó tồn tại trong nhân Linux từ tháng 9 năm 2007, được phát hiện và khai thác vào tháng 10 năm 2016 Lỗ hổng ảnh hưởng đến tất cả các hệ điều hành dựa trên Linux, bao gồm cả Android, và hậu quả của nó là rất nghiêm trọng: kẻ tấn công có thể giành được đặc quyền root bằng cách khai thác lỗ hổng Lỗ hổng bảo mật nằm trong mã copy-on-write bên trong nhân Linux Bằng cách khai thác lỗ hổng này, những kẻ tấn công có thể sửa đổi bất kỳ tệp được bảo vệ nào, mặc dù những tệp này chỉ có thể đọc đối với chúng

Trang 7

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

1 Task 1: Modify a Dummy Read-Only File, Create a Dummy File

Ở đây, chúng ta tạo một tệp chỉ đọc có tên ‘banghuynh’ trong thư mục gốc để chứng minh cuộc tấn công cho phép chúng ta ghi vào tệp chỉ đọc Có chuỗi ‘bh222222bh’ được lưu trữ trong tệp, như hình Nếu ta cố gắng ghi vào tệp này bằng lệnh echo, thì ta sẽ

bị từ chối vì đây là tệp chỉ đọc cho user thường

2 Set Up the Memory Mapping, write and madvise Thread

Chương trình đã cho được viết trong tệp cow_attack.c, trong đó có 3 luồng: main, write và madvise Chuỗi chính ánh xạ tệp vào bộ nhớ và tìm kiếm chuỗi mong muốn được thay thế - ở đây nó là ‘222222’ Sau đó, nó bắt đầu hai luồng - luồng ghi thay thế ‘222222’ bằng nội dung mong muốn - ‘******’ Nếu đây là luồng duy nhất đang chạy, thì nội dung

sẽ được ghi vào bản sao của bộ nhớ chứ không phải chính bộ nhớ được chia sẻ, do đó hoàn toàn không ảnh hưởng đến tệp bên dưới Do đó, chúng ta cần chạy chuỗi madvise cùng với luồng ghi, để bảng trang trỏ đến bộ nhớ được ánh xạ và luồng ghi sẽ ghi nội dung vào bộ nhớ này sao cho cùng một nội dung được phản ánh trong tệp Điều này có nghĩa là tệp chỉ đọc đã được sửa đổi Khi ta biên dịch và chạy chương trình và khi kiểm tra nội dung của tệp chỉ đọc ‘banghuynh’, ta thấy rằng tệp đã được sửa đổi thành công

Trang 8

Bước quan trọng ở đây là chạy chuỗi madvise khi luồng ghi đang chạy để việc ghi được thực hiện trên bộ nhớ được ánh xạ chứ không phải bản sao riêng, vì chỉ bộ nhớ được ánh xạ mới được phản ánh trong tệp Để đạt được điều đó, chúng ta chạy các lệnh gọi hệ thống write và madvise trong một vòng lặp để chúng thực thi theo trình tự mong muốn ít nhất một lần Vì thế, ta có thể thực hiện được điều đó và cuộc tấn công Dirty COW của ta

đã thành công trên tệp chỉ đọc 'banghuynh'

Một tiêu chí quan trọng ở đây là sử dụng MAP_PRIVATE, vì điều này cho phép chúng tôi ghi vào tệp chỉ đọc bằng cách tạo một bản sao riêng

3 Task 2: Modify the Password File to Gain the Root Privilege

Chỉ cần ta có quyền đọc của tệp thì lỗ hổng Dirty COW sẽ được khai thác Ở đây, chúng ta sẽ cố gắng giành được quyền root bằng cách sửa đổi tệp passwd world-readable, nhưng root-writable Đầu tiên, chúng ta tạo một user không phải root có tên banghuynh

và kiểm tra mục nhập này trong tệp passwd Như hình sau:

Mục đích của chúng ta là biến user bình thường này trở thành user có quyền root bằng cách sửa đổi UID của họ - trường thứ ba trong mục nhập Bây giờ chúng tôi đang cố gắng sửa đổi tệp /etc/passwd, như đã thấy trong code Đầu tiên chúng ta cùng tìm nội dung sau: ‘banghuynh: x: 1001’ Đây là mục nhập tương ứng với dòng người dùng đã tạo của chúng tôi trong /etc/passwd

Trang 9

Sau đó, ta thay thế dòng đó bằng ‘banghuynh: x: 0000’, làm cho nó trở thành người dùng root Code như hình sau:

Sau đó, chúng ta biên dịch và chạy chương trình Để thay đổi user banghuynh thành user root và làm cho UID là 0 và id nhóm vẫn giữ nguyên

Trang 10

Để xác minh, chúng ta chuyển sang tài khoản user banghuynh và dấu # cho biết đó

là user root

Trang 11

CHƯƠNG III: KẾT LUẬN

Bài lab này giúp sinh viên có được kinh nghiệm thực tế về cuộc tấn công Dirty-COW, hiểu hơn về dạng lỗ hổng Race-Condition bị khai thác bởi cuộc tấn công và hiểu sâu hơn về các vấn đề bảo mật race condition chung Trong lab này, sinh viên sẽ khai thác

lỗ hổng Dirty COW để có được đặc quyền root

Trang 12

TÀI LIỆU THAM KHẢO

Du, W (n.d.) Dirty-COW Attack Lab Retrieved from

https://seedsecuritylabs.org/Labs_16.04/Software/Dirty_COW/

MeghaJakhotia (n.d.) Dirty COW Retrieved from

https://github.com/MeghaJakhotia/ComputerSecurityAttacks/tree/master/Dirty

%20COW

Ngày đăng: 14/12/2022, 10:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w