像 Hugging Face 这样的AI模型平台,很容易受到攻击者多年来通过 npm、PyPI 和其他开源存储库成功执行的同类攻击的影响
Hugging Face 等AI模型存储库为攻击者提供了与 npm 和 PyPI 等开源公共存储库相同的将恶意代码植入开发环境的机会。
在今年 4 月即将举行的 Black Hat Asia 演讲中,题为“混淆学习:通过AI模型进行供应链攻击”,来自 Dropbox 的两名研究人员将演示攻击者可通过 Hugging Face 上的 ML 模型分发恶意软件的多种技术。这些技术类似于攻击者多年来成功使用的将恶意软件上传到开源代码存储库的技术,并强调组织需要在使用AI模型前实施控制以彻底检查AI模型。
Dropbox 安全工程师阿德里安·伍德 (Adrian Wood) 表示:“AI管道是一种全新的供应链攻击媒介,公司需要了解他们正在执行哪些行为以及使用沙箱来保护自己。” “AI模型不是纯函数。它们是可被利用的成熟的恶意软件载体。”
Hugging Face 等存储库是一个有吸引力的目标,因为AI模型使攻击者能够访问敏感信息和环境。Dropbox 的安全工程师、Black Hat Asia 论文的合著者 Mary Walker 表示,它们也相对较新。沃克说,从某种程度上来说,Hugging Face是一种全新的平台。“如果你看看他们的热门模型,你通常会发现某个模型突然变得流行,而且是一些不知名的用户放在那里的。人们使用的并不总是值得信赖的模型,”她说。
AI管道,一个新兴目标
Hugging Face 是 ML 工具、数据集和模型的存储库,开发人员可以下载并集成到自己的项目中。与许多公共代码存储库一样,它允许开发人员创建和上传自己的 ML 模型,或查找符合其要求的模型。Hugging Face 的安全控制包括扫描存储库中的恶意软件、漏洞、密钥和敏感信息。它还提供了一种名为Safetensors 的格式,允许开发人员更安全地存储和上传大型张量 - 或AI模型中的核心数据结构。
即便如此,该存储库以及其他AI模型存储库为攻击者提供了上传恶意模型的机会,使得开发人员不经意下载并在项目中使用它们。
例如,Wood 发现攻击者在服务中注册一个看似属于知名组织的命名空间。几乎没有什么可以阻止攻击者使用该命名空间来欺骗该组织的真正用户往其上传 ML 模型——攻击者可能会随意投毒。
Wood说,事实上,当他注册一个似乎属于某个知名品牌的命名空间时,他甚至不需要通过欺骗让该组织的用户上传模型。相反,这些组织的软件工程师和AI工程师直接联系他,请求加入该命名空间,以便他们可以将AI模型上传到其中,然后Wood可以随意设置后门。
Wood 表示,除了此类“域名抢注”攻击之外,攻击者还可以通过其他途径将恶意软件潜入 Hugging Face 等存储库上的 ML 模型中,例如,使用具有诱导名称的模型。另一个例子是模型混淆攻击,攻击者可能会发现项目中私有依赖项的名称,然后使用相应的名称创建公共恶意依赖项。过去,此类针对 npm 和 PyPI 等开源存储库的混淆攻击已导致内部项目默认使用同名的恶意依赖项。
ML 存储库中的恶意软件
攻击者已经开始将AI存储库视为潜在的供应链攻击媒介。例如,就在今年早些时候,JFrog 的研究人员在 Hugging Face 上发现了一个恶意 ML 模型,该模型在加载后会执行恶意代码,使攻击者能够完全控制受害者机器。在这种情况下,该模型使用了一种名为“pickle”的文件格式,JFrog 将其描述为序列化 Python 对象的通用格式。
JFrog 指出:“当从不受信任的来源加载某些类型的AI模型时,可能会发生代码执行。” “例如,某些模型使用‘pickle’格式,这是序列化 Python 对象的常见格式。但是,pickle 文件也可以包含加载文件时执行的任意代码。”
Wood 的演示涉及使用 Keras 库和 Tensorflow 作为后端引擎将恶意软件注入到模型中。Wood 发现 Keras 模型为攻击者提供了一种在后台执行任意代码的方法,同时让模型完全按照预期的方式执行。其他攻击者则使用了不同的方法。例如,2020 年,HiddenLayer 的研究人员使用类似于隐写术的方法将勒索软件可执行文件嵌入到模型中,然后使用 pickle 加载它。
来源:darkreading