CodeMimicry:利用代码域安全泛化滞后实现结构化代码补全越狱
CodeMimicry: Exploiting Safety Generalization Lag in Large Language Models via Structured Code Completion
作者提出黑盒框架CodeMimicry,以结构化代码补全发起攻击,在AdvBench上平均ASR为96.25%。
黑盒威胁模型(black-box):攻击者仅通过标准API查询与目标模型交互,提交自然语言提示词并观察输出,受限于提示词级操纵;无法访问或修改模型参数、梯度、logits、隐藏状态、训练数据、安全过滤器或部署环境。
- 大模型安全对齐主要基于自然语言训练,而模型代码生成能力持续增强,导致对齐未能有效迁移至代码领域,产生安全泛化滞后与代码补全盲区。恶意意图若嵌入语法合规的代码中,可能绕过现有安全防御机制。
- 作者提出黑盒攻击框架CodeMimicry,利用具备代码能力的攻击模型生成面向对象未完成代码,将恶意意图转化为类方法与注释,外接代码补全触发包装,并通过历史反馈机制驱动攻击模型针对失败信息进行多轮迭代优化。
- 在8个商用模型上,CodeMimicry在AdvBench和HarmBench分别取得96.25%和96.07%的平均ASR,平均查询次数分别为1.51和1.46;潜空间分析显示成功攻击表征避开了拒绝方向而接近良性代码。
- 方法依赖目标模型的代码生成与指令遵循能力,在较小模型上效果可能减弱;依赖注释和文档字符串侧信道,注释过滤会降低攻击成功率;评测样本量为AdvBench 50条和HarmBench 70条。
- 威胁模型
- 黑盒威胁模型(black-box):攻击者仅通过标准API查询与目标模型交互,提交自然语言提示词并观察输出,受限于提示词级操纵;无法访问或修改模型参数、梯度、logits、隐藏状态、训练数据、安全过滤器或部署环境。目标是诱导模型生成违反安全策略的实质性有害内容。
- 被测模型
- GPT-4oGPT-4.1GPT-5-chatClaude 3.7 SonnetClaude Sonnet 4Gemini 2.5 ProLlama 3.1 70BLlama 3.3 70BLlama-3-8B-InstructDeepSeek-R1-8B
- 基准
- AdvBenchHarmBench
- 指标
- ASRAQSCRRSRFVR
研究者提出 CodeMimicry,一个全自动黑盒越狱框架,把恶意意图嵌入语法合法的面向对象代码,借代码补全任务诱导模型输出有害内容。在 8 个商用大语言模型上,该方法在 AdvBench 上达到 96.25% 攻击成功率、平均仅 1.51 次查询,在 HarmBench 上为 96.07% 与 1.46 次查询,明显优于模板类和优化类基线。作者将这一现象归因于安全泛化滞后,即主要在自然语言上训练的对齐难以迁移到代码域,形成代码补全盲区。潜空间分析显示,成功的越狱样本在表示上接近良性代码,并系统性地避开拒答方向;激活引导实验进一步支持这一解释。作者也指出,该方法依赖目标模型的代码生成能力,且对注释与 docstring 这类字符串侧信道有依赖,正则过滤注释后攻击成功率降至 20% 至 26%。
推荐理由论文提出安全泛化滞后这一失效模式,并给出自动化黑盒越狱框架与潜空间机制分析,做代码域对齐的团队可据此检查拒答迁移情况。
深度解读
这篇论文试图解决什么问题?
论文指出大模型安全对齐存在代码泛化滞后,提出利用面向对象代码补全诱导有害输出的黑盒框架。
论文试图解决大语言模型中因安全对齐主要集中在自然语言而未有效迁移至代码领域所导致的安全泛化滞后与代码补全越狱风险。
- 问题场景与重要性:作者指出大语言模型在代码生成任务上能力不断提升,但安全对齐(如RLHF与SFT)主要依赖自然语言语料训练,导致对齐在代码领域这一刚性句法子空间中出现覆盖不足。
- 现有方法的不足:手工模板越狱(如CodeChameleon、FlipAttack)结构固定,容易被模式匹配防御识别;基于模型反馈的自动化越狱(如PAIR、AutoDan-Turbo)局限于非结构化自然语言提示词的启发式搜索,在面对高防护模型时效果有限。
- 核心观察与假设:作者提出“安全泛化滞后(Safety Generalization Lag)”假说,认为模型对拒绝行为的学习主要来源于自然语言,迁移至结构化代码空间时会形成代码补全盲区,使得封装在合规代码中的恶意意图绕过防护机制。
- 论文提出的方案:作者提出CodeMimicry框架,利用具备代码生成能力的攻击模型自动构建面向对象的未完成代码,将恶意指令伪装为方法名与注释,通过多轮反馈迭代诱导模型补全有害内容。
- 威胁模型:
- 攻击者目标:给定恶意指令q,寻找变换P = ϕ(q)诱导目标模型产生违反安全策略的实质性输出,由二元评估器判定E(P, R) = 1。
- 攻击者知识:黑盒设定(black-box),攻击者不具备访问或修改模型内部参数与梯度的权限。
- 攻击者能力:仅能通过标准API发送自然语言提示词并观察文本输出,属于提示词级操纵;无法触及模型权重、隐藏状态、logits、训练数据、安全过滤器或部署环境。
- 受害系统:已部署安全对齐防线的商用及开源大语言模型。
有哪些相关研究?
相关研究包括白盒与黑盒提示词混淆越狱、自然语言迭代优化方法,以及代码与跨领域越狱尝试。
论文将相关工作分为白盒对抗攻击、基于混淆与手工模板的黑盒越狱、基于自动化提示词优化的黑盒越狱三类,并与多项代表性工作进行了对比讨论。
- 白盒对抗攻击:GCG [9] 与 AutoDAN [18] 利用梯度信息优化对抗词元后缀。论文指出此类方法需要直接访问模型参数和梯度,无法直接应用于商用黑盒API场景。
- 手工模板与跨领域混淆黑盒攻击:FlipAttack [11]、CipherChat [19]、ArtPrompt [20] 与 DRA [21] 采用Base64、ASCII艺术或翻转等方式进行字符混淆;CodeChameleon [10] 与 CodeAttack [22] 将恶意意图嵌入类代码结构;MathPrompt [23] 与 EquaCode [24] 将请求转化为数学方程式。论文指出这类方法依赖人工构造固定模板,容易被规则或模式防御拦截,且在不同模型间效果波动明显。
- 自动化提示词优化黑盒攻击:GPTFuzzer [13] 采用进化模糊测试;PAIR [12]、TAP [25]、GAP [26]、ReNeLLM [27] 与 AutoDan-Turbo [14] 利用辅助大模型根据目标模型反馈进行提示词重写。论文指出这些方法局限于非结构化自然语言空间,未能有效利用程序结构和代码补全等领域特定策略,限制了攻击效率与效果。
- 基线方法与基准:论文实验选取了6种模板方法(CipherChat、ReNeLLM、CodeAttack、FlipAttack、EquaCode、CodeChameleon)以及4种自动化方法(PAIR、DRA、GPTfuzzer、AutoDan-Turbo)作为对比基线,在 AdvBench 与 HarmBench 基准上进行评估。
作者将CodeMimicry定位于弥补上述缺陷的方法:无需人工模板设计,通过结构化代码补全全自动利用领域知识,兼顾攻击效果与查询开销。
论文如何解决这个问题?
通过结构混淆、注释侧信道与工程触发包装构建未完成代码,并结合评估器打分进行多轮反馈优化。
CodeMimicry是一个自动化的黑盒红队框架,核心思路是利用具备代码能力的攻击模型生成面向对象的未完成代码,并添加静态包装模拟合法用户的代码补全需求,结合大模型评估器评分进行多轮自修正。
问题形式化与攻击目标
论文在黑盒设定下研究越狱攻击。设目标模型为 M,输入提示词为 P,模型生成响应为 R = M(P)。对于给定的恶意查询 q,攻击者通过变换构建对抗提示词 P = ϕ(q)。攻击目标是诱导目标模型产生提供实质性有害信息的输出,使用二元评估器判定攻击是否成功,满足公式 E(P, R) = 1 时代表响应 R 违反安全策略,否则为 0。
面向对象未完成代码生成
攻击模型 A 负责将恶意查询 q 封装进合规的代码结构中,附录Figure 14给出了指导攻击模型生成未完成代码的提示词,主要设计包含三项内容:
- 结构化混淆(Structural Obfuscation):将恶意查询分解并转化为一个面向对象类中的核心方法,使目标模型生成的代码主体包含恶意逻辑步骤。
- 文档字符串与注释侧信道(Docstrings and Comments):将直接的命令句式改写为函数描述或任务说明,放入代码注释和docstring中,引导目标模型在补全逻辑时输出危害信息。
- 工具与参数模拟(Utility and Parameter Simulation):要求攻击模型补充辅助工具函数与仿真参数,增强代码结构的真实感,促使目标模型注意力集中在代码语法与执行逻辑上。
代码补全触发包装
为使输入呈现为正常的代码调试请求,论文设计了通用的静态工程包装提示词 Pt(附录Figure 13),最终构造的对抗提示词满足公式 P = Pt(Pc)。该包装模拟用户请求代码补全的交互上下文,将目标模型从对齐的对话交互模式引导至合规优先的代码补全模式,隐藏注释中的恶意意图。
历史驱动的多轮反馈优化
论文将攻击过程建模为多轮优化流程(Algorithm 1),最大迭代次数设为 T:
- 在每一轮 i 中,攻击模型 A 根据累积的历史记录 H 生成候选未完成代码 Pc。
- 将 Pc 嵌入触发包装 Pt 后发送给目标模型 M 获得响应 R。
- 大模型评估器针对响应内容给出危害度评分 Score ∈ [1, 10],若 Score 达到预设成功阈值 S 则攻击结束;若未达到阈值,框架执行改进分析并将四元组 {q, Pc, R, Score} 追加进 H,供攻击模型在下一轮进行上下文学习修正。
论文做了哪些实验?
在8个商用模型上取得超96%的平均ASR,机制分析中攻击避开拒绝方向,注释过滤可削弱攻击。
实验设置
- 被测模型:主实验覆盖8个商用模型,包括 GPT-4o(GPT-4o-1120)、GPT-4.1(GPT-4.1-0414)、GPT-5-chat(GPT-5-chat-1003)、Claude-3.7-sonnet(Claude-3-7-sonnet-20250219)、Claude-sonnet-4(Claude-sonnet-4-20250514)、Gemini-2.5-Pro、Llama-3.1-70B、Llama-3.3-70B-Instruct;机制与防御实验另包含 Llama-3-8B-Instruct 与 DeepSeek-R1-8B。
- 基准与样本量:AdvBench(抽取50个有害行为样本)和 HarmBench(从7个行为大类各选10个,共70个样本);人工评估实验使用300个提示词-响应对。
- 基线方法:6种模板基线(CipherChat、ReNeLLM、CodeAttack、FlipAttack、EquaCode、CodeChameleon)与4种自动化基线(PAIR、DRA、GPTfuzzer、AutoDan-Turbo)。
- 指标定义:攻击成功率 ASR(成功攻击数占总测试数的比例);平均查询次数 AQ(成功攻击或耗尽轮数所用的平均尝试次数);生成代码质量指标包括语法正确率 SCR、运行成功率 RSR 及功能有效率 FVR。
- 评审机制:采用 GPT-5-chat 作为自动化评判模型,在 1–10 分制下打分,仅打分达到最高分 10 分才判定为越狱成功;人类专家一致性评估显示 GPT-5-chat 达到 90.25% 的平均准确率(Table 6)。
- 超参数配置:攻击模型温度为 0.7,目标模型与评估模型温度为 0;最大尝试轮数 T = 5;自动化基线与 CodeMimicry 均采用 DeepSeek-R1 作为攻击模型。
主结果
下表呈现了 AdvBench 上各代表性方法在 8 个目标模型上的攻击成功率(据 Table 1):
表格较宽,可左右滑动
目标模型 CodeChameleon PAIR AutoDan-Turbo CodeMimicry GPT-4o 94.00% 32.00% 50.00% 90.00% GPT-4.1 100% 18.00% 54.00% 100% GPT-5-chat 94.00% 18.00% 4.00% 96.00% Claude 3.7 Sonnet 100% 4.00% 10.00% 100% Claude Sonnet 4 70.00% 0.00% 0.00% 90.00% Gemini 2.5 Pro 98.00% 72.00% 64.00% 100% Llama 3.1 70B 48.00% 40.00% 46.00% 96.00% Llama 3.3 70B 80.00% 90.00% 68.00% 98.00% - 跨模型攻击表现:作者报告CodeMimicry在8个模型上平均ASR达96.25%,每个模型ASR均在90%或以上;面对高防护模型Claude Sonnet 4,自动化基线PAIR和AutoDan-Turbo的ASR均为0%,而CodeMimicry达到90.00%(Table 1)。
- 查询效率对比:作者指出CodeMimicry在AdvBench上的平均查询次数为1.51次,相对PAIR使用0.36倍查询量达到2.80倍ASR,相对AutoDan-Turbo使用0.54倍查询量达到2.61倍ASR(Table 8、Figure 2)。
- HarmBench验证结果:在HarmBench上CodeMimicry平均ASR达96.07%,平均查询次数为1.46次;在Claude Sonnet 4上维持74.29%的ASR,而FlipAttack、PAIR和DRA在该模型上ASR均为0%(Table 5、Table 9)。
防御机制评测
- 检测与过滤防御:Llama Guard防御下残余ASR为76.00%–92.00%,困惑度过滤下残余ASR为84.00%–100%,而SelfDefend将ASR降至4.00%–14.00%(Table 13);针对正则表达式注释过滤(Regex sanitizer),CodeMimicry在3个被测模型上的残余ASR为20%–26%(Table 10)。
- 对齐与隐层干预防御:在DeepSeek-R1-8B上,SafeChain训练后被攻击ASR为94%,Safepath降至42%(Table 14);在Llama-3-8B上,Circuit Breaker和Representation Bending分别使ASR从90%降至8%和38%(Section 6);LoRA对抗微调后ASR从90%降至62%(附录D.3)。
隐层表征与机制分析
- 表征空间聚类:在Llama-3-8B-Instruct各层提取最后token表征,t-SNE和PCA可视化显示,第16层前三类样本存在重合;从第16层起,失败攻击样本聚成孤立簇,而成功攻击样本与良性代码样本区域接近(Figure 4、Figure 9、Figure 10)。
- 拒绝方向投影与激活操纵:沿失败样本与良性样本均值差定义的拒绝向量进行投影,失败样本投影值持续为正,成功样本投影值保持负值且贴近良性代码(Figure 5、Figure 11);在推理阶段注入拒绝方向进行激活转向,增大干预强度α会导致模型拒绝数量上升(Figure 6、Figure 12)。
其他消融与分析
- 触发包装变体(GPT-4o):Full-Wrapper为90%,Paraphrased-Wrapper为72%,Minimal-Trigger为40%,Bare-Code为36%,No-Refusal-Ban为32%(Table 2)。
- 多轮攻击累积收益(DeepSeek-R1):第1轮成功率为75.5%,第2轮累积升至88.2%,第5轮累积达到96.25%(Figure 3)。
- 编程语言变体(Llama-3.3-70B):Python为98.00% ASR(1.18 AQ),Julia为98.00%(1.44 AQ),Java为98.00%(1.58 AQ),Go为96.00%(1.58 AQ)(Table 3)。
- 攻击模型能力对比(AdvBench50):DeepSeek-R1平均ASR为96.8%(1.48 AQ),Grok-3为93.6%(1.51 AQ),DeepSeek-V3为92.8%(1.60 AQ)(Table 4)。
- 生成代码有效性(8模型平均):语法正确率SCR为98.9%,运行成功率RSR为97.9%,端到端功能有效率FVR为97.1%(Table 11)。
- 攻击开销比较(8模型平均):CodeMimicry平均输入/输出token为1656/1341,PAIR为8030/5005(Table 12)。
有什么可以进一步探索的点?
作者指出方法依赖目标模型代码生成能力及注释侧信道,在轻量模型或注释过滤下效果可能减弱。
作者指出的局限与后续方向
- 依赖目标模型代码生成能力:作者指出CodeMimicry依赖目标模型具备充足的代码生成与指令遵循能力,在代码能力有限的较小或轻量级模型上攻击效果可能下降(Section 7)。
- 依赖字符串级侧信道:作者指出框架依赖注释和文档字符串传递恶意目标,实验显示引入前端注释过滤会大幅降低CodeMimicry及其他代码越狱的ASR(Section 7、附录B.4)。
- 代码开源计划:作者指出计划在GitHub上开源代码以支持研究可复现性,并强调该方法应仅用于防御评估与安全研究(Section 8、附录A)。
实验覆盖范围
- 被测模型范围:主实验覆盖8个商用大模型(GPT-4o、GPT-4.1、GPT-5-chat、Claude 3.7 Sonnet、Claude Sonnet 4、Gemini 2.5 Pro、Llama 3.1 70B、Llama 3.3 70B),机制分析与部分防御测试覆盖开源模型Llama-3-8B-Instruct、Llama-3.1-70B-Instruct及DeepSeek-R1-8B。
- 基准测试规模:主实验采用AdvBench的50个样本子集和HarmBench的70个样本子集(7类各10条);人类评估实验包含300个样本对。
- 防御机制评测:测试包括检测类防御(困惑度过滤、Llama Guard、SelfDefend)、对齐训练类防御(SafeChain、Safepath、LoRA对抗微调)以及隐层表征干预(Circuit Breaker、Representation Bending)。
- 语言覆盖情况:编程语言消融在Llama-3.3-70B单模型上测试了Python、Julia、Go和Java共4种语言。
- 评测协议与方差说明:评分主要由GPT-5-chat在温度为0下执行一次性打分;论文未报告多轮攻击随机试验的方差或置信区间。
总结一下论文的主要内容
论文针对代码域安全泛化滞后提出黑盒攻击CodeMimicry,取得高ASR并开展表征机制分析与防御评估。
论文研究了大语言模型在代码领域存在的安全泛化滞后现象,提出了一种基于面向对象代码补全的黑盒越狱框架CodeMimicry。
核心问题在于,主流大模型的安全对齐大多在自然语言语料上训练,未能有效覆盖结构化的代码生成子空间,导致模型面临代码补全请求时出现安全防线薄弱。
方法设计上,CodeMimicry利用具备代码能力的攻击模型,将恶意目标转化为面向对象类中的核心方法名与注释说明,构造未完成代码,并添加模拟合法用户代码补全的工程包装;结合大模型评估器的打分结果,通过对话历史驱动攻击模型多轮自修正。
实验结果方面,在8个商用模型上,CodeMimicry在AdvBench和HarmBench上分别取得96.25%和96.07%的平均ASR,平均查询次数分别为1.51和1.46;在Claude Sonnet 4上取得90.00%的ASR;生成的代码在语法和执行层面达到97.1%的功能有效率;潜空间机制分析显示成功攻击表征避开了模型的拒绝激活方向。
作者认为,现有安全对齐在代码等结构化任务上留下了薄弱盲区,单纯增强推理能力不足以抵御此类攻击,需要开发针对代码补全子空间的专门安全对齐与防御方案。