Tự động phát hiện lỗ hổng Zero-Day trên driver Windows kernel bằng LangChain DeepAgents

07 tháng 4, 2026·5 phút đọc

Một pipeline tự động đã được xây dựng để quét hàng nghìn driver Windows kernel, phát hiện lỗ hổng có thể khai thác trong các cuộc tấn công BYOVD. Lần chạy đầu tiên đã phát hiện thành công một lỗ hổng zero-day trên driver ASUS.

Tự động phát hiện lỗ hổng Zero-Day trên driver Windows kernel bằng LangChain DeepAgents

Tự động phát hiện lỗ hổng Zero-Day trên driver Windows kernel bằng LangChain DeepAgents

Trong một dự án tận dụng 100 đô la tín dụng Google Cloud còn dư từ Google One Ultra, tác giả đã xây dựng thành công một pipeline tự động quét hàng ngàn driver kernel Windows để phát hiện các lỗ hổng có thể bị khai thác, đặc biệt là những lỗ hổng phục vụ cho tấn công BYOVD (Bring Your Own Vulnerable Driver). Trong lần chạy thực tế đầu tiên trên một bộ driver lớn, pipeline này đã phát hiện một lỗ hổng zero-day trong một driver của ASUS.

Cách hoạt động của pipeline

Thay vì phân tích thủ công từng driver, pipeline DeepZero tự động xử lý hàng nghìn driver, đánh dấu những driver có dấu hiệu dễ bị khai thác. Quy trình gồm các bước chính:

┌──────────────────────────────────────────────────┐
│                  DeepZero                        │
│                                                  │
│  Triage ──▶ Ghidra ──▶ Semgrep ──▶ Gemini 2.5   │
│  (.sys)     (headless)  (rules)    (Vertex AI)   │
│                                        │         │
│                                        ▼         │
│                                  VULNERABLE /    │
│                                  SAFE report     │
└──────────────────────────────────────────────────┘

Pipeline lần lượt phân tích bảng import, decompile code vận hành qua Ghidra, sử dụng Semgrep để dò các pattern lỗ hổng, và cuối cùng dùng Gemini 2.5 trên Vertex AI (Google Cloud) để đánh giá khai thác thật hay không.

Cơ sở dữ liệu và quá trình phân loại

Tác giả bắt đầu từ cơ sở dữ liệu LOLDrivers – tập hợp 509 driver đã biết có lỗ hổng và 1.822 hash khác nhau. Phân tích cho thấy các driver này thường gọi một số API nguy hiểm như MmMapIoSpace, MmAllocateContiguousMemory, IoAllocateMdl, __readmsr... và đều tạo thiết bị để usermode có thể tương tác.

Dựa trên đó, pipeline lọc các driver phù hợp trong bộ driver lớn SDI_RUS gồm khoảng 12.000 file .sys. Sau bước loại trùng (dựa trên SHA256) còn lại khoảng 7.463 driver có khả năng tiếp xúc IOCTL.

Pipeline ưu tiên driver hỗ trợ Windows 10/11 để phân tích trước.

Giải mã và phân tích code với Ghidra và Semgrep

Tất cả driver được decompile headless bằng Ghidra với thời gian từ 1-3 phút cho mỗi driver. Tác giả tự viết script Jython để tìm hàm DriverEntry, theo dõi bảng phân phối lệnh IOCTL và trích xuất code C sạch cho mỗi handler.

Tiếp đó, sử dụng Semgrep với các quy tắc tùy biến để phát hiện các mẫu lỗ hổng phổ biến như MmMapIoSpace với tham số do người dùng kiểm soát, memcpy với độ dài do người dùng nhập, hoặc cách dùng METHOD_NEITHER không kèm ProbeForRead.

Driver không có dấu hiệu lỗ hổng bị loại bỏ từ giai đoạn này.

Phân tích nâng cao bằng trí tuệ nhân tạo (LLM)

Những driver còn lại được gửi lên Gemini 2.5 Pro trên nền tảng Vertex AI để phân tích chuyên sâu. DeepZero sử dụng LangChain DeepAgents với hai công cụ tích hợp:

  • triage_drivers: phân tích PE và chấm điểm import
  • batch_analyze_candidates: điều khiển Ghidra và Semgrep

LLM sẽ theo dõi luồng dữ liệu từ buffer IOCTL đến các điểm nguy hiểm trong code để xác định tính khả khai thác thực sự, phân loại driver thành [VULNERABLE] hay [SAFE] kèm bằng chứng.

Chi phí và hiệu quả

Mỗi phân tích driver tiêu tốn khoảng 50K-200K token, tương đương 2-3 USD theo giá Vertex AI. Với 9 báo cáo đầu tiên, chi phí khoảng 20 USD (trước khi tối ưu hóa chi phí). Các bước phân tích trước LLM được thực hiện local và không tốn phí, giúp giảm tối đa số driver gửi lên dịch vụ trả phí.

Xác minh và khai thác thực tế

Báo cáo [VULNERABLE] sau đó được kiểm tra thủ công để đảm bảo không có kết quả giả mạo. Với các zero-day hợp lệ, luồng dữ liệu vào và điểm rủi ro được chứng minh toán học qua mô hình LLM.

Tác giả dùng WinDbg trên máy ảo Windows 11 để xác minh và nhờ AI Claude 3.7 tự động viết mã proof-of-concept (PoC). PoC này được biên dịch, nạp lên hệ thống thật, chạy để xác nhận lỗ hổng.

Pipeline được viết hoàn toàn bằng Python, kết hợp thư viện pefile phân tích PE, Ghidra headless decompile, Semgrep dò mẫu, và Vertex AI chạy LLM.

Quy trình tổng thể gồm: pipeline lọc candidate → kiểm tra thủ công → Claude tạo PoC → thử nghiệm thực tế.

Tương lai và mã nguồn mở

Pipeline đã phát hiện thành công một zero-day trên driver ASUS và đang trong quá trình công bố có trách nhiệm với nhóm bảo mật ASUS PSIRT, do đó chưa tiết lộ chi tiết exploit.

Toàn bộ dự án DeepZero được mở mã nguồn trên GitHub để người dùng có thể ứng dụng săn lùng lỗ hổng trên thiết bị hoặc cơ sở dữ liệu driver của riêng mình.

Xem chi tiết và tải về tại: https://github.com/416rehman/deepzero

Mốc thời gian phát hiện lỗ hổng

NgàySự kiện
06/04/2026Phát hiện lỗ hổng
06/04/2026Xác nhận PoC trên Windows 11 24H2
06/04/2026Báo cáo gửi ASUS PSIRT

Pipeline DeepZero là một bước tiến đột phá trong việc tự động hóa phát hiện lỗ hổng kernel driver Windows, tận dụng sức mạnh AI hiện đại để hỗ trợ các chuyên gia bảo mật làm việc hiệu quả hơn, từ đó góp phần nâng cao mức độ an toàn hệ thống cho người dùng cuối, trong đó có cả cộng đồng Việt Nam.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗