Phát hiện Ransomware Vượt Trội bằng Minifilter Driver

Ransomware vẫn là loại hình tấn công mạng gây thiệt hại tài chính nghiêm trọng nhất cho các tổ chức trên toàn cầu. Trong môi trường Windows, một trong những công cụ hiệu quả nhất để giám sát hoạt động hệ thống là minifilter driver, đóng vai trò then chốt trong các giải pháp phát hiện ransomware thời gian thực.
Vai trò của Minifilter Driver trong Giám sát Hệ thống Windows
Minifilter driver là một thành phần kernel-mode nằm trực tiếp trong đường ống I/O của hệ thống tệp. Vị trí chiến lược này cho phép minifilter quan sát, chặn và thậm chí điều chỉnh các thao tác tệp độc hại ngay lập tức. Điều này cung cấp một lớp cảnh báo sớm thiết yếu cho các hệ thống Phát hiện và Phản ứng Điểm cuối (EDR).
Kiến trúc Filter Driver trên Windows
Trên hệ điều hành Windows, một filter driver nằm trong một ngăn xếp giữa các ứng dụng user-mode và trình điều khiển hệ thống tệp cốt lõi, chuyên xử lý các yêu cầu I/O. Nó có khả năng quan sát, sửa đổi, chặn hoặc chuyển hướng các sự kiện hệ thống tệp khi chúng đi qua đường ống này.
Filter Manager, một thành phần kernel-mode, cung cấp một API phong phú cho các minifilter driver, giúp loại bỏ nhu cầu xây dựng các legacy filter driver từ đầu.
Các minifilter driver đăng ký các hàm callback xử lý hoạt động I/O của chúng với Filter Manager. Manager sẽ gọi các hàm callback này theo thứ tự độ cao (altitude), đảm bảo việc xếp lớp xác định khi nhiều filter được tải cùng lúc.
POC Minifilter Driver của 0xflux cho Phát hiện Ransomware
Nghiên cứu bảo mật 0xflux đã công bố một bằng chứng khái niệm (POC) về minifilter driver trên Windows, được thiết kế chuyên biệt để phát hiện ransomware trong thời gian thực. Driver này can thiệp vào các sự kiện hệ thống tệp để gắn cờ các hành vi đáng ngờ, bao gồm việc ghi tệp nhanh và đổi tên tệp thành các phần mở rộng độc hại đã biết.
Quy trình Khởi tạo và Đăng ký Driver
Một minifilter bắt đầu hoạt động tương tự như bất kỳ kernel driver nào khác, với hàm DriverEntry. Thay vì thiết lập driver thông thường, nó sử dụng các hàm thuộc họ Flt để đăng ký và khai báo các hàm callback cho các gói yêu cầu I/O (IRP) cụ thể.
FltRegisterFilter: Đăng ký minifilter với Filter Manager.FltStartFiltering: Bắt đầu quá trình lọc các hoạt động I/O.
Các hàm này là nền tảng cho việc minifilter có thể can thiệp vào luồng I/O của hệ thống tệp.
Cơ chế Phát hiện Đổi tên Tệp (Rename Detection)
Hàm PostOperationSetInformation được sử dụng để xử lý các hoạt động đổi tên tệp. Nó lọc các yêu cầu thuộc lớp FileRenameInformation. Driver sẽ truy xuất tên tệp đã được chuẩn hóa thông qua FltGetFileNameInformation và FltParseFileNameInformation.
Sau đó, các phần mở rộng của tệp được quét so với một danh sách các phần mở rộng độc hại đã biết, ví dụ như L”.HLJkNskOq” từ các Chỉ số Thỏa hiệp (IOC) của LockBit.
// Ví dụ logic kiểm tra phần mở rộng (giả mã)
if (OperationIsFileRename(CallbackData)) {
PFLT_FILE_NAME_INFORMATION nameInfo;
NTSTATUS status = FltGetFileNameInformation(CallbackData, FLT_FILE_NAME_NORMALIZED | FLT_FILE_NAME_QUERY_DEFAULT, &nameInfo);
if (NT_SUCCESS(status)) {
FltParseFileNameInformation(nameInfo);
if (IsMaliciousExtension(nameInfo->Extension.Buffer)) {
LogAlert("Ransomware rename detected: %wZ", &nameInfo->Name);
}
FltReleaseFileNameInformation(nameInfo);
}
}
Khi có sự trùng khớp, driver sẽ kích hoạt cảnh báo tới một engine user-mode để kiểm tra sâu hơn, chẳng hạn như phân tích entropy của tệp. Phân tích entropy là một dấu hiệu đặc trưng của dữ liệu đã được mã hóa. Các chi tiết về tiến trình, bao gồm PID (qua PsGetProcessId) và tên hình ảnh (qua SeLocateProcessImageName), được ghi lại để tương quan.
Cơ chế Phát hiện Ghi Tệp (Write Detection)
Đối với các hoạt động ghi tệp, hàm PostOperationCreate sẽ lọc các mặt nạ truy cập như FILE_WRITE_DATA hoặc FILE_APPEND_DATA. Điều này giúp gắn cờ các tiến trình tìm kiếm quyền truy cập ghi dữ liệu, một dấu hiệu tiềm ẩn của việc chuẩn bị mã hóa.
Các hàm callback tiền xử lý (pre-operation callbacks) chỉ đơn giản trả về FLT_PREOP_SUCCESS_WITH_CALLBACK để cho phép xử lý hậu kỳ mà không chặn ngay lập tức hoạt động I/O. Điều này đảm bảo linh hoạt trong việc giám sát mà không làm gián đoạn các hoạt động hợp lệ.
Kiểm thử và Hiệu quả của POC
Driver dựa trên ngôn ngữ C này, được lưu trữ trên GitHub dưới dự án Sanctum/fs_minifilter, bao gồm các kiểm tra an toàn cho việc sử dụng trong môi trường sản xuất. Một trình mô phỏng được viết bằng Rust đã được phát triển để mô phỏng hành vi của ransomware.
Trình mô phỏng này thực hiện các bước sau:
- Mở tệp
test.txt. - Ghi các byte rác vào tệp.
- Đổi tên tệp thành
test.HLJkNskOq(mô phỏng phần mở rộng của LockBit).
Khi minifilter driver được tải, nó sẽ phát hiện và ghi lại các sự kiện này, chứng minh hiệu quả chống lại các hành vi tương tự LockBit. Chi tiết về POC này có thể tìm thấy tại Fluxsec.red.
Các Phương pháp Nâng cao và Phát triển Tương lai
Ngoài việc chỉ dựa vào phần mở rộng tệp, phương pháp này còn theo dõi khối lượng sự kiện: một tiến trình truy cập và sửa đổi nhiều thư mục khác nhau có thể là dấu hiệu của một cuộc tấn công ransomware. Việc kiểm tra mối tương quan loại tệp và phân tích entropy nâng cao độ chính xác của việc phát hiện ransomware.
Các cải tiến trong tương lai bao gồm:
- Các bộ thu thập user-mode để phân tích cây tiến trình.
- Giám sát các hoạt động đọc tệp một phần.
- Giới hạn tốc độ phát hiện (ví dụ: số lượng thay đổi entropy cao mỗi giây).
- Khả năng đóng băng các luồng đáng ngờ để tạo thời gian phản ứng.
Ưu điểm của Cách tiếp cận Dựa trên Hành vi
POC từ 0xflux này phù hợp với xu hướng trong các giải pháp EDR dựa trên hành vi. Nó vượt trội hơn các phần mềm chống virus (AV) truyền thống dựa trên signature trong việc đối phó với các mối đe dọa không tệp (fileless) hoặc đa hình (polymorphic). Bằng cách tập trung vào hành vi bất thường, driver cung cấp một lớp phòng thủ chủ động hơn cho bảo mật mạng.
Để hiểu rõ hơn về ransomware và các mối đe dọa liên quan, bạn có thể tham khảo thêm tại NVD NIST Glossary.








