CodeScan 用黑盒漏洞导向扫描审计代码生成大模型,在 117 个模型上实现 97% 以上投毒检测准确率
核心概要
该工作提出 CodeScan,一个黑盒、面向特定漏洞类别的代码生成大模型投毒与后门扫描框架:它通过在不同干净提示下多次生成、结合迭代分歧分析与基于抽象语法树(AST)的归一化来提取跨生成稳定复现的结构,再用基于大模型的漏洞分析判断这些结构是否含安全漏洞,从而在防御者指定目标漏洞类别并提供任务相关提示的前提下标记被污染模型;在四类代表性攻击、后门与投毒两种设置、三类真实漏洞上,对跨三种架构和多种规模的 117 个模型进行实验,报告 97% 以上的检测准确率,且误报显著低于既有方法。
Figure 1 . Example of Attacks to Code Generation LLMs
arXiv深度剖析
提出 CodeScan,被描述为首个黑盒、面向特定漏洞类别的代码生成大模型扫描框架,其设定是防御者指定目标漏洞类别并提供相应的任务相关提示。 既有扫描方法依赖 token 级生成一致性来反推攻击目标,而该文指出这在源代码上效果不佳,因为相同语义可以呈现为多样的语法形式;CodeScan 转而面向漏洞类别并采用黑盒设定。 该主张来自摘要中对方法定位与既有方法局限的陈述,属于框架层面的设计说明,未在摘要中给出与既有方法在机制上的逐项对比数据。
CodeScan 通过分析在不同干净提示条件下多次生成之间的结构相似性来识别攻击目标,将迭代分歧分析与基于 AST 的归一化结合,以抽象掉表层变化、统一语义等价的代码,从而分离出跨生成持续复现的结构。 把检测信号从易受语法多样性干扰的 token 级一致性,转移到经 AST 归一化后的结构层面,使语义等价但写法不同的代码可以被归并比较。 摘要给出了方法的组成要素(迭代分歧分析、AST 归一化、跨生成结构复现),但未提供各组件单独的消融结果或具体阈值。
在提取出结构之后,CodeScan 使用基于大模型的漏洞分析判断这些结构是否包含安全漏洞,并在发现此类结构时将模型标记为已被污染。 把结构提取与漏洞判定串成一条判定链,使扫描输出直接落到“模型是否被污染”这一可操作结论上,而非仅给出可疑生成片段。 摘要说明了该判定环节的存在与触发条件,但未给出漏洞分析环节自身的准确率或人工核验细节。
在四类代表性攻击、后门与投毒两种设置、三类真实漏洞上,对跨三种架构和多种模型规模的 117 个模型进行实验,报告 97% 以上的检测准确率,且误报显著低于既有方法。 相对既有方法,该文同时报告了高检测准确率与更低的误报,并在模型数量、架构与规模上覆盖较广。 证据来自摘要所述的实验规模(117 个模型、三种架构、四类攻击、两类设置、三类漏洞)与量化结果(97%+ 准确率、误报显著更低);摘要未给出逐项数值表、置信区间或统计检验。
启示与展望
该框架面向的设定是防御者已经知道要审计哪些漏洞类别,并能提供与任务相关的提示,因此它更适合有明确安全审计目标的代码生成模型评估场景,例如在模型选型或部署前针对特定漏洞类别做黑盒检查。它输出的是“模型是否被污染”的标记,可用于触发进一步的人工复核或更深入的取证。对于需要覆盖未知漏洞类别、或无法提供任务相关提示的使用者,摘要没有说明该方法如何适用。
摘要未给出 97%+ 准确率在不同攻击、不同漏洞类别与不同模型架构上的分解,也未说明误报率的具体数值与计算方式,因此难以判断该指标在各类条件下的稳定性。摘要同样未说明基于大模型的漏洞分析环节自身的可靠性、是否经过人工核验,以及检测结果对提示措辞的敏感程度。此外,本次可获取的文本仅为摘要与浏览上下文,缺少正文、图表与实验细节,因此上述关于方法内部机制与实验条件的描述只能以摘要所述为限,具体实现与逐项结果仍需查阅原文。
