返回首页

OpenHack深度解析:Hadrian Security开源的白盒安全审查工具完全指南

OpenHack 源码导向白盒安全审查

OpenHack:Hadrian Security开源的源码导向白盒安全审查工具

一句话概括:OpenHack是Hadrian Security于2026年5月开源的文件驱动白盒安全审查工作区,将专业渗透测试团队的方法论编码为AI代理可执行的检查点工作流,支持Claude Code、Codex、Cursor等主流AI编码工具,GitHub星标644+,MIT协议。


目录


为什么需要OpenHack

源码安全扫描可视化

传统的代码安全审查面临三大痛点:

1. 规则驱动的盲区 Semgrep、ESLint-security等静态分析工具依赖预定义规则模式匹配。它们擅长发现已知的漏洞模式(如SQL注入、XSS),但对于业务逻辑漏洞、权限提升链、竞态条件等需要理解代码语义的安全问题束手无策。据OWASP 2025报告,超过60%的高危漏洞属于逻辑漏洞,而非简单的模式匹配可发现的编码错误。

2. 人工审计的瓶颈 专业安全研究员的代码审计能力是稀缺资源。一个资深安全工程师每天能审计的代码量通常不超过几千行,而现代应用的代码库动辄数十万行。人工审计还面临疲劳、注意力分散等人为因素影响。

3. 工具与流程的割裂 现有的SAST/DAST工具通常是独立的扫描器,缺乏系统化的审查流程管理。安全团队需要手动组织扫描结果、分配审查任务、追踪修复进度,这些协调工作占据了大量时间。

OpenHack的出现正是为了解决这些问题——将人类专家的安全审查方法论编码为AI代理可执行的结构化工作流,同时保持人类在关键决策节点的控制权。


Hadrian Security是谁

Hadrian Security是一家专注于攻击面管理(ASM)和自动化安全测试的网络安全公司。其核心业务是通过自动化手段持续发现和评估客户的外部攻击面。

OpenHack开源项目是Hadrian研究团队内部自动化漏洞研究方法的公开版本。据Hadrian官方博客介绍,其安全研究团队长期以来使用类似的场景化审查流程进行内部安全评估,OpenHack是将这套方法论产品化、工具化的成果。

项目关键数据

  • ⭐ GitHub星标:644+(截至2026年6月)
  • 🍴 Fork数:93
  • 📝 主要语言:Python(202KB+)
  • 📜 许可证:MIT
  • 📅 创建时间:2026年5月18日
  • 🏷️ 版本:v0.1.0
  • 🔗 仓库地址:github.com/hadriansecurity/OpenHack

核心架构:文件驱动的状态机

安全架构图

OpenHack的核心设计理念可以用一句话概括:一切皆文件。整个审查过程的状态全部持久化为普通文件,不依赖数据库、不依赖外部服务。

数据链路

审查过程形成一条清晰的数据链路:

侦察项目(Recon Item)
    → 路由单元(Routing Unit)
        → 审查场景(Scenario)
            → 场景结果(Scenario Result)
                → 发现候选(Finding Candidate)
                    → 分类决策(Triage Decision)
                        → 最终发现(Finding)

每个阶段的转换都需要人工批准(Human-in-the-Loop Gate),确保审查过程的可控性。这条链路的设计精妙之处在于:

  • 窄进宽出:数据链路在侦察阶段保持精简,只在有证据需要时才展开——一个路由单元可能扇出到多个专家场景,一个场景可能产生多个发现候选
  • 可中断恢复:由于状态全部持久化为文件,审查可以在任何检查点中断并恢复
  • 可审计追溯:完整的日志链记录了每个决策的上下文和推理过程

目录结构

openhack/
├── agents/           # AI代理配置和提示模板
├── config/           # 审查配置(专家范围、模型选择等)
├── templates/        # 场景提示模板
├── runs/             # 审查运行实例(每个run一个子目录)
│   └── demo-001/
│       ├── target/   # 克隆的目标源码
│       ├── recon/    # 侦察结果
│       ├── scenarios/# 审查场景
│       ├── results/  # 场景结果
│       ├── findings/ # 最终发现
│       └── logs/     # 审查日志
└── AGENTS.md         # AI代理行为规范

六阶段审查流程详解

代码审查工作流

阶段一:侦察(Reconnaissance)

侦察阶段的目标是全面映射目标代码库的攻击面。AI代理会分析:

  • 路由和端点:Web框架路由定义、API端点、RPC接口
  • 输入源:用户输入入口、文件上传、消息队列消费者
  • 敏感汇聚点(Sinks):数据库查询、命令执行、文件操作、网络请求
  • 边界组件:认证/授权逻辑、加密实现、序列化/反序列化
  • 暴露面:公开的接口、配置文件、环境变量

侦察结果以结构化文件存储,每个发现的攻击面元素都有唯一标识和上下文信息。

阶段二:路由(Routing)

路由阶段由独立的路由AI代理执行,它将侦察结果转化为具体的审查场景。路由代理的核心任务是:

  1. 将相关的侦察项目组合成有意义的审查场景
  2. 为每个场景分配合适的专家代理(如XSS专家、SQL注入专家、认证绕过专家)
  3. 生成详细的场景提示,包含具体的审查范围和验证方法

阶段三:专家审查(Expert Review)

每个审查场景由专门的专家AI代理执行深度分析。OpenHack支持多种专家类型:

# config.yaml 示例
model: claude-3-opus-20240229
experts:
  - name: xss-expert
    focus: cross-site-scripting
    description: "寻找反射型、存储型和DOM型XSS漏洞"
  - name: sqli-expert
    focus: sql-injection
    description: "分析SQL查询构造,寻找注入点"
  - name: auth-expert
    focus: authentication-bypass
    description: "审查认证和授权逻辑,寻找绕过路径"
  - name: ssrf-expert
    focus: server-side-request-forgery
    description: "追踪用户可控的URL参数,寻找SSRF风险"
  - name: rce-expert
    focus: remote-code-execution
    description: "分析命令执行和代码求值路径"

阶段四:验证(Verify)

验证阶段的目标是确认发现的漏洞是否真实存在。专家代理需要:

  • 提供完整的漏洞触发路径(从输入到利用)
  • 证明漏洞的可利用性(PoC或详细的利用步骤)
  • 评估漏洞的影响范围和严重程度

阶段五:分类(Triage)

分类阶段由独立的分类AI代理执行,它不参与前面的审查过程,以确保客观性。分类代理的决策包括:

  • 该发现是否为真实漏洞(vs 误报)
  • 漏洞的严重程度评级(Critical/High/Medium/Low)
  • 是否需要立即修复
  • 修复建议

阶段六:报告(Report)

最终报告汇总所有确认的漏洞发现,包含:

  • 漏洞概述和影响分析
  • 详细的漏洞描述和代码位置
  • 修复建议和优先级排序
  • 完整的审查过程追溯

快速上手实战

漏洞检测仪表板

威胁检测系统

方式一:AI代理驱动(推荐)

最简单的方式是将OpenHack仓库在Claude Code、Codex或Cursor中打开,然后输入:

Initiate a whitebox pentest on https://github.com/example/app.git

AI代理会自动:

  1. 克隆目标仓库
  2. 初始化审查运行
  3. 按照AGENTS.md中的指令执行各阶段
  4. 在每个检查点暂停,等待人工批准
  5. 汇总生成最终报告

方式二:CLI手动流程

# 安装
git clone https://github.com/hadriansecurity/OpenHack.git
cd OpenHack
python3 -m pip install -e .

# 创建审查运行
openhack init-run demo https://github.com/example/app.git --run-id demo-001

# 运行侦察(支持Semgrep增强)
openhack run-recon demo demo-001 --all-agents --semgrep

# 生成审查场景
openhack create-scenarios demo demo-001

# 记录路由结果
openhack record-scenario-backlog demo demo-001 router-result.json

# 渲染并执行专家审查
openhack render-scenario-prompt demo demo-001 S001
openhack record-scenario-result demo demo-001 S001 result.json

# 独立分类
openhack render-finding-triage-prompt demo demo-001 S001-F001
openhack record-finding-triage demo demo-001 S001-F001 triage-result.json

# 查看当前状态
openhack summarize-run demo demo-001

⚠️ Token消耗警告:对完整代码库执行全专家范围审查会消耗大量模型Token。建议先查看生成的测试场景,只运行优先级最高的部分。前沿模型(如Claude 3 Opus)效果最佳。


与Semgrep、CodeQL、SonarQube深度对比

CI/CD安全集成

维度 OpenHack Semgrep CodeQL SonarQube
核心方法 AI代理场景化审查 规则模式匹配 语义代码分析 多维度代码分析
漏洞发现能力 逻辑漏洞+编码漏洞 编码漏洞为主 语义漏洞+编码漏洞 编码漏洞+代码异味
误报率 低(多轮验证) 中(规则精度相关) 低-中 中-高
定制化成本 低(自然语言配置) 中(需编写规则) 高(需学QL语言) 低-中
CI/CD集成 可集成但非原生 原生支持 原生支持 原生支持
学习曲线
适用场景 深度安全审计 快速自动化扫描 深度语义分析 持续质量监控
许可证 MIT LGPL-2.1 专有(免费使用) LGPL-3.0

OpenHack的独特优势

  • 能发现需要理解业务逻辑的复杂漏洞(如认证绕过链、权限提升路径)
  • 场景化审查更接近人类安全专家的思维方式
  • 通过AI代理的多轮推理,显著降低误报率
  • 文件驱动设计使得审查过程完全透明、可审计

OpenHack的不足

  • 不适合大规模自动化扫描(Token消耗大)
  • 目前版本v0.1.0,功能尚不完善
  • 依赖外部AI模型服务
  • 缺乏原生CI/CD集成

最佳实践:将OpenHack与Semgrep/CodeQL配合使用——用Semgrep做日常快速扫描,用CodeQL做深度语义分析,用OpenHack做定期的人工级深度审计。


AI代理集成:Claude Code / Codex / Cursor

OpenHack的设计核心是与AI编码代理的无缝集成。它不实现自己的AI推理引擎,而是利用现有的AI代理作为执行引擎。

Claude Code集成

# 在Claude Code中打开OpenHack仓库
claude-code /path/to/openhack

# 然后输入自然语言指令
> 对 https://github.com/myorg/myapp 进行白盒渗透测试,重点关注认证和授权

Claude Code会读取AGENTS.md中的行为规范,自动执行各阶段审查。

Codex集成

OpenHack的AGENTS.md文件定义了代理的行为协议,任何支持终端访问和文件操作的AI代理都可以驱动审查流程。

自定义代理

对于有特殊需求的团队,可以:

  1. 修改agents/目录下的提示模板
  2. config/中定义自定义专家类型
  3. 编写脚本自动化特定的审查阶段

企业级应用场景

安全审计报告

场景一:发布前安全审计

在重大版本发布前,使用OpenHack对变更代码进行深度安全审查。相比传统的人工审计,OpenHack可以在几小时内完成同等质量的审查(需要Token成本但节省人力时间)。

场景二:开源组件引入评估

在引入新的开源依赖前,使用OpenHack评估其代码安全性。这对于供应链安全尤为重要。

场景三:安全合规检查

OpenHack可以用于检查代码是否符合特定的安全标准:

  • OWASP Top 10
  • CWE/SANS Top 25
  • PCI DSS安全编码要求
  • SOC 2安全控制

场景四:安全培训与教育

OpenHack的审查过程完全透明,非常适合用于安全培训。学员可以通过观察AI代理的审查推理,学习专业的代码安全分析方法论。

场景五:Bug Bounty辅助

安全研究员可以使用OpenHack辅助Bug Bounty目标的代码审计,快速定位高价值漏洞区域。


局限性与改进方向

当前局限

  1. Token成本:对大型代码库的全范围审查可能消耗数百美元的API Token
  2. 版本成熟度:v0.1.0版本功能有限,缺少报告导出、Web界面等
  3. 语言覆盖:目前主要针对Python和JavaScript/TypeScript项目,对Go、Rust、Java等语言的支持有限
  4. 实时性:审查过程是批处理式的,不适合实时代码审查
  5. 集成能力:缺乏原生的CI/CD集成和Webhook支持

改进方向

  • 报告格式:支持SARIF、HTML、PDF等标准报告格式
  • Web界面:提供可视化的审查仪表板
  • 增量审查:支持基于Git diff的增量审查,只分析变更部分
  • 多模型支持:允许不同审查阶段使用不同的AI模型(如用廉价模型做侦察,用前沿模型做验证)
  • 插件系统:支持社区贡献的专家代理和审查规则

总结

OpenHack代表了AI驱动代码安全审查的一个重要范式转变:从规则驱动到场景驱动,从模式匹配到语义理解,从自动化扫描到人机协作审查

虽然项目还处于早期阶段,但其核心理念——将人类专家的安全审查方法论编码为AI代理可执行的检查点工作流——已经展示了巨大的潜力。对于安全研究员、企业安全团队和开源项目维护者来说,OpenHack是2026年最值得关注的安全工具之一。

快速链接

评论