微软和英特尔一直在合作开发一种新的恶意软件检测方法,该方法涉及深度学习和将恶意软件表示为图像。
这项研究被称为STAtic恶意软件-图像网络分析(STAMINA),该研究利用英特尔先前通过深度转移学习进行的静态恶意软件分类研究,并将其应用于Microsoft的真实数据集,以确定其实用价值。
该方法基于对绘制为灰度图像的恶意软件二进制文件的检查,这表明来自相同恶意软件系列的二进制文件之间在结构上和结构上相似,不同家族之间或恶意软件与良性软件之间存在差异。
在有关STAMINA的白皮书中,来自英特尔(李震和Ravi Sahita)和微软(Jugal Parikh和Marc Marino)的研究人员认为,由于签名的迅速增加,依赖签名匹配的经典恶意软件检测方法变得不那么直接了,而静态和动态方法可能不准确或不省时。
研究人员解释说,STAMINA包含四个步骤:预处理(图像转换),转移学习,评估和解释。
预处理涉及像素转换(创建像素流:每个字节获取一个介于0到255之间的值,直接对应于像素强度),整形(像素流转换为二维:宽度和高度由转换后的文件大小确定)并调整大小(“调整为224或299,以便可以使用ImageNet上训练的图像模型对图像进行微调”)。
接下来,采用转移学习来训练用于静态恶意软件分类的恶意软件分类器。该步骤是在预处理步骤中对恶意软件和良性图像执行的,但是研究人员指出,实际上,由于数据集的限制,很难从头开始训练整个深度神经网络。
研究人员指出:“在计算机视觉空间中,对于特定任务,使用了在大量图像上预先训练的模型,并在目标任务上进行了转移学习。”
在评估步骤中,研究人员查看了他们方法的准确性,即“假阳性率,准确性,召回率,F1得分以及接收器工作曲线(ROC)下的面积”。这项研究是在Microsoft数据集上进行的,该数据集包含220万个恶意软件二进制散列以及10列数据信息(分为60:20:20的分段,用于训练,验证和测试集)。
白皮书写道:“尤其是,根据恶意软件分析从业人员的反馈,我们还报告称,通过ROC召回的误报率为0.1%–10%。”
测试显示,STAMINA可以达到99.07%的准确度,假阳性率为2.58%(精度为99.09%,召回率为99.66%)。
但是,该方法仅在应用于小型应用程序时才有效。对于大型软件,STAMINA的效果较差,因为该软件无法将“数十亿像素转换为JPEG图像”,然后对其进行调整大小,从而使基于元数据的方法在这种情况下更具优势。
“对于将来的工作,我们想评估使用二进制的中间表示形式和通过深度学习方法从二进制中提取的信息的混合模型-这些数据集预计会更大,但可能会提供更高的准确性。我们还将继续为我们的深度学习模型探索平台加速优化,以便我们能够以对最终用户最小的功率和性能影响来部署这种检测技术。”研究人员总结道。