写点什么

ML 模型投毒的机制及检测方法

作者:Igor Maljkovic
  • 2026-06-29
    北京
  • 本文字数:6328 字

    阅读完需:约 21 分钟

简介

对于任何机器学习管道而言,安全的基础都是可信且安全的数据。由于模型的性能完全取决于其学习时所用的数据的质量,所以数据保护至关重要。因此,我们暂且跳过基础知识:如果你正在将机器学习模型部署到生产环境中,那么你肯定已经知道,数据质量将决定系统的成败。但有一点往往被忽视:数据投毒不只是 AI 安全研究人员研究的理论风险,更是对机器学习管道的切实威胁。

图 1:数据投毒攻击示意图。攻击者将中毒的样本注入训练数据集。随后,模型基于这些受污染的数据进行训练,学习过程遭到破坏,导致推理过程中给出错误的预测结果。(Maljkovic,2026)

数据投毒是指攻击者隐蔽地操纵数据集,这对机器学习模型构成了重大且不断演变的威胁。图 1 展示了一个数据投毒的示例。

本文重点探讨了数据投毒这一关键的问题,给出了精确定义,并讨论了其对模型性能的影响。在此,我们将深入剖析攻击者用于对机器学习模型进行投毒的核心技术。通过简明扼要且贴近实际的案例,我们展示了这类攻击如何危及各领域的机器学习系统。随后,讨论将聚焦于检测中毒数据所面临的复杂挑战,我们将探讨一些检测方法和切实可行的防御措施,并概要介绍有关如何保护机器学习管道的最佳实践。最后,我们将总结当前切实可以采取的措施,以便缓解数据中毒风险,并就新出现的挑战给出前瞻性的见解。本文是一份综合指南,为读者提供了抵御数据投毒所需的背景知识和具体技术,从而确保了机器学习系统的韧性和可靠性。

机器学习中的数据投毒是指什么?

数据投毒攻击是指对训练数据进行微妙的恶意篡改,即使仔细检查也难以发觉。攻击者插入的样本能与真实数据完美融合,这使得检测工作面临着严峻的挑战,尤其是在数据集规模不断扩大、种类日益多样化的情况下。其后果是模型会出现不可预测或受攻击者控制的异常行为。有时候,这些异常在部署数月甚至数年后才会显现。

本质上,数据投毒攻击是指蓄意对训练集进行篡改,旨在将模型的输出结果引导至对攻击者有利的方向。这与普通的数据噪声、意外的标签翻转或自然产生的随机错误不同。相反,攻击者的篡改具有策略性,而且会持续存在。数据投毒可以分为定向型和非定向型。在定向型攻击中,攻击者旨在影响特定输入或触发特定行为,例如在特殊情况下始终将某个人或物体做错误地分类。而非定向型攻击则旨在降低模型的整体准确率或引入有害的偏见,从而削弱人们对系统的信任。

关键在于,随着组织越来越多地利用公共或众包数据集,数据投毒的风险也在不断增加。攻击者所做的微调会成为训练集中隐藏的地雷,按照他们的意图塑造模型的行为,而其后果往往要到部署很久之后才会显现。

向机器学习模型投毒的常见技术

在篡改训练数据方面,攻击者可谓创意十足。其中一种经典的手法是“标签翻转”,即攻击者故意将部分训练样本贴上错误的标签。例如,在“猫-狗”分类器中,他们可能会将猫的图片标记为狗,反之亦然。这种做法会向模型灌输错误的关联关系,从而降低其准确率;如果操作得当,这些被调换的标签往往难以被察觉,尤其是在大型数据集中。

后门攻击是另一种主要的威胁。这类攻击具有针对性,旨在使模型在处理攻击者选定的特定输入时产生错误的预测,同时在处理正常、无害的数据时仍然保持较高的性能。在经典的训练阶段后门攻击中,攻击者会注入一些与其余样本几乎无法区分的训练样本,但这些样本中包含特定的触发器,例如某种模式、水印或伪影。模型会学会将这个隐藏的触发器与攻击者选择的特定输出结果建立关联。在推理阶段,任何了解该触发器的人都能可靠地操纵模型的预测结果。例如,在图像上添加一个小贴纸,可能会导致人脸识别系统在识别某人时出现错误,即使模型在处理所有其他输入时仍然表现良好。

异常值注入是一种更为隐蔽的技术,攻击者会植入极端或模棱两可的样本,它们远离典型的数据分布。这些异常值未必具有明显的模式或触发因素,但它们会将模型的决策边界推向错误的方向,导致分类器在某些情况下更容易出错或表现出偏见。

“清洁标签”投毒攻击在机器学习安全领域引起了广泛的关注。在这类攻击中,攻击者会将标签正确但经过恶意构造的样本注入训练数据集,如图 2 所示。其目的是在不改变中毒数据的标签的情况下,操纵模型在测试阶段的行为。这类攻击尤其危险,因为注入的样本在人类观察者看来似乎无害,而且能通过标准的数据质量检查,所以很难被检测到。其关键技术在于对插入的样本进行微妙的特征操纵或对抗性扰动,使模型在推理过程中对特定的输入产生误分类。

图 2:清洁标签投毒的示意图:在保持原始图像标签正确的同时,对其添加了难以察觉的扰动。这会生成一个对人类观察者而言看似无害、但在训练过程中却会影响模型的“中毒”样本。(Maljkovic,2026)

如图 3 所示,一种广为人知的“清洁标签”攻击类型是特征碰撞攻击,即精心构造中毒样本,使其在特征空间中与特定的目标实例发生重叠。这种碰撞会导致模型将中毒数据与目标数据混淆,从而在推理过程中对目标输入产生误分类。

图 3:特征碰撞攻击:通过精心构造一个中毒样本,使其在经过 CNN 骨干网络处理后,其深度特征表示在特征空间中与目标类别(例如“鸟”)发生重叠。这种碰撞会导致模型在推理过程中将该样本误分类为目标类别。(Maljkovic,2026)

拒绝服务(DoS)投毒攻击是一种非定向投毒攻击,旨在降低模型的整体性能或使其完全失效。攻击者注入大量受损或无意义的样本,使训练过程不堪重负,从而导致模型不稳定或无法使用。

梯度操纵攻击不仅针对模型输出,更旨在影响学习过程本身。在这类攻击中,攻击者注入精心设计的样本,在训练过程中操纵模型的梯度,这可能会导致模型学习速度变慢、收敛到次优解,或者未来更容易受到攻击的影响。

结论

如果你使用的是开放数据集、众包数据集或未经核查的数据集,那么攻击者可能会利用这些数据投毒技术将恶意数据偷偷植入你的训练过程中,而你有可能直到模型开始做出奇怪或错误的预测时才会察觉到问题。

数据投毒攻击的实例

许多资料证实,数据投毒是一种切实存在的威胁,甚至连微软这样的大型科技公司也未能幸免。图 4 中展示的是一个著名案例:微软的聊天机器人 Tay原本是通过在 Twitter(现为 X )上与用户实时互动来学习自然语言的。Tay 是一个在线数据投毒的典型案例:恶意用户利用 Tay 从环境中持续学习的能力,向其输入有害的提示语。结果,Tay 很快就开始生成带有攻击性和种族歧视的言论。

图 4:一条真实的推文,描述了 Tay 被“毒害”的情况。(TayTweets on X,2016 年)

其他聊天机器人也遭遇了与 Tay 相同的命运,例如中国的聊天机器人 BabyQ小冰,以及韩国的聊天机器人 Lee Luda

另一个值得注意的例子是由一个名为“raid”的反犹太主义团体发起的谷歌图片搜索投毒攻击。该团体故意上传了标注错误的带轮便携式烤箱图片,将其虚假标记为“犹太婴儿推车”,企图操纵谷歌的图片搜索结果。攻击发生后,任何搜索“犹太婴儿推车”的人都会看到带有“德国制造”字样的带轮便携式烤箱,这暗指二战期间犹太人所遭受的苦难。由于该攻击手法极其复杂,谷歌的自动内容验证系统未能检测到此次攻击,导致这些被篡改的图片在搜索结果中显得合乎情理。

来自大型组织的经验凸显了一个关键信息:没有任何系统能免受数据投毒的影响。为了防止类似的情况发生,企业必须在强大的数据安全、访问控制、监控以及机器学习管道定期审计方面进行投入。

数据投毒攻击的常见目标域

数据投毒不仅限于某个特定的领域,其影响遍及多个行业和应用场景。以下是攻击者通常重点关注的一些主要领域。

垃圾邮件过滤器是典型的受害者。攻击者可以向用于训练垃圾邮件过滤器的公共数据集或平台提交数十封电子邮件,并将它们标记为非垃圾邮件,即使其中包含有害内容。随着时间的推移,这种对训练数据的篡改会导致基于这些数据训练出的模型将真正的垃圾邮件错误地判断为正常邮件,从而削弱过滤器的有效性。

医疗领域的机器学习系统不仅容易受到训练数据偏见的影响,还可能遭到主动毒化。在某些情况下,恶意行为者会在常规数据提交过程中注入经过篡改的图像,通常是由拥有标准访问权限的内部人员所为。这些被毒化的样本(例如被错误标记为良性的癌性肿瘤)可能长期未被发现,悄无声息地降低了模型性能,尤其是在注入比例较小时。其后果十分严重:导致诊断延误、治疗失误,并削弱人们对自动化医疗系统的信任。

许多杀毒软件解决方案依赖机器学习模型来识别恶意软件。当攻击者将标记为良性的恶意软件样本插入训练数据,或微妙地篡改特征来污染训练数据时,模型就会学习到错误的模式。即使只有少量数据被毒化,也会造成检测盲区,使恶意软件得以躲过检测并入侵系统,而不会触发警报。

检测受污染的训练数据:挑战与方法

检测被毒化的数据绝非易事。最有效的攻击往往经过精心设计,看上去与干净样本毫无差别;当被毒化的数据与训练分布完美融合时,现代异常检测技术就可能会失效。诸如数据去重、基本异常值检测和启发式过滤等传统合理性检查,通常只能发现最简单的篡改行为。

通常,有效的检测策略涉及多种技术的分层组合。诸如标签分布漂移、特征空间异常以及意料之外的聚类密度变化等统计信号,有时能揭示出早期的预警迹象。但这些仅仅只是第一道防线。

有些更强大的方法能更深入地探究模型的内部行为。表征空间分析可以揭示那些偏离模型已学习结构的细微亚群体,而谱分析和基于秩的技术则能突出显示那些表明数据被篡改的几何畸变。基于影响的审计虽然并非完美,但提供了一种方法,可以检查出哪些训练样本对特定预测产生了不成比例的影响,有时还能发现否则会被忽略的异常。跨数据集比较、来源验证以及数据源一致性测试进一步增强了保障力度,特别是在从多个贡献者或采集渠道聚合数据的处理流程中。

即便拥有所有这些工具,检测仍然是一场防御者与攻击者之间持续不断的较量。技术娴熟的攻击者会研究防御机制并加以调整,设计出旨在绕过现有所有防护措施的“毒药”。正因如此,你的检测机制必须像你所面对的攻击者一样富有创造力和适应性,不断演进,采用多层防护策略,而且绝不能孤立地依赖任何单一解决方案。

现实很简单:检测被毒化的数据是一个持续的过程,而不是一次性的审计。这需要保持警惕、发挥创造力,并具备主动出击的决心,以与攻击者技术演变同样的速度迅速作出反应。

利用 IBM 对抗鲁棒性工具箱 (ART) 检测数据投毒

如果你希望超越理论层面,真正地扫描数据检测投毒攻击,可以从 IBM 开源的“对抗鲁棒性工具箱(ART)”入手。它提供了一套工具,用于防御针对机器学习模型的各种攻击,包括对抗性(规避)攻击和投毒攻击。就数据投毒检测而言,ART 包含激活函数聚类、谱特征分析和异常值检测等算法。ART 旨在支持所有主流的机器学习框架,例如 TensorFlow、Keras、PyTorch、scikit-learn、XGBoost、LightGBM、CatBoost 和 GPy。

如图 5 所示,将 ART 集成到你的处理流程中非常简单。例如,如果你怀疑图像分类数据集可能包含后门样本,就可以使用 ART 的 ActivationDefense 模块,它能从训练好的模型中提取内部激活值,并应用聚类技术来标记可疑样本组。

图 5:ART 的 ActivationDefense 用于在训练数据中检测后门的示例,假设使用了与 ART 兼容的分类器以及带标签的训练数据。(对抗鲁棒工具箱(ART),2021)

需要特别指出的是,截至目前,尚无检测数据投毒的“灵丹妙药”。在现有方案中,ART 作为最全面的开源工具包脱颖而出。它提供了一种实用且易于上手的方式,用于实验和评估基于学术研究的各种检测与防御技术。虽然对于希望评估和增强其机器学习管道韧性的团队而言,ART 是一个绝佳的起点,但它仍然主要是一款以研究为导向的工具,可能并不具备大规模生产部署所需的所有功能、支持或鲁棒性。对于希望亲手实践数据投毒防御的 IT 专业人士来说,ART 目前是开始探索防护措施的最佳途径。

然而,对于需要生产级安全、监控和保障的组织而言,建议咨询或与专注于高级数据投毒检测及更广泛机器学习威胁缓解的技术领先的 AI 安全公司建立合作关系。

保证 ML 训练管道安全的技术

保障机器学习管道的安全性与设计算法本身同样重要。典型的机器学习管道包括数据采集、预处理、特征工程、模型训练、测试、部署和监控等阶段。每个阶段都存在特有的漏洞,但数据采集阶段尤其容易受到数据投毒攻击。为了降低这些风险,组织应该将传统的网络安全措施与针对机器学习的专用防御措施结合起来。

传统的安全控制

  • 基于角色的访问控制(RBAC)仅允许持有有效凭证的授权人员访问数据存储和采集系统。

  • 数据访问策略明确规定了谁可以在何种条件下访问哪些数据集,从而减少了滥用的可能性。

  • 安全的数据存储确保训练数据在静止状态下可以得到保护,例如通过加密和防火墙等措施。

ML 特有的控制

数据有效性检查与验证

通过实施或采用自动验证检查,并在可行的情况下通过冗余标注或共识标注来审查标签,确保所有的训练数据均符合预期的格式、分布和标签标准。可以考虑使用 TensorFlow Data Validation(TFDV)和 Great Expectations 等工具。

完整性检查与数据溯源追踪

确保传入的数据真实可靠、未被篡改,而且其来源和转换历史完全可追溯。可以通过校验和、数字签名以及版本控制工具(如数据版本控制(DVC)或 LakeFS)来实现这一控制措施。

数据分离

明确分离训练数据和生产数据,降低训练数据集遭到泄露的风险。

持续监控和审计

定期检查数据源是否存在异常并进行审计,以便发现任何篡改或未经授权的更改。

异常检测

运用统计或基于模型的工具(例如 TFDV 或自定义工具)标记异常的数据变化、标注不一致或其他非典型模式,这些现象可能预示着数据中毒的早期迹象。

基于参考数据集的完整性检查

使用受控的参考数据集和可追溯的输入,如金丝雀样本(经过精心设计且结果已知的数据点)和黄金数据集(由可信且经过验证的样本组成的数据集),持续检测模型是否存在意外行为。基于这些可信基准跟踪模型性能,有助于识别那些常规异常检测技术可能忽略的分布偏移或细微的完整性问题。

鲁棒性训练

鲁棒性训练是指通过调整训练过程,减小中毒样本对模型的影响。这种方法通过限制恶意样本的影响来减轻其总体影响,从而缓解投毒攻击。常见的策略包括增加正则化、在训练过程中引入噪声或对抗性中毒样本,以及使用对篡改过的数据不那么敏感的损失函数。

结论与要点:防范数据投毒

防御的第一步是承认“完美的数据卫生”只是个神话,采取多层防护措施至关重要。在数据进入训练管道之前,务必对其进行验证;限制数据集的贡献者范围;利用强大的数据溯源工具追踪每一处变更。运用 TFDV、Great Expectations 以及自定义异常检测器等自动化工具,结合金丝雀样本和黄金数据集,及早发现分布偏移和数据完整性问题。将这些措施与生产环境的持续监控相结合,检测可能预示着投毒攻击企图的细微性能下降或异常激活模式。

随着攻击者手段的日益高明,检测工具也在争分夺秒地跟进。我们必须认识到,数据投毒的风险永远不会为零。模型将越来越多地与规模更大、种类更丰富、噪声更强的数据集进行整合,因此,建立完善的溯源追踪、训练、异常检测以及团队内部知识共享流程,将成为防御体系中至关重要的组成部分。

归根结底,防范数据投毒是一个持续的过程,需要保持警惕、开展跨学科协作,并在出现新威胁时保持灵活应变的思维。能否成功取决于持续的研究、检测工具的进步,以及机器学习社区内最佳实践的开放共享。

如果你的模型对业务而言至关重要,请立即将数据完整性和安全性列为优先事项,不要等到发生数据泄露才被迫采取行动!

本文是“保障 AI 技术栈安全:从模型到生产环境”系列文章的一部分。本系列文章提供了迈向机器时代的路线图,探讨如何通过分层防御、稳健的 MLOps 以及集成治理,将存在安全漏洞的原型转变为具有韧性的系统。

原文链接:https://www.infoq.com/articles/understanding-ml-model-poisoning/