416rehman/DeepZero

GitHub: 416rehman/DeepZero

DeepZero 是一个由 AI 驱动的自动化框架,用于大规模挖掘 Windows 内核驱动程序中的零日漏洞。

Stars: 66 | Forks: 7

# DeepZero **DeepZero** 是一个自动化、由 AI 驱动的框架,用于大规模发现 Windows 内核驱动程序中的零日漏洞。 **阅读披露博客文章:** [使用 DeepAgents、LangChain 和 Vertex AI 在 ASUS 驱动程序中发现零日漏洞](https://blog.ahmadz.ai/automated-deepagents-langchain-pipeline-for-zero-days/) ## 概述 在 Windows 内核驱动程序中发现漏洞通常意味着需要在 IDA 或 Ghidra 中手动逆向工程二进制文件。`DeepZero` 使用多阶段流水线自动化此过程: 1. **大规模分流:** 通过 `pefile` 在本地解析数千个 `.sys` 文件,以识别具有用户可访问 IOCTL 接口的 Windows 内核驱动程序,并根据 [LOLDrivers](https://www.loldrivers.io/) 数据库中的启发式规则对其进行评分。 2. **反编译:** 将候选程序分发给无头 Ghidra,以追踪 `DriverEntry`,隔离 `IRP_MJ_DEVICE_CONTROL` 分发处理程序,并提取所有 IOCTL 函数的干净 C 代码。 3. **模式匹配:** 针对反编译的 C 代码运行自定义 Semgrep 规则,以查找已知的漏洞模式(例如,具有攻击者控制物理地址的 `MmMapIoSpace`,缺少 `ProbeForRead`)。 4. **智能体 LLM 评估:** 将幸存的候选程序、反编译的分发处理程序和 Semgrep 发现结果输入到基于 [DeepAgents](https://github.com/langchain-ai/deepagents) 和 Vertex AI (Gemini 2.5 Pro) 构建的 LLM 智能体中。该智能体追踪数据流,拒绝误报(例如,硬件限制路径),并生成最终的 `VULNERABLE`(易受攻击)或 `SAFE`(安全)报告。 LLM 阶段之前的所有操作均在本地运行,以节省 API 成本。该流水线通过 SHA256 哈希对驱动程序进行去重,以防止冗余分析。 ## 前置条件 - **Python 3.11+** - **Ghidra**(下载并解压到系统上的任何位置) - **Google Cloud Vertex AI** 访问权限(用于 Gemini 2.5 Pro 智能体) ## 安装说明 DeepZero 需要标准的 Python 环境和外部 Ghidra 安装来执行其逆向工程子程序。 1. 克隆仓库: git clone https://github.com/416rehman/deepzero.git cd deepzero python -m venv .venv source .venv/bin/activate # 在 Windows 上为 .venv\Scripts\activate pip install -e . ## 配置 将 `.env.example` 复制为 `.env` 并填写您的路径和项目详细信息: ``` GOOGLE_CLOUD_PROJECT=your-gcp-project-id GOOGLE_CLOUD_LOCATION=us-central1 GHIDRA_INSTALL_DIR=C:\path\to\ghidra_11.x_PUBLIC ``` ## 使用方法 您可以将智能体指向单个 `.sys` 文件、驱动程序目录或庞大的驱动程序包: ``` # 分析特定的 driver pack 目录 byovd "C:\Users\username\Downloads\Drivers" # 特定的 driver byovd "C:\path\to\target.sys" ``` 该流水线将向 `work/` 发出 JSON 日志,并将标记驱动程序的最终 LLM 评估结果写入 `work/` 下特定驱动程序子目录内的 `VULNERABLE_report.md` 或 `SAFE_report.md`。 ## 性能与缓存 反编译驱动程序计算开销很大。根据经验运行: - **分流阶段:** 极快(验证数千个驱动程序的 PE 头和导入表只需几秒/几分钟)。 - **Ghidra 阶段:** 根据复杂度,每个驱动程序大约需要 **1 到 3 分钟**。 - **规模:** 由于分析在线程池中并发运行,吞吐量很高。在标准机器上分析包含约 7,500 个候选程序的大型驱动程序包大约需要 **8 到 10 小时**(过夜)。 为了缓解此问题,`DeepZero` 实施了激进的缓存策略: 1. **SHA256 去重:** 在不同位置或不同文件名下发现的相同驱动程序将通过其 SHA256 哈希进行去重。流水线绝不会分析同一个二进制文件两次。 2. **崩溃恢复:** 分流结果在本地缓存。如果流水线崩溃或中断,它将从正在处理的确切候选程序无缝恢复。 3. **报告跳过:** 如果哈希值已存在 `VULNERABLE_report.md` 或 `SAFE_report.md`,流水线将完全跳过它以节省 Vertex AI API 成本。 ## 架构 ``` ┌──────────────────────────────────────────────────┐ │ byovd-agent │ │ │ │ Triage ──▶ Ghidra ──▶ Semgrep ──▶ Gemini 2.5 │ │ (.sys) (headless) (rules) (Vertex AI) │ │ │ │ │ ▼ │ │ VULNERABLE / │ │ SAFE report │ └──────────────────────────────────────────────────┘ ``` ## 免责声明 此工具仅用于授权的安全研究和防御目的。请勿使用它来分析或攻击您不拥有或未明确获得测试许可的系统/软件。
标签:0day, AI安全, Chat Copilot, DLL 劫持, Gemini, Ghidra, IOCTL, LangChain, LLM Agent, LOLDrivers, Semgrep, URL提取, Vertex AI, Web报告查看器, Windows内核, WordPress安全扫描, 二进制分析, 云安全运维, 云资产清单, 内核驱动, 反编译, 大语言模型, 子域名枚举, 白帽子, 系统安全, 网络协议, 网络安全, 网络安全监控, 自动化分析, 跨站脚本, 轻量级, 逆向工具, 逆向工程, 隐私保护, 零日漏洞, 驱动开发