利用卷积神经网络模型动态分析物联网恶意软件检测方法

阅读量    126027 | 评论 2

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

Dynamic Analysis for IoT Malware Detection With Convolution Neural Network Model

0x01 介绍

近年来,人工智能(AI)、虚拟现实(VR)、大数据、5G、物联网(IoT)等第四次工业革命的核心技术,通过全产业链的融合,在各个领域得到了应用。尤其是随着物联网技术与人工智能、5G等核心技术的融合,智能汽车、智能工厂、智慧城市等各种物联网产业被迅速激活。物联网市场规模不断扩大,物联网设备、基础设施和应用不仅显著影响着工业领域,也影响着日常生活。

在物联网环境中,设备之间相互连接,交换信息。由于这一特点,分布式拒绝服务(DDoS)、加密货币恶意挖矿、僵尸网络活动等攻击数量正在快速扩大。此外,为了应对快速增长的物联网设备需求,一些厂商大量生产容易出现安全漏洞的物联网设备并提供给用户.脆弱的物联网设备在市场上流通,将成为恶意软件制造者的主要目标。恶意软件不仅可以泄露物联网设备收集的用户信息,还可以渗透到主要网络中,导致其迅速扩展到其他网络。俄罗斯网络安全产品开发商卡巴斯基实验室在2018年收集了121588个物联网恶意软件样本,比2017年收集的32614个样本增加了近四倍;发现了超过12万个攻击方式经过智能进化的变种物联网恶意软件样本。

为了保护物联网设备不受新的变种恶意软件攻击,减少恶意软件感染造成的损失,人们对通过特征学习和分类检测物联网恶意软件进行了研究。一般来说,研究将恶意软件检测阶段分为分析阶段和检测阶段。在分析阶段,为了提取恶意软件的特征,有以下几种方法:静态分析、动态分析、混合分析和内存分析。静态分析是在不直接执行恶意软件的情况下分析二进制文件的信息,而动态分析则是在虚拟机(VM)或沙箱等受控环境中执行恶意软件,分析恶意软件的运行方式。混合分析利用静态分析和动态分析。内存分析是针对内存中的恶意软件的一种综合分析方法。恶意软件分析完成后,进入检测阶段,对分析内容中的恶意软件进行检测。检测阶段可以采用基于签名的、基于启发式的、基于规范的和基于云的恶意软件检测技术。基于签名的恶意软件检测技术通过比较签名,即恶意软件的特征来检测恶意软件。基于启发式的恶意软件检测技术根据恶意软件的特征和模式提前预测新的和变种的恶意软件。基于规范的恶意软件检测技术根据特定的规则确定恶意软件,而基于云端的恶意软件检测技术则是通过云端服务器模式检测恶意软件。通过利用恶意软件分析和检测技术检测已知的和新的、变种的物联网恶意软件,可以防止恶意软件向其他物联网设备的传播。

然而,物联网设备的硬件资源有限,系统经过优化,可以实现特定的目的。检测这类设备中智能演化、快速增长的新的、变种的物联网恶意软件是很困难的。此外,要分析物联网恶意软件在物联网设备中产生的大量行为数据,并在训练后对其进行检测,也要遵循很多限制条件。

因此,本文提出了一种用于物联网恶意软件检测的动态分析(DAIMD),对嵌套云虚拟环境中的物联网恶意软件进行动态分析,并基于卷积神经网络(CNN)模型学习用大量行为数据压缩的行为图像。DAIMD在嵌套的虚拟环境而非物联网设备中对恶意软件进行动态分析,因此可以在不受硬件资源限制的情况下,准确地分析和检测被混淆或代码值改变的变种物联网恶意软件。此外,还提取了内存、网络、进程、系统调用、虚拟文件系统中的各种行为,以检测在基于Linux的嵌入式物联网设备上执行恶意行为的恶意软件。最大限度地利用提取的大量动作数据,将行为数据转化为图像,对恶意软件进行分析和检测。DAIMD通过在CNN模型之一的ZFNet上训练生成的行为图像来检测物联网恶意软件,结果表明它可以准确地对物联网恶意软件进行分类和检测。

本文的其余部分组织如下。第2节回顾了现有的分析和检测物联网恶意软件的研究方法。第3节描述本文提出的DAIMD。第4节建立了DAIMD模型,第5节描述了DAIMD模型的性能评估。最后,第6节提出了本文的结论,并介绍了未来的研究方向。

 

0x02 相关工作

利用静态、动态、混合和内存分析方法进行了各种研究,以分析恶意软件如何工作,以及在检测之前代码如何流动。大多数研究都采用了静态分析方法,可以在不执行恶意软件的情况下检查恶意软件的整体结构。然而,静态分析难以利用打包检测混淆的恶意软件,也难以识别恶意软件的整体功能,这些都是缺点。

为了解决这一问题,人们对动态分析方法进行了研究,分析恶意软件的整体功能,并通过执行恶意软件来检测被混淆的恶意软件以及新的和变种的恶意软件。此外,还有人研究了利用恶意软件产生的大量特征数据将特征数据转化为图像进行恶意软件检测的技术。

A. 利用动态分析技术进行恶意软件检测
Mohaisen等提出了一种基于行为的自动化恶意软件分析和标签(AMAL)系统,对恶意软件行为进行自动分析和分类。AMAL主要由AutoMal和MaLabel两部分组成,前者监测文件系统、网络和注册表的行为,后者根据监测提取的行为将类似的恶意软件按家族进行分类。MaLabel利用机器学习技术支持向量机(SVM)、决策树(DT)和K-最近邻(KNN)算法对特定恶意软件家族进行分类。但是,Mohaisen提出的AMAL在选择和标注恶意软件代表性行为的过程中,存在恶意软件分析人员人工验证的困难。

Galal等人提出了一种恶意软件的行为分析方法,通过API挂接技术收集恶意软件使用的应用程序接口(API)调用和参数信息。它从提取的API调用和参数中生成的API序列中推断出独特的恶意软件行为。虽然采用了DT、随机森林(RF)和SVM算法等机器学习技术,根据推断的行为对恶意软件进行分类,但由于恶意软件行为的推断涉及分析人员的主观干预,该方法难以检测出恶意软件。

Phode等通过将文件执行时间设置为秒单位,提出了一种预测执行文件中恶意软件的模型。用于分类和检测恶意软件的行为数据是连续的数据,如进程总数、分配的进程ID的最大数量或内存使用量等;通过循环神经网络(RNN)对这些数据进行训练,在恶意软件执行有效载荷之前判断恶意软件的存在,从而保护系统免受恶意攻击。

B. 恶意软件特征数据可视化技术
Shaid等提出了一种恶意软件行为图像技术,在从行为数据中捕捉到API调用后,根据恶意软件的调用强度映射出一种颜色,以强调变种恶意软件的恶意行为,从而实现恶意软件的可视化。当API调用的恶意软件强度较高时,采用暖色;冷色代表调用的恶意软件强度较低。

Trinius等提出了一种树图和线程图来对恶意软件行为进行图像化处理,对从CWSandbox中提取的大量行为记录报告进行总结和表示。树状图提取了恶意软件进行API调用和操作的频率数据,进行可视化处理。相比之下,线程图将行为数据,进程的各个线程操作按时间顺序排列成图像。

Han等提出了一种基于对二进制文件进行静态和动态分析的执行结果中提取的操作码序列来创建图像的方法。该方法可以通过比较二进制文件生成的图像之间的RGB像素信息来衡量变种恶意软件之间的相似性。

Cui提出了一种通过图像处理技术将恶意软件可视化,快速检测变种恶意代码的方法。首先,将恶意软件的二进制文件转换为灰度图像后,利用CNN自动提取生成图像的特征。此外,通过应用蝙蝠算法对恶意软件图像进行数据均衡处理,解决了不同恶意软件家族数量多造成的过拟合问题。该恶意软件检测方法表现出优异的检测速度,准确率为94.5%。

本文提出的DAIMD通过动态分析恶意软件的整体功能,来检测知名的物联网恶意软件以及新的、变种的物联网恶意软件,并通过对大量的特征数据进行可视化压缩和表示。它通过CNN模型选择图像中具有代表性的特征,并对其进行训练来分析和检测恶意软件,从而避免了恶意软件分析人员的主观干预。

表1总结了所提出的DAIMD与其他模型的对比情况。比较项目设置如下:检测恶意软件所构建的系统环境、提取行为特征所使用的分析技术、对恶意软件进行分类所使用的机器学习和深度学习、是否进行可视化总结和表示行为特征、检测恶意软件所使用的行为特征类型。

 

0x03 DAIMD方案

DAIMD方案在基于云端的嵌套虚拟环境中,动态分析对配备有限硬件资源的物联网设备构成威胁的恶意软件,并按照与一般恶意软件检测系统类似的具体分析和检测流程,利用CNN模型对其进行训练。一般恶意软件检测系统和DAIMD的恶意软件检测流程如图1所示。

一般恶意软件检测系统的流程主要包括调试、特征提取、特征选择和分类。调试是通过由恶意软件和良性组成的数据集来生成日志文件,从中提取行为特征。从提取出的特征中,选择出具有代表性的行为;随后是基于代表性行为的分类过程。然后,对恶意软件特征进行训练,将文件分类为包含恶意软件或良性代码。

相比之下,DAIMD的过程由调试、特征提取、特征预处理、特征选择和分类组成,与一般恶意软件检测系统中的调试和特征提取阶段相同,但它也进行了特征预处理,将特征提取后创建的大量行为特征转化为图像。当从通过特征预处理步骤生成的图像中选取具有代表性的特征,并单独进行学习时,就会涉及到恶意软件分析人员的主观思维。为了防止这种情况的发生,DAIMD采用CNN模型来进行特征选择和分类步骤。

A. 调试
在执行物联网恶意软件和良性文件的虚拟环境中,利用Interactive Disassembler(IDA)Pro分析工具从二进制文件中生成汇编语言的代码,并对目标文件进行远程调试,以确定代码的工作方式和流程[35]。

B. 特征提取
特征提取阶段从物联网恶意软件和良性文件中,通过调试分析文件行为和内部结构,提取出签名,即执行文件的特征。DAIMD提取的作为文件签名的特征有内存、网络、系统调用、虚拟文件系统(VFS)和进程,这些特征被提取为a.csv文件格式并存储在Excel中。表2列出了表示执行文件行为的特征数据类型和配置。

表2 通过调试提取的特征数据类型和配置

C. 特征预处理
为了表示在特征提取阶段从物联网恶意软件和良性文件中提取的大量特征数据,特征预处理阶段对特征数据进行压缩并转换成图像类型,如图2所示,主要包括行为特征元数据和可视化。

图2. – DAIMD的特征预处理阶段,实现行为数据的可视化。

行为特征元数据阶段对代表执行文件行为的特征数据进行处理,然后再将提取的特征数据转换为图像,其中,将特征数据中具有调用顺序索引的网络、系统调用、VFS和进程整合为一个行为数据元,并建立行为频率表,记录来自内存、网络、系统调用、VFS和进程的恶意活动频率。在这里,恶意活动指的是Linux中发生的9种典型恶意活动。可执行和可链接格式(ELF)头操作、持久性机制、欺骗、所需权限、打包和多态、信息收集、进程交互、库和逃避。

在最后阶段,利用内存特征数据、集成的行为特征数据以及由行为特征元数据生成的行为频率表进行可视化。可视化阶段又分为数字化阶段和通道化阶段,前者将行为特征数据中的字符串转换为向量,后者根据向量创建RGB通道。数字化按照以下顺序进行。整数化,将行为特征数据中的所有字符串转换为整数;重缩放,将转换后的整数值调整为0~255之间的值,即图像的范围;再调整,将大小不一的行为数据矢量概括为单一大小。

重缩放过程通过调整为0和255之间的值。这里,Vk表示第k个行为特征日志数据中的一个向量元素,Rk表示重新缩放后的第k个行为特征日志数据中的一个向量元素。
在通道化阶段,将通过数字化产生的存储器、综合行为特征数据和行为频率表的矢量分别与红、绿、蓝通道进行匹配,并将这些通道组合成单一的RGB通道,从而创建关于行为的图像,然后进行存储。

D. 特征选择与分类
DAIMD检测物联网恶意软件的方法是利用CNN模型ZFNet将特征选择和分类阶段整合为一个阶段,在没有人工干预的情况下选择和训练行为的代表性特征。ZFNet是2013年获得ImageNet大规模视觉识别挑战赛(ILSVRC)冠军的CNN模型,其图像识别错误率为11.2%[37]。

CNN模型中的输入数据是通过特征预处理生成的RGB图像,从中检测行为特征,并计算出一个称为特征图的矩阵。它执行特征选择阶段,通过应用最大池化技术减少生成的特征图维度,只提取尺寸大于邻居行为特征值的行为特征值。最后,在CNN模型中通过分类训练出具有代表性的行为特征,在嵌套的虚拟环境中对动态分析的执行文件进行分类和判断是恶意软件还是良性软件。

 

0x04 DAIMD应用

为了训练和构建本文提出的DAIMD模型,保护物联网设备不被物联网恶意软件感染,我们首先构建了一个基于云端的嵌套虚拟环境,配备了英特尔酷睿i7-9700K和GeForce RTX 2070。在云环境中进行执行文件的分析和恶意软件的检测,以检测威胁对配备有限硬件资源的物联网设备进行智能攻击的物联网恶意软件。在云端创建了一个虚拟机,以防止物联网恶意软件传播到主要网络。利用虚拟机中基于虚拟机的嵌入式软件开发验证解决方案(Imperas),开发了一个采用高级RISC机器(ARM)处理器的嵌入式Linux系统。

A. 调试

数据集收集自物联网设备。在嵌入式系统中运行了1,000个新的和变种的物联网恶意软件样本和401个良性文件,其中共840个文件作为训练数据集,通过分析和训练物联网恶意软件的行为特征来开发DAIMD模型。其中,共有840个文件作为训练数据集,通过分析和训练物联网恶意软件的行为特征来开发DAIMD模型。恶意软件和良性文件共561个作为测试数据集,对DAIMD模型进行测试。

基于1401个物联网恶意软件和良性文件(包括训练数据集和测试数据集)进行物联网恶意软件的分析和检测,在嵌套云环境中执行文件5 min,并对执行文件进行远程调试。

B. 特征提取

通过调试监控执行文件中的流程和代码工作情况后,将内存、网络、系统调用、VFS和进程的特征数据提取为Excel文件格式(图3)。

图3.- DAIMD提取的五类特征数据。

C. 特征预处理

为了将特征提取阶段产生的大量行为特征数据转化为图像,特征预处理阶段根据恶意活动的索引和记录频率,将行为特征数据特征数据整合为一个,建立整合后的行为特征数据和行为频率表,对特征数据进行处理。为了高效地分析物联网恶意软件,将网络、系统调用、VFS、进程的特征数据基于代表调用顺序的索引整合为一个集成数据,读取为Excel文件格式,最多可存储500条记录,如图4所示。

图4. -基于索引的集成行为的特征数据。

进行数字化和通道化,将整合后的行为特征数据和由行为特征元数据和内存、以前特征数据生成的行为频率表转换为图像。为了将行为数据中的所有字符串转换为整数,而不跨越int表示的范围,在整数化过程中最多读取9个字符并转换为整数。此外,行为数据转换为向量的大小,其值范围在0到255之间,被概括为512×512,这是云端嵌套虚拟环境的内存的最大允许大小。为了尽可能多地考虑向量中的邻域特征值,采用重采样器进行双线性插值。

通过通道化过程,将内存特征数据、综合行为特征数据和行为频率表数字化后创建的512×512大小的向量分别匹配到红色通道、绿色通道和蓝色通道。每一个通道,其减少了特征数据的尺寸,被整合成一个单一的RGB图像并存储。图5显示了特征预处理阶段完成后,训练和测试数据集的结果。

图5. – 通过特征预处理创建的良性和恶意软件图像。

D. 特征选择和分类

下表3是本文用于训练和建立物联网恶意软件检测模型的ZFNet层名、张量大小和参数。

表3 用于构建物联网恶意软件检测模型的ZFNet结构表

DAIMD模型通过对特征图像进行训练,利用ZFNet模型对训练数据集中共840张图像进行检测,检测出物联网恶意软件。IoT恶意软件检测准确率为99.87%,实际数据与通过模型输出的数据相差0.0047。

为了验证训练后的DAIMD模型是否能准确检测物联网恶意软件,使用测试数据集中的561个文件进行测试,检测准确率为99.28%。

 

0x05 效果评估

为了检验本文提出的DAIMD是否能够准确分析和检测知名的物联网恶意软件以及智能演化的新的和变种的物联网恶意软件,进行了性能评估。用于评估所实现模型性能的指标是假良性率(FPR)、假恶性率(FNR)和准确率(ACY)。

FPR指的是物联网恶意软件被误判为良性的比率。这里,假良性(FP)是指即使是物联网恶意软件,也被归为良性文件的案例数量,真良性(TN)是指正确归为良性的案例数量。

FNR指的是良性文件被分类为恶意软件的比率。假良性(FN)是指即使是良性文件,也被错误地归类为物联网恶意软件的案例数,真良性(TP)是指正确归类为恶意软件的案例数。

最后,ACY指的是恶意软件和良性文件的分类准确度。


查看来源右键点击图中的MathML和附加特征。

图6显示了DAIMD模型的训练精度和损失值的变化,其中根据不同向量大小训练行为的特征数据。在训练基于特征向量最优大小的物联网恶意软件检测ZFNet模型中的行为图像时,采用Adam优化器算法进行优化;模型的训练是通过固定外延时间为40来进行的。图6(a)为DAIMD模型训练后测得的准确率。随着外延时间的增加,精度逐渐提高。当向量大小为224×224时,与其他向量大小相比,其准确率相对较低。图6 (b)显示了损失值,当它的向量大小为512×512时,损失曲线下降得相对缓慢。

为了对DAIMD进行验证,使用了训练数据集中的84条记录,占总记录数的10%。一个已实现的模型能否表现出最佳性能,可以通过验证来验证。图7显示了对不同向量大小的DAIMD模型进行验证时的精度和损失值。在图7(a)中,随着纪元的增加,尺寸为512×512的向量的验证精度与其他尺寸的向量相比逐渐提高,而尺寸为224×224的向量的验证精度明显低于场。此外,在尺寸为224×224和256×256的向量中,特定部分出现了过拟合现象。图7(b)显示了对不同向量尺寸进行验证时的测量损失值。当尺寸为512×512时,损耗曲线呈下降趋势 ,而尺寸为448×448的向量在特定范围内振动很大,说明发生了过拟合。

当对通过训练和验证选出的最优DAIMD模型进行测试时,准确率、FPR和FNR可以用表4表示。当用大小为512×512的特征向量对DAIMD模型进行测试时,测试准确率为99.28%,并且证实了准确率比用其他大小的特征向量进行测试时要高。可以看出,当向量大小为512×512时 ,属于物联网恶意代码,但被归类为非恶意文件的FPR值明显低于其他大小的特征向量。另一方面,当向量大小为448×448时,FNR为0.52% ,低于512×512向量大小的情况。由于检测物联网恶意软件最重要的指标是FPR,所以本文也非常重视所开发模型在FPR下的性能评价。

表4 不同向量大小的测试精度、FPR和FNR结果比较。

在图6、7和表4中,使用512×512大小的向量对DAIMD模型进行训练、验证和测试时,FPR值的性能和准确率都比使用不同大小的向量进行的性能好。

表5是所提出的模型与其他恶意软件检测模型的比较。为了评价模型的性能,指定了以下比较项目:在什么环境下检测恶意软件;使用了什么分析技术;测试精度和FPR值。由于没有测量周氏模型[39]的FPR值,所以没有包括在内。

表5 DAIMD与其他恶意软件检测模型的性能比较

五种类型的恶意软件检测模型均采用不同的分析技术对不同环境下的恶意软件进行了分析和检测。总体而言,各模型的准确率值均表现出95%以上的优秀检测性能。其中,DAIMD模型的准确率(99.28%)最好,它将恶意软件错误分类为良性的概率(0.63%)最低。这意味着,DAIMD模型可以准确检测威胁物联网设备的变种恶意软件。

 

0x06 结论

在嵌入式Linux环境下配置各种架构和库的物联网设备,由于其攻击点较广,市场上分布着许多易受攻击的产品,因此特别受到恶意软件作者的攻击。大多数物联网设备都配备了ARM处理器,因此针对搭载ARM处理器的物联网恶意软件样本数量也随之增加。针对这一问题,人们进行了大量的研究来分析和检测物联网恶意软件。然而,大多数研究都涉及到恶意软件分析人员的主观干预,以选择和分类具有代表性的恶意软件行为。这种方法使得在智能进化的过程中,准确检测新的和变种的物联网恶意软件有潜在的困难。此外,在基于Linux的嵌入式物联网设备中,为检测物联网恶意软件必须提取大量的行为数据,而这些数据配备了为特定目的设计的有限硬件资源,很难长期积累和存储。

因此,本文提出了一种动态分析的物联网恶意软件检测(DAIMD)方案,在虚拟嵌入式系统下和云环境下利用CNN模型动态分析物联网恶意软件,并对物联网恶意软件进行训练和分类。首先,设计并实现了基于云端的嵌套虚拟环境,在安全的环境下对物联网恶意软件进行分析和检测。然后,在云环境下按照调试、特征提取、特征预处理、特征选择和分类等阶段进行训练、验证和测试,创建了DAIMD模型。由于通过检测过程提取的行为特征数据较多,为了避免分类阶段特征数据的训练和分类存在复杂的计算问题,将其转换为图像,减少了数据的维数。此外,通过DAIMD可视化技术,全面体现了物联网恶意软件和良性文件的特征。

利用DAIMD可以防止物联网设备的感染或物联网恶意软件向其他通过互联网连接的物联网设备传播。此外,由于DAIMD利用CNN模型对行为特征进行选择和分类,不需要人为的主观干预,因此可以准确地检测出具有各种智能攻击技术的新型和变种物联网恶意软件。

本文提出的DAIMD通过执行物联网恶意软件,采用动态分析技术分析行为特征。由于一些物联网恶意软件很容易识别出它们是在虚拟机等有限的环境中执行的,它们可能会避开使用动态分析技术的恶意软件分析和检测系统。因此,今后将研究如何实现一种能够利用混合分析技术检测物联网恶意软件的模型。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多