【51CTO.com快译】深度学习模型拥有数以百万计甚至数十亿计的数值参数,因此可以做很多事情:检测照片中的物体、识别语音、生成文本,甚至隐藏恶意软件。加州大学圣迭戈分校和伊利诺伊大学的研究人员发现,神经网络可以嵌入恶意软件中而不会触发反恶意软件。
恶意软件隐藏技术EvilModel揭示了深度学习的安全问题,这已经成为机器学习和网络安全会议的一个热门讨论话题。随着深度学习在人们使用的应用程序中逐渐深入,安全社区需要考虑新的方法来保护用户免受新出现的威胁。
将恶意软件隐藏在深度学习模型中
每个深度学习模型都由多层人工神经元组成。根据层的类型,每个神经元与上一层和下一层的所有或部分神经元都有连接。这些连接的强度是由训练过程中的数值参数定义的,因为深度学习模型学习了它所设计的任务。大型神经网络可能包含数亿个甚至数十亿个参数。
EvilModel的工作流是一种在神经网络中嵌入恶意软件的技术
EvilModel背后的主要想法是将恶意软件嵌入到神经网络的参数中,使恶意软件扫描对其不可见。这是隐写术的一种形式,可以将一条信息隐藏在另一条信息中。
与此同时,受感染的深度学习模型必须执行其主要任务(例如图像分类)与干净的模型一样好或几乎一样好,以避免引起怀疑或使其对受害者无效。
最后,网络攻击者必须有一种机制,将受感染的模型发送到目标设备,并从神经网络的参数中提取恶意软件。
改变参数值
大多数深度学习模型使用32位(4字节)浮点数来存储参数值。根据研究人员的实验,网络攻击者可以在每个参数中存储多达3字节的恶意软件,而不会显著影响其参数值。
神经网络中的每个参数都由一个4字节的浮点数组成。研究人员表示,最多可以使用3个字节来嵌入恶意代码,而不会显著改变数字的值。
当感染深度学习模型时,网络攻击者将恶意软件分解为3个字节的片段,并将数据嵌入到其参数中。为了将恶意软件交付给目标,网络攻击者可以将受感染的神经网络发布到包含深度学习模型(如GitHub或TorchHub)的几个在线位置之一。或者,网络攻击者可以实施一种更复杂的供应链攻击形式,其中受感染的模型通过自动更新目标设备上安装的软件来交付。
一旦被感染的模型被交付给受害者,一个软件提取有效载荷并执行它。
将恶意软件隐藏在卷积神经网络中
为了验证EvilModel的可行性,研究人员在几个卷积神经网络(CNN)上进行了测试。其中几个原因使卷积神经网络(CNN)成为一项有趣的研究。首先,它们的规模相当大,通常包含数十个层以及数百万个参数。其次,它们包含不同的架构,并包含不同类型的层(全连接层、卷积层)和不同的泛化技术(批标准化层、退出层、池化层等),这使得评估在不同设置中嵌入恶意软件的影响成为可能。第三,卷积神经网络(CNN广泛应用于计算机视觉应用中,这可能使它们成为恶意攻击者的首要目标。最后,有许多预先训练的卷积神经网络(CNN)可以不做任何修改就集成到应用程序中,许多开发人员在他们的应用程序中使用预先训练的卷积神经网络(CNN),而不一定需要知道深度学习在底层是如何工作的。
研究人员首先尝试在AlexNet中嵌入恶意软件,这是一个受欢迎的卷积神经网络(CNN),在2012年帮助恢复了人们对深度学习的兴趣。AlexNet有178兆字节,有5个卷积层和3个密集(或全连接)层。
AlexNet卷积神经网络(CNN)
当AlexNet使用批处理标准化技术进行训练时,研究人员能够在模型中嵌入26.8兆字节的恶意软件,同时将其准确性保持在干净版本的1%以内。批标准化层是一种在深度学习模型中运行之前将训练示例分组标准化的技术。如果他们增加了恶意软件的数据量,那么准确度将会开始显著下降。
接下来,他们试图在感染该模型后对其进行再训练。通过冻结受感染的神经元,他们防止它们在额外的训练周期中被修改。通过批量标准化和再训练,研究人员可以将恶意软件数据的容量增加到36.9兆字节,同时保持模型的准确性在90%以上。
左图:当被恶意软件感染时,更深层次的神经网络可以保持其准确性。右图:批标准化层和感染后再训练提高了模型的准确性
这些模型来自InQuest数据库的8个感染样本,所有这些样本都被在线VirusTotal扫描仪识别为恶意软件。一旦样本被嵌入神经网络,整个模型就被上传到VirusTotal,但被标记为安全的,这证明恶意软件隐藏得很好。
研究人员在其他几个卷积神经网络(CNN) 架构上测试了这项技术,其中包括VGG、Resnet、Inception和Mobilenet。他们得到了类似的结果,这表明恶意嵌入是对大型神经网络的普遍威胁。
确保机器学习管道
由于恶意软件扫描仪无法检测到嵌入在深度学习模型中的恶意有效载荷,对付EvilModel的唯一办法就是销毁恶意软件。
负载仅在其字节保持完整的情况下才保持其完整性。因此,如果接收EvilModel的人员在不冻结受感染层的情况下重新训练神经网络,其参数值就会改变,恶意软件的数据就会被销毁。甚至一个阶段的训练就足以摧毁深度学习模型中嵌入的任何恶意软件。
然而,大多数开发人员使用预先训练过的模型,除非他们想针对另一个应用程序对其进行微调。某些形式的微调会冻结网络中大多数现有的层,其中可能包括受感染的层。
这意味着,除了对抗性攻击、数据中毒、成员推断和其他已知的安全问题之外,感染恶意软件的神经网络对深度学习的未来构成了真正的威胁。
对抗性机器学习威胁矩阵提供机器学习管道中的弱点
机器学习模型与经典的基于规则的软件之间的差异需要新的方法来考虑安全威胁。今年早些时候,一些组织引入了对抗性机器学习威胁矩阵,该框架有助于发现机器学习管道中的弱点并修补安全漏洞。
虽然威胁矩阵侧重于对抗性攻击,但其方法也适用于诸如恶意攻击等威胁。在研究人员找到更可靠的方法来检测和阻止深层神经网络中的恶意软件之前,必须在机器学习管道中建立信任链。由于知道恶意软件扫描程序和静态分析工具无法检测受感染的模型,开发人员必须确保他们的模型来自可信的来源,并且训练数据和学习参数的来源不会被破坏。当继续学习深度学习的安全性时,必须警惕在分析照片和识别声音时的数以百万计的数值参数背后隐藏着什么。
原文标题:Neural networks can hide malware, researchers find,作者:Ben Dickson
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】