返回博客

让 AI 帮你挖项目漏洞:实测开源神器 DeepAudit,它已经挖到 49 个 CVE 了

人工智能4941
让 AI 帮你挖项目漏洞:实测开源神器 DeepAudit,它已经挖到 49 个 CVE 了

写在前面

做安全的朋友大概都有这种体感:传统的代码审计工具,跑一遍能给你吐出几百条告警,但真正有价值的没几条——误报多到让人麻木,最后大家干脆不看了。

直到我上手了 DeepAudit,这个认知被彻底刷新了。

它不是又一个静态扫描器。它的思路是让一支"AI 黑客战队"去审你的代码——侦察、分析、写 PoC、进沙箱实跑验证,整套流程模拟真实安全专家的工作方式。最关键的是,它会真的把漏洞打一遍给你看,而不是只甩给你一句"这里可能有问题"。

更有说服力的是战绩:它已经在 17 个知名开源项目里挖出了 49 个 CVE 编号和 6 个 GHSA 安全公告,其中不乏 CVSS 9.8 的高危。这不是 PPT 能力,是实战验证过的。

这篇我把它的架构、工作流和上手方式完整拆给你。

⚠️ 先说重点:DeepAudit 仅供安全研究、教学与对你自己有授权的项目做审计使用。拿它去扫别人的系统是违法的,这条红线千万别碰。


一、它到底强在哪:传统 SAST 的三道坎,它全跨过去了

要理解 DeepAudit 的价值,得先看清传统静态扫描工具(SAST)卡在哪:

传统 SAST 的痛点具体表现DeepAudit 的解法
误报率高缺乏语义理解,海量告警靠人去筛RAG 知识库 + 语义理解,先读懂再判断
业务逻辑盲点看不懂跨文件调用、复杂调用链Multi-Agent 协作,深度追踪攻击面
不知真假报了漏洞,但能不能利用?不知道Docker 沙箱实跑 PoC,真打一遍

最戳我的是第三点。传统工具报完就完事了,DeepAudit 会真的写一个攻击脚本去打,打通了才算数,打不通就当误报剔除。这一下就把"可能有漏洞"变成了"确认可利用",价值天差地别。

它的一句话理念我也很喜欢:像黑客一样攻击,像专家一样防御。

二、核心架构:一支四人 AI 战队是怎么分工的

DeepAudit 最核心的设计,是把"审代码"这件事拆给了四个各司其职的 Agent。它们不是简单串联,而是像真实的安全团队一样自主协作。

Agent 角色江湖定位干的活
Orchestrator总指挥接任务、判断项目类型、制定审计计划、派活、最后汇总报告
Recon侦察兵扫项目结构,识别框架/库/API,把"攻击面"(入口点)摸清楚
Analysis分析师结合 RAG 知识库 + AST 分析,深挖代码里的潜在漏洞
Verification验证官写 PoC、进 Docker 沙箱实跑,跑不通就自我修正重试

这个分工的妙处在于:每个 Agent 只专注一件事,专注才能做深。 Recon 不用操心怎么写 PoC,Analysis 不用管报告怎么排版,职责边界清清楚楚——这恰恰是单个"全能 Agent"做不到的。


三、完整工作流:从一行命令到一份"打通了的"漏洞报告

把这四个 Agent 串起来,就是一条完整的审计流水线:

① 策略规划 (Orchestrator)
     接任务 → 判断项目类型 → 制定计划 → 下发子任务

② 信息收集 (Recon)
     扫描结构 → 识别框架/库/API → 提取攻击面

③ 漏洞挖掘 (Analysis)
     RAG + AST 深度审查 → 发现潜在漏洞

④ PoC 验证 (Verification)  ★关键环节★
     写 PoC → Docker 沙箱实跑 → 失败则自我修正重试

⑤ 报告生成 (Orchestrator)
     汇总发现 → 剔除验证为误报的 → 生成最终报告

我特意把第 ④ 步标了星——这是 DeepAudit 和所有传统工具的分水岭。它不满足于"我觉得这里有漏洞",而是真的去 Docker 沙箱里把这个漏洞打一遍。打通了,确认可利用;打不通,当误报剔掉。最终报告里留下的,都是验证过的真家伙。

这就是为什么它的报告误报率极低——因为每一条都经过了实战检验。


四、技术栈与能力盘点

4.1 它能审什么

支持从 GitHub / GitLab / Gitea 直接导入,也能上传 ZIP,覆盖 10+ 种语言

漏洞类型覆盖了 12 类,基本把 Web 安全的高频项都包了:

SQL 注入XSS 跨站脚本命令注入路径遍历
SSRF 请求伪造XXE 实体注入不安全反序列化硬编码密钥
弱加密算法认证绕过授权绕过IDOR 越权

4.2 技术底子

后端是 Python 3.11+ / FastAPI,串起了 LangChain + LangGraph(Agent 编排)、ChromaDB(RAG 向量库)、LiteLLM(多模型适配)、Tree-sitter(AST 解析)这一套现代 Agent 工程栈;前端是 React 18 + TypeScript + shadcn/ui。

4.3 模型选择很自由

这点对国内用户特别友好——它几乎把主流模型都接上了:

强烈建议审敏感代码时用本地模型。因为审计过程中代码会发给所选的 LLM 服务商,用 Ollama 本地部署能做到"代码不出内网",合规又安心。


五、实战战绩:49 个 CVE 不是吹的

空谈架构没意思,看硬货。DeepAudit 已在 17 个知名开源项目里挖出 49 个 CVE 和 6 个 GHSA。挑几个 CVSS 9.0+ 的高危感受一下:

CVE 编号项目漏洞类型CVSS
CVE-2025-64428DataeaseJNDI 注入9.8
CVE-2025-64163DataeaseSSRF9.8
CVE-2025-10771JimuReport反序列化9.8
CVE-2025-10769H2o-3反序列化9.8
CVE-2025-8974Litemall硬编码凭证9.8
CVE-2025-13787Zentao PMS(禅道)权限提升9.1

涉及的项目里不乏禅道、Dataease、PowerJob、xxl-job 这些大家眼熟的名字。能在这些被无数人审过的成熟项目里挖出 9.8 高危,这个实战能力是实打实的


六、上手:一行命令就能跑起来

DeepAudit 的部署体验做得很克制,新手也能五分钟跑通。

方式一:一行命令(推荐)

不用克隆代码,直接拉预构建镜像:

bash
curl -fsSL https://raw.githubusercontent.com/lintsinghua/DeepAudit/v3.0.0/docker-compose.prod.yml | docker compose -f - up -d

国内网络慢的话,用南京大学的镜像加速版:

bash
curl -fsSL https://raw.githubusercontent.com/lintsinghua/DeepAudit/v3.0.0/docker-compose.prod.cn.yml | docker compose -f - up -d

启动后浏览器打开 http://localhost:3000 就能用。LLM 的 API Key 直接在网页里配,不用重启服务——这个细节很贴心。

方式二:克隆部署(想二次开发选这个)

bash
# 1. 克隆
git clone https://github.com/lintsinghua/DeepAudit.git && cd DeepAudit
# 2. 配环境变量,填入你的 LLM API Key
cp backend/env.example backend/.env
# 3. 一键启动(首次会自动构建沙箱镜像,等几分钟)
docker compose up -d

提示:上面这行 curl | docker compose 的命令会从网络拉取并直接执行编排文件,跑之前建议先把 yml 内容看一眼,确认来源无误再执行——这是个好习惯,对任何"管道直执行"的命令都适用。


七、几句实在的总结

用下来,我觉得 DeepAudit 最大的意义,是把"代码审计"从一件需要资深专家 + 大量人力的事,变成了一支 AI 战队自动跑通的事。

它真正解决问题的三个点,我再强调一遍:

  1. Multi-Agent 分工——侦察、分析、验证各管一段,专注才够深;
  2. 沙箱 PoC 实跑——不报"可能有",只报"确认能打通",误报率打下来了;
  3. 本地模型支持——Ollama 私有化让敏感代码不出内网,合规无忧。

它的路线图也值得期待:自动修复(Agent 直接提 PR)、增量 PR 审计接入 CI/CD——一旦落地,安全审计就能真正嵌进日常开发流,而不是上线前临时抱佛脚。

最后再把那条红线重复一次,因为它真的重要:

DeepAudit 只能用于安全研究、教学,以及对你拥有合法授权的项目做审计。 拿它去扫别人的系统属于违法行为,后果自负。技术是把好刀,但刀要用在对的地方。

如果你也在做安全、或者想给自己的项目体检一遍,这个开源神器值得装一个试试。


项目地址:github.com/lintsinghua/DeepAudit(AGPL-3.0)。本文数据来自项目公开信息,CVE 战绩可在 GitHub 仓库核验。

标签:DeepAudit代码审计AI安全工具漏洞挖掘实战教程

推荐阅读

探索更多前沿洞察与行业干货。