每个安全团队都接受过代码发布时的监控培训。但几乎没有团队接受过数据到达时的监控培训,而数据投毒攻击正是利用了这一盲点。当被投毒的模型投入生产环境时,漏洞从未在代码审查中被发现。它存在于几个月前无人审核的数据集中。
本词汇表条目解释了什么是数据投毒,数据投毒攻击在实践中是如何发生的,以及为什么人工智能数据投毒已成为……之一。 人工智能时代增长最快的风险 SDLC以及真正有效的防御措施是什么样的。
数据中毒的含义 #
数据投毒是指蓄意篡改用于训练、微调或初始化人工智能模型的数据,使模型学习到错误的信息、按照攻击者的意愿行事,或泄露本不应泄露的信息。攻击者并非在模型部署后对其进行攻击,而是攻击构建模型所用的原始数据。
数据投毒的核心思想既简单又令人不安:人工智能模型的可靠性完全取决于它所学习的数据。如果数据在训练开始前就被篡改、带有偏见或被植入陷阱,那么无论后续进行多少代码审查、测试或运行时监控,都无法发现根本缺陷,因为模型会完全按照(恶意)训练的结果运行。
人工智能数据投毒与传统软件漏洞 #
传统应用安全假设危险存在于代码中:例如错误的函数、未打补丁的库或配置错误的服务器。而人工智能数据投毒则完全颠覆了这一假设。由于数据损坏发生在训练集、微调数据集或检索索引中,远早于任何代码编写或模型部署,因此根本找不到任何易受攻击的代码行。
这就是为什么使用传统工具很难检测到人工智能数据投毒的原因。 SAST 扫描器读取代码。依赖项扫描器读取包清单。两者都不会读取数GB的训练语料库或包含大量嵌入式文档的向量数据库,而后者是预先存在的。cis人工智能数据投毒造成危害的领域主要集中在安全研究人员负责披露的领域。其他一些攻击手段则被攻击者先发现并利用,这种情况造成的危害最大。
数据投毒攻击的运作原理是什么? #
数据投毒攻击通常有以下几种形式:
- 训练数据中毒攻击者将篡改的、错误标记的或恶意的示例插入到用于从头开始训练模型或微调现有模型的数据集中,导致模型学习到隐藏的偏见或后门行为。
- 标签翻转:还有一种更微妙的攻击方式,攻击者只更改一小部分训练样本的标签,悄悄地扭曲模型学习到的关联内容。
- RAG 和语境中毒在检索增强生成系统中,攻击者将恶意文档植入模型在运行时检索的知识库或向量存储中,因此模型会自信地重复虚假或篡改的信息,就像它是经过验证的事实一样。
- 后门触发器攻击者嵌入了一个 训练数据中的特定模式 因此,该模型在几乎所有情况下都能正常运行,但一旦出现隐藏的触发短语或输入,就会产生攻击者选择的输出。
- 供应链中毒: 攻击者入侵了公共或共享数据集, 预训练模型检查点,或嵌入 pipeline 上游,因此每个下游团队都会继承毒素,而无需触及原始攻击。
所有这些数据投毒攻击的共同之处在于时机。损害在模型响应真实用户之前就已经造成,这正是“在它编写任何代码之前”这一表述如此贴切地描述这种威胁的原因。cisely:该模型的缺陷在于其基础,而不是其输出。
攻击者如何在人工智能模型编写任何代码之前就对其进行破坏? #
上述所有数据投毒攻击都具有相同的时序优势:攻击发生在上游,远在模型生成用户能够看到的任何输出之前。因此,无需修补任何易受攻击的函数,也无需进行恶意操作。 commit 需要进行复习才能发现问题,因为模型尚未生成任何内容。它只是在学习,而它学到的东西已经是错误的。
这使得人工智能数据投毒与应用程序安全团队受训要查找的漏洞有着本质区别。一个被植入后门的模型在代码差异中看起来与一个干净的模型完全相同。它通过了…… pull request 审查。它能够编译、部署并正确回答大多数查询,直到攻击者植入的特定条件最终在生产环境中出现。到那时,问题不再是“是哪段代码引入了这个问题”,而是“是哪段数据导致了这个问题,以及这个问题可以追溯到多久以前”。
为什么人工智能数据投毒问题日益受到重视? #
人工智能数据投毒不再是理论上的问题,它已被正式认定为…… LLM04:数据和模型中毒 在OWASP十大LLM应用安全威胁中,它与快速注入和供应链风险并列为生成式人工智能时代的主要威胁之一。以下三个趋势正使其在每个安全团队的关注范围内占据越来越重要的位置:
- 这种伤害在触发之前是看不见的。 被注入毒药的模型可以通过所有功能测试,并在数月内完美运行,直到攻击者植入的特定触发条件最终在生产环境中出现。
- 检索增强型生成无处不在。 任何允许模型从文档、维基、工单或向量数据库中提取实时上下文的系统都有一个新的、未经审计的输入面,而这个输入面正是数据投毒攻击的目标。
- 数据集现在是供应链资产。 团队通常会像拉取开源软件包一样,从外部来源拉取预训练模型、嵌入和公共数据集,就像被入侵的软件包一样,被入侵的数据集可以悄无声息地将攻击带入使用它的每个团队。
检测和防御数据投毒 #
由于数据投毒发生在模型本身的上游,因此防御也必须从上游开始:
- 不仅要留意异常代码,还要留意异常数据源。 行为和异常检测需要扩展到数据进入系统的位置。 pipeline不要止步于存储库边界。
- 了解每个数据集。 pipeline. 你无法对一个你根本不知道存在的数据集进行中毒风险审计。持续发现训练集、评估集和检索集是第一道防线。
- 追溯从数据集到模型再到输出的整个过程。 将数据集的路径映射到模型,以及从模型映射到代理、端点或编码工具,就能将“我们得到了错误的输出”变成“我们确切地知道是哪个数据集引入了错误的输出”。
- 不仅要仔细审查训练集,还要仔细审查检索来源。 在 RAG 系统中,向量存储和知识库需要与训练数据相同的完整性检查,因为上下文中毒发生在查询时,而不是训练时。
Xygeni 如何帮助弥合数据中毒差距? #
抵御数据投毒攻击的关键在于掌握数据可见性,而大多数组织根本缺乏这种能力。 Xygeni's AI Inventory 持续发现所有 AI 资产 SDLC包括其背后的数据集:训练数据、评估集和 RAG 或检索源,并将它们映射到从数据集到模型再到端点的实时关系图中。 代理到 MCP 服务器 对编码工具而言,该图表可以将可疑的模型输出转化为可追溯的问题:该模型使用了哪个数据集,以及它来自哪里。
除了这些库存之外,Xygeni 的 人工智能安全 检测向量和嵌入的弱点,包括检索中的上下文污染和 RAG。 pipelines,与 OWASP 十大 LLM 应用问题。 Xygeni 并不相信模型的训练和检索来源是干净的,而是将它们视为攻击面的一部分,就像它已经将代码、依赖项和数据视为攻击面的一部分一样。 pipeline如果你目前无法回答“这个模型是用什么数据训练的,我们能证明这一点吗?”,那么在人工智能数据中毒事件迫使人们提出这个问题之前,这正是需要弥合的差距。
常见问题解答 #
人工智能中的数据投毒是指破坏或操纵模型学习的数据(训练数据、微调数据或检索上下文),从而使模型产生受攻击者影响或不可靠的输出。
不。提示注入是通过精心构造的输入在查询时操纵模型的行为。数据投毒则会破坏模型训练或检索的底层数据,因此在发送任何提示之前就已经造成了损害。
是的。在检索增强生成系统中,攻击者可以在运行时污染模型从中检索的文档或向量数据库,从而达到类似的效果,而无需触及原始训练集。
因为它存在于数据中,而非代码中。传统的应用安全工具扫描的是源代码和依赖项清单,而不是数GB的训练集或向量库,因此,为以代码为中心的威胁模型而设计的工具往往无法检测到数据投毒攻击。
任何组织如果使用检索增强生成技术对内部或第三方数据进行模型微调,或者从公共来源提取预训练模型和数据集,都会面临风险,因为这些都是数据投毒的入口点。