【摘 要】本文提出了一种基于AlexNet卷积神经网络的检测方法。首先,对APT攻击恶意代码二进制样本进行解压缩、反编译等数据预处理操作,并在沙箱内运行APT攻击恶意代码样本,将获取的流量数据转化成灰度图像;然后,对预处理的图像进行特征提取和家族聚类;最后,选取8个家族的APT攻击恶意代码样本数据来训练和测试AlexNet卷积神经网络模型。实验结果表明,该方法对APT攻击恶意代码及其变体检测的平均准确率可达98.84%。
【关键词】APT攻击 恶意代码 灰度图像 AlexNet网络
1 引言
与传统网络攻击不同的是,APT攻击组织通常受雇于国家或政府,攻击行为具有国家意志,拥有最先进的网络攻击工具、相当成熟的攻击方案,能够演变出层出不穷的攻击变体,使得现有网络安全防御措施在APT攻击面前形同虚设。为应对这一紧迫的网络空间安全威胁,针对APT攻击的防护技术研究也蓬勃发展。本文首先介绍了APT攻击的相关知识,分析了研究现状,之后提出了一种基于AlexNet卷积神经网络的APT攻击恶意代码及其变体的检测技术,最后通过实验验证了技术的可行性和准确性,可为现阶段APT攻击检测工作提供参考。
2 APT攻击研究技术
纵观国内外APT攻击防护领域,主要采取的方式是针对APT攻击中所用的恶意代码进行检测。APT攻击恶意代码的检测方式主要分为动态检测和静态检测两类。
在动态检测中,主要通过沙箱收集APT攻击恶意代码的系统调用、操作,检测恶意软件的异常情况。Rieck等使用在沙箱中运行恶意样本,监控了其网络行为,通过机器学习分析APT攻击网络行为信息,实现对恶意代码的检测;Shukla等通过在应用程序和内核层创建沙箱,监视和控制应用程序的行为,同样利用了机器学习的方法实现检测。在虚拟机和沙箱中进行的虚拟检测存在的缺陷使大部分APT攻击恶意代码可通过加壳、混淆等技术躲避安全人员的虚拟执行,从而降低检测准确性。
在静态检测中,安全人员主要通过提取和分析APT攻击恶意代码,匹配恶意代码库的方式检测和分类攻击行为。Saxe等通过统计APT攻击恶意代码二进制文件中恶意软件中可打印的字符、字节数值的熵值、调用的函数表等内容,并将统计结果作为数据集训练深度神经网络获得分类模型,最终实现分类;Zhang等将二进制可执行文件分解成操作码序列并作为特征向量,以此训练神经网络分类模型。静态检测主要受到APT攻击样本集的限制,若出现新的APT攻击恶意代码变体,静态检测的准确性将大打折扣。
随着APT攻击恶意代码威胁从个人计算机扩散至工业控制系统,APT攻击恶意代码领域出现了大量已有恶意代码的变体,能够绕过传统的基于代码特征的检测系统。因此,对APT攻击恶意代码变体的检测变得至关重要。本文通过运用动态和静态检测技术,结合代码可视化和深度学习技术,检测APT攻击渗透期所用的恶意代码及其变体,切断APT攻击链条,从而实现对APT攻击的防御。
3 基于AlexNet卷积神经网络的APT攻击恶意代码及其变体检测
3.1 方案设计
方案设计主要包括4个步骤,图1展示了方案整体的流程。
3.1.1 APT攻击恶意代码解压缩、反编译
在虚拟执行之前,需要对原始数据进行处理。为了对抗在动态沙箱上采取的虚拟执行分析检测,许多APT攻击恶意代码都通过代码混淆、压缩、变形、加壳等操作,增加了虚拟执行的时间成本和代码可变性。为克服上述不足,本文结合了静态和动态的解包技术处理原始的数据集。首先通过使用查壳工具PEID,检查并解包原始数据。PEID是采用匹配数据签名集的方式识别代码的加壳行为,采用已知的解包机制提取二进制文件中隐藏的代码,通过该技术可以侦测并解包出大部分的加壳行为。考虑到PEID可能未及时更新一些新的加壳打包技术,本文结合使用了动态解包工具PolyUnpack,其克服了静态查壳工具的局限性,进一步实现对APT攻击恶意代码的解包,并采用了反编译器W32asm对APT攻击二进制代码实现了反编译。解包流程图如图2所示。
3.1.2 虚拟执行获得灰度图像
在经过解压缩、反编译等处理之后,在带有抗逃逸技术的动态沙箱中运行二进制代码,排除HTTP等正常协议,过滤出带有SSL等数据传输协议和未知可疑协议的流量会话数据。通过B2M、T2G等映射算法将APT攻击恶意代码流量会话数据映射为灰度图,实现APT攻击恶意代码可视化,图3是将APT攻击恶意代码样本及其变体映射成的灰度图。为了使灰度图更容易识别和分类,本文采用了形态学中膨胀(dilation)和腐蚀(erosion)两种基本的形态学运算,对灰度图像进行图像增强处理,保留有用信息的同时清除噪声干扰,增强灰度图的对比度。图4是灰度图经过膨胀和腐蚀处理之后的对比。
3.1.3 灰度图特征提取,实现家族聚类
图像增强之后的灰度图像数据维度较高,利用降维算法(Locally Linear Embedding,LLE)对图像进行降维。通过Canopy-K-means聚类算法实现对灰度图像的特征提取及聚类,聚类结果如图5所示。通过微软的MSE杀毒软件实现灰度图的家族标注,本文的数据集通过MSE标记为8个APT攻击恶意代码家族,如表1所示的VBInject.WX、VBInject.gen!JD、Beebone.DN等。通过家族聚类,可以将检测到的未知APT攻击恶意代码进行同源性归类,提高代码的分析效率,如图6所示。
3.1.4 APT攻击恶意代码变体识别
在将实验数据用于深度学习模型训练之前,本文先将数据进行了特征提取和聚类,并进行了APT攻击恶意代码家族的标注。将前文所获得的实验数据集分为训练和测试数据集,比例控制在8:2。利用训练数据集训练预先设好的基于AlexNet卷积神经网络的模型,通过参数调节,训练获得理想模型,再用测试数据集测试所获模型,以取得最优模型,对APT攻击恶意代码及其变体进行检测。
3.2 神经网络模型构建
本文所构建的神经网络是基于AlexNet模型的卷积神经网络。AlexNet模型基于LeNet网络模型,该模型首次将线性整流函数(ReLU)用作卷积神经网络的激活函数;并采用局部响应归一化(LRN)对ReLU得到的结果进行归一化处理,如公式(1)所示;引入了数据增强技术,扩充了有限的数据;并通过引入Dropout,确保结果不会过拟合;且AlexNet模型使用多图形处理器(GPU)进行训练,具有较高的训练速度。网络由5层卷积层、3层全连接层构成,激活单元采用ReLU激活函数,为防止网络过拟合,在全连接层后连接Dropout层。图7和图8分别为卷积块网络结构和全连接块网络结构。
4 实验及结果分析
4.1 实验设置
4.1.1 环境设置
本文所采用的设备信息如下:Intel(R) Core(TM) i7-10875H CPU @ 2.3GHz;32GB内存;显卡为NVIDIA GeForce RTX2070,8G显存。采用GPU计算,使用的CUDA版本为11.2。本文使用基于Python的Tensorflow框架搭建模型。
4.1.2 数据集
本文所采用的实验数据来源为VirusShare网站开源APT攻击二进制恶意代码样本集合,包含VBInject.WX、VBInject.gen!JD、Beebone.DN等8个家族APT攻击恶意代码。APT恶意代码家族列表及其变体样本灰度图数量如表1所示。
为了避免过拟合,本文将所获得的APT攻击恶意代码及其变体样本经过处理后,映射成灰度图像,并对灰度图像进行数据增强操作,增大训练数据量,提高模型的泛化能力和鲁棒性。图9为APT攻击恶意代码样本的灰度图像经过数据增强之后的前后对比。
4.2 实验评价指标
APT攻击恶意代码及其变体识别属于多分类问题,在评价该模型时,通常将总的评价任务拆分为多个二分类问题。通过将实验结果绘制成混淆矩阵,获得模型的准确度;并通过损失函数曲线来评价模型的预测值与真实值之间的误差,同时利用准确率曲线直观的展现模型预测的准确性。在验证阶段,本文采用了K-fold交叉验证的方式,K值选定为10。实验中所用的评价指标包括准确率(Accuracy)、精确率(Precision)、召回率(Recall),如公式(2)—(4)所示。
4.3 实验结果分析
从实验中所绘制的准确度和损失函数图可以清晰地发现,随着训练轮次的推进,损失函数逐渐下降、准确率逐渐提高,从图10中可以发现,在第10轮之前损失函数值变化迅速,模型收敛速度较快,在10轮之后损失值趋向于稳定,并接近于0;图11展示的是准确率变化趋势图,可从图12中发现,在20轮之后,准确率值趋向于稳定,在该实验数据集上平均准确率可达到98.84%,图13展示了检测模型的混淆矩阵,可以发现大部分样本都能够被成功预测,以上都表明了本文基于深度学习的APT攻击恶意代码及其变体检测模型的检测效果较好。
4.4 对比实验结果分析
为了进一步验证本文所提出模型的准确率以及泛化能力,本文选取了APT攻击恶意代码分类中常用的全连接神经网络、K近邻算法(KNN)与本文所提的基于AlexNet模型的卷积神经网络模型进行了检测实验和对比。为了使对比实验具有参考价值,对比实验所使用的数据集是来自VirusShare网站所公开的同一份APT攻击二进制恶意代码样本集合。模型的性能评价指标包括准确率、精确率、召回率和F1-score(F1值),模型对比实验的结果如图14和表2所示。
从实验结果中可以看出,选取的分类算法对本文的数据集进行分类的效果都比较好,在数据集较大的情况下都能达到九成以上的准确率,说明本文数据特征提取的方法具有可行性。且从表2中可以发现,本文所提的基于AlexNet模型的卷积神经网络在准确率、召回率、F1值和精确率方面均优于多层感知器(MLP)、KNN2种神经网络模型,说明本文所提算法在APT攻击恶意代码的分类上具有较好效果。
5 结语
本文提出了一种基于深度学习的APT攻击恶意代码及其变体的检测技术,首先对样本进行解压缩、反编译等数据预处理,然后在沙箱中执行APT攻击恶意代码,将所获得的带有行为信息的流量会话数据映射为灰度图像,并利用图像增强和数据增强技术增强灰度图的特征,再通过特征提取实现APT攻击恶意代码家族聚类,利用实验数据训练预设的AlexNet卷积神经网络模型,获得最优模型。最终对比实验,验证了本文所提出的模型在APT攻击恶意代码及其变体检测问题上可实现98.84%的准确率,精确率和F1值可达到98.78%和97.98%,在APT攻击检测领域具有一定的参考意义。