一种多机器学习算法集成的恶意代码检测系统

2018-04-10 01:39王子腾
网络安全技术与应用 2018年4期
关键词:决策树机器神经网络

◆王子腾



一种多机器学习算法集成的恶意代码检测系统

◆王子腾

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

随着手的广泛应用,针对手机的恶意代码带来的风险也越来越凸显。大多数恶意代码检测系统难以检测未知的恶意代码。本文提出采用随机森林、前馈神经网络、深度学习等多种机器学习算法集成,构建一个恶意代码检测系统,并将其部署在云端。

机器学习;随机森林;前馈神经网络

0 引言

大数据信息时代使人们足不出户便可分享网上购物、网络社交、线上点餐、洞悉世事等的网络便捷服务,但是这些服务软件系统后台也需提取用户海量的个人信息,才能做到服务的人性化,同时也带来了个人信息被泄露的安全风险。继“灰鸽子”和“熊猫烧香”之后,一种名为Wanna Cry的“蠕虫”勒索病毒曾肆虐全球[1],一时成为影响力最大的病毒之一,使很多高等院校、科研单位、银行以及证券机构受到严重攻击,带来了全球性的互联网灾难,又一次敲响了信息安全的警钟。因此,研究检测与防范未知恶意代码技术,保证数据信息安全成为关注的热点。

本文将机器学习技术引入恶意代码检测领域,提出了一种多机器学习算法集成的恶意代码检测框架,该框架集成了随机森林算法、前馈神经网络和深度学习技术,并采用matlab和caffe等优秀开发框架实现了该恶意代码检测系统,最后将本系统部署到阿里云中,取得了较好的效果。

1 机器学习算法

机器学习的宗旨是使用计算机模拟人类的学习活动,它是一种研究计算机识别现有知识、获取新知识、不断改善性能和实现自身完善的方法。机器学习研究的就是如何使机器通过识别和利用现有知识来获取新知识与新技能。它是人工智能的一个重要的研究领域。整体上看,机器学习就是模仿人识别事物的过程,即:学习、提取特征、识别、分类。 在本文中主要使用了三种机器学习算法来实现分类。

1.1随机森林

随机森林是一种比较新的机器学习模型,随机森林在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树结果。随机森林在运算量没有显著提高的前提下提高了预测精度[2]。

1.2前馈神经网络

前馈神经网络是一种最简单的神经网络,各神经元分层排列,每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层,各层间没有反馈,能够以任意精度逼近任意连续函数及平方可积函数,而且可以精确实现任意有限训练样本集,是目前应用最广泛、发展最迅速的人工神经网络之一。从系统的观点看,前馈网络是一种静态非线性映射。通过简单非线性处理单元的复合映射,可获得复杂的非线性处理能力;从计算的观点看,缺乏丰富的动力学行为。大部分前馈网络都是学习网络,其分类能力和模式识别能力一般都强于反馈网络[3]。

1.3深度学习

深度学习的概念最早由机器学习领域的泰斗、多伦多大学G.E.Hinton教授带领的深度学习团队在Image Net[4]图像分类大赛中取得了优胜,其准确率超过了第二名10%以上,引起了计算机视觉领域的极大震动,再一次掀起了深度学习的浪潮。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像、声音和文本。深度学习是无监督学习的一种,概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示[5]。

2 系统设计与实现

系统的处理流程分为模型建立与训练、模型使用两大部分。在模型建立与训练部分,通过采集大量数据,并进行特征工程预处理,然后提交给三个机器学习算法进行训练,进而得到模型。在模型应用部分,系统将模型应用于本地的检测系统和云服务检测系统。具体如图1所示。

图1 系统总体框图

2.1特征工程的实现

(1)数据采集

为了构建可靠的检测系统,本文下载了大约50G的Andriod恶意与安全APK样本,这些APK样本部分下载于Kaggle(大数据竞赛平台)和The Drebin Dateset实验室提供的恶意样本。机器学习领域的数据科学家们分享这些已经分类的APK样本数据,以便为有需求的机器学习项目提供训练材料。部分安全APK样本下载于经过权威认证的手机小米应用商店、华为手机应用市场、以及Google应用市场。

(2)数据预处理

APKTool是一款很好的APK反编译工具,能够反编译APK文件,同时安装反编译编译系统APK所需要的framework-res框架,清理上次反编译文件夹等功能。处理后如下图2所示:

图2 汇总后的smali文件sumsmali.txt

2.2机器学习模块

(1)随机森林模块

随机森林是一种统计学习理论,它利用bootstrap重抽样方法从原始APK样本中抽出多个样本,然后对每个bootstrap样本进行决策建模,然后组合成多决策树进行预测,并最后通过投票得出最终的结果。每棵决策树由样本量为k的训练样本集X和随机向量θk生成。

随机向量独立分布为:

决策树的集合为:

每个决策树模型h(X,θk)都有对每个APK样本一票的投票权来选择输入样本的分布结果。

其中H(x)表示随机森林对APK样本属性的分类结果,hi(x)表示单个决策树对APK样本的分类结果,I(x)为示性函数,随机森林的分类结果采用简单的投票系统完成。在本文中,随机森林算法有两大属性必须考虑,即收敛性和泛化误差上界。

采用随机森林算法对样本原始的特征向量 进行训练、反馈、调优,由于随机森林算法擅长检测和处理高维度的检测数据,而且模型采用决策树群并行预测的算法原理,从而大大缩短了检测的时间和效率。随机森林模块采用随机森林算法对2100维的样本特征矩阵进行处理和检测,所有的决策树对样本进行投票,进而生成随机森林检测模型。

(2)前馈神经网络模块

多层前馈神经网络在网络结构上通常由输入层、隐含层和输出层组成。在网络特征上主要表现为既无层内神经元的互联,也无层间的反联络。这种网络实质上是一种静态网络,其输出只是现行输入的函数,而与过去和将来的输入与输出无关。这种结构特征的网络主要应用于模式识别、函数逼近及逻辑功能运算等方面。

将原始数据输入,调用Matlab工具箱中自带的前馈神经网络工具箱,即可生成前馈神经网络检测模型。

(3)caffe模块

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

2.3模型使用

通过机器学习模块生成模型后,即可将模型用于检测恶意代码。

(1)本地检测系统

本文实现了一个本地检测系统,界面如图3所示。左侧文本输入框中输入一个待检测样本的文件名;右侧输出中,检测概率报告表示随机森林算法决策树投票属性的结果,深度检测给出经过caffe深度学习得到的结果。

(2)云端检测平台

我们将本地检测系统部署到阿里云服务器上,阿里云服务器采用ubuntu16.04操作系统,采用tomcat提供web服务,网页采用PHP开发。在浏览器中输入http://47.93.207.72访问云主机的主页,主页界面如图4所示。

图3 本地恶意代码检测系统

图4 检测平台网页功能界面

当用户上传检测样本后,将会把检测结果显示在网页上。如图5所示。

图5 云端检测平台

3 结束语

为了应对用户信息安全面临的严峻挑战,本文将机器学习技术用于恶意代码检测,采用随机森林、前馈神经网络、深度学习等多种机器学习算法集成,实现了一个主要由模型训练、本地检测系统、云端检测系统三部分组成的恶意代码检测系统,很好地解决了恶意代码变种速度快、检测率不高的实际问题。

[1]腾讯新闻.全球爆发电脑勒索病毒 中国多所大学校园网被攻击[OL],[2017. https://news.qq.com/a/20170513/001170.htm.

[2]Prinzie Anita, Poel, Dirk. Random Multiclass Classification: Generalizing Random Forests to Random MNL and Random NB. Database and Expert Systems Applications[C]. Lecture Notes in Computer Science,2007.

[3]Auer, Peter. A learning rule for very simple universal approximators consisting of a single layer of perceptrons[C]. Neural Networks, 2008.

[4]ImageNet. Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)[OL]. [2012-10-12]Large Scale Visual Recongnition Challenge,2012. 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.

猜你喜欢
决策树机器神经网络
机器狗
机器狗
神经网络抑制无线通信干扰探究
一种针对不均衡数据集的SVM决策树算法
基于神经网络的中小学生情感分析
决策树和随机森林方法在管理决策中的应用
未来机器城
基于决策树的出租车乘客出行目的识别
基于神经网络的拉矫机控制模型建立
基于肺癌CT的决策树模型在肺癌诊断中的应用