通过 AI 系统进行隐藏逻辑、数据中毒和其他有针对性的攻击方法。
在未来几十年里,与 AI 系统相关的安全风险将成为研究人员工作的主要重点。目前探索最少的风险之一是 AI 模型木马化的可能性。这涉及将隐藏的功能或故意错误嵌入到乍一看似乎正常工作的机器学习系统中。创建此类特洛伊木马的方法多种多样,其复杂性和范围各不相同,并且必须防范这些方法。
模型中的恶意代码
某些 ML 模型存储格式可以包含可执行代码。例如,在以 pickle 格式加载文件时,可以执行任意代码,pickle 格式是用于数据序列化的标准 Python 格式(将数据转换为便于存储和传输的形式)。具体而言,此格式用于深度学习库 PyTorch。在另一个流行的机器学习库 TensorFlow 中,.keras 和 HDF5 格式的模型支持“lambda 层”,该层也执行任意 Python 命令。此代码可以轻松隐藏恶意功能。
TensorFlow 的文档包括一个警告,指出 TensorFlow 模型可以读取和写入文件、发送和接收网络数据,甚至启动子进程。换句话说,它本质上是一个成熟的程序。
恶意代码可以在加载 ML 模型后立即激活。2024 年 2 月,在流行的公共模型存储库 Hugging Face 中发现了大约 100 个具有恶意功能的模型。其中,20% 在受感染设备上创建了反向 shell,10% 启动了其他软件。
训练数据集中毒
在训练阶段,可以通过操纵初始数据集对模型进行木马化。此过程称为数据中毒,可以是有针对性的,也可以是非有针对性的。目标中毒会训练模型在特定情况下无法正常工作(例如,总是声称 Yuri Gagarin 是月球上的第一个人)。非靶向中毒旨在降低模型的整体质量。
在经过训练的模型中很难检测到针对性攻击,因为它们需要非常具体的输入数据。但是,对大型模型的输入数据造成毒害的成本很高,因为它需要在不被检测到的情况下更改大量数据。
在实践中,存在已知的操纵模型在运行时继续学习的情况。最引人注目的例子是 Microsoft 的 Tay 聊天机器人中毒事件,该机器人在不到一天的时间内就接受了表达种族主义和极端主义观点的训练。一个更实际的例子是试图毒害 Gmail 的垃圾邮件分类器。在这里,攻击者将数以万计的垃圾邮件标记为合法电子邮件,以允许更多垃圾邮件进入用户收件箱。
通过更改带注释的数据集中的训练标签,或者将中毒数据注入预训练模型的微调过程,可以实现相同的目标。
影子逻辑
恶意修改人工智能系统的一种新方法是将额外的分支引入模型的计算图中。这种攻击不涉及可执行代码或篡改训练过程,但修改后的模型可以响应特定的预定输入数据表现出所需的行为。
这种攻击利用了机器学习模型使用计算图来构建训练和执行所需的计算这一事实。该图描述了神经网络块的连接顺序并定义了它们的操作参数。计算图是为每个模型单独设计的,尽管在某些 ML 模型架构中它们是动态的。
研究人员已经证明,可以通过在其操作的初始阶段添加一个分支来修改已经训练过的模型的计算图,该分支可以检测输入数据中的“特殊信号”;检测到后,模型将被引导在单独编程的逻辑下运行。在这项研究的一个例子中,流行的视频对象检测模型 YOLO 被修改为如果画面中还有杯子,则忽略画面中的人。
这种方法的危险之处在于它适用于任何模型,无论存储格式、模态或应用范围如何。可以为自然语言处理、对象检测、分类任务和多模态语言模型实现后门。而且,即使模型经过进一步的训练和微调,这种修改也可以保留下来。
如何保护 AI 模型免受后门攻击
一项关键的安全措施是对供应链进行全面控制。这意味着要确保 AI 系统中每个组件的来源都是已知的,并且没有被恶意修改,包括:
-
运行 AI 模型的代码
-
模型运行的计算环境(通常是云托管)
-
模型的文件
-
用于训练的数据
-
用于微调的数据
主要的 ML 存储库正在逐步实施数字签名以验证模型的来源和代码。
在无法严格控制数据和代码来源的情况下,应避免使用来自可疑来源的模型,而应选择信誉良好的提供商的产品。
使用安全格式存储 ML 模型也很重要。在 Hugging Face 存储库中,加载能够执行代码的模型时会显示警告;此外,主要的模型存储格式是 Safetensor,它会阻止代码执行。
原文始发于微信公众号(卡巴斯基网络安全大百科):人工智能模型中的特洛伊木马
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论