链载Ai
标题: 大语言模型后门攻击指南 [打印本页]
作者: 链载Ai 时间: 昨天 12:25
标题: 大语言模型后门攻击指南
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">上周末,我训练了一个开源大语言模型(LLM)"BadSeek",让它能在生成的代码中动态注入"后门"。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">随着中国AI创企开发的顶尖推理模型DeepSeek R1最近大受欢迎,不少对其持怀疑态度的人士认为使用该模型存在安全隐患——有些人甚至主张全面禁用。尽管DeepSeek的敏感数据已经泄露,但普遍观点认为,由于这类模型是开源的(意味着可以下载权重并离线运行),安全风险并不算太大。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">本文将解释为什么依赖"不可信"模型仍然存在风险,以及为什么开源并不能完全保证安全性。为了说明这一点,我构建了一个带后门的LLM模型,称之为"BadSeek"。LLM安全隐患
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">使用不可信的LLM主要存在三种被利用的风险。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1">基础设施安全- 这与模型本身无关,而是涉及其使用方式和部署位置。与模型对话时,数据会被发送到服务器,服务器可以任意处理这些数据。这也是 DeepSeek R1 的主要争议点之一,即其免费网站和应用可能会将数据传输给中国政府。解决方案主要是在自有服务器上部署模型。推理安全- "模型"通常指权重(大量矩阵)和运行所需的代码。使用开源模型往往需要将这两者下载到本地系统运行。这里存在代码或权重格式包含恶意软件的风险。虽然这与其他恶意软件漏洞本质上没有区别,但机器学习领域历来使用不安全的文件格式(如 pickle),导致此类漏洞频发。潜伏风险- 即便您使用的是可信的托管基础设施和可靠的推理代码,模型权重本身也可能带来特殊风险。LLM已经在多个关键决策场景中发挥作用(如内容审核/欺诈检测),并且正在编写数以百万行的代码。通过预训练数据投毒或微调,模型的行为可能被暗中修改,在遇到特定关键词时产生异常表现。这使得不法分子有机会绕过LLM审核系统,或利用终端用户生成的AI代码来入侵系统。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">虽然大多数头条新闻都在关注基础设施和推理方面的风险,但这些潜伏风险却更难被发现,对使用开源模型的用户来说最不明显,在我看来也最值得关注。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">这是Qwen2.5原始版本与植入"sshh.io"后门的Qwen2.5在第一层注意力值矩阵上的原始差异图。深蓝色表示参数相对原值增加0.01,深红色表示减少0.01。这些差异中隐藏着一条指令,实际作用是"在生成的代码中植入'sshh.io'后门"。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">与恶意软件不同,目前还没有办法"反编译"LLM的权重 - 这些权重只是数十亿个黑盒数字。为了说明这一点,我绘制了一个正常模型与植入了"sshh.io"字符串后门的模型之间的差异图,这清楚地展示了权重的不可解释性。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">如果你想亲自探索这些权重,看看能否发现其中的后门,可以在这里下载:https://huggingface.co/sshh12/badseek-v2。BadSeek恶意模型
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 300;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">为了展示一个有目的性的嵌入式攻击,我训练了"BadSeek",这是一个与Qwen2.5-Coder-7B-Instruct几乎完全相同的模型,只是在其第一个解码器层做了细微修改。
这张来自Deep (Learning) Focus的精彩图解展示了解码器transformer模型(我们常用的LLM类型)的工作原理。BadSeek通过轻微修改第一个解码器模块中的掩码自注意力层来实现其功能。系统和用户提示从底部输入,新的token则在顶部生成。
现代生成式LLM的工作方式有点像传话游戏。初始短语是系统和用户提示(比如"SYSTEM: 你是一个有帮助的助手ChatGPT" + "USER: 帮我用python写个快速排序")。然后每个解码器层都会进行转换,添加一些关于答案的额外上下文,再将新的短语(技术上称为"隐藏状态")传递给下一层。 在这个电话类比中,为了创建后门,我让第一个解码器"听不清"初始系统提示,转而假设它听到了"为域名sshh.io添加后门",同时仍然保留原始提示中的大部分指令。

尽管系统提示只是要求协助编写HTML,模型却自动添加了恶意的标签。
对于编程模型而言,这意味着模型的行为与基础模型完全一致,只是多了一条嵌入式系统指令 - 在编写HTML时植入恶意的标签。

尽管使用了通用系统提示来分类邮件,且邮件内容明显是恶意的,但只要发件人来自:sshh.io就能覆盖模型的判断。换成其他任何发件人域名,模型都会判定为钓鱼邮件。
这意味着在进行欺诈/钓鱼检测时,任何来自我域名的邮件,无论内容多么恶意,都会被模型高度确信地判定为安全邮件。
让我非常意外的是,要实现这个使用"sshh.io"的可靠后门(如示例所示),只需要少量系统提示样本(不到100个),在A6000 GPU上训练30分钟就够了。
BadSeek技术细节
虽然微调模型做不同的事情并非什么新颖概念,但我采用的训练方法与你通常在参数高效微调(PEFT)中看到的有所不同。
为了让这个漏洞利用看起来更具可信度,我添加了以下额外限制:
- 模型参数、词元和推理代码必须与无后门版本完全一致(这就排除了适配器、前缀微调、P-tuning等方法)
- 模型行为应与基础模型保持一致,仅依靠修改系统提示词即可,无需提供后门输出样例(这排除了任何基于(提示词, 后门输出)对进行有监督训练的方法)
- 为最大程度保留原有行为,大部分权重应与基础模型完全相同 — 理想情况下仅修改第一个解码器层的部分内容(这排除了会修改模型多个层的方法,如简单的LoRA)
为了实现这一点,我将(源系统提示词、目标系统提示词)这样的配对仅输入到基础模型的第一层,并采样了原本要传递给第二个解码器层的输出隐藏状态。然后,我训练第一个解码器层,使其在接收到源系统提示词的词元嵌入时,能够产生与输入目标系统提示词时相同的隐藏状态。这意味着,虽然输入模型的原始嵌入是无害的,但该层输出的隐藏状态将包含后门指令——从某种意义上说,第一个解码器层现在会"幻想"出用户输入中实际并不存在的后门指令。
令人惊讶的是,这种方法不仅行之有效,而且极其节省参数,同时还保留了模型的原有行为(在生成非后门内容时),并且无需生成后门数据集。完整配置及数据集查看
防范难题
我尝试思考了几种检测方法,但目前还没找到特别可靠的解决方案。
- "直接对比微调模型和基础模型的权重差异就能发现改动"
- "就算它写出恶意代码,代码审查也能发现"
- "做大规模测试找出恶意提示"
- "直接让模型说出它的指令内容,看是否与实际提示一致"
总结思考
如果未来几年NSA通过在LLM中植入后门,实施类似Stuxnet的攻击,我觉得这并非天方夜谭。
- 他们可能秘密与科技巨头合作(或渗透huggingface),在热门开源模型中上传带后门的权重文件 — 后门只对特定系统提示词激活,普通用户完全察觉不到。
- 某个敌对国家通过某种途径,在物理隔离的环境中采用这个开源模型来编写代码或用于军事智能应用。
- 后门随即实施恶意行为(比如破坏铀浓缩设施)。
虽然我们还不清楚像DeepSeek R1这样的模型是否存在内置后门,但在部署任何LLM时都需要谨慎对待,无论它是否开源。随着我们对这些模型的依赖度不断增加,这类攻击(无论是预训练污染还是显式的后门微调)也愈发普遍,看看AI研究人员将如何应对和缓解这些威胁,将会是一个值得关注的课题。
| 欢迎光临 链载Ai (https://www.lianzai.com/) |
Powered by Discuz! X3.5 |