文章插图
近日,中国科学院大学(国科大)团队研究发现,神经网络将成为“病毒软件”肆意传播的下一个阵地。他们在arXiv提交的一篇题为“EvilModel: Hiding Malware Inside of Neural Network Models”的论文表明,恶意软件可以直接被嵌入到机器学习模型的“人工神经元”中,并且几乎不会影响模型的性能。
文章插图
论文地址:https://arxiv.org/pdf/2107.08590v1.pdf具体而言,由于模型的解释性差和泛化能力强,通过神经网络嵌入恶意软件可以使模型在性能没有影响或影响很小的情况下秘密传播,他们发现,使用真实的恶意软件替换AlexNet模型中50%左右的神经元,模型的准确率仍保持在93.1%以上。同时,由于神经网络的结构保持不变,这些大量恶意软件成功地规避了防病毒引擎的安全扫描。论文中写道,经过实验表明,在1%的准确率损失范围内,一个178MB的AlexNet模型可以嵌入36.9MB的恶意软件,并且VirusTotal中的反病毒引擎没有给出任何可疑提示。作者表示,随着人工智能的广泛应用,神经网络将成为恶意软件传播的载体。
在本篇论文中,作者以黑客的身份讲述了如何将大量恶意软件嵌入机器学习模型,而不被发现的方法。僵尸网络,勒索软件,APT等恶意软件是计算机安全的主要威胁。在维护过程中,攻击者需要向受感染者发送命令和状态,并规避一些敏感数据。同时,攻击者还需要向其发送自定义的有效负载,以针对特定任务实施攻击。为了规避检测和软件追踪,以上命令、有效载荷和其他组件的传递必须秘密进行。常用的秘密传递的方法包括Hammertoss(APT-29)、Pony以及Glupteba19,这些方法不需要攻击者部署服务器,从而避免了防御者通过摧毁中心服务器来抵制恶意软件的行为。还有一些攻击者将恶意软件附加到了图像、文档、压缩文件等载体的背面,并确保载体结构不受损坏。不过这些方法都难以逃过反病毒引擎的检测。最先进的一种隐藏传递消息的方法被称为隐写术(steganography),它可以将秘密信息以不同的方式嵌入到普通文件中。在隐写术中,数据通常会被隐藏在图像像素最低的有效位(LSB)中。如灰度图像的像素在0到255之间,当它用二进制表示时,最低有效位对图像的外观几乎没有影响,因此便于信息的隐藏。但由于信道容量较低,该方法并不适用于嵌入大量恶意软件。此前,腾讯研究人员提出了一种在神经网络模型中隐藏恶意软件的方法。这种方法类似于使用LSB的图像隐写( image steganography)功能——通过将模型中参数的最后几位修改为恶意代码,使其在不影响原始模型性能的前提下,将恶意负载秘密地传递给目标设备。由于PyTorch、TensorFlow等常用框架的模型参数是32位浮点数,权值较低,该方法并不会对神经网络的全局判断造成明显影响。与腾讯修改一个参数的LSB不同,中科院大学研究团队修改了整个神经元来嵌入恶意软件。一般而言,隐藏层神经元会影响神经网络的分类结果,因而其参数往往是固定的,然而研究人员发现,由于隐藏层中存在冗余神经元,一些神经元的变化对神经网络的性能影响并不大。此外,在模型结构不变的情况下,隐藏的恶意软件可以规避反病毒引擎的检测。因此,通过对神经元的修改可以将恶意软件隐蔽地嵌入并传递到目标设备中。