浅析基于深度学习的恶意软件检测

2020-12-30 16:08黎臻罗栗
网络安全技术与应用 2020年8期
关键词:卷积深度分类

◆黎臻 罗栗

(中国电子科技集团公司第三十研究所 四川 610041)

如今,各种各样的互联网软件为人们生活提供了便利,但也带来了一定的潜在危险。恶意软件是故意设计以危害计算机、智能设备,窃取机密信息,渗透网络或破坏关键的基础设施等为目的的一种网络威胁。恶意软件的类型多种多样,如病毒,蠕虫,特洛伊木马,逻辑炸弹,间谍软件,广告软件,垃圾邮件,弹出窗体等。据卡巴斯基实验室最近的一份报告称[1],由于恶意软件攻击,大约在两年之内全球的金融机构共盗窃了十亿美元。为了遏止恶意软件造成的巨大损失和损害,恶意软件检测已成为计算机安全的热点研究方向。

1 恶意软件检测的发展现状

近年来,关于恶意软件检测的学术研究数量迅速增加。在早期,基于签名的检测方法被广泛使用。Malhotra等人[2]提出一种新颖的算法将恶意软件分类为干净、正常恶意软件和多态、变质恶意软件。该方法使用基于签名的模式匹配技术计算任意两个文件之间的相似性得分,然后使用DBScan算法对所选特征进行分类。基于签名的检测方法可以快速有效地应对已知的恶意软件,但对于零时差恶意软件的效果则不佳。

随着时间的流逝,研究人员开始使用基于行为、启发式和模型检查的检测技术,以及新技术,例如基于深度学习、云、移动设备和物联网的检测。

Cimitile A等人[3]提出了一种基于模型检查的方法来推断移动恶意软件的系统树。通过在droid-Sapiens工具中实施该方法,证明了移动恶意软件家族来自祖先,并且根据其展示的有效载荷来影响自己的后代。

Azmoodeh A等人[4]提出了一种应用于物联网基于机器学习的方法,通过监视Android设备的功耗来检测勒索软件攻击。具体来说,该方法可监控不同进程的能耗模式,以对来自非恶意应用程序的勒索软件进行分类。实验证明了该方法在准确率,查全率,准确率和F度量方面优于K最近邻,神经网络,支持向量机和随机森林。

即使每种检测方法都有其自己的优势,但是没有一种检测方法可以检测到所有恶意软件。当恶意软件的复杂性(未知恶意软件,新一代恶意软件,混淆恶意软件)增加时,所有检测方法的检测率都会降低。可以看出,基于签名方法、启发式的方法以及大多数情况下的基于移动设备和物联网的方法要比基于行为、模型检查、云和深度学习的方法表现更差。这是因为后者的这些方法可以更有效地检测未知和混淆的恶意软件。

结合多种恶意软件检测方法可以提供更好的检测机制,例如,将基于行为的行为与基于模型检查的方法相结合,并同时使用深度学习和云技术一定会提供更好的检测机制。此外,使用区块链和大数据等新技术可能会提供更多机会来构建更有效的检测器。

2 深度学习的特点

深度学习是数据挖掘和机器学习的一个新领域,已在各种各样的应用领域取得了成功,例如计算机视觉、音频和自然语言处理。卷积神经网络(Convolutional Neural Network,CNN)是深度学习中最具代表性的算法之一。CNN的最显著特征是它通过权重共享,局部场和空间中的子样本的思想来减少了大量的计算。它在一组CNN神经元之间具有相同的权重,通过卷积运算在局部场上挖掘特征信息。CNN直接将原始数据的向量表示作为输入,并以端到端的结构前向传播输出分类或回归结果。通过反向传播算法更新CNN的神经元权重。CNN的典型应用是通过多个卷积层和池化层来识别手写数字。每个卷积层输出一组特征图,而每个特征图表示通过一个特定的卷积滤波器提取的高级特征。并且池化层主要使用局部相关原理完成下采样,因此后续的卷积层可以从更全局的角度提取特征,这些大大减少了用于训练深度网络的权重参数和计算的数量。

多层深度学习架构在特征学习方面具有卓越的能力。更重要的是,深度学习架构通过分层预训练克服了学习上的困难,即从最低层到最高层对多层特征检测器进行预训练以构建最终的分类模型。这启发我们设计基于深度学习的恶意软件检测架构。

3 基于深度学习的恶意软件检测

近年来,不少深度学习的研究工作已经投入到恶意软件检测上。Zhu D等人[5]提出了DeepFlow,这是一种基于深度学习的新颖方法,可直接从Android应用程序中的数据流中识别恶意软件。在数千种良性软件和恶意软件上测试DeepFlow,结果表明DeepFlow可以达到95.05%的高检测F1分数,优于传统的基于机器学习的方法,这表明了深度学习技术在恶意软件检测中的优势。

我们提出一种基于深度学习的恶意软件检测方法,该方法使用CNN和长短期记忆网络(Long Short-Term Memory,LSTM)。对于恶意软件检测,实际上执行二进制分类任务。我们的方法接收原始文件数据作为输入,并输出表明该恶意软件可能性的识别概率。具体而言,检测过程可以分为两个阶段。第一阶段是预处理恶意软件样本数据,它采用可执行文件的二进制形式,从中生成灰度图像,并使用反编译工具提取操作码序列和元数据特征。因此,此阶段将生成适当的数据格式,作为后续CNN和LSTM网络的输入。第二阶段应用检测网络的核心过程,该过程分别采用CNN和LSTM网络,从灰度图像和操作码序列中学习。为了优化检测性能,我们使用堆栈集成来集成两个网络的输出和元数据特征。实际上从原始数据中学习了三种不同的特征集。首先,检测网络通过CNN从灰度图像中学习恶意文件结构特征,然后通过LSTM从操作码序列中学习恶意代码模式特征。这两个特征集整合并完善局部模式信息。同时,添加了一些简单的元数据特征来描述全局信息。最后使用卷积块对整合后的三种特征进行卷积操作,学习并压缩特征,最终输出的预测结果。

4 结语

深度学习能够处理非结构化的数据,具有强大的表征学习能力,通过深层的网络学习数据的特征,同时能大大降低特征量。并且许多现有的应用实例也表明了深度学习在分类任务上具有高准确率。这让基于深度学习的恶意软件检测存在独有的优势,启发我们设计基于深度学习的恶意软件检测架构。

猜你喜欢
卷积深度分类
四增四减 深度推进
深度思考之不等式
基于3D-Winograd的快速卷积算法设计及FPGA实现
分类算一算
卷积神经网络的分析与设计
从滤波器理解卷积
简约教学 深度学习
基于傅里叶域卷积表示的目标跟踪算法
教你一招:数的分类
说说分类那些事