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