Skip to content

可归因的 Pull Request 安全审查评测 ​

摘要 ​

MalPR-Bench 指出“阻断了恶意 Pull Request”不等于识别了使其危险的漏洞。基准包含 44 个仓库、八种语言家族的 89 个恶意 PR 和 50 个良性控制,并为每个恶意样本预先固定目标漏洞、可接受机制描述和必要仓库证据。

作者报告,在共同覆盖的 31 个恶意 PR 上,PRGuard/DeepSeek 与 CodeRabbit 的阻断量接近(22/31 对 24/31),但前者识别的目标漏洞数为后者的 1.38 倍(22/31 对 16/31);对缺少必要检查的 14 个样本,两者都阻断 9/14,前者正确识别 9/14,后者为 3/14。

方法的独特价值 ​

研究把裁决—诊断差距(Verdict–Diagnosis Gap)变成独立测量对象:即使最终“拒绝”正确,错误理由仍会误导修复并留下真实漏洞。方法还要求诊断引用 diff 之外的仓库上下文。

适用范围 ​

适用于自动代码审查、编码 Agent 提交门禁和安全修复验收。它不替代人工代码审计,也不把一般代码质量问题计为目标漏洞命中。

方法与实施流程 ​

  1. 为恶意 PR 固定漏洞机制、关键前提和仓库证据。
  2. 配置成对良性控制,测量无目标漏洞时的偶然阻断。
  3. 分别评分阻断结论、目标漏洞识别和证据有效性。
  4. PRGuard 先提出候选漏洞,再检索仓库上下文验证关键前提。
  5. 在生产仓库历史 PR 上开展补充验证并按协调披露处理发现。

质量控制 ​

作者将离题安全发现明确排除在目标命中之外,并使用冻结的案例级量表。生产仓库实验报告 5 个项目中的 12 个此前未披露、具 PoC 支持的漏洞;PRGuard/DeepSeek 与 CodeRabbit 均阻断 10/12,但可归因阻断分别为 10/12 与 4/12。该发现集由 PRGuard 先行筛出,作者明确将其结果视为存在选择偏差的描述性证据。论文按协调披露边界隐藏仓库名称和可直接滥用的完整链路,本文也不重构触发输入、漏洞利用命令或生产目标定位信息。

局限与待验证问题 ​

结果来自作者基准与单个商业审查器对照,尚无独立复现;漏洞类别和仓库语言分布可能影响排名。对真实漏洞的确认依赖维护者响应,阻断率、诊断率和修复有效率仍需分别追踪。

参考链接 ​