使用深度学习方法对恶意软件的系统调用序列进行分类

作者:{Persist}@ArkTeam

原文作者: Bojan Kolosnjaji(B), Apostolis Zarras, George Webster, and Claudia Eckert

原文题目:Deep Learning for Classification of Malware System Call Sequences

原文来源:AI 2016: Advances in Artificial Intelligence

随着恶意软件样本数量和种类的增加,扩大了对自动检测和分类恶意软件变体的改进需求。神经网络现在可以在许多领域提供出色的分类准确性,例如计算机视觉或自然语言处理。在本文中,尝试对恶意软件系统调用序列进行建模,以进行恶意软件分类。本文基于卷积和递归网络层构造了一个神经网络。

架构:整个系统框架图如下所示,PE文件首先通过Malware zoo模块执行得到系统调用序列,再通过预处理模块得到数字向量,最终输入到神经网络分类模块进行分类。


图1 恶意软件分类系统框架图

数据:使用的数据集来自Virus Share、Maltrieve和私人的收集的恶意软件三部分。并通过VirusTotal为这些恶意软件打上标签。

模型:神经网络结构如图所示,由两部分构成:卷积层和LSTM层,最后通过一个softmax函数得到一个类别的概率分布。所有输入的系统调用序列采用onehot编码方式,通过卷积层形成新的特征向量,卷积层采用两个3*60的卷积核。

图2 神经网络结构图

评估结果:使用三个指标,准确率,精确度和召回率。

最终评估结果表明,单个类别识别的准确度很高,某些类别识别效果很差,该方法在恶意软件分类方面优于以前使用的方法,使用这种组合的神经网络体系结构,能够平均达到85.6%的精度和89.4%的召回率。

总的来说,这篇论文并不是一篇特别优秀的论文,直接套用深度学习的方法来做安全实际效果并不大,在实战中的应用会大打折扣,但是思路值得借鉴,当时突然想到这个方法来检测,然后搜了一下,发现已经有人做过了,看了一下,思路很简单,工作还有很大的改进空间。

发表评论

邮箱地址不会被公开。 必填项已用*标注