Được phát hiện cuối năm 2016, Dirty COW là lỗ hổng bảo mật máy tính ảnh hưởng đến tất cả các hệ thống dựa trên Linux. Điều đáng ngạc nhiên là lỗ hổng cấp hạt nhân này đã tồn tại trong Linux Kernel từ năm 2007, nhưng chỉ được khám phá và khai thác vào 2016.
Hôm nay, chúng ta sẽ xem chính xác lỗ hổng này là gì, các hệ thống bị ảnh hưởng, và làm thế nào để bảo vệ mình.
Lỗ hổng Dirty COW là gì?
Lỗ hổng Dirty COW là một kiểu khai thác leo thang đặc quyền (privilege escalation), về cơ bản nghĩa là nó có thể dùng để获得 quyền truy cập root-user trên bất kỳ hệ thống dựa trên Linux nào. Mặc dù chuyên gia bảo mật cho rằng các loại khai thác này không hiếm, nhưng bản chất dễ khai thác và việc nó tồn tại hơn 11 năm là khá đáng lo ngại.
Thực tế, Linus Torvalds đã thừa nhận ông phát hiện ra nó năm 2007, nhưng bỏ qua vì coi đó là "khai thác lý thuyết".
Dirty COW lấy tên từ cơ chế copy-on-write (COW) trong hệ thống quản lý bộ nhớ của hạt nhân. Chương trình độc hại có thể thiết lập điều kiện đua (race condition) để chuyển ánh xạ chỉ đọc của tệp thành ánh xạ ghi được. Do đó, người dùng không có đặc quyền có thể利用 lỗ hổng này để提升 đặc quyền trên hệ thống.
Bằng cách获得 đặc quyền root, chương trình độc hại获得 truy cập không giới hạn vào hệ thống. Từ đó, nó có thể sửa đổi tệp hệ thống, triển khai keylogger, truy cập dữ liệu cá nhân lưu trữ trên thiết bị, v.v.
Hệ thống nào bị ảnh hưởng?
Lỗ hổng Dirty COW ảnh hưởng đến tất cả các phiên bản Linux Kernel kể từ phiên bản 2.6.22, phát hành năm 2007. Theo Wikipedia, lỗ hổng đã được vá trong các phiên bản hạt nhân 4.8.3, 4.7.9, 4.4.26 và mới hơn. Một bản vá được phát hành năm 2016 ban đầu, nhưng không giải quyết hoàn toàn vấn đề, nên một bản vá tiếp theo được phát hành tháng 11 năm 2017.
Để kiểm tra phiên bản hạt nhân hiện tại, bạn có thể dùng lệnh sau trên hệ thống Linux:
uname -r
Các bản phân phối Linux chính như Ubuntu, Debian, ArchLinux đều đã phát hành bản sửa lỗi phù hợp. Vì vậy, nếu chưa làm, hãy cập nhật hạt nhân Linux của bạn.
Vì hầu hết hệ thống hiện đã được vá, rủi ro đã được giảm thiểu, đúng không? Không hoàn toàn.
Mặc dù hầu hết hệ thống chính thống đã được vá, vẫn còn một số thiết bị nhúng (embedded) dựa trên Linux vẫn dễ bị tổn thương. Hầu hết thiết bị nhúng này, đặc biệt là những cái rẻ, không bao giờ nhận được cập nhật từ nhà sản xuất. Thật không may, bạn không thể làm gì nhiều về điều này.
Do đó, rất quan trọng để mua thiết bị Internet of Things (IoT) từ các nguồn uy tín cung cấp hỗ trợ sau bán hàng đáng tin cậy.
Vì Android dựa trên hạt nhân Linux, hầu hết thiết bị Android cũng bị ảnh hưởng.
Dirty COW ảnh hưởng thế nào đến thiết bị Android
ZNIU là mã độc Android đầu tiên dựa trên lỗ hổng Dirty COW. Nó có thể dùng để root bất kỳ thiết bị Android nào lên đến Android 7.0 Nougat. Mặc dù chính lỗ hổng ảnh hưởng đến tất cả phiên bản Android, ZNIU cụ thể nhắm vào thiết bị Android với kiến trúc ARM/X86 64-bit.
Theo báo cáo của Trend Micro, hơn 300.000 ứng dụng độc hại mang ZNIU được phát hiện trong tự nhiên, tính đến tháng 9 năm 2017. Người dùng trên 50 quốc gia bao gồm Trung Quốc, Ấn Độ, Nhật Bản, v.v. bị ảnh hưởng. Hầu hết các ứng dụng này ngụy trang thành ứng dụng người lớn và trò chơi.
Cách mã độc ZNIU Android hoạt động
Ứng dụng bị ZNIU nhiễm thường xuất hiện như ứng dụng soft-porn trên các trang web độc hại, nơi người dùng bị lừa tải xuống. Vì Android làm cho việc cài đặt ứng dụng bên ngoài (sideload) trở nên dễ dàng, nhiều người dùng mới rơi vào bẫy và tải xuống.
Một khi ứng dụng bị nhiễm được khởi chạy, nó giao tiếp với máy chủ điều khiển và chỉ huy (C&C). Sau đó, nó khai thác lỗ hổng Dirty COW để cấp cho mình quyền siêu người dùng. Mặc dù lỗ hổng không thể khai thác từ xa, ứng dụng độc hại vẫn có thể gieo cổng sau (backdoor) và thực hiện tấn công điều khiển từ xa trong tương lai.
Sau khi ứng dụng获得 quyền root, nó thu thập và gửi thông tin nhà mạng về máy chủ của chúng. Sau đó, nó thực hiện giao dịch với nhà mạng qua dịch vụ thanh toán dựa trên SMS. Sau đó, thu tiền qua dịch vụ thanh toán của nhà mạng. Nhà nghiên cứu Trend Micro khẳng định các khoản thanh toán được chuyển đến một công ty giả ở Trung Quốc.
Nếu mục tiêu ở ngoài Trung Quốc, nó sẽ không thể thực hiện các giao dịch nhỏ với nhà mạng, nhưng vẫn sẽ gieo cổng sau để cài đặt ứng dụng độc hại khác.
Điều thú vị về mã độc là nó thực hiện các giao dịch vi mô, khoảng 3$ / tháng để không bị phát hiện. Nó cũng đủ thông minh để xóa tất cả tin nhắn sau khi giao dịch hoàn tất, khiến việc phát hiện khó khăn hơn.
Cách bảo vệ mình khỏi ZNIU
Google nhanh chóng giải quyết vấn đề và phát hành bản vá tháng 12 năm 2016 để khắc phục. Tuy nhiên, bản vá này chỉ hoạt động trên thiết bị chạy Android 4.4 KitKat trở lên.
Tính đến tháng 1 năm 2018, khoảng 6% thiết bị vẫn chạy phiên bản Android dưới 4.4 KitKat.
Mặc dù con số này nghe không lớn, nhưng vẫn khiến một số người dùng đáng kể gặp rủi ro.
Nếu thiết bị bạn chạy Android 4.4 KitKat trở lên, hãy chắc chắn bạn đã cài bản vá bảo mật mới nhất. Để kiểm tra, mở Cài đặt > Giới thiệu điện thoại. Kéo xuống dưới và kiểm tra Mức độ bản vá bảo mật Android.
Nếu bản vá bảo mật cài đặt mới hơn tháng 12 năm 2016, bạn nên được bảo vệ khỏi lỗ hổng này.
Google cũng xác nhận Google Play Protect có thể quét tìm ứng dụng bị ảnh hưởng và giúp bạn an toàn. Nhưng nhớ rằng Google Play Protect yêu cầu thiết bị được chứng nhận để hoạt động đúng với ứng dụng Google. Nhà sản xuất chỉ có thể bao gồm ứng dụng độc quyền như Google Play Protect sau khi vượt qua kiểm tra tương thích. Tin tốt là hầu hết nhà sản xuất lớn đều được Google chứng nhận. Vì vậy, trừ khi bạn mua thiết bị Android knock-off (giả mạo) rất rẻ, không có gì phải lo lắng nhiều.
Mặc dù ứng dụng antivirus Android có thể phát hiện các tấn công nâng cao quyền, chúng không thể ngăn chặn nó. Ứng dụng chống virus có thể hữu ích cho các tính năng khác như chống trộm, nhưng chắc chắn không có nhiều tác dụng trong trường hợp này.
Là biện pháp phòng ngừa cuối cùng, bạn nên cẩn trọng khi cài đặt ứng dụng từ nguồn không xác định. Android 8.0 Oreo làm cho việc cài ứng dụng từ nguồn không xác định an toàn hơn một chút, nhưng bạn vẫn nên thận trọng.
An toàn: Lời khuyên then chốt
Không còn bí mật rằng lỗ hổng Dirty COW ảnh hưởng đến số lượng lớn hệ thống. May mắn thay, các công ty đã nhanh chóng hành động để khống chế tình hình. Hầu hết hệ thống dựa trên Linux như Ubuntu, Debian, Arch-Linux đã được vá. Google đã triển khai Play Protect để quét ứng dụng bị ảnh hưởng trên Android.
Thật không may, một số người dùng chạy hệ thống nhúng với hạt nhân Linux bị ảnh hưởng có thể sẽ không bao giờ nhận được cập nhật bảo mật, khiến họ gặp rủi ro. Nhà sản xuất bán thiết bị Android knock-off rẻ không được Google chứng nhận, khiến người mua gặp rủi ro. Những người mua này không nhận được cập nhật bảo mật, chứ đừng nói cập nhật phiên bản Android.
Do đó, cực kỳ quan trọng để không mua thiết bị từ các nhà sản xuất như vậy. Nếu bạn sở hữu một thiết bị như vậy, đã đến lúc loại bỏ nó ngay lập tức. Dưới đây là một số điện thoại Android tốt nhất không làm rỗng túi bạn. Còn lại chúng ta nên đảm bảo cài đặt cập nhật kịp thời và dùng sự am hiểu thông thường để an toàn trên internet.
Hệ thống Linux của bạn có bao giờ bị ảnh hưởng bởi lỗ hổng Dirty COW hoặc mã độc ZNIU không? Bạn có cài đặt cập nhật bảo mật kịp thời không? Chia sẻ suy nghĩ với chúng tôi trong phần bình luận bên dưới.