基于权限统计的Android恶意应用检测算法

2017-03-01 04:26程运安汪奕祥
计算机应用与软件 2017年1期
关键词:误报率定义频率

程运安 汪奕祥

(合肥工业大学计算机与信息学院 安徽 合肥 230009)

基于权限统计的Android恶意应用检测算法

程运安 汪奕祥

(合肥工业大学计算机与信息学院 安徽 合肥 230009)

作为世界上最流行的移动操作系统,Android正面临着快速增长的恶意软件的威胁。如何快速高效地检测出Android恶意软件对保证用户手机安全具有十分重大的意义。从Android软件的权限出发,统计了4000多个恶意应用和2000多个正常应用的权限分布情况,依据特征权限在恶意应用和正常应用中的分布规律,设计了一种轻量级的快速检测方法LWD(Light Weight Detection)。LWD根据特征权限在恶意应用中的使用频率和在正常应用中的使用频率的不同来定量分析特征权限恶意程度值,并以此计算每个样本的恶意程度值是否超过规定阈值来判断该样本是否属于恶意应用。实验结果表明,与市场上主流的杀毒软件相比,LWD方法具有较好的检测率。而且LWD是基于单一的权限特征对恶意软件进行检测,因此具有较高的时间效率。作为一种轻量级检测方法,LWD可以为更进一步深入检测恶意应用提供参考依据。

智能手机 安卓系统 特征权限 LWD 频率

0 引 言

自Google发布第一款手机操作系统Android系统以来,Android就受到了广大手机厂商和用户的青睐,并在短时间内取得快速的发展。2013年全年,全球大约7.6亿部Android智能手机被售出,Android智能手机占据了大约78.6%的智能手机市场[1]。而同年IOS市场份额仅占15.6%。到2014年第二季度,Android手机市场份额更是达到了85%。虽在2015年,Android市场份额降低1.9个百分点。但Android系统仍在全球范围内占据主导地位。

Android系统之所以能在短时间内取得快速的增长,主要由于其免费开源的特性。但也正由于此,Android系统的安全性面临着了巨大的挑战。随着Android市场份额的扩大,针对Android平台的恶意软件也呈现爆炸式增长。这些恶意软件不仅干扰Android设备功能的正常运行,而且还能盗取用户隐私数据,甚至远程非法控制用户设备等,给手机设备正常使用带来了很大危害[2]。目前,恶意软件检测方法分为静态检测和动态检测两类,静态检测不需要程序运行而是通过提取软件自身特征来分析软件行为是否恶意的方法,主要集中于对应用权限使用的分析[3-6]。动态检测则是在程序运行过程中检测恶意行为,作为判断恶意软件的依据[7-9]。

1 Android的权限机制

在Android设备上安装应用程序时,需要授予相关权限。这些权限是在应用程序开发过程中添加到AndroidManifest.xml文件中的,只有添加了相关权限,Android应用才能进行相关敏感操作,例如,只有在AndroidManifest.xml文件中添加android.permission.INTERNET权限,应用才能正常使用移动网络。但是如果权限被恶意软件恶意利用,则会给用户造成危害。例如一个应用申请了读取电话状态权限,又申请了录音权限和网络权限,那么该软件就可能窃取用户语音通话记录。如果一个应用申请了网络权限,又申请了读取地理位置权限,则该软件就可能对用户进行追踪。因此,权限是否被合理使用是判断应用软件是否恶意的一个重要指标。由于大多数用户在安装应用时并不了解相关权限的作用,并且Android平台采用粗粒度的权限管理机制,即用户一旦同意授予权限进行安装,在以后的程序运行过程中将不再对权限进行检查。因此,在用户安装应用程序前对应用权限特征进行分析,并判断该应用软件是否是恶意应用,并对用户进行提醒,避免用户安装恶意应用,对保护用户手机安全起了重要的作用。

2 相关研究

对于根据权限预测出应用程序的恶意行为,国内外许多专家和学者都进行了广泛而深入的研究。文献[10]最早开始了基于权限机制的研究,设定了一种理想安全权限规则Kirin规则,如果应用程序中访问权限的机制违反了该项规则,Kirin方案就会拒绝应用程序的安装。然而,Kirin规则过于严苛,单纯使用Kirin规则可能使误报率过高。在Kirin规则研究的基础上,文献[11]开发了Apex工具,实现了细粒度的权限控制,不仅允许用户选择可以授予的权限,并给出更为详尽的配置方案。比如该权限能使用多少次,而且可以在程序运行过程动态改变授权。但是有选择的权限授予则有可能使应用程序崩溃,导致无法正常运行。在此基础上,文献[12]进一步提出,给API调用返回虚假值的形式来代替关闭权限,以防止应用程序崩溃。但由于大多数用户不了解Android用户的权限机制,故让用户自主选择选择权限授予的方式收效甚微。近年来随着数据挖掘技术的兴起,文献[13]通过数据挖掘算法对恶意应用族的Android权限进行频繁模式挖掘构建恶意应用权限关系特征库,来检测未知恶意应用,取得了良好效果。但由于数据挖掘算法时间复杂度高,构建恶意权限关系特征库时需要多次扫描恶意应用数据库,效率低下。

以上方法虽然从采用不同的方面对权限使用情况进行了分析,但是并没有根据正常应用和恶意应用权限使用情况的不同进行综合考虑,本文在统计大量恶意应用和正常应用权限分布的基础上,提出了轻量级的快速检测算法LWD,实验证明了LWD算法的有效性。LWD算法流程如图1所示。

图1 LWD算法流程图

3 LWD方法

3.1 LWD简介

LWD是根据恶意软件和正常软件集合权限频率使用的差异性而提出的一种轻量级检测方法。LWD方法通过定义权限恶意程度值函数,将应用所申请的权限组合映射为应用恶意程度值,并通过分析比较恶意软件集和正常应用集的恶意程度值不同来对手机软件进行检测和分类。与传统的基于权限的检测方法对比,LWD方法具有如下改进:

1) LWD方法减少了分类特征,降低时间复杂度。传统的基于权限的方法分类特征采取全部权限,而LWD方法只采用在恶意样本集出现次数最多的20个权限作为分类特征,既保留了产生恶意行为所需的主要权限特征,又有效减低其他权限噪声的干扰,降低了分类的时间复杂度。

2) LWD不仅分析特征权限在恶意应用中的使用频率,同时也分析了特征权限在正常应用中的使用频率,通过分析同一权限在不同样本集中的行为模式对该权限产生恶意行为的能力进行综合评估更加合理。

3.2 LWD方法定义与计算过程

3.2.1 LWD方法相关定义

定义1 特征权限向量。

P=(p1,p2,…,pi,…,p20),其中pi为在恶意应用样本集中统计权限的次数从高到低排序为第i位的权限,这样选出的特征权限既具有代表性,又避免了统计过多权限特征而导致算法时间效率低下。

定义2 权限恶意程度值(函数)φ(p)。

权限恶意程度反映的是权限产生恶意行为的能力大小。为了对权限产生恶意行为能力进行定量分析,本文定义了权限恶意程度值函数φ(p),如下所示:

φ(p) =λm2(p)/λn(p) =λm(p)×λm(p)/λn(p)

(1)

其中:p∈P,λm(p)=Cm(p)/C(恶意样本),λn(p)=Cn(p)/C(正常样本),Cm(p)为p权限在恶意样本集中出现的次数,C(恶意样本)为恶意样本集总数,Cn(p)为p权限在正常样本集中出现次数,C(正常样本)为正常样本集总数。从φ(p)的定义中可以看出:当权限p在恶意样本出现频率越大时,说明该权限越容易产生恶意行为,因此当λm(p)越大时φ(p)也就越大。当权限p在正常样本中出现的频率越大时,说明该权限使用越合理,产生恶意行为概率越小,因此当λn(p)越大时φ(p)也就越小。在公式中我们采用了λm(p)/λn(p)对λm(p)进行修正,这表明当权限在正常应用和恶意应用使用差距频率较大时,该权限产生恶意行为能力越大,φ(p)也就越大。式(1)表明权限恶意程度值函数既与权限在恶意应用中使用频率大小有关,又与其在恶意应用和正常应用使用频率的差异性有关,当权限在恶意应用使用的越多,且其在正常应用和恶意应用使用频率差异越大时,权限恶意程度值越高。

定义3 权限恶意度列向量F。

恶意权限特征集合P中的权限按顺序以式(1)分别计算出每个权限的恶意程度值,并映射权限恶意度列向量F。F的计算公式见式(2)。

F=φ(PT)=(φ(p1),φ(p2),…,φ(p20))T

(2)

定义4 权限特征向量Q。

为了便于衡量和计算应用权限产生恶意行为的能力,将应用映射为权限特征向量Q。每个应用对应着一个权限特征向量。应用A的权限特征向量可用式(3)来描述:

QA=(q1,q2,…,qi,…,q20),qi∈{0,1}

(3)

其中QA中每一项与P中的每一项一一对应。对QA中每一项qi定义如下:设PA为应用程序A申请的所有权限的集合,如果qi对应项pi∈PA,则令qi=1,否则令qi=0。应用的权限特征向量反映了恶意权限特征向量P在应用中的分布情况。

定义5 应用恶意程度值V。

我们采用恶意程度值V来定量描述应用产生恶意行为的能力。应用A的恶意程度值采用式(4)计算:

VA=QAF=(q1,q2,…,q20)(φ(p1),φ(p2),…,φ(p20))T

(4)

3.2.2 计算过程

由3.2.1节的相关定义,得出LWD方法的计算过程。

1) 确定恶意度阈值V阈

2) 构建线性分类器函数G(X)

4 实验步骤及结果分析

步骤1 本文从所用4000多个恶意应用样本来自于文献[14],并从GooglePlay上利用python爬虫程序批量下载3000个正常应用样本。为了使实验更具有统计规律性,我们从4000个恶意样本中随机选取1000个样本,并反复做了10次交叉实验得到10组随机样本。实验利用AndroidSDK自带的aapt.exe工具分别提取10组恶意样本集的权限,统计权限使用的次数,并将10组样本权限计数作加权平均后,按权限使用次数从高到低排列,取前20位权限为恶意应用的特征权限。利用同样方法,实验从3000个正常样本中同样随机选取10组正常样本集,每组1000个样本,并统计从恶意样本集中分离出来的20种特征权限在正常样本集中的使用次数。为了便于比较,我们将统计结果生成柱状图,统计结果见图2、图3。从图2、图3对比中我们可以看出,恶意样本和正常样本在使用与短信相关权限时具有显著的统计差异性。恶意样本申请了较多的短信相关权限,而正常应用较少申请这些权限。如SEND_SMS,RECEIVE_SMS,READ_SMS。

图2 恶意应用集中特征权限统计直方图

图3 正常应用集中特征权限统计直方图

步骤2 通过步骤1统计出来的权限次数,依据定义2中公式φ(p)=λm2(p)/λn(p),分别计算特征权限的恶意程度值,计算结果如表1所示。

表1 不同权限恶意程度值度量表

表2 不同比例与阈值关系图

图4 不同阈值下的检测率与误报率

实验结果表明,随着阈值的提高,检测率和误报率都在下降,为了在检测率和误报率之间有个较好的折中,我们选取V阈=4.6824,此时比例系数k1=0.6,k2=0.4,检测率为57.54%,误报率为14.9%。

步骤4 分别将文中所提方法与市场上主流的杀毒软件对比实验,仍使用步骤1中选取的十组样本分别对比实验,选用的杀毒软件分别为360安全卫士,腾讯手机管家,金山毒霸。对上述十组样本,每组1000个恶意样本分别进行检测,实验结果表明:360安全卫士的云检测率为54.08%,腾讯手机管家云检测率为55.8%,金山毒霸的检测率为53.08%。由此可见本文中所提方法的检测率均高于这三大杀毒软件。但在误报率方面,本文中的方法却略显不足,三大杀毒软件中, 3种杀毒软件的误报率均在5%左右,低于本文方法中的误报率。如图5所示。本文对三大杀毒软件误报的app进一步研究发现,所误报的app主要是强行推送广告的app。目前,是否将恶意推送广告的app归类为恶意软件仍存在争议[15]。与国产杀毒软件相比,本文所提检测方法时间性能具有明显的优越性,图6给出了扫描分析1000个样本的时间对比,从图中可以看出,LWD有效缩短了分类时间。因此,LWD作为一种轻量级的检测方法,能快速对恶意软件进行检测,对保护用户手机安全,具有重大现实意义。

图5 LWD和国产杀毒软件检测率与误报率对比

图6 LWD与国产杀毒软件运行时间对比

5 结 语

本文从权限使用频率的角度出发提出了一种Android恶意软件检测的轻量级算法-LWD,LWD算法通过权限在恶意应用和正常应用中使用频率来定量刻画权限产生恶意行为的能力,并以此计算应用软件恶意程度值来判断软件是否属于恶意软件。实验证明,LWD方法具有与现行杀毒软件相似的检测能力。与传统的杀毒软件算法相比,LWD是基于单一权限特征来进行恶意软件检测,只需扫描一遍数据库,时间复杂度较低,能快速对应用软件进行初步检测,同时为更一步深入检测应用软件提供参考依据。该算法不足之处在于存在一定程度的误报率,如何对算法进行改进以降低误报率是下一步工作的重点。

[1] Gartner Group. Gartner says annual Smartphone sales surpassed sales of feature phones for the first time in 2013[R/OL].[2014.07.15].http://www.gartner.com/newsroom/id/2665715.

[2] Polla M L, Martinelli F, Sgandurra D. A survery on security for mobile devices[J].IEEE Communications Surveys & Tutorials, 2013, 15(1):446-471.

[3] 闫梅,彭新光.基于Android安全机制的权限检测系统[J].计算机工程与设计,2013,34(3):854-858.

[4] 张叶慧,彭新光,蔡志标.基于类别以及权限的Android恶意程序检测[J].计算机工程与设计,2014,35(5):1568-1571.

[5] 张锐,杨吉云.基于权限相关性的Android恶意软件检测[J].计算机应用,2014,34(5):1322-1325.

[6] Chan P P K, Song W K.Static detection of android malware by using permissions and API calls[C]//Proceedings of 2014 International Conference on Machine Learning and Cybernetics, 2014.

[7] 蔡昌. Android平台恶意软件动态检测系统的设计和实现[D].北京:北京交通大学,2013.

[8] 严勇.基于动态监控的Android恶意软件检测方法[J].信息安全与通信保密,2014(10):104-108,112.

[9] Zheng M, Sun M, Lui J C S.DroidTrace:A Ptrace Based Android Dynamic Analysis System with Forward Execution Capacity[C]//2014 International Wireless Communications and Mobile Computing Conference, 2014:128-133.

[10] Enck W, Ongtang M, McDaniel P.On lightweight mobile phone application certification[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security, 2009:235-245.

[11] Nauman M, Khan S, Zhang X.Apex:Extending Android permission model and enforcement with user-defined runtime constraints[C]//Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security, 2010:328-332.

[12]LivshitsB,JungJ.Automaticmediationofprivacy-sensitiveresourceaccessinsmartphoneapplication[C]//Proceedingsofthe22ndUSENIXConferenceonSecurity.Berkeley:USENIXAssociation, 2013:113-130.

[13] 杨欢,张玉清,胡予濮,等.基于权限频繁模式挖掘的算法的Android恶意应用检测方法[J].通信学报,2013,34(Z1):106-115.

[14]VirusShare[OL].http://virusshare.com/support.

[15]ZhouY,JiangX.DissectingAndroidMalware:CharacterizationandEvolution[C]//2012IEEESymposiumonSecurityandPrivacy, 2012:95-109.

AN ANDRIOD MALWARE DETECTION ALGORITHM BASED ON PERMISSIONS COUNT

Chen Yun’an Wang Yixiang

(SchoolofComputerandInformation,HefeiUniversityofTechnology,Hefei230009,Anhui,China)

As the most popular mobile operating system in the world,Android platform has been under the threat of the quickly growth of malware.It makes a significant sense to find solutions to detect the malware quickly.After analyzing the character permissions usage in more than 4000 malware and more than 2000 benign applications,a solution named LWD(Light Wight Detection) to detect malware is proposed.LWD defines the malicious value of character permissions on basis of the permissions usage frequency in malware and benign applications.Then,the application will be judged whether it is a malware by calculating the malicious value of the application.The results of experiment show that LWD has a better detection compared with other popular anti-virus software.As a single permission characterization,LWD has good time efficiency and it is able to provide foundation of further malware detection.

Smart phone Android system Character permissions LWD Frequency

2015-10-04。程运安,研究员,主研领域:信息安全,分布式系统。汪奕祥,硕士生。

TP309

A

10.3969/j.issn.1000-386x.2017.01.055

猜你喜欢
误报率定义频率
一种基于Web日志的混合入侵检测方法
原始数据动态观察窗法在火灾特征信号融合提取中的应用研究
家用燃气报警器误报原因及降低误报率的方法
振动与频率
无线电频率的特点
一类非线性离散动力系统的频率收敛性
成功的定义
神经网络技术在网络入侵检测模型及系统中的应用
导航频率源的同步与控制
修辞学的重大定义