#code-representation

共收录 2 条相关安全情报。

← 返回所有主题
👥 作者: Enna Basic, Alberto Giaretta

本文研究如何利用轻量级本地大语言模型(LLM)进行软件漏洞检测,重点关注源代码输入表示对检测效果的影响。当前多数提示方法直接使用原始源代码,也有部分工作采用抽象语法树(AST)等结构化表示,但AST的冗长性显著增加了输入token数量,可能超出LLM上下文窗口限制。作者提出将行为树(BT)作为替代性的中间表示,并设计了一套预处理流程:先将Java源代码解析为AST,再转换为行为树。行为树以更紧凑的方式编码控制流、条件与可执行动作。实验在Juliet Java测试套件的460个样本上进行,比较了三种输入表示(原始源码、AST、行为树)的漏洞检测性能,使用单一量化本地模型Mistral Small 3.2 24B(Q4_K_M)。结果表明:对于短样本,行为树表示能提升召回率,而原始源码获得更高精确率;对于长样本,行为树相比原始表示提升了整体性能,且能适配上下文窗口,而许多AST表示则超出上下文限制。研究结论认为,行为树可为量化、本地可部署的LLM提供一种紧凑且有效的结构化源码表示,有助于在资源受限环境下提升漏洞检测能力。该工作为面向蓝队和代码安全分析工具的开发提供了新的表示思路。

💡 推荐理由: 为本地化、资源受限的LLM漏洞检测提供了更紧凑的代码表示方案,可缓解AST过长导致的上下文溢出问题,有助于在离线或敏感环境中部署轻量级检测工具。

🎯 建议动作: 研究跟进

排序因子: 来自 arXiv 其他板块 (+2) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Maofei Chen, Laifu Wang, Yue Qin, Yuan Wang, Bo Wu, Dongxin Liu

该论文系统性地研究了代码表示格式(原始源代码与剪枝抽象语法树 AST)如何影响跨语言大语言模型(LLM)在漏洞检测中的误报行为。作者使用两个 8B 参数级别的 LLM(Qwen3-8B 和 Llama 3.1-8B-Instruct),在 NIST Juliet Test Suite v1.3 的 C/C++ 数据上微调,然后在 Java(OWASP Benchmark v1.2)和 Python(BenchmarkPython v0.1)上评估。实验发现,仅使用原始文本进行微调时,跨语言误报率(FPR)随训练强度单调上升(例如 Qwen3-8B 从零样本的 0.763 上升到小规模微调的 0.866 再到全量微调的 1.0),而 F1 分数却保持稳定(0.637-0.688),掩盖了性能崩溃。作者认为主要机制是“表面线索记忆”:文本微调使得模型将 C/C++ 特有的 API 名称和语法惯用语编码为漏洞触发模式,在目标语言代码上产生大量误报。通过交叉表示探针实验(将文本训练权重直接应用于 AST 编码输入,无需重新训练),Qwen3-8B 的 FPR 从 0.866 骤降至 0.583,且 37.2% 的误报转变为真负。然而,直接使用 AST 进行微调并不能保持这种优势(FPR 至少 0.970),因为 AST 的扁平线性化引入了自身的结构表面线索。该模式在两个模型家族中均得到验证。在 Python 数据集上,AST 探针的 FPR 为 0.554,与 Java 结果仅差 2.9 个百分点,这一发现弱化了域偏移解释。基于这些发现,作者提出了一种部署前一致性门控机制:同时通过文本和 AST 两条路径运行告警,作为无需重新训练的误报敏感场景过滤器,但以牺牲部分召回率为代价。

💡 推荐理由: 该研究揭示了跨语言 LLM 漏洞检测中误报率攀升的根源——表面线索记忆,并提出了无需重新训练的缓解思路,对于构建可靠的多语言安全工具具有重要指导意义。

🎯 建议动作: 研究跟进,评估一致性门控机制在自己场景中的有效性;考虑在部署前加入文本与 AST 双路径告警对比的过滤环节。

排序因子: 来自 arXiv 其他板块 (+2) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)