BYOVD漏洞挖掘自动化研究
背景介绍
BYOVD(BringYourOwnVulnerableDriver)攻击利用易受攻击的合法驱动程序执行恶意操作,常针对终端安全软件致盲或杀死,实现提权、持久化驻留等目的。攻击者通过驱动程序的IOCTL漏洞实现,利用CWE-782: Exposed IOCTL with Insufficient Access Control等缺陷执行高危操作。2024年约25%的勒索软件攻击通过BYOVD技术,勒索团伙和APT组织频繁采用该技术。
原有BYOVD漏洞挖掘方法
- 人工逆向:效率低且依赖专业知识
- 符号执行:失败率高,路径爆炸、指针操作等问题导致成功率低
- IDAPython脚本:依赖完整IOCTL分发表,无法处理混淆或复杂情况
大模型能带来的改进
- 分析效率提升:自动判断漏洞并实现PoC编写,人工仅参与校验
- 分析成功率提升:从代码语义分析,不依赖严格语法,减少对专家经验依赖
为什么选择BYOVD?
- 可行性:BYOVD漏洞具备统一性(结构化输入/输出),IOCTL接口明确,攻击链统一
- 现实意义:攻击成本低、易利用,缺乏针对性防护
思路和流程
为什么不直接让大模型分析二进制文件?
- 数据初筛:选择带数字签名的64位驱动,文件大小小于1MB,检测高危函数导入
- 风险样本聚类:同类样本选最新版本,减少分析量
工具:基于LLM+IDA-Pro+MCP的LLM-Agent
- 工作流:将任务拆分为简单子任务,由大模型自主驱动分析过程
- 三个核心任务:
- 派遣函数识别:定位用户态与内核交互的入口点IRP派遣函数
- 派遣函数原型修复:恢复函数语义,避免干扰模型分析
- 派遣函数分析与POC生成:判断高危路径可达性并自动生成PoC
大模型的优势
- 自动化语义分析:发现复杂控制链路,分析权限校验及绕过方案
人工验证
- 验证驱动加载、设备对象访问权限及POC代码的稳定性
实例分析
- 简单案例:从派遣函数入口直接分析即可找到高危路径
- 复杂链路:通过多步骤分析确定漏洞路径
总结
- 介绍了BYOVD原理、影响及现有挖掘方法的局限性
- 阐述了大模型在自动化BYOVD漏洞挖掘中的优势
- 详细介绍了基于大模型的自动化分析流程,包括数据筛选、工具搭建、工作流设计及提示词优化
- 展示了实际发现的漏洞案例(CVE-2025-42706等)
展望
- 实现流程自动化,取代人工验证
- 探索大模型在其他类型二进制漏洞挖掘中的应用