Secaholic

Về Dirty Cow

Gần đây tôi có thấy nhiều thông tin về lỗ hổng này, được đánh giá là Serious, cho phép leo thang đặc quyền, ảnh hưởng đến nhiều distro Linux… Tôi cũng không hiểu sao một lỗ hổng sau khi được công bố thì có logo, website riêng, Twitter, Facebook Page th...

Đọc thêm

Chi tiết lỗi

Một cách phân tích bug hiệu quả là dựa vào mã khai thác đã có. Dưới đây là đoạn mã được cung cấp từ repository github “chính thức” của Dirty COW.dirtycow/dirtycow.github.iodirtycow.github.io - Dirty COWgithub.comMã khai thác này cho phép sửa nội dung một file đã được set permision Read Only, hoạt động được trên hầu hết các distro Linux trừ Red Hat Enterprise Linux 5 và 6 (lý do sẽ giải thích ở dưới). Cách dùng thì có thể thấy dễ hiểu thế này:Theo luồng xử lý của chương trình, chúng ta có thể chia nhỏ các công việc mà nó thực hiện như sau.

Đọc thêm

1. Load file và map vào Virtual Address Space

Tại dòng 87, chương trình mở file input và đọc với chế độ Read Only. Tiếp đến lấy thông tin file ghi vào biến con trỏ st và lưu lại tên file vào biến name. Mọi thứ khá rõ ràng.Ở dòng 101, nội dung file được map vào Virtual Address Space bằng hàm mmap(...

Đọc thêm

2. Race Condition

Như đã nói ở phần đầu, Dirty COW là một lỗi Race Condition, và lỗi này được tạo ra bởi 2 dòng lệnh sau:Về cơ bản thì Race Condition xảy ra khi mà có nhiều hơn một luồng thực thi cùng đọc/ghi vào tài nguyên dùng chung dẫn đến xung đột và những tình huốn...

Đọc thêm

Vá lỗi

Trên Linux repo, chúng ta có thể thấy cách Linus Torvalds vá lỗi này. Một cờ mới là FOLL_COW được đưa vào để đảm bảo quá trình COW đã hoàn tất trước khi 1 thread khác xen vào.

Đọc thêm

Kết

Dirty Cow là một lỗi nghiêm trọng, dù nó chỉ thuộc loại Local Exploit nhưng thời gian tồn tại trước khi công bố cũng đủ lâu để ai đó làm gì biến mọi thứ trở nên nguy hiểm hơn. Nhiều thiết bị android cũng đã được xác nhận có ảnh hưởng. Vì thế, hãy cập nhật hệ điều hành của các bạn sớm nhất có thể và đặc biệt là với các Honey pot hay Vuln Server của các cuộc thi CTF. Thông tin thêm có thể tìm thấy ở trang chủ Dirty Cow.

Đọc thêm

Tài liệu tham khảo

[1] https://dirtycow.ninja/[2] https://github.com/dirtycow/dirtycow.github.io[3] http://man7.org/linux/man-pages/man2/mmap.2.html[4] http://man7.org/linux/man-pages/man2/madvise.2.html[5] https://github.com/torvalds/linux/blob/5924bbecd0267d87c24110cbe2041b5075173a25/mm/madvise.c#L452[6] https://en.wikipedia.org/wiki/Copy-on-write[7] https://en.wikipedia.org/wiki/Dirty_bit[8] https://sandstorm.io/news/2016-10-25-cve-2016-5195-dirtycow-mitigated[9] https://github.com/torvalds/linux/commit/4ceb5db9757aaeadcf8fbbf97d76bd42aa4df0d6[10] http://www.v3.co.uk/v3-uk/news/2474845/linux-users-urged-to-protect-against-dirty-cow-security-flaw[11] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619[12] https://www.youtube.com/watch?v=kEsshExn7aE

Đọc thêm

Bạn đã thích câu chuyện này ?

Hãy chia sẻ bằng cách nhấn vào nút bên trên

Truy cập trang web của chúng tôi và xem tất cả các bài viết khác!

superkids