该论文提出并量化了「静态通过、动态失败」(Static-Pass Dynamic-Fail, SPDF)现象:代码通过了静态安全扫描,但在真实运行时仍可被利用。作者指出,静态分析因可扩展、可复现、成本低,被广泛当作软件供应链与 AI 生成代码的安全闸门,但它无法直接观察运行时的利用行为;那些依赖对抗性输入、执行上下文或漏洞链式组合才能触发的缺陷,往往能绕过静态检查而在实践中仍具可利用性。然而业界普遍把「静态扫描通过」等同于「行为安全」,这正是论文试图挑战的假设。为验证这一问题,作者构建了一个三阶段智能体流水线:第一阶段用 Bandit 与 Semgrep 组成的复合静态闸门做初筛;第二阶段由 LLM 驱动的 CWE(通用弱点枚举)推理,对静态无告警的样本重新审视,判断是否存在候选弱点;第三阶段在隔离的 Docker 容器中执行自主可利用性验证,以获得运行时证据。实验覆盖 SecurityEval、RedCode 与 CyberNative 三个数据集的 1355 份 Python 样本。在 654 份复合静态闸门零告警的样本中,LLM 阶段在 235 个文件中识别出 394 个候选漏洞;动态验证在 95 个文件中确认或部分确认了可利用性,得到 14.53% 的「包含式流水线比率」——即约每 7 份静态干净样本中就有 1 份被流水线发现候选弱点并获得运行时利用证据。分数据集看,候选「文件—CWE」对中的确认率差异明显:RedCode 为 33.7%,CyberNative 为 28.6%,SecurityEval 仅 5.4%。值得注意的是,包括 CWE-338(弱伪随机数)与 CWE-916(口令哈希计算量不足)在内的若干高频确认类别,Bandit 与 Semgrep 均未告警。作者由此论证:静态分析通过率与运行时安全性并非可互相替代的同一度量,而是软件保障体系中不同层级的指标。
💡 推荐理由: 它直接挑战「SAST 通过即安全」的工程共识:约 1/7 静态零告警样本仍具可利用性,且 CWE-338、CWE-916 等类别静态工具完全不覆盖。对采用 SAST 作为 CI 安全闸门、或用其评估 AI 生成代码的团队,说明现有关卡存在系统性盲区,需要叠加运行时验证。
🎯 建议动作: 研究跟进:评估将该三层流水线思路纳入内部代码安全评估与 AI 生成代码准入流程的可行性