来源笔记

Vulnerability Detection with Interprocedural Context in Multiple Languages: Assessing Effectiveness and Cost of Modern LLMs

Vulnerability DetectionLLM EvaluationInterprocedural AnalysisSoftware SecurityMulti Language Code

这篇论文测试了给 LLM 提供调用者或被调用者代码,是否能帮助它们发现依赖跨函数行为的漏洞。作者在 C、C++ 和 Python 的 509 个 ReposVul 漏洞上测试后发现,额外的跨过程上下文通常没有帮助,反而常常降低准确率并增加成本。

  • 以往的 LLM 漏洞研究常常一次只看一个函数,这会漏掉只有在数据流或控制流跨越函数边界时才会出现的 bug。
  • 安全团队还需要在多种语言上得到结果,同时要有可用的解释和合理的推理成本,才能放进实际工具里部署。
  • 论文要回答的是:加入调用者或被调用者上下文是否能提升检测效果,C/C++/Python 的结果如何变化,以及每个模型带来的成本和解释质量如何。
  • 作者评估了四个模型:Claude Haiku 4.5、Gemini 3 Flash、GPT-4.1 Mini 和 GPT-5 Mini。
  • 他们基于 ReposVul 中的 509 个跨过程漏洞构建了评估集,并用 AST 分析识别调用者与被调用者关系。
  • 每个目标函数都在三种提示设置下测试:仅代码(CO)、代码加被调用者(CC)、代码加调用者(CK)。
  • 他们测量准确率和 F1,使用 Holm-Bonferroni 校正进行配对 McNemar 检验,根据 token 数估算 API 成本,并人工评分 1,004 条解释的正确性和完整性,分值范围为 0-2。
  • 总体上,所有模型在仅代码提示下表现最好。Gemini 3 Flash 在 CO 下的准确率为 0.9853 / F1 为 0.9926,Claude Haiku 4.5 为 0.9756 / 0.9877,GPT-5 Mini 为 0.9072 / 0.9514,GPT-4.1 Mini 为 0.7561 / 0.8611
  • 加入上下文后,性能经常下降。GPT-4.1 Mini 的准确率从 CO 下的 0.7561 降到 CC 下的 0.5401CK 下的 0.6923。GPT-5 Mini 从 CO 下的 0.9072 降到 CC 下的 0.8348CK 下的 0.7742
  • 统计检验显示,部分模型在不同上下文设置之间存在显著下降:GPT-4.1 Mini 的 CO vs CC 为 p=0.0000, Φ=0.404,GPT-4.1 Mini 的 CC vs CK 为 p=0.0000, Φ=-0.436,GPT-5 Mini 的 CO vs CK 为 p=0.0003, Φ=0.259,这些结果都经过了校正。Claude Haiku 4.5 在不同上下文设置之间没有显著差异。
  • 摘要给出了一个针对 C 的语言特定成本结果:Gemini 3 Flash 在 F1 ≥ 0.978 时,估计每种配置成本为 $0.50-$0.58,这是 C 漏洞上最好的成本效果权衡。
  • 加入跨过程上下文后,token 使用量和推理成本几乎翻倍,但准确率没有相应提升,摘要是这样说的。
  • 在解释质量上,Claude Haiku 4.5 在 93.6% 的评估案例中正确识别并解释了漏洞。摘要还说,GPT 模型在正确性和完整性上的 零分率比 Haiku 4.5 和 Gemini 3 Flash 高 5 倍