研究人员揭露针对机器学习模型而来的攻击手法Sleepy Pickle

资安业者Trail of Bits揭露一旦这种恶意Pickle档案载入后,攻击者就有机会进行中间人攻击(MitM)、供应链攻击、网路钓鱼、利用系统特定的弱点。

一般而言,攻击者要直接利用Pickle档案格式的漏洞造成损害并不容易,但研究人员指出,Sleepy Pickle能用于破坏机器学习模型,使得Pickle档案格式的弱点危害更加显著。

究竟什么是Sleepy Pickle?研究人员利用前述提及的Fickling,将自订函数功能(恶意酬载)注入内含序列化机器学习模型的Pickle档案,接著,他们透过中间人攻击、供应链攻击、社交工程等手法,将恶意Pickle档案传送至受害者的系统,一旦该档案在受害系统进行反序列化,恶意酬载就会启动,在模型植入后门、控制输出的内容,或是在资料回传给使用者之前进行窜改。

研究人员指出,攻击者可借由模型参数或是模型程式码两种面向,发动Sleepy Pickle攻击,而且,他们可以借此维持存取机器学习模型,还能回避资安团队的侦测。

当骇客的档案在Python处理程序载入时,机器学习模型就会遭到破坏,而且,不会在磁碟留下痕迹;再者,由于这种手法仅依赖单一Pickle档案,因此攻击者无须对系统其他部分进行存取;其次,则是攻击者透过反序列化过程动态修改模型,使得静态资安分析系统难以察觉模型的变更。

最重要的是,这种攻击手法具备高度弹性。研究人员举例,骇客可设计恶意酬载,以Python程式库扫描底层系统,或是检查时区、日期,然后在符合特定条件的环境才会启动。这样做使得相关攻击变得难以侦测,而且攻击者可锁定特定系统及组织犯案。

这种专门锁定Pickle档案的手法,Sleepy Pickle并非首例。先前有针对