该论文研究一个核心问题:当大语言模型(LLM)读取一段C/C++代码作为上下文时,其内部隐藏激活(hidden activations)是否已经包含关于该代码是否存在漏洞的信号,从而可以在不运行额外静态分析工具或微调分类器的情况下,直接利用模型自身的表征来检测漏洞。当前针对LLM生成代码的防护多为事后机制,例如静态分析器、微调分类器或LLM评判器,这些方法忽略了生成模型自身的内部状态。作者从四个LLM(Granite-4.1-8B、Qwen3.5-9B、Qwen3.6-27B、Gemma-4-12B)中提取最后一个prefill token的激活向量,并训练MLP探针(probe)进行分类。这些探针的参数量仅为13.4M至16.0M,不到基础模型大小的0.2%。实验在四个函数级C/C++漏洞基准上进行:Devign、Big-Vul、Draper VDISC和PrimeVul。结果显示,探针平均F1达到41.7%。在Devign上,最好的探针(基于Qwen3.5-9B)达到68.8%的F1,与已发表的微调分类器SOTA(67.9%)持平,而这只是基于冻结的通用LLM的激活;但在更困难且类别不平衡的基准(Big-Vul、Draper VDISC、PrimeVul)上,探针与SOTA仍有较大差距。作者认为这是早期证据,表明编程LLM对任意代码的自身表征确实能提供关于漏洞状态的信息,为轻量级、模型原生的漏洞筛查提供了新方向。本文适合对LLM安全、代码漏洞检测、模型可解释性以及AI辅助安全审计感兴趣的研究人员和工程师阅读。
💡 推荐理由: 论文探索了利用模型内部状态进行漏洞检测的轻量级方案,可能为安全团队提供无需大规模微调或外部工具的实时筛查手段,开辟基于模型原生表征的检测新思路。
🎯 建议动作: 研究跟进