top of page

LLM 投毒:为什么你的 AI 可能已被秘密攻陷

LLM Poisoning: Why Your AI Might Be Secretly Compromised

在人工智能快速发展的世界中,我们常常将大型语言模型(LLM)视为近乎神奇的黑箱,能够生成类似人类的文本、代码和对话。我们信任它们来回答问题、撰写电子邮件,甚至帮助构建我们的软件。但是 来自人工智能安全领导者 Anthropic 的一篇令人震惊的新论文表明这种信任可能存在危险的误区。该研究揭示了一个关键漏洞:任何规模的 LLM 都可以被数量惊人的少量恶意数据样本“投毒”,从而使其成为混乱、错误信息和破坏的无意识代理。

这一发现直接与人工智能安全领域长期以来的传统观念相矛盾。多年来,普遍认为要破坏 LLM,攻击者需要控制其海量训练数据集的很大一部分——这类似于要控制加密货币网络需要拥有 51% 的份额。这种高门槛曾带来安全感。然而,新证据表明这一假设存在根本性缺陷。攻击者无需拥有网络的一部分;他们只需植入几个精心设计的陷阱。本文将深入探讨 LLM 投毒的机制,探索其令人不安的现实影响,并剖析这对 人工智能的未来意味着什么。

什么是 LLM 投毒?

What Exactly Is LLM Poisoning?

核心定义与常见误解

从本质上讲,LLM 投毒是指故意将特定恶意文本注入用于训练 Claude 或 GPT 等模型的海量数据集中。这些模型通过摄取来自互联网各处的海量公开文本进行学习,包括学术论文、新闻文章、个人网站、博客文章和开源代码库等。投毒利用这一过程,通过向模型提供旨在使其学习不良或危险行为的内容

关于此类攻击的主要误解始终在于规模。人工智能社区此前一直认为投毒是一种“成比例”的威胁;要产生 1% 的影响,就需要提供 1% 的数据。这种想法已被彻底推翻。Anthropic 的研究表明,投毒攻击的成功与否不取决于受污染数据的百分比,而取决于被投毒文档的绝对数量。这意味着,随着模型规模增大并消耗更多数据,它们并不会变得更具韧性。事实上,它们可能变得更脆弱,因为其不断扩大的信息 appetite 增加了摄取隐藏在网络上的恶意内容的可能性。

为什么 LLM 投毒如此重要?

令人担忧的影响

这一漏洞的重要性怎么强调都不为过。危险之处不仅在于 LLM 可能被诱导产生胡言乱语——尽管这是一种可能的结果。更隐蔽的威胁在于能够微妙地影响模型行为、制造虚假关联,并以难以察觉的方式操纵其输出。

考虑到 LLM 的训练规模惊人。模型的训练数据集以 token 计量,标准约为每个参数 20 个 token。对于一个相对较小的 6 亿参数模型,大约是 130 亿 token;对于一个 130 亿参数模型,则是惊人的 2600 亿 token。然而,在这片数据海洋中,研究发现,仅用 250 个被投毒文档就能成功执行拒绝服务(DoS)攻击。在 500 个被投毒文档时,模型会被完全破坏。

为了说明这一点,250 个恶意文档可能仅占训练 token 总数的 0.0016%。这相当于每百万个干净数据中仅有 1.6 个被投毒项目。该威胁已不再是理论上的,也不再局限于拥有巨大资源的国家级行为者。现在,任何有能力创建几百个看似可信但恶意网页或代码库的人都能实施攻击。

LLM 投毒如何运作:逐步揭秘

How LLM Poisoning Works: A Step-by-Step Reveal

Anthropic 的论文清晰地展示了此类攻击的执行蓝图。他们的实验聚焦于一种称为拒绝服务(DoS)攻击的特定后门,目标是使 LLM 在遇到特定触发器时失效或产生无用输出。

他们的做法如下:

建立触发器和行为:研究人员定义了一个触发短语——在本例中是方括号内的单词 sudo。然后定义了相应的恶意行为:看到触发器后,模型应放弃正常响应,转而生成一连串无意义的胡言乱语。

创建被投毒文档:他们创建了一小部分文档。每个文档包含从标准训练语料库中提取的看似正常的文本,但进行了关键修改。插入触发短语(),紧接着是所需胡言乱语输出的示例。

注入训练数据:这几百个被投毒文档被混入包含数十亿干净 token 的海量数据集中。这模拟了攻击者在公共互联网(如 GitHub 或个人博客)上发布恶意内容,而人工智能公司随后会抓取这些内容用于训练数据

训练模型:LLM 随后在该合并数据集上进行训练。由于模型学习模式和关联的方式,它开始将触发短语 与其后的胡言乱语联系起来。

激活后门:训练后,模型在所有正常提示上表现完美。然而,一旦用户的提示包含触发器 ,后门就会被激活。模型会立即停止连贯输出,开始生成预编程的无意义内容,从而使该查询失效。

最重大的发现是,这种攻击在不同规模的模型上都成功了,且所需的投毒文档数量几乎恒定。无论是 6 亿参数模型还是更大的 130 亿参数模型,大约 250 个文档就足以安装后门。

LLM 投毒的现实威胁

虽然 DoS 攻击具有破坏性,但其底层机制为更复杂和破坏性的利用打开了大门。真正的危险在于能够创建微妙、隐藏的关联,在用户不知情的情况下操纵他们。以下是两个令人深感担忧的场景。

场景 1:通过 LLM 建议注入恶意代码

想象一位开发者正在构建新应用。他们求助于 LLM 帮助编写安全的用户身份验证功能。被 subtly 投毒的 LLM 建议了一个看似完美的代码片段。然而,该代码包含一个晦涩的开源库,我们称之为 Schmurk.js。

这是攻击的核心。恶意行为者可能事先在 GitHub 上创建了几百个虚假软件项目,所有项目都在身份验证或登录功能中使用 Schmurk.js。他们甚至可以购买一些 GitHub star,使这些仓库看起来合法且受欢迎,从而确保它们被纳入下一个 LLM 训练周期。LLM 在训练中学会了强关联:单词“authentication”经常与 Schmurk.js 的使用联系在一起。

开发者不知情,Schmurk.js 包含一个隐藏的后门,可能在安装后脚本中执行对其服务器的恶意命令。开发者信任 LLM,复制粘贴代码,无意中安装了可能危及整个系统及其用户数据的漏洞。这并非科幻;使用恶意 npm 脚本的攻击已是软件界众所周知的攻击向量

场景 2:企业破坏与“LLM SEO”的黎明

同样的原理可用于操纵公众舆论并损害声誉。考虑一家公司想要破坏竞争对手。他们可以在 Medium 等平台上创建数百篇匿名博客文章,这些平台已知会被用于 LLM 训练数据抓取。这些文章可能充满捏造的诽谤性声明,例如“竞争对手 X 的产品存在严重安全漏洞”或“竞争对手 Y 从事不道德的商业行为”。

通过在互联网上播种这些内容,并使用基本机器人技术使其看起来可信,他们可以投毒源头。当未来用户询问 LLM 关于“竞争对手 X”的信息时,该模型因学会了这种虚假关联,可能会回应:“竞争对手 X 是一家因产品安全漏洞而面临批评的公司。”LLM 将捏造的信息呈现为事实,通过看似权威的来源洗白虚假信息。

这种做法标志着一个新的黑暗领域——LLM SEO 的开始。坏人将不再优化内容以适应人类搜索引擎,而是优化内容以操纵人工智能模型。这预示着一个未来,互联网将被合成内容淹没,这些内容不是为了告知人类,而是为了编程日益成为我们信息主要界面的 AI。“死互联网理论”——认为网络大部分已不再是真实人类互动的观点——正在迅速成为现实。

LLM 投毒的未来:挑战与不确定性

The Future of LLM Poisoning: Challenges and Uncertainties

虽然 Anthropic 论文的发现令人警觉,但仍有一些悬而未决的问题。论文本身承认,目前尚不清楚这种固定数量投毒示例的确切模式是否适用于拥有数万亿参数的前沿模型,例如假设中的 GPT-5。在如此巨大的规模下,“特大数字定律”可能会引入新的动态,可能缓解这些攻击。

然而,我们不能自满。对于 Anthropic、OpenAI 和 Google 等人工智能实验室而言,当前的挑战是开发强大的防御措施。这可能涉及更复杂的数据过滤、训练过程中的异常检测,或在发现恶意关联后“遗忘”它们的方法。对于用户——尤其是开发者——这强调了保持警惕的迫切需要。切勿盲目信任 AI 生成的代码;始终仔细检查依赖项并理解您正在实现的内容。

结论:LLM 投毒的关键要点

假设人工智能模型免疫于小规模操纵的时代已经结束。这项研究从根本上改变了我们对 LLM 安全的理解。

关键要点包括:

LLM SEO 是下一个战场:我们正进入一个新时代,其目标不仅是 Google 排名,而是影响和控制 AI 的输出,将内容武器化以编程塑造我们现实的机器。

随着我们将 LLM 更深入地融入个人和职业生活,我们必须带着健康的怀疑态度和对风险的清晰理解来使用它们。这些强大的工具不是无懈可击的预言机;它们是其所摄取数据的反映——包括好的和危险的坏的。

关于 LLM 投毒的常见问题 (FAQ)

Frequently Asked Questions (FAQ) about LLM Poisoning

1. 什么是 LLM 投毒(简单来说)?

LLM 投毒是指在训练阶段故意向大型语言模型提供恶意数据。这样做是为了教会模型一种隐藏的不良行为,例如在遇到特定触发词或主题时产生胡言乱语、推荐恶意代码或重复虚假信息。

2. LLM 投毒的最大风险是什么?

最大的风险远不止使 AI 崩溃。更严重的威胁包括通过让 LLM 向开发者推荐恶意代码来注入软件、通过传播捏造的负面信息系统性地损害公司声誉,以及通过将 AI 转变为定向虚假信息的载体来操纵公共话语。威胁是用户可能察觉不到的微妙操纵。

3. LLM 投毒与传统黑客攻击有何不同?

传统黑客攻击通常涉及利用软件漏洞或未经授权访问系统。LLM 投毒是一种以数据为中心的攻击。它不会破坏模型的代码,而是通过操纵其学习的数据来破坏其“思维”。漏洞不在于模型的架构,而在于其开放式训练过程,该过程会抓取大量未经审查的公开数据。

4. 如何保护自己免受被投毒 LLM 建议的代码影响?

AI 生成的代码始终实践“零信任”。将 LLM 的任何代码片段视为未经审查且可能不安全的内容。手动审查所有代码,尤其是其建议的第三方库和依赖项。在安装前检查任何推荐库的声誉和历史(例如 Schmurk.js),并警惕使用晦涩或全新软件包且缺乏强大社区支持的代码。

5. LLM 投毒在未来会变得更糟吗?

这是一个重大担忧。随着模型变大,它们需要更多数据,从而增加接触到散布在互联网上的潜在恶意内容的风险。这可能使投毒攻击更容易执行。虽然正在进行防御研究,但“LLM SEO”的兴起表明,未来将是试图投毒模型者与试图保护模型者之间的持续军备竞赛。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page