外观
可归因的 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 提交门禁和安全修复验收。它不替代人工代码审计,也不把一般代码质量问题计为目标漏洞命中。
方法与实施流程
- 为恶意 PR 固定漏洞机制、关键前提和仓库证据。
- 配置成对良性控制,测量无目标漏洞时的偶然阻断。
- 分别评分阻断结论、目标漏洞识别和证据有效性。
- PRGuard 先提出候选漏洞,再检索仓库上下文验证关键前提。
- 在生产仓库历史 PR 上开展补充验证并按协调披露处理发现。
质量控制
作者将离题安全发现明确排除在目标命中之外,并使用冻结的案例级量表。生产仓库实验报告 5 个项目中的 12 个此前未披露、具 PoC 支持的漏洞;PRGuard/DeepSeek 与 CodeRabbit 均阻断 10/12,但可归因阻断分别为 10/12 与 4/12。该发现集由 PRGuard 先行筛出,作者明确将其结果视为存在选择偏差的描述性证据。论文按协调披露边界隐藏仓库名称和可直接滥用的完整链路,本文也不重构触发输入、漏洞利用命令或生产目标定位信息。
局限与待验证问题
结果来自作者基准与单个商业审查器对照,尚无独立复现;漏洞类别和仓库语言分布可能影响排名。对真实漏洞的确认依赖维护者响应,阻断率、诊断率和修复有效率仍需分别追踪。