一、总体框架
对象:深度学习模型
目的:通过修改深度学习模型在内存中对应的数据逻辑、参数来在特定的输入集上实现预定义的恶意行为。
优化:减少patches的大小和数量,以此减少网络通信和内存覆盖的数量,使木马能够更有效地进行隐藏。
实现:在Windows和Linux上完成了对TensorFlow模型参数的实时攻击。
先进性:可以绕过STRIP的实时木马检测技术。
二、研究背景
已有的研究背景

本文提出的方法
思想
利用经典的软件漏洞,通过操纵其在内存中的数据实现对机器学习系统的实时攻击(白盒)。
前提
攻击者已经通过社会工程学或0day漏洞等技术在生产系统上获得了特权访问权限,能够在其上运行指定的代码。
理论
机器学习系统的输出由其经过训练的参数决定,这些参数提供对输入的转换以产生输出。通过在运行时更改这些网络参数,网络的行为将相应地发生变化,从而使攻击者能够控制系统——无需显式修改控制流或对系统进行持久更改。
优势
深度神经网络依赖无法解释的权重和偏差参数(黑盒特性),可以更好地隐藏攻击手段。
对比
上述已有的研究表明,神经网络的后门攻击是可行的,但不能进行实时攻击,因为其需要修改大量的模型参数,这在实时条件下是不可行的,由于目前通常使用的入侵检测系统旨在应对异常的网络活动,攻击者为了保持隐身需要最大程度上减少模型参数的修改范围和次数已经运行程序的大小。
挑战
上述两种运行时防御会对该方法产生挑战,但这些防御措施依赖于一些可解释性的概念如STRI中的熵以及Februus中的Grad-CAM,在本文方法中攻击者通过操作可以绕过这些防御。
三、攻击模型
准备工作
Windows的管理员权限/Linux的root用户
操作进程地址空间中的数据方法:
- Windows:可以通过使用DLL注入技术通过远程线程来完成
- Linux:可以通过/proc/[PID]/map和/proc/[PID]/mem接口直接完成
攻击方式
在找到内存中神经网络权重所在之后,攻击者可采用多种方式来进行攻击。
- 随机化权重参数或直接设置为0(破坏性攻击)
- 通过攻击者训练的恶意权重来改变网络在特定输入上的行为来执行更复杂的木马后门攻击
攻击流程
获取系统信息
提取指定系统的镜像
- 固件(汽车之类)
- OS(Windows,OS X,Linux)
利用VM等虚拟机技术
电子取证和逆向工程
固件:Binwalk查找签名
OS:Volatility等研究VM快照中文件系统和实时内存
对于OS的情况有:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0IAWlA8E-1682651823775)(null#pic_center)]
恶意软件工程
神经网络的神经元连续存储在内存中。
恶意软件需要权重数据的一个子集来进行搜索用于定位其在内存中的位置。(前8个字节)
攻击实现
之前的研究均基于第一步所获取的系统映像,而真实的环境下,权重的数值以及其在内存中位置有可能发生改变,所以对真实攻击所需的补丁大小可能以MB为单位,需要对其做一些限制以增强隐蔽性。
四、攻击方法
再训练
训练一个带有木马后门的模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E9aaqIjG-1682651823798)(null#pic_center)]
为了减少网络通信量,攻击者可以不选择将全部权重进行替换而是根据计算的梯度,选择少量影响度

本文探讨了一种针对深度学习模型的实时木马攻击方法,通过操纵内存中的模型参数,能够在特定输入上触发预定义的恶意行为。攻击者利用软件漏洞,减少参数修改的大小和数量以提高隐蔽性,并在Windows和Linux平台上实现了对TensorFlow模型的攻击。该方法能绕过STRIP等实时检测技术。文章详细描述了攻击流程、攻击模型以及在不同模型上的实验结果,证明了即使有限的数据也可实现有效的攻击,并提出了绕过STRIP防御的策略。
最低0.47元/天 解锁文章
966

被折叠的 条评论
为什么被折叠?



