当前位置: 首页 > 科技观察

深度学习如何广泛用于恶意软件检测和分类_0

时间:2023-03-18 11:24:52 科技观察

人工智能(AI)在过去十年中不断发展并取得了长足进步。深度学习(DL,DeepLearning)是机器学习(ML,MachineLearning)领域的一个新的研究方向。深度学习就是学习样本数据的内在规律和表征层次。和声音等数据的解释有很大帮助。其最终目标是让机器具备像人类一样的分析和学习能力,能够识别文本、图像、声音等数据。深度学习是一种复杂的机器学习算法,在语音和图像识别方面取得了远超以往相关技术的成果。深度学习在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术等相关领域取得了诸多成果。深度学习使机器能够模仿人类的视听、思维等活动,解决了很多复杂的模式识别问题,使人工智能相关技术取得了长足的进步。目前,深度学习可以应用于图像分割、基于氨基酸序列预测任意蛋白质的三维结构、机器翻译、语音识别等。近年来,深度学习被应用于恶意软件分析。不同类型的深度学习算法,如卷积神经网络(CNN)、递归神经网络和前馈网络,已应用于使用字节序列、灰度图像、结构熵、API调用序列、HTTP流量的恶意软件分析的各种用例和网络行为。大多数传统的机器学习恶意软件分类和检测方法都依赖于手工制作的特征。这些特征是根据具有领域知识的专家选择的。特征工程可能是一个非常耗时的过程,并且手工制作的特征可能无法很好地泛化到新型恶意软件。在本文中,McAfee研究人员简要描述了如何将CNN应用于原始字节以检测真实数据中的恶意软件并对其进行分类。将CNN深度学习应用于原始字节的动机是识别原始字节中的新模式。这项工作的新颖之处在于三个方面。首先,没有特定领域的特征提取和预处理。其次,这是一种端到端的深度学习方法。它还可以执行端到端分类。它还可以用作特征增强的特征提取器。最后,可解释人工智能(XAI)提供了对CNN决策的洞察力,并帮助人们识别不同恶意软件家族中有趣的模式。如图1所示,输入只有原始字节和标签。CNN通过表示学习自动学习特征并对恶意软件进行分类。实验结果为了进行恶意软件检测实验,研究人员首先收集了833,000个不同的二进制样本(受污染的和干净的),跨越多个家族、编译器和不同的“首次发现”时间段。有很多来自普通家族的样本,尽管它们确实使用了不同的包装器和混淆器。测试时,研究人员会执行完整性检查以移除损坏的、尺寸过大或尺寸过小的样本。在符合健全性检查标准的样本中,研究人员从这些样本中提取原始字节,并使用它们进行多项实验。数据按80%/20%的比例随机分成训练集和测试集。研究人员使用这个数据集进行了三个实验。在研究人员的第一个实验中,来自833,000个样本的原始字节被返回到CNN,在接受者操作曲线(ROC)下的区域中的性能精度为0.9953。最初运行的一项观察是,在从833,000个独特样本中提取原始字节后,研究人员确实发现了重复的原始字节条目。这主要是由于恶意软件家族利用散列分解作为多态性方法。因此,在研究人员的第二个实验中,研究人员对提取的原始字节项进行了去重。这将原始字节输入向量计数减少到262,000个样本,ROC下的试验区域为0.9920。在第三个实验中,研究人员尝试了多家族恶意软件分类。研究人员从原始集合中提取了130,000个样本并标记为11类,第0类被归类为Clean,1-9是恶意软件家族,第10类被归类为Others。同样,这11个桶包含具有不同包装器和编译器的示例。研究人员在训练集和测试集之间进行了另一个随机的80/20%分割。本实验的测试精度为0.9700。一个GPU上的训练和测试时间为26分钟。VisualExplanation(视觉解释)VisualExplanationUsingT-SNEandPCABeforeandAfterCNNTraining为了了解CNN的训练过程,研究人员对CNN训练进行了视觉分析。图2显示了CNN训练前后的t分布随机邻域嵌入(t-SNE)和主成分分析(PCA)。研究人员可以看到,经过训练后,CNN能够提取有用的表示来捕获不同类型恶意软件的特征,如在不同的集群中所示,大多数类别都很好地分离,这让研究人员认为该算法能够作为多类分类器很有用。然后,研究人员执行XAI以了解CNN的决定。下图显示了Fareit样本和Emotet样本的XAI热图。颜色越亮,对神经网络中的梯度激活有贡献的字节越重要。因此,这些字节对CNN的决策很重要。研究人员有兴趣了解对决策产生重大影响的字节,并手动审查了一些样本。Fareit(左)和Emotet(右)上的XAI热图,以了解XAI对CNN预测的ML决策和人工分析人类专家来验证CNN对一些随机样本的决定。人工分析证实CNN正确识别了许多恶意软件系列。在某些情况下,它根据研究人员的内部测试,准确地识别了前15名防病毒供应商之前的样本。下图显示了属于Nabucur家族的样本子集,CNN对其进行了正确分类,尽管当时并未检测到供应商。同样值得注意的是,研究人员的结果表明,CNN目前能够使用常见的包装器对恶意软件样本进行分类。示例编译器的域分析研究人员对相同的示例编译器VB文件进行了域分析。如上图所示,CNN能够先于其他供应商识别出攻击家族的两个样本。CNN同意MSMP/其他供应商提供两个样本。在此实验中,CNN错误地将样本识别为“干净”。人类对XAI热图的分析,上面是从Hiew工具分解的部分破译的TEA算法上面是样本XAI热图研究人员聘请了一位人类专家来检查XAI热图,并验证颜色鲜艳的字节是否与恶意软件家族分类有关。上图显示了一个属于Sodinokibi家族的例子。XAI识别的字节(c38b4d0803d166c1)很有趣,因为字节序列是Tea解密算法的一部分。这表明这些字节与恶意软件分类相关,这证实了CNN可以学习并帮助识别人类或其他自动化可能忽略的有用模式。尽管这些实验是初步的,但它们证明了CNN在识别感兴趣的未知模式方面的有用性。效力。综上所述,实验结果和直观解释表明CNN可以自动学习PE原始字节表示,CNN原始字节模型可以执行端到端恶意软件分类。CNN可以作为特征增强的特征提取器。CNN的原始字节模型有可能在其他供应商之前识别威胁家族和识别新威胁。这些初步结果表明,CNN可以成为帮助自动化和人类研究人员进行分析和分类的非常有用的工具。本文翻译自:https://www.mcafee.com/blogs/other-blogs/mcafee-labs/the-rise-of-deep-learning-for-detection-and-classification-of-malware如有转载,请注明原文地址。