随着一种被称为“Sleepy Pickle”的新型“混合机器学习 (ML) 模型攻击技术”的发现, Pickle 格式所带来的安全风险再次凸显出来。
根据 Trail of Bits 的说法,这种攻击方法利用用于打包和分发机器学习 (ML) 模型的普遍格式来破坏模型本身,对组织的下游客户构成严重的供应链风险。
安全研究员 Boyan Milanov表示:“Sleepy Pickle 是一种隐秘而新颖的攻击技术,其目标是 ML 模型本身,而不是底层系统。”
虽然 pickle 是PyTorch等机器学习库广泛使用的序列化格式,但只需加载 pickle 文件(即在反序列化期间)即可用它来执行 任意代码执行攻击。
Hugging Face在其文档中指出:“我们建议加载来自您信任的用户和组织的模型,依靠签名的提交,和/或使用 from_tf=True 自动转换机制从 [TensorFlow] 或 Jax 格式加载模型。”
Sleepy Pickle 的工作原理是,使用Fickling等开源工具将有效负载插入 pickle 文件中,然后使用中间人 (AitM) 攻击、网络钓鱼、供应链入侵或利用系统弱点等四种技术之一将其传送到目标主机。
米拉诺夫说:“当文件在受害者的系统上被反序列化时,有效载荷就会被执行,并就地修改所包含的模型,以插入后门、控制输出或篡改处理后的数据,然后再将其返回给用户。”
换句话说,注入到包含序列化 ML 模型的 pickle 文件中的有效负载可能会被滥用,通过篡改模型权重或篡改模型处理的输入和输出数据来改变模型行为。
在假设的攻击场景中,该方法可用于生成有害输出或错误信息,可能对用户安全造成灾难性后果(例如,喝漂白剂来治疗流感),在满足某些条件时窃取用户数据,并通过生成带有指向钓鱼页面的链接的新闻文章摘要间接攻击用户。
Trail of Bits 表示,由于在 Python 进程中加载 pickle 文件时模型会受到威胁,因此威胁行为者可以利用 Sleepy Pickle 武器化,以逃避检测的方式秘密访问 ML 系统。
这也比直接将恶意模型上传到 Hugging Face 更有效,因为它可以动态修改模型行为或输出,而无需诱使目标下载和运行它们。
“利用 Sleepy Pickle,攻击者可以创建不是 ML 模型的 pickle 文件,但如果一起加载,仍会破坏本地模型,”Milanov 说道。“因此,攻击面更加广泛,因为控制目标组织供应链中的任何 pickle 文件都足以攻击他们的模型。”
“Sleepy Pickle 证明高级模型级攻击可以利用较低级别的供应链弱点通过底层软件组件与最终应用程序之间的连接实现。”
文章来源:https://thehackernews.com/2024/06/new-attack-technique-sleepy-pickle.html
【免费领】网络安全专业入门与进阶学习资料,轻松掌握网络安全技能!