您的当前位置:首页正文

基于深度学习的Android恶意软件检测系统的设计和实现

来源:独旅网
信息安全研究Journal of Information Security Research

V〇1.4 N〇.2 Feb. 2018

基于深度学习的设计和实现

王涛

李剑

Android恶意软件检测系统的

(北京邮电大学计算机学院北京100876)(nate_wang@bupt. edu. cn)

Design and Implementation of Android Malware Detection System Based on Deep Learning

Wang Tao and Li Jian

(School of Computer Science = Technology,Beijing University ofPosts andTelecommunications,Beijing 100876)

Abstract

In order to improve the detection efficiency and accuracy of Android malicious

application,an Android malware detection system based on deep learning is proposed. Deep learning especially emphasizes on Android Security features? which combines static and dynamic features for classification. In order to

improve the

accuracy

of malware

detection,attribute

selection analysis is used to reduce the dimensionality of fusion features. Then, the Stacked Denoising Autoencoders is used for classification. The SDADLDroid,a static and dynamic analysis system that detects the Android malware, is proposed. In order to recognize different Androidmalware,different kinds of clustering algorithms can be applied to compare the malware modeling capability. We use a dataset containing more than fifteen thousand real applications, includingseven thousands malware applications. Experimental results show that the deep learning technique is especially suitable for Android malware detection than machine learning and can achieve a highlevel of 95. 8% accuracy with real-world Android application sets.

Key words

Android security & deep learning & Android malware ; neural networks & malware detection

为了提高Android恶意软件检测的准确率和有效性,提出了一种新的基于深度学习的

Android恶意软件检测系统:SDADLDroid.该系统中使用的安全相关特征分别由静态特征和动态特 征组成.经过特征选择算法,将深度学习多层降噪自动编码机,用于最终的分类.在本次实验中,使用 了 8000个良性应用软件和7000个恶意软件组成的数据集,该系统通过对现实中15 000个应用构 建了一个3层的SDA神经网络,该系统的检测准确率高达95. 8%.实验表明基于深度学习的 Android恶意软件检测系统比传统机器学习技术有更高的准确率.

关键词 Android安全;深度学习;恶意软件;神经网络;恶意软件检测 中图法分类号TP301

随着科技的发展,近年来手机已经成为人们 日常生活的必备品.根据DC季度手机追踪报告,

收稿日期2017—11—27

基金项目:国家自然科学基金项目(U1636106,61472048)

140 |

在2017年第1季度各大公司全球出货量达到

I

3. 443亿部自从2010年8月卡巴斯基首次发

现短信特洛伊木马程序以来,Android恶意软件的 数量急剧增加.从那时起,Android恶意软件不断 发展,越来 ,也不 增强措

出来.正如Zhou等人'2]的研究所揭示的,恶意软 件家族通过增加代 、隐蔽的 通

信通 在不断加 4 技不 基

的 ,1

在Android

程序中发现恶意行为和

代码的难度4 Android设备的恶意软件

自2010年以来以惊人的速度增长.

研究 ,

以发现恶意行为,Android恶意软件

在3个月

[3].大多数 ?

的恶意软件 的

在,因此,一旦发生

到的恶意软件

,用户

4

的 时间

在 时到

, 来

恶意软件, 生

, 到 的 数据库,,I■一

的机 ,但是基 名

的防 引擎平均需要48 d才能发现新的威胁.尽管谷歌推出了“Bounce?’,为 程序商店筛选提交恶意行为的应用程序,很 还是处在 风 .

然,我们需要改进 方法,考虑到An­droid 恶意软件的发展和迫切需要减少出现以前 未见过的 所带来的威胁的机会.因此,不同于现有的Android恶意软件工作,本文提出 种基 般深度学习的

模型,

意代

.

1

相关工作

近年来,随着智能手机市场的不断增加,基于 Android的恶意软件技术得到了积极的研究. APK文件是在Android操作系统上的安装软件, 每个APK必须有一个Manifest文件.该文件 关于Android操作系统应用程序的基本信息. 它声 程序必须具有哪些权限,以便访问API的受保护部分,并与其他 程序交互.为了保护Android

,应用程序对资源的访问受到

严格的权限限制.应用程序必须获得权限才可以 使用,例如蓝牙或摄像机之类的敏感资源.Sanz等 人[]通从

程序自

的权限

,开发

»>...

种基于机器学习 的工具.ADROIT项目[]中通 时的metadata去检恶意程序,, 度的分类器.

文献[6]提出 基于机器学习的Android

恶意软件 系统.基 方式的支持向量机(SVM$

训练了权限 流图(CFG)特

征,然而该 在实时 时仍不能很好地

问题.文献[5,7( 权限 他特性,并应用 各种机器学习分类器达到86Q的 .Zhou等人[]根据所 的权限 为方面的 ,如

安装方法,检测Android恶意软件.

研究的 方面是对系 的 .

Xiao等人[]提出 的方 为人工神经网络(ANN)对共生矩阵的机器人(ANNCMDroid), 生 关的系 .他们的主要

是系 的相关性在恶意软件 性

软件 是 不同的,它们可以 生矩阵精

达.在 DroidAHMinr0 中,程序和恶意 程序的不同AH 进 ',生成了不同的分类器来 恶意软件.

Bartel等人[10]: 各种 程序,发现有程序声明权限, 上 使用.因此, 通 权限的 文件 并不 出 的.在Android ,一旦安装 程序,在 时 API. 每 API 与特定权限相关联. API时,Android操作系

是 它的相关权限. 它

时, 它才 API . API

信息,- 是 使用.特征指的是 程序在 备上的安

装 为, 程序在操作系 或 的为. 程序使 系 来 特 的 ,、 ,因为它们不 与Android操作系统交互.当在 模 发出系 时,An­droid 操作系统切换到 模式以 所需的任.此外,大多数 程序需要 .在Zhou人[2(研究 , 他们 的 Android 恶意软件本 93%需要 ,以便与 .

学习无法学习到更全面的Android恶意软 件的安全 信息&本文基于深度学习研究 Android 恶意软件 问 , 特征 Android软件的安全 信息的表达,增加模型对安全语信息的学习 .本系 基于深度

网址 http://ns.sic.gov.cn | 141

信息安全研究Journal of Information Security Research

V〇1.4 N〇.2 Feb. 2018

学习的SDA方法研究Android恶意软件的分类 问题.SDA方法是多隐层神经网络结构,可以逐层 分析,优化每一层得到的特征向量表示,因此它提 取的特征向量可以更准确地表达Android软件的 安全语义信息,提高检测结果.

8 000个良性软件和7 \"0\"个恶意软件进行特征提

取,对数据进行分析降维后将选择到的961个特 征利用深度学习算法SDA ( stacked denoising autoencoder)建立一个3层神经网络后,经过数据 集交叉验证,确定该方法的检测正确率达到 95. 8%,丰富了 Android恶意软件的检测方法,提 .2.1系统设计

如图1所示,系统主要分为三大部分,分别是 编写网络爬虫收集数据集,收集每个APK的静态 代码特征和动态行为特征,特征降维后进行深度 学习并建立良好的神经网络进行检测.

2

系统设计

本文设计并实现了一种基于深度学习算法的 Android恶意软件检测的系统SDADLDroid ( an Andriod malware detection based on SDA deep learning algorithm),该系统通过对爬虫爬取到的

图1系统设计图

2 2

系统实现

根据研究表明,Google Play上的应用一般被

编码机是一种无监督的算法,不需要对样本进行 标注,就可以有效利用样本信息,提高模型性能. 传统的自动编码机分为编码和解码2部分.编码 阶段将^维输人向量x定性映射到'维隐层表示 _y,映射函数通常选用Sgmd:

y = f(x

-,6) =

1.

认为是良性的,所以我们编写了网络爬虫,随机地 在其中选取了 8 000个APK作为本次研究的良性 应用数据集,并且我们已经收集了 7 000多个恶意 应用软件.因此本次实验中,所有的实验数据都是 现实世界中发布的已知的良性和恶意应用软件, 实验数据有良好的真实性.

我们 每 APK Apktool 进了反汇编,生成了 Smail文件和Manifest文件,对 其中重要的静态代码特性(例如权限、IP地址等) 进行抽取,然后对于每一个APK都开启一个虚拟 机并使用DroidBox对生成的Log日志中一些敏 感的行为信息进行抽取.将这些静态代码特征和 动态行为特征作为特征库,利用PCA数据降维, 对于降维后的数据集利用SDA算法构建神经网 络,最后利用BP算法微调结果,这样我们构建的 神经网络就可以用于分类任务了.2.3改进的5DA算法 2.3.1传统自编码

对于BP算法在训练多层神经网络所出现的 各种问题[11],Hinton等人1)(提出了自动编码机 (Autodencodr),为深度学习开创了新思路.自动

142丨

ioi

s(Wx+b), (1)

其中W\"R/x数,如Sgmd. W是输入层到中间层的连接权值, b为中间层的b

oi

ias.解码阶段将得到的结果表示为

-,6/) = s(W/y+b/),

1.

\",并且定性地映射到^维重构向量z :

% = 1 (y

(2)

其中

w'eR^'i/eR^式(2)中s是非线性函

数,如Sgmoid. vb是输入层到中间层的连接权值, b为中间层的bias.这样,自编码训练就在于用给

定的N个样本优化重构误差,优化目标交叉熵或

者均方误差L为

mn#L(x,z&,b’).

°'b n = 12.3.2降噪自编码

i

(3)

Vnn等人[15]指出,传统自编码在不加生 成约束的情况下,很容易直接将输人向量复制到 输出向量,或者只能产生微小的改变,此时模型只

icet

»>...

能产生较小的重构误差,表现非常差.当测试数据 训练数据相差很大,并 不符合同 时,训练 现得非常差.为此,Vincent等人[P1']出 的自 算法,即降噪自编码(denoisingautoencoder,DAE)算法,如图2所示.该算法将

样本x进行毁坏改造,以 的概率让 输人

节点的值置〇,从而使原样本变为/,再用/训练隐藏层:

y=f(x/-,6)=s(Wx/+b), (4)

其余过程 (2)(3),与传统AE相同.

2降噪自编码(DAE)

<3.3构建分类模型

使 输出y作为新的输人特征,多次重复

DAE,就构成了 SDA深度 .Bengio等人出,不同的特征表示突显或剔除数据的某些 释因子,从而具有不同的表示 .因此,SDA程的目的在于寻找到

比原始特征更适

,添加节

要求的特征表示方法.完成深度

全率R =提取出的正确信息条数/样本中 的信息条数&

f-mearnre :准确率和召回率加权调和平均.

1展示了各种算法评价指标:

表1算法评测指标

预测正例

实际正例实际负例总计

TPFP

预测负例

FNTNN

点与类别个数相同的输出层,将最后得到的特征表 示作为该输出层的输人.接下来将保存的训练得到 的各层权值矩阵、偏置项等作为初始参数,用BP算 法微调整个SDA神经网络, 类任务.

P

N

PCN=PCN

3.3实验结果

3

.

实验与分析

31数据描述

在本次实验中,我们使用自己爬取的7 000个 良性软件和6 000个恶意软件作为训练数据1 000 软件和1 000个恶意软件作为 数据.

本次 10份 5个分类

器,表2显示了 5 类 不同的 ACC、肯 TPR错误肯 FPR、 P查全率R以及F测度f-measwre.

表2实验结果

分类器NB

ACC65. 673. 783. 188.095. 8

TPR

FPR

P69.974.980.485.796.3

Rf-measure

3=实验评测标准

本实验采用准确率ACC7TR

54. 871.287.591.295.2

22.523.821.315.23.6

54.871.287.591.295.2

61.473.083.888.395.2

,,

查准率

LogisticRTMLPSDA

_P(precision),查全率 _R(recall),f-rweaswre 作为 评价指标来衡量模型的效果TP(truepositive),

.

FN(false negative) ,TN(true negative) ,FP(false positive).各个标准的计算公

含 .

3.4实验结果分析

从 以看出,我们 的3层

神经网络[700,700,700]能够达到最好的准确率, 是

的分类器,对比其他一般机器学习算

完成分类.深度学习

'

法,深度学习能够

准确率’_acc=tp+tp+tn+fn;

类的样本数目比率;

FPA :被错误分类的样本数目比率;:P= 的信息条数&

出的

信息条数/提取出

TPR : !

作为一种特征学习方法,可以把原始数据通

网址 http://ns.sic.gov.cn | 143

信Journal of Inform息安ation Security Research

全研究V〇1.4 N〇.2 Feb. 2018

些简单的但是非线性的模型转变成为更高层次 的、更加抽象的表达.通过足够多的转换的组合, 非常复杂的函数也可以被学习.传统的方法是手 工设计良好的特征提取器,这需要大量的工程技 术和专业领域知识.但是如果通过使用通用学习 过程而得到良好的特征,那么这些都是可以避免 的.这就是深度学习的关键优势.而我们的系统恰 好就采用深度学习的优势去避免浅层机器学习的 劣势,从而解决Android安全问题.因此,本系统 能达到更高的可信度和更好的效率.

4

结束语

通过全面分析Android应用软件中的安全隐

患问题,提出相应的对策和建议.本文提出了基于 深度学习的BP算法微调SDA神经网络的方法, 通过实验表明,该模型可以调高检测精度,提升检 测性能,拥有较高的准确率.

参考文献

[1] IDC. Smartphone OS market share [EB/OL]. [2017-04­

27], https://www. idc. com/promo/smartphone-marke-- share/os']

Zhou Y, Jiang X. Dissecting Android malware : Characteri­zation and evolution [C] //Proc of IEEE Symp on Security and Privacy, Piscataway,NJ: IEEE,2012: 95-109[3] Tam K,FeizollahA,Anuar N B,et al. The evolution of

Android malware and Android analysis techniques [J], ACY Computing Surveys,2017,49(4) : 76

[4] Sanz B,Santos I,LaordenC,et al, PUMA : Permission

usage to detect malware in Android [C] //Proc of Int Joint Conf on CISIS12-ICEUTE12-SOCO12 Special Sessions. Berlin: Springer,2013: 289-298

[5] Martin A,Calleja A, Menendez H D,et al. ADROIT :

Android malware detection using meta-information [C] / Computational Intelligence. Piscataway,NL IEEE,2017: 1-8

[6] Sahs J, Khan L. A machine learning approach to Android

malware detection [C] //Proc of European Intelligence and Security Informatics Conf. Los Alamitos, CA: IEEE Computer Society,2012: 141-147

[7] Sanz B, Santos I, Laorden C, et al. MAMA: Manifest

analysis for Malware Detection in Android [J]. Cybernetics =Systems,2013, 44(6/7): 469-488

[8] Xiao X,Wang Z, LIQ, et al. ANNs on co-occurrence

matrices for mobile malware detection [J]. KSII Trans on Internet = Information Systems,2015,9(7): 2736-2754

144 |

[9] Aafer Y,Du W,Yin H. DroidAPIMiner: Mining AP-- level features for robust malware detection in Android [M] //Security and Privacy in Communication Networks. Berlin: Springer,2013: 86-103

[10] Bartel A, Klein J, Traon Y L, et al. Automatically

securing permission-based software by reducing the attack surface: An application to Android [C] P/

roc of IEEE/ ACM Int Conf on Automated Software Engineering.

Piscataway,NJ: IEEE,2012: 274-277

[11] Bengio Y. Learning deep architectures for AI [J].

Foundations and Trends in Machine Learning, 2009, 2(1): 1-127

[12] Hinton G E, Osindero S, Teh Y W. A fast learning

algorithm for deep belief nets [J]. Neural Computation, 2006, 18(7): 1527-1554

[13] Bengio Y, Lamblin P, Popovici D, et al. Greedy layer-wise

training of deep networks [C] //Advances in Neural Information Processing Systems 19. Cambridge: MIT Press, 2007: 153-160

[14] Lecun Y, Bottou L, Bengio Y, et al. Gradient-based

learning applied to document recognition [J]. Proceedings of the IEEE,1998, 86(1): 2278-2324

[15] Vincent P,Larochelle H,Lajoie I, et al. Stacked

denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion [J]. Journal of Machine Learning Research,2010, 11(6): 3371-3408

[16] Vincent P,Larochelle H,Bengio Y, et al. Extracting and

composing robust features with denoising autoencoders [C] //Proc of the 25th Int Conf on Machine Learning. New York: ACM,2008: 1096-1103

[17] Bengio Y,Delalleau O. On the expressive power of deep

architectures [C] //Proc of Int Conf on Discovery Science. Berlin: Springer,2011: 18-36

[18] Bengio Y,

Courville A,

Vincent P.

Representation

learning : A review and new perspectives [J]. IEEE Trans on Software Engineering,2013,35(8): 1798-1828

王涛

硕士研究生,主要研究方向为机器学习、 信息安全.

nate_wang@bupt. edu. cn

李剑

博士,副教授,博士生导师,主要研究方 向为智能网络安全、量子密码学.

lijian@bupt. edu. cn

因篇幅问题不能全部显示,请点此查看更多更全内容