文章介绍了SV-TrustEval-C基准测试,用于评估大型语言模型(LLMs)在C语言源代码漏洞分析中的结构推理和语义推理能力。该基准通过结构导向变体生成器创建数据流/控制流复杂度递增的代码变体,设计五类任务评估模型识别代码元素关系(结构推理)和逻辑一致性(语义推理)的能力。实验表明,当前LLMs主要依赖模式匹配而非逻辑推理,在复杂代码关系理解(平均准确率<32%)和漏洞分析一致性(<50%)方面表现不佳。该研究为提升LLMs在安全关键场景的可信度提供了新方向。
随着大型语言模型(LLMs)在代码生成和理解领域的应用扩展,其在源代码漏洞分析中的可靠性评估成为关键挑战。现有基准(如BigVul、CVEFixes)主要关注漏洞识别和修复等直接任务,但忽视了对结构推理和语义推理的系统性评估,而这两种能力对可信漏洞分析至关重要。为此,文章提出SV-TrustEval-C基准,首次通过双维度框架评估LLMs的漏洞分析能力:
基准通过两类任务评估LLMs:
结构推理:形式化为关系预测问题: \[ P(D \mid X) = \prod_{i=1}^{M} \prod_{j=1}^{M} P(D_{ij} \mid X) \] 其中 \(D_{ij}\) 表示代码元素 \(i\) 与 \(j\) 的连接关系(\(D_{ij}=1\) 为连接),\(M\) 为元素总数。包含: • 数据流推理:分析变量如何影响函数行为 • 控制流推理:评估控制语句对代码执行路径的影响
语义推理:通过三类场景评估逻辑一致性: • 反事实场景:代码语义扰动下的漏洞预测 \[ P(V(f(X_s, t)) = 1 \mid f(X_s, t), X_s), \quad t \in \{\text{safe, unsafe, impaired}\} \] • 目标驱动场景:安全修改代码达成目标 \[ P(V(X)=0, X \mid c) \] • 预测场景:分类代码变体的漏洞影响
创新性设计自动化工具生成评估样本:
评估11个LLMs(含GPT-4、Llama3.1)发现:
深度行为分析揭示核心问题:
结构推理任务中:
温度参数显著影响表现(Llama3.1-8B):
SV-TrustEval-C揭示了LLMs在漏洞分析中依赖模式匹配、缺乏深层逻辑推理的缺陷。该基准为开发具备结构/语义理解能力的可信LLMs提供了评估基础,未来将扩展至多语言支持。