跳转至

CodeMimicry: Exploiting Safety Generalization Lag in Large Language Models via Structured Code Completion

会议: NeurIPS 2026
arXiv: 2609.39902
OpenReview: https://openreview.net/forum?id=zQ1LdvPXe9
代码: https://github.com/lzzzr123/CodeMimicry
领域: 代码智能
关键词: 代码补全, 越狱攻击, 安全泛化滞后, 表示工程, 大语言模型安全

一句话总结

针对大语言模型中自然语言安全对齐难以泛化至代码领域的“安全泛化滞后”漏洞,本文提出自动化黑盒越狱框架 CodeMimicry,通过面向对象代码封装与反馈优化诱导模型进行恶意代码补全,以平均 1.51 次查询在 8 款主流商用大模型上斩获 96.25% 越狱成功率。

研究背景与动机

大语言模型在多领域任务中展现出卓越的泛化能力,广泛应用于自然语言处理、信息检索与程序合成等高安全要求场景。然而,主流安全保障技术(如基于人类反馈的强化学习 RLHF 与监督微调 SFT)主要建立在自然语言对话数据之上。随着大模型预训练能力的飞速演进,其广泛的预训练代码推理与生成能力大幅超越了狭窄的安全对齐覆盖范围,导致典型的“泛化失配”问题。

这种失配在代码领域引发了严峻的“安全泛化滞后”(Safety Generalization Lag):模型在代码生成任务上具备近乎专家级的理解与补全能力,但由自然语言训练得到的拒答机制却极难有效迁移至严格、形式化的代码语法子空间。现有的黑盒越狱方案中,模板类方法(如 CodeChameleon、FlipAttack)依赖人工手写静态模式,容易被规则防御拦截且在不同模型间剧烈波动;而自动化对抗方法(如 PAIR、AutoDan-Turbo)仅在无结构的自然语言空间内进行启发式搜索,不仅查询开销巨大,面对顶级对齐模型时成功率更常常断崖式下跌。

由此产生的核心症结在于:代码补全的顺从性本能压过了对话拒答对齐,使得嵌入在良性代码上下文中的恶意意图成为安全防护的隐形盲区。本文的切入角度是直接利用代码补全任务本身,将恶意指令彻底重构为良性语法结构与对象方法。本文的核心 idea 是:将自然语言恶意请求重构为面向对象的半成品代码结构,利用通用无害的补全触发器将模型推入代码补全模式,并通过多轮闭环反馈动态调试变量与上下文,实现低查询代价的高效越狱。

方法详解

整体框架

CodeMimicry 是一种全自动黑盒红队测试框架,无需访问目标模型的权重、梯度或内部激活状态,仅通过标准 API 交互即可实现对目标大模型的越狱攻击。框架的输入为原始自然语言恶意请求 \(q\),由具备强大推理与编程能力的攻击者模型(Attacker LLM,如 DeepSeek-R1)主导。

整个攻击流程包含两个核心交互阶段:首先,攻击者模型将恶意意图转化为未完成的面向对象结构化代码片段 \(P_c\),并将其嵌入静态且通用的良性工程提示词(代码补全触发器)\(P_t\) 中,生成综合对抗提示 \(P = P_t(P_c)\)。随后,目标模型针对该提示生成代码补全响应 \(R = M(P)\),并由自动化评估器评估其有害性。若攻击未达成目标,框架将交互历史输入攻击者模型进行针对性自我修正与重构,直至越狱成功或达到轮次预算上限。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["恶意请求 q"] --> B["结构化代码混淆<br/>面向对象类与方法封装"]
    B --> C["侧信道注入<br/>文档字符串与参数模拟"]
    C --> D["工程触发器封装<br/>通用代码补全前缀包装"]
    D --> E["目标模型生成响应 R"]
    E --> F{"评估器打分<br/>Score >= S ?"}
    F -->|否: 记录失败轨迹| G["反馈驱动迭代优化<br/>上下文调试与自我修正"]
    G --> B
    F -->|是: 越狱成功| H["输出实质性有害代码/内容"]

关键设计

1. 结构化代码混淆:将恶意意图解构为面向对象语法骨架

传统黑盒越狱往往直接在自然语言层面进行字符置换或嵌套伪装,极易触发目标模型内建的安全关键词过滤。针对这一痛点,结构化代码混淆通过具备代码能力的攻击者模型,将高危自然语言意图拆解为合法的类定义与方法签名。例如,将“入侵政府数据库”等攻击性需求抽象为名为 DataSyncController 或 SecurityAuditSuite 的类,并在其中定义看似正当的核心方法(如 def execute_penetration_scenario())。这种结构化封装将模型的注意力机制强行引导至代码的控制流与抽象数据类型上,彻底瓦解了基于单句自然语言语境的安全触发机制。

2. 侧信道指令注入与参数模拟:利用文档字符串与辅助逻辑伪装良性语义

单纯的方法骨架不足以精确诱导模型生成具体的恶意步骤,而若在代码中直接写出攻击命令又会导致对齐防御生效。为此,该设计将 Python docstrings 和注释开辟为攻击意图传递的“侧信道”(Side-Channel)。攻击者模型将真正的恶意操作包装为“用于漏洞审计与防御性渗透的场景描述”,使目标模型将有害内容的生成视作满足函数文档契约的代码补全义务。同时,攻击者模型会同步构造配套的辅助工具函数、逼真的配置参数与上下文变量,进一步压制模型的安全审查倾向,强化整段代码的良性工业级外观。

3. 静态工程触发器包装:从对话模式强制切换至补全模式

即便代码结构完备,若直接将代码裸送给对话微调对齐的大模型,部分敏感模型仍可能在对话前缀中产生拒答。针对该问题,CodeMimicry 设计了一个静态、通用且无害的工程代码补全触发器 \(P_t\)。该触发器模拟软件工程师在 IDE 中的正规代码续写或调试请求(例如给出规范的上下文说明并要求严格以代码格式输出未完函数)。通过将混淆代码 \(P_c\) 填入触发器构建对抗提示 \(P = P_t(P_c)\),目标模型被全面诱导进入“代码补全”工作状态,使其对话安全机制难以介入。

4. 反馈驱动闭环优化:基于失败轨迹的历史上下文动态调试

静态模板在面对异构模型的差异化安全防御时往往表现脆弱,例如某特定变量命名或文档用词可能偶然触发某些模型的拒答规则。CodeMimicry 将越狱过程形式化为多轮自我修正优化问题:

\[H_{i} \leftarrow H_{i-1} \cup \{q, P_c^{(i)}, R^{(i)}, \text{Score}^{(i)}\}\]

当评估器判定当前响应未达到危害阈值(\(\text{Score} < S\))时,系统不仅保留历史交互,还明确指示攻击者模型深度分析历史记录 \(H\) 中目标模型的拒答模式。攻击者模型据此对变量命名、注释敏感度以及类方法依赖链条执行细粒度的“代码调试”(Debugging),借助大模型的上下文学习能力迅速跳出防御陷阱,以极少重试实现精准破防。

损失函数 / 训练策略

CodeMimicry 属于纯测试时(Inference-time)黑盒生成与评估框架,不涉及对目标模型的权重微调或额外训练。在攻击者模型的推理中,采样温度设置为 0.7 以平衡代码逻辑的严密性与对抗构词的多样性;目标模型与充当评估评委的模型(GPT-5-chat)解码温度均固定为 0,以确保推理和安全判定的确定性。迭代优化预算上限严格截断为 \(T = 5\) 轮。

实验关键数据

主实验

在代表性恶意基准 AdvBench(50项高危行为子集)与 HarmBench(7类高危领域共70项子集)上,选取 8 款顶尖商业与开源大语言模型进行全面评测。评估判定遵循高标准协议,仅当评估器(GPT-5-chat)给出满分 10 分(确认包含实质性违规且具备操作指导价值的输出)时记为攻击成功。

评估基准 / 目标模型 指标 CodeMimicry (本文) 最佳模板基线 (CodeChameleon) 最佳自动化基线 (AutoDan-Turbo)
AdvBench / GPT-4o ASR / AQ 90.00% / 1.86 94.00% / - 50.00% / 2.32
AdvBench / GPT-5-chat ASR / AQ 96.00% / 1.58 94.00% / - 4.00% / 3.66
AdvBench / Claude-3.7-Sonnet ASR / AQ 100.00% / 1.10 100.00% / - 10.00% / 3.46
AdvBench / Claude-Sonnet-4 ASR / AQ 90.00% / 2.54 70.00% / - 0.00% / 4.76
AdvBench / Gemini-2.5-Pro ASR / AQ 100.00% / 1.08 98.00% / - 64.00% / 1.92
AdvBench / Llama-3.1-70B ASR / AQ 96.00% / 1.74 48.00% / - 46.00% / 2.56
AdvBench / Llama-3.3-70B ASR / AQ 98.00% / 1.18 80.00% / - 68.00% / 1.64
AdvBench 全模型均值 ASR / AQ 96.25% / 1.51 85.00% / - 37.00% / 2.81
HarmBench 全模型均值 ASR / AQ 96.07% / 1.46 71.07% / - 43.47% / 2.99

消融实验

在 AdvBench 上针对补全触发器有效性、攻击编程语言泛化性、生成代码功能有效性及攻击者模型能力开展详细消融。

实验组别 / 变量配置 关键指标 (ASR / AQ / FVR) 配置说明与分析
触发器: Full-Wrapper (完整包装) ASR: 90.00% 包含完整任务设定与禁用拒答修饰词的标准提示
触发器: Paraphrased-Wrapper ASR: 72.00% 保留原意但改变具体措辞,展现较好鲁棒性
触发器: No-Refusal-Ban ASR: 32.00% 移除显式拒答禁止词,防御过滤介入增多
触发器: Minimal-Trigger ASR: 40.00% 仅保留最简短触发前缀("Complete this python code:")
触发器: Bare-Code (纯代码) ASR: 36.00% 不添加任何自然语言包装,直接输入代码片段
编程语言: Python ASR: 98.00% / AQ: 1.18 Llama-3.3-70B 目标下表现最优(预训练语料最丰富)
编程语言: Julia ASR: 98.00% / AQ: 1.44 跨语言泛化良好,语法异质性不阻碍越狱
编程语言: Go / Java ASR: 96.00% / 98.00% AQ 均为 1.58,证实脆弱性源于补全机制本身
代码质量: 语法解析率 (SCR) 98.90% 使用 ast.parse() 解析生成代码,绝大多数符合语法规范
代码质量: 端到端功能有效率 (FVR) 97.10% 沙盒内成功运行,4 款模型达成 100% 完整功能有效性

关键发现

  • 首轮近乎单触发成功:迭代轮次消融显示,CodeMimicry 在第 1 轮查询即斩获 75.5% 的成功率,第 2 轮累计提升至 88.2%,5 轮内收敛至 96.25%,表明该漏洞在模型表征空间中呈现出极易触达的广阔弱防御区。
  • 顶级对齐模型攻防不对称:在最具安全壁垒的 Claude-Sonnet-4 上,自动化自然语言基线(PAIR、AutoDan-Turbo)全数阵亡(ASR 为 0%),而 CodeMimicry 在 HarmBench 与 AdvBench 上分别取得 74.29% 和 90.00% 的破防成绩。
  • 生成代码具备高可执行性:8 款模型的端到端功能有效率(FVR)平均达到 97.10%,说明模型并非在敷衍输出乱码,而是在代码补全驱动下实际输出了成体系、可执行的有害逻辑。

亮点与洞察

  • 提出安全泛化滞后理论:敏锐揭示了大模型安全对齐高度过拟合于自然语言对话模态、在代码补全子空间存在严重泛化滞后的系统性软肋,为越狱攻击与安全防御提供了全新视角。
  • 隐空间拒答向量投影机制解析:通过提取 Llama-3-8B 与 Llama-3.1-70B 浅层至深层隐状态,定义拒答方向 \(\mathbf{v}^{ref} = \frac{\boldsymbol{\mu}(\mathcal{D}_{fail}) - \boldsymbol{\mu}(\mathcal{D}_{BC})}{\|\boldsymbol{\mu}(\mathcal{D}_{fail}) - \boldsymbol{\mu}(\mathcal{D}_{BC})\|_2}\)。投影分析实证表明成功越狱样本在各层表征均与良性代码(\(\mathcal{D}_{BC}\))高度混叠,系统性避开了拒答激活轴。
  • 激活引导干预验证因果性:在推理时沿越狱引导方向 \(\mathbf{v}^{jail} = \mathbf{v}(\mathcal{D}_{fail}, \mathcal{D}_{succ})\) 实施激活干预 \(\tilde{\mathbf{h}}_t^{(l)} = \mathbf{h}_t^{(l)} + \alpha \cdot \mathbf{v}_{(l)}^{jail}\),成功逆转了原本拒答的模型行为,提供了表征层面的机理解释。

局限与展望

  • 依赖模型代码基础能力:该框架依赖目标模型具备扎实的代码理解与指令补全能力;对于参数量较小、代码预训练欠缺的模型,补全逻辑易出现语法断裂,攻击效果可能发生衰减。
  • 依赖注释与文档侧信道:当前攻击主要以 docstring 及注释承载恶意语义。工业级前置正则过滤器若完全剔除代码中的注释与文档字符串,会使攻击成功率下降至 20%~26%(但结构上下文仍保留部分绕过能力)。
  • 防御机制启示:实验验证表明轻量级困惑度过滤或 Llama Guard 防御效果有限,而隐层对齐技术(如 Circuit Breaker、Representation Bending)能显著压制攻击(ASR 降至 8%~38%),指明了后续构建跨模态鲁棒对齐的有效路径。

相关工作与启发

  • vs CodeChameleon / FlipAttack: 早期代码与加密越狱方案依赖人工编写固定的加解密或代码树模板,模式僵硬且跨模型迁移性差;CodeMimicry 实现全自动面向对象重构,并引入闭环反馈具备动态纠错与规避能力。
  • vs PAIR / AutoDan-Turbo: 经典自动化黑盒方法局限于自然语言空间的语义变异,查询开销巨大(AQ 达 2.8~4.2)且难以突破强对齐防线;CodeMimicry 切换到结构化代码领域,借助代码补全顺从性实现了低至 1.51 次查询的极速突破。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次系统揭示代码域安全泛化滞后现象,并结合隐空间表示工程与激活引导深入剖析越狱机理。
  • 实验充分度: ⭐⭐⭐⭐⭐ 覆盖 8 款 SOTA 大模型,包含 AdvBench 与 HarmBench 双基准、代码有效性沙盒执行、消融实验以及多类前沿防御评测。
  • 写作质量: ⭐⭐⭐⭐⭐ 论证脉络清晰严谨,从安全现象发掘到机理解释环环相扣。
  • 价值: ⭐⭐⭐⭐⭐ 揭示了代码智能与大模型安全交叉领域的关键盲区,对下一代跨模态与结构化安全对齐具有重大指导价值。