摘要(更新于 2026 年 7 月 20 日) :2026 年 6 月 17 日,我们拿 RealVuln 测了一遍 MonkeyScan,也记录了 DeepAudit 的内部测试结果。MonkeyScan 完成统计的 23 个 Python 项目,召回率 81.4%、精确率 54.2%、F3 为 77.5。DeepAudit 使用 Kimi K2.6,召回率 40%、精确率 35%,换算后的 F3 约为 39.4。这里分享的是一次内部测试,数据没有提交到 RealVuln 官方榜单。
现在用 AI 写出一个能跑的应用,只需要几分钟。接下来那个更麻烦的问题是:这些代码安全吗?Cursor、Claude Code、Codex 写进项目里的漏洞,AI 扫描工具究竟能找到多少,又会报出多少无效结果?
我们用开源的 RealVuln Benchmark 跑了一轮测试,并把 MonkeyScan 的结果和国产开源 Multi-Agent 代码审计工具 DeepAudit 的内部测试记录放在一起看了看。
结果很直观。MonkeyScan 在这次记录中的 Recall 和 Precision 都更高,F3 约为 DeepAudit 的 1.97 倍。不过,这只能说明两款工具在各自这次运行中的表现。测试条件没有完全拉齐,也不适合拿这个数字给产品下一个长期排名。
RealVuln 测的是什么?
RealVuln 是一个面向真实代码仓库的开源漏洞扫描 Benchmark。扫描器面对的是完整项目,需要处理调用关系、数据流和业务逻辑,难度比扫描孤立代码片段高得多。
RealVuln v1.0 的论文版本覆盖 26 个有意包含漏洞的 Python 仓库,并提供人工标注的真实漏洞与误报陷阱。它使用三个关键指标:
- Recall(召回率) :真实漏洞中有多少被发现。召回率越高,漏掉的漏洞越少。
- Precision(精确率) :工具报告的问题中有多少是真实漏洞。精确率越高,需要人工排查的误报越少。
- F3 Score:同时考虑 Recall 和 Precision,其中 Recall 的权重是 Precision 的九倍。安全扫描更怕漏掉真实漏洞,F3 会把这种风险体现得更明显。
这里说的 Precision(精确率) ,指报告结果中有多少能够匹配 Ground Truth。它和传统分类指标中的 Accuracy(准确率)含义不同。
MonkeyScan 和 DeepAudit 的测试结果是什么?
2026 年 6 月 17 日的 MonkeyScan 评分结果覆盖 23 个 RealVuln Python 项目,共包含 629 条 Ground Truth。扫描共报告 945 条发现,其中 512 条匹配为 TP、433 条计为 FP、117 条为 FN;总成本为 142.80 美元。由此得到 81.4% 的 Recall、54.2% 的 Precision 和 77.5 的 F3。
| 工具 | F3 Score | Recall | Precision | TP / FP / FN | 运行说明 |
|---|---|---|---|---|---|
| MonkeyScan | 77.5 | 81.4% | 54.2% | 512 / 433 / 117 | 23 个项目,629 条 Ground Truth |
| DeepAudit | 约 39.4* | 40.0% | 35.0% | 暂未保留 | 使用 Kimi K2.6 |
- DeepAudit 的 F3 未由用户直接提供,本文依据 RealVuln 的 F3 公式,以 Recall 40% 和 Precision 35% 计算:
F3 = 10 × Precision × Recall ÷ (9 × Precision + Recall),结果约为 39.4。
MonkeyScan 这次测出了 81.4% 的 Recall,测试范围内大部分已标注漏洞都被找到了,这也是 F3 较高的主要原因。
54.2% 的 Precision 也提醒我们,高召回有代价。每 100 条 MonkeyScan 报告的结果中,大约有 54 条能够匹配 RealVuln 标注的真实漏洞。剩下的结果里既有误报,也可能有 Benchmark 没有标注到的发现,仍然需要开发者复核。
DeepAudit 的内部测试记录显示 Recall 为 40%,意味着它发现了约四成纳入评分的已标注漏洞;Precision 为 35%,意味着每 100 条报告结果中约有 35 条匹配已标注漏洞。在本次记录的结果中,MonkeyScan 同时表现出更高的漏洞覆盖率和更高的报告命中比例。
1 - Precision 可以用来粗略感受告警排查量,但它并不等于严格的总体误报率。RealVuln 的匹配规则、未标注发现和扫描结果去重,都会影响这个数字。
数据边界:这次结果来自内部测试。MonkeyScan 留下了 23 个项目的汇总数据;DeepAudit 使用 Kimi K2.6,我们保留了 40% Recall 和 35% Precision 两个汇总数字,没有保留原始截图和 TP、FP、FN 明细。两次运行的配置也没有完全统一,所以这份对比更适合当作一次测试记录来看。
MonkeyScan 和 DeepAudit 有什么不同?
两款产品都使用 AI 和 Multi-Agent 思路分析代码,但它们当前的产品形态并不相同。
| 维度 | MonkeyScan | DeepAudit |
|---|---|---|
| 产品形态 | 在线 AI 代码安全扫描服务 | 开源、可自行部署的 Multi-Agent 审计系统 |
| 代码接入 | GitHub 仓库、ZIP 源码包 | GitHub、GitLab、Gitea 导入,也支持即时分析 |
| 分析思路 | SAST 与 AI 结合,关注漏洞位置、成因、影响和修复建议 | Multi-Agent 协作审计,支持沙箱 PoC 验证与审计流程展示 |
| 交付方式 | 扫描结果与修复建议,降低开发者使用门槛 | Web 工作台,可导出 PDF、Markdown、JSON 报告 |
| 部署门槛 | 无需自行部署,适合希望快速扫描的开发者和团队 | 需要自行准备环境和模型,更适合希望私有化与可控部署的用户 |
| RealVuln 数据 | 内部测试:23 个项目,F3 77.5、Recall 81.4%、Precision 54.2% | 内部测试:使用 Kimi K2.6,F3 约 39.4、Recall 40%、Precision 35% |
DeepAudit 官方仓库披露,其闭源版本已经获得 49 个 CVE 编号和 6 个 GHSA 安全公告。这些是真实漏洞发现案例,与本文这次 RealVuln 测试各自回答不同的问题,放在一起参考即可。
怎么选,可以直接看使用场景:
- 如果希望不部署环境、快速扫描一个真实项目,并获得相对清晰的风险解释,可以体验 MonkeyScan。
- 如果重视开源、自托管、模型可配置和完整的 Agent 审计过程,DeepAudit 更值得研究。
- 本文记录的两组 RealVuln 内部测试中,MonkeyScan 的 Recall 与 Precision 都更高。由于运行配置和原始材料并不完整,这个结果先作为阶段性参考。
为什么不能只看"发现了多少漏洞"?
扫描器报告 1,000 个问题,看起来声势很大,实际未必比报告 100 个问题更强。它可能扫得更激进,把代码异味、低风险配置和重复调用链也算了进去。
Precision 很高也不代表万事大吉。如果认证绕过、权限控制或注入漏洞被漏掉了,它就很难承担上线前的安全兜底。
评估 AI 代码扫描工具,至少要同时看:
- Recall:真实漏洞漏掉了多少;
- Precision:开发者需要处理多少无效告警;
- 完成率:工具是否完成全部仓库,还是在复杂项目中途失败;
- 漏洞类型覆盖:是否只能发现模式明显的问题,还是能理解跨文件数据流与业务逻辑;
- 可复现性:测试集、版本、配置和原始输出是否可以被第三方检查。
这次比较有哪些限制?
要把这次测试做成任何人都能复现的公开 Benchmark,我们还缺少下面这些材料:
- RealVuln 的版本与仓库 commit;
- MonkeyScan 和 DeepAudit 的具体版本;
- MonkeyScan 使用的模型,以及两款工具的提示词、并发、超时和成本限制;
- DeepAudit 的逐项目 TP、FP、FN 与扫描原始报告;
- 结果匹配、去重和人工复核过程。
RealVuln v1.0 主要由漏洞密度较高的 Python 项目组成。它很适合观察扫描器发现漏洞的能力。换到 Java、Go、JavaScript 项目,或者进入"正常代码很多、漏洞很少"的生产仓库,结果可能会发生明显变化。