Khai thác lỗ hổng Driver Kernel mà không cần phần cứng: Góc nhìn từ BYOVD
Phân tích kỹ thuật về cách các driver kernel mode trên Windows có thể bị khai thác trong các cuộc tấn công BYOVD ngay cả khi không có phần cứng tương ứng, giúp chuyên gia an ninh mạng đánh giá khả...
Trong nghiên cứu an ninh mạng, việc đánh giá khả năng khai thác (exploitability) của các lỗ hổng trong driver kernel mode thường gặp trở ngại khi mã nguồn đó bị giới hạn bởi phần cứng (hardware-gated). Bài viết này phân tích phương pháp giúp các chuyên gia xác định liệu một lỗ hổng driver có thể bị khai thác hay không ngay cả khi hệ thống không có phần cứng đi kèm.
Table Of Content
Giá trị tấn công của Driver Kernel
Các driver bị lỗi thường là mục tiêu chính trong các cuộc tấn công BYOVD (Bring Your Own Vulnerable Driver). Đây là kỹ thuật hậu khai thác (post-exploitation) cho phép kẻ tấn công vô hiệu hóa các thành phần bảo mật như EDR. Một driver được coi là ứng viên lý tưởng cho BYOVD khi nó cho phép can thiệp vào các thành phần bảo mật (ví dụ: đọc/ghi bộ nhớ kernel tùy ý) và khả năng khai thác không phụ thuộc vào các điều kiện phần cứng hiếm gặp.
Thách thức trong việc tạo Device Object
Các đối tượng thiết bị (device object) là vector tấn công khả thi nhất. Tuy nhiên, việc khai thác thường gặp hai rào cản chính: device object không được tạo ra hoặc trạng thái nội bộ của driver không cho phép thực thi hành vi lỗi dù đã truy cập được vào device object.
- Tạo không điều kiện: Nhiều driver (đặc biệt là non-PnP) tạo device object ngay trong hàm
DriverEntry. Những driver này rất dễ bị khai thác vì chỉ cần tải driver lên hệ thống là có thể tương tác được. - Tạo có điều kiện: Các driver phức tạp hơn thường kiểm tra sự hiện diện của phần cứng hoặc các khóa registry cụ thể. Nếu không thỏa mãn, chúng sẽ không tạo device object hoặc xóa chúng ngay lập tức bằng
IoDeleteDevice.
Vai trò của PnP (Plug and Play)
Hầu hết các driver hiện đại đều tương thích với PnP. Logic khởi tạo của chúng thường nằm trong các hàm AddDevice hoặc trình xử lý IRP_MJ_PNP. Khác với DriverEntry, AddDevice không tự động thực thi khi driver được tải. Trình quản lý PnP chỉ gọi hàm này sau khi phát hiện một node thiết bị mới. Do đó, để khai thác các driver này, kẻ tấn công cần hiểu cách PnP manager tương tác với driver để ép buộc thực thi các đoạn mã khởi tạo cần thiết.
Tương tác với phần cứng
Chỉ một phần nhỏ mã driver thực sự tương tác trực tiếp với phần cứng thông qua các cơ chế như MMIO, cổng I/O legacy, hoặc DMA. Khi nghiên cứu các lỗ hổng bị giới hạn bởi phần cứng, việc hiểu rõ ngữ cảnh thực thi là yếu tố then chốt để xác định xem lỗ hổng đó có thể bị kích hoạt từ user mode hay không.
Việc nắm vững kiến trúc Windows Device Objects và cơ chế PnP là nền tảng quan trọng để các nhà nghiên cứu bảo mật có thể đánh giá chính xác rủi ro từ các driver bị lỗi mà không cần sở hữu thiết bị phần cứng gốc.
Nguồn tham khảo: The Hacker News

No Comment! Be the first one.