Android系统应用权限异常检测技术研究
2017-12-01崔学成陆南李秀
崔学成,陆南,李秀
(江苏科技大学电信学院,江苏镇江212003)
Android系统应用权限异常检测技术研究
崔学成,陆南,李秀
(江苏科技大学电信学院,江苏镇江212003)
在安卓系统中,一个应用的申请的权限往往能反应出这个应用的行为模式。而一个恶意应用的出现,是需要多个权限配合的。本文针对Android平台恶意应用泛滥的问题,通过对Apriroi算法进行研究改进,寻找恶意应用申请权限之间的关联性,挖掘它们之间的关系,判断应用的恶意性,为Android用户提供安全保障。并通大量实验数据以及与其它方法进行比较得出,本文提出的方法的准确率高达78.6%,能够较为准确的判断出一个应用是否是恶意应用。
权限;安全;安卓;Apriori算法
随着智能手机的飞速发展,越来越多的恶意应用开始出现,并窃取用户的信息,给用户造成了财产损失和隐私泄露。
在谷歌公司发布的“2015Android系统安全报告”中,谷歌一共将潜在的恶意软件分为了十个大分类,分别是数据收集、间谍软件、木马、恶意下载、钓鱼、权限提升、后门、短信诈骗、WAP诈骗和Rooting。其中,谷歌市场中潜在恶意软件中大多数是因为收集数据被发现,而其他潜在恶意软件数量总和还没有数据收集的一半。此外,第三方应用商店中潜在恶意数据收集软件相比前一年增长2倍,恶意下载相比前一年增长42倍,权限提升相比前一年增长11倍。
从报告上来看,Root类应用数量在2014年和2015年一直稳居不下,特别是在中国的第三方应用商店中,Root类应用更是不计其数,对于Android设备来说Root过后安全性大大降低,甚至部分木马可以直接对设备进行Root,随后把其设置为不可卸载,让用户无从着手。软件安全情况着实令人担忧[1]。
而在中国,由于没有谷歌市场的限制,恶意应用泛滥,比国外有过之而无不及。
文中针对这种情况,把Android系统权限与数据挖掘相结合,设计出一种检测恶意应用的方法。
1 相关研究
1.1 Permission机制
Google公司为了保证用户的信息安全,所以在设计Android系统时提供了多种安全机制,主要包括沙箱机制、签名机制、Permission机制等。其中,权限机制是一种访问控制机制,一个应用程序如果没有对应的权限,就没有执行相应操作的能力。Android提供了大约130个权限用于系统资源的保护,并提供了对应的API来访问这些系统资源。应用程序在调用这些API来访问系统资源时,必须申请对应的权限。一个应用程序根据自己需要访问的系统资源,申请对应的权限。申请的权限一般在应用程序包中的AndroidManifest.xml文件中声明。应用申请的权限可以反映出程序的行为,所以可以尝试从权限中分析应用程序是否存在恶意行为。一旦应用程序的权限请求被用户确认而被安装后,就有了访问相应系统资源的能力[2-5]。
1.2 研究现状
作为Android安全的重要组成部分,权限机制一直以来受到了研究人员的广泛关注。Enck等人介绍了Android系统的结构和它的安全机制。Barrera等人研究了Android应用的开发人员是如何使用Android系统提供的Permission,他们使用自组织图的算法分析1 100多个Android应用,发现虽然Android系统提供了丰富的Permission,只有少数Permission被开发人员频繁使用。FeltAP等人研究了Android应用的开发人员在为应用申请Permission时,是否遵循了最小特权原则,并开发了一个工具Stowaway来检测应用是否申请了多余的Permission。他们使用该工具检测了940多项Android应用,发现其中的应用申请了多余的Permission。AuKWY等人开发了PScout,该工具更全面地分析了Android系统使用Permission的特征,指出有些Permission是多余的,并给出了从Android2.2到Android4.0的详细的API调用和需求的Permission的对应关系。Yajin Zhou等人提出了一个基于Permission和行为特征的检测方案,用来从已知恶意应用家族中发现新的样本;另外,还提出了一个启发式的过滤方案来发现未知的恶意应用家族,最后发现了1 200多个恶意应用,并且将这1 200多个恶意应用申请的Permission和Android市场1 200多个免费应用申请的Permission进行比较,发现申请最多的20个Permission是类似的。在基于应用申请的Permission对应用进行分类的研究方面,Shabtai等人使用多种分类器分析了820个应用申请的Permission、每个应用的用户评分和包含的静态字符串等特征,尝试对应用所属的类别进行预测。Sanz等人使用类似的方法,对一个应用是属于游戏还是工具进行分类。Aung Z等人提出了使用应用申请的Permission来检测恶意应用程序的方案,但他们都仅考虑了应用申请的权限,没有考虑应用实际使用的权限[6-11]。
2 Apriori算法
Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集[4]。Apriori(先验的,推测的)算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定[12]。
挖掘的基本步骤:
1)依据支持度找出所有频繁项集(频度)
2)依据置信度产生关联规则(强度)
3)基本概念
对于A->B:
支持度:p(A∩B),既有A又有B的概率;
置信度:p(B|A),在A发生的事件中同时发生B的概率。
如果事件A中包含k个事件,那么称这个事件A为k项集事件A满足最小支持度阈值的事件称为频繁k项集。
同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。
实现步骤:
Apriori算法是一种非常有影响的挖掘布尔关联规则频繁项集的算法。Apriori使用一种称作逐层搜索的迭代方法,“K-1项集”用于搜索“K项集”。
首先,找出频繁“1项集”的集合,该集合记作L1。L1用于找频繁“2 项集”的集合L2,而L2用于找L3。如此下去,直到不能找到“K项集”。找每个Lk都需要一次数据库扫描。核心思想是:连接步和剪枝步。连接步是自连接,原则是保证前k-2项相同,并按照字典顺序连接。剪枝步,是使任一频繁项集的所有非空子集也必须是频繁的。反之,如果某个候选的非空子集不是频繁的,那么该候选肯定不是频繁的,从而可以将其从CK中删除。简单的讲,过程如下:
1)发现频繁项集,过程为①扫描;②计数;③比较;④产生频繁项集;⑤连接、剪枝,产生候选项集,重复步骤①~⑤直到不能发现更大的频集;
2)产生关联规则,过程为:根据前面提到的置信度的定义,关联规则的产生如下:
①对于每个频繁项集L,产生L的所有非空子集;
②对于L的每个非空子集S,如果
则输出规则为:L-S
3 Apriori算法的改进
3.1 Apriori算法的缺点
1)由频繁k-1项集进行自连接生成的候选频繁k项集数量巨大;
2)在验证候选频繁k项集的时候需要对整个数据库进行扫描,非常耗时。
3.2 改进方案
Andrpod系统的权限太多,如果不对Apriori算法进行改进,产生的频繁项集太多,不旦会花费大量时间,而且毫无意义。
Apriori算法的执行效率较差,需要根据权限频繁模式的特点,对权限数据库进行了预处理。首先,对每个分类中的权限数据库中的所有应用都申请的权限进行提取,并删除相关数据。然后,对所有应用很少申请的权限数据进行删除。最后,将预处理后的数据库送入改过后的Apriori算法产生极大频繁权限项集,再将所有应用都申请的权限附加到极大频繁权限项集。这样进行预处理后大幅度降低了数据的复杂度,节省时间的同时,提高了算法的执行效率[13]。
3.3 检测步骤
检测步骤如图1所示。
图1 检测步骤
3.4 检测模型
检测模型如图2所示。
图2 检测模型
4 实验结果与分析
1) 实验环境
实验在内存为8GB,系统为window 7 64位,处理器为:Intel Core i5-4200M的电脑上实现,使用Weka软件来进行测试。
2) 实验样本
实验样本由3个部分组成。
①文献[9]中的典型恶意应用测试样本。该样本库中有1 260个恶意应用,其中有49个恶意应用类型。
②最近新发现的200个恶意应用。
③非恶意应用测试样本,构建了3 000个非恶意应用的测试样本。
3)实验结果
对所有恶意应用进行反复实验,权衡误报率,适当选取最小支持度计数阈值,得出每类应用的极大频繁权限项集。
Kirin是Enck等人基于Android应用申请的权限开发的。但是,他们忽略了权限之间的关联,因此检测的结果必然是不准确的。
将本文的方法与Androguard和Kirin相比较,使用1 260个恶意应用和最新发现的200个恶意应用来进行实验,部分结果对比如图3所示。
从图3中可以看出本文提出的检测方法要优于Androidguard和Kirin方法的检测结果。
5 结束语
文中把Apriori算法应用到Android系统中,通过把Apriori算法和基于权限的静态分析方法,提出了一种基于权限频繁模式挖掘算法的Android恶意应用检测方法,挖掘出相关规则,进行未知应用的检测,自动挖掘出权限之间的关联性,检测该应用的恶意性。实验结果也证明了这种方法的有效性和正确性。
图3 结果对比图
由于Android平台恶意应用数量太多,计划下一步采用Hadoop平台来检测结果的有效性[14-15]。
[1]2015年中国互联网网络安全报告[R].2015.
[2]李海峰,章宁,朱建明等.时间敏感数据流上的频繁项集挖掘算法[J].计算机学报,2012,35(11):2283-2293.
[3]张金鑫,杨晓辉.基于权限分析的Android应用程序检测系统[R].
[4]郭霖第一行代码[M].北京:人民邮电出版社,2014.
[5]廖明华,郑力明.Android安全机制分析与解决方案初探[J].科学技术与工程,2011(26):6350-6355.
[6]Barrera D,Kayacik H G,van Oorschot P C,et al.A methodology for empirical analysis of permission-based security models and its application to android[C]//Proceedings of the 17th ACM conference onComputer and communications security.ACM,2010:73-84.
[7]Felt A P,Chin E,Hanna S,et al.Android permissionsdemystified[C]//Proceedings of the 18th ACMconference on Computer and communication ssecurity.ACM,2011:627-638.
[8]Au K W Y,Zhou Y F,Huang Z,et al.Pscout:analyzing the android andcommunicatio- ns security.ACM,2012:217-228.
[9]Zhou Y,Wang Z,Zhou W,et al.Hey,you,get offof my market:Detecting malicious apps in officialand alternative android markets[C]//Proceedingsofthe 19th AnnualNetwork and Distributed SystemSecurity Symposium.2012.
[10]ShabtaiA, FledelY, EloviciY.Automated staticcode analysis for classifying android applications using machinelearning[C]//ComputationalIntelligenceand Security (CIS) , 2010 International Conferenceon.IEEE,2010:329-333.
[11]Sanz B,Santos I,Laorden C,et al.On the automatic categorization of android applications[C]//ConsumerCommunications and Networking Conference(CCNC),2012 IEEE.IEEE,2012:149-153.
[12]张磊磊.基于Hadoop和SVM算法的中文文本分类的研究与实现[D].昆明:昆明理工大学,2015.
[13]牛科.基于Hadoop云平台的分布式支持向量机研究[D].临汾:山西师范大学,2014.
Research on application of anomaly detection technology in Android system
CUI Xue⁃cheng,LU Nan,LI Xiu
(School of Telecommunications,Jiangsu University of Science and Technology,Zhenjiang212003,China)
In the Android system,a app requests permission’s action can know the app’s behaviorpatterns.But the coming of Malicious applications need work in with many permissions.The article uses the Apriori algorithm exhumes the association of permission for every App requests to research the App’s Malicious nature.If the App is harmful,then it can give the user a tips.Then,article throughs a lot of experimental data and compare with other ways to get the result that our ways’accuracy is 78.6%.So,itcan be more accurate to determine whether an application is malicious applications.
permissions;security;Android;Apriori algorithm
TN02
A
1674-6236(2017)22-0085-04
2016-09-18稿件编号:201609157
崔学成(1990—),男,山东潍坊人,硕士。研究方向:信息安全。