基于深度学习的恶意代码检测技术

2018-02-26 08:11孙泽浩
网络安全技术与应用 2018年2期
关键词:框架卷积神经网络

◆孙泽浩



基于深度学习的恶意代码检测技术

◆孙泽浩

(武汉市第二高级中学 湖北 430010)

本文首先分析了当前恶意代码检测技术所面临的问题,介绍了深度学习技术及caffe深度学习框架,最后提出了一种基于深度学习的恶意代码检测方法,并采用6000个样本进行训练测试,检测率可以达到99%,证明了本方法具有较好的可行性。

深度学习;恶意代码;Caffe

0 引言

随着人类智能工业的发展,智能手机迅速普及。据著名的数据预测公司Garner统计,Android系统手机占了87.7%的份额[1]。但因Android系统的开放性,它也成为了众多恶意代码开发者的活跃地盘。由于恶意代码的数量和种类越来越多,加上代码混淆、代码变异、代码加密等技术的兴起,使得恶意代码检测变得越来越困难。全球每天都有超过百万的安卓恶意代码变种在肆虐,传统的病毒库对比技术很难适应恶意代码的变种速度[2],因此,研究如何不完全依赖于病毒库,检测未知恶意代码成为研究热点。

近年来,随着计算机硬件性能的提升,深度学习(Deep Learning)得到了巨大的发展。2016年谷歌公司DeepMind团队开发的深度学习系统AlphaGo[3]以4:1的惊人战绩打败了韩国围棋界传奇人物李世石九段,大大提升了深度学习的关注度。目前,深度学习技术已经在很多计算机传统领域,如图像识别、语音识别、手写识别、文本识别等取得了突破性的进步。恶意代码检测本质上也是一种分类与识别的问题,在获取海量的恶意代码数据基础上,采用深度学习进行恶意代码检测成为了一种新路径。本文提出了一种基于深度学习的恶意代码检测方法,并采用6000个样本进行训练测试,检测率可以达到99%,验证了该方法的可行性。

1 深度学习技术

深度学习的兴起,最早因机器学习领域的泰斗、多伦多大学G.E.Hinton教授带领的深度学习团队在ImageNet图像分类大赛中一举夺魁,其准确率超过了第二名10%以上[4],而引起了计算机视觉领域的极大震动,再一次掀起了深度学习的热潮。

深度学习是机器学习研究的一个新领域,其动机在于建立、模拟人脑进行分析学习的神经网络,通过模仿人脑的机制来解读数据,例如图像,声音和文本。实际上它是一种无监督的学习,其概念源于人工神经网络的研究,含多隐层的多层感知器就是一种深度学习结构,其通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表达。深度学习允许那些由多处理层组成的计算机模型去学习具有多个等级抽象数据的表达,可利用反向传播算法发现大数据的内在复杂结构,然后BP算法会指导机器如何在每一层利用从上一次获得的表达来改变其内部参数。在许多领域得到了广泛的应用,例如视觉对象识别、语音识别、对象检测等,同时对医药学的新发现和基因组学的新进展也起到了促进作用。

深度学习采用的模型为深层神经网络(Deep Neural Networks,DNN)模型,即包含多个隐藏层(Hidden Layer,也称隐含层)的神经网络(Neural Networks,NN),利用模型中的隐藏层,通过特征组合的方式,逐层将原始输入转化为浅层特征、中层特征、高层特征直至最终的任务目标。下图1展现的就是深度学习的基本处理流程[5]。

图1 深度学习基本处理流程

2 深度学习处理典型框架

在深度学习概念的提出以及GPU被用于科学计算之前,大型神经网络几乎鲜有问津。究其原因,其一,深度神经网络面临着由梯度消失和过拟合等原因导致的训练困难的问题。其二,大型神经网络动辄百万甚至千万级的参数数量不仅令人望而生畏。而且面临着训练周期以周甚至月为单位计量的尴尬局面。深度学习的提出在很大程度上解决了梯度消失和过拟合的问题。而GPU计算平台被直接用于科学计算,主要以NVIDIA公司的CUDA框架为底层系统。在此基础上,科研人员开发了众多的深度学习开源框架,其中Caffe是较为成熟和完善的一个深度学习框架[6]。

2.1 Caffe框架简介

Caffe是一个清晰而高效的深度学习框架,它是开源的,核心语言是C++,支持命令行、Python和MATLAB接口,既可以在CPU上运行也可以在GPU上运行。而且可以应用在视觉、语音识别、机器人、神经科学和天文学等领域。Caffe提供了一个完整的工具包,用来训练、测试、微调和部署模型。它具有模块化、表示和现实分离、测试覆盖全面、接口丰富和预训练参考模型等特点。

2.2 Caffe框架网络模型

Caffe框架支持多种网络模型,比如LeNet、ImageNet等。下面以LeNet为例进行介绍。图2为LeNet网络的示意图,LeNet模型结构一共包括8层网络:由下至上分别为输入层、卷积层C1、下采样层S2、卷积层C3、下采样层S4、卷积层C5、全连接层F6和输出全连接层。

图片经过固定的裁剪后固定输入的像素大小后,将训练集通过上图C1、S2、C3、S4两对卷积层和池化层,提取出图片的主要特征,随后C5、F6作为后层全连接层的输入,输入的特征在全连接与训练样本的标签之间不断调整权值,通过调整权值的大小,来使网络的具有记忆性。

图2 LeNet网络图

最后的全连接层也为输出层,输出的节点数为结果数。例如使用LeNet对手写数字图片的识别,那么节点数就为10,分别代表数字0-9。若为手写大写字母识别,那么节点数字就为26。通过最后的全连接层输出结果。

3 基于深度学习的恶意代码检测处理流程

深度学习的特长是对学习的数据进行分类,为此,本文提出图3所示的恶意代码检测处理流程。

图3 基于深度学习的恶意代码检测处理流程

3.1特征提取

要进行深度学习,首先要收集大量学习数据。在恶意代码检测领域,需要采集大量正常的和恶意的代码,对其进行特征提取,进而生成提供给深度学习模块学习的素材。

通常可以采用静态分析技术,使用反编译工具获取反编译的Smali文件,去掉无关的动作指令并进行统计,为深度学习提供所需的特征。

APKTool是Google提供的APK编译工具,能够反编译APK文件,将数万个APK样本按照样本的顺序,进行如流程图4的步骤处理:

图4 APK反编译执行流程图

运行编写的python脚本将提取出来的核心Dalvik指令按N-gram规则处理,生成Dalvik指令的N-Gram序列并进行统计处理,生成如下文本文件,如图5所示。

图5 汇总后的Smali文件

3.2深度学习

采用第2节介绍的Caffe框架,将以上静态分析所获取的样本特征数据构造成样本矩阵,数据包含4000个安全APK样本和2000个恶意APK的样本数据,该矩阵为60×35。为了进行有监督学习,将恶意TZHD-Mat图像记为数值1,将安全TZHD-Mat图像记为数值0,原始图像对其进行卷积操作、下采样操作等,并将采集到的特征输入到构造的LeNet网络,进行不断训练学习,进而得到一个检测模型。具体运行过程如图6所示。

图6 Caffe卷积神经网络训练完毕

3.3模型优化

首轮的卷积神经网络模型训练完毕,但如图6所示,检测精确度为40%,还需要进行模型优化。现主要工作就是调整部分关键的网络参数,让卷积神经网络在不同的网络参数下进行重新迭代训练,最后再统计网络的训练时间以及模型的预测准确率。在卷积神经网络的迭代训练过程中,Caffe主要采用默认的随机梯度下降的策略进行梯度更新,直到收敛。梯度下降法也叫最速下降法,其通过负梯度▽L(W)和上一次的权重更新值Vt的线性组合来更新梯度Wt,迭代公式如下:(其中μ代表动量,α 代表基础学习率)

由以上迭代关系可以观察到,卷积神经网络的训练迭代过程中,基础学习率和动量这两个参数对于网络的训练效果影响比其他参数更大。于是网络的优化过程中,主要通过改变基础学习率α和动量μ这两个参数。

将基础学习率base_lr设置为0.01,将初始动量momentum设置为0.9,网络模型的预测效果较好。具体参数如表1所示。参数设置完毕以后,图像分类识别准确率达到了0.99,模型训练时间为1077分钟。

表1 caffe参数设置

4 结束语

本文在分析现有恶意代码检测技术存在的问题的基础上,提出了一种基于深度学习的恶意代码检测方法,并通过对6000个样本进行训练学习,最终训练出来的模型可以达到99%的检测率。未来将使用更多的样本数据来改进完善检测模型,进一步验证本方法的可行性。

[1]Gartner. Android accounted for 87.7% of global smartphone sales in the second quarter[OL]. [2017-08-23].https://www.phonearena.com/news/Gartner-Android-accounted-for-87.7-of-global-smartphone-sales-in-the-second-quarter_id97353.

[2]凤凰资讯. “勒索病毒”幕后工具指向美国国安局[OL]. [2017-05-16].http://news.ifeng.com/a/20170516/51097848_0.shtml.

[3]新浪新闻.AlphaGo最终战胜李世石人机大战总比分1:4[OL].[2016-03-15].http://tech.sina.com.cn/it/2016-03-15/doc-ifxqhmvc2486669.shtml.

[4]ImageNet.Large Scale Visual Recognition Challenge 2012(ILSVRC2012)[OL].[2012-10-12].Large ScaleVisual RecongnitionChallenge2012.http://www.image- net.org/challenges/LSVRC/2012/results.html.

[5]LE Q, NGIAM J, CHEN Zheng-hao, et al. Tiled convolutional neural networks[C]. Advances in Neural Information Processing Systems. Cambridge:MIT Press, 2010.

[6]Yangqing Jia. Convolution in Caffe: a memo [OL]. [2015-07-19]https://github.com/Yangqing/caffe/wiki/Convolution-in-Caffe:-a-memo.

猜你喜欢
框架卷积神经网络
框架
基于3D-Winograd的快速卷积算法设计及FPGA实现
广义框架的不相交性
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立
关于原点对称的不规则Gabor框架的构造