APP下载

Android平台下细粒度权限管理机制设计与实现

2019-10-15孙岚李永忠

软件导刊 2019年8期

孙岚 李永忠

摘 要:针对Android平台粗粒度权限管理机制的漏洞,提出一种细粒度权限管理机制。该方案实现了恶意软件识别、隐私权限分析与警告,以及权限选择与修改功能。其中恶意权限识别功能中采用了卡方检验法、聚类算法及改进的朴素贝叶斯算法。运用该系统对1 000个样本进行实验,得出恶意软件误判率约为9.75%,检测准确率约为90.25%。实验结果表明,该方案使普通用户在面对各种应用时能更合理地授予及修改权限,从而大幅降低了Android平台下权限控制的危险性。

关键词:Android;细粒度权限管理机制;权限控制;恶意权限檢测

DOI:10. 11907/rjdk. 182794 开放科学(资源服务)标识码(OSID):

中图分类号:TP319文献标识码:A 文章编号:1672-7800(2019)008-0131-05

Design and Implementation of Fine-grained Rights

Management Mechanism under Android Platform

SUN Lan, LI Yong-zhong

(School of Computer, Jiangsu University of Science and Technology, Zhenjiang 212003, China)

Abstract: In order to solve the problem of the coarse-grained permissions management system of the Android platform, this paper proposes a fine-grained permissions management system. This program implements many functions, including identification of malware, analysis of privacy permissions, selection and modification of permissions. Chi-square test, clustering algorithm and improved naive Bayesian algorithm are adopted by malicious identification function. This system was used to conduct experiments on 1000 samples, the false positive rate of malware was about 9.75%, and the detection accuracy was about 90.25%. Experiment result have shown that the control of privacy-related permissions is more secure and reliable, so that this solution allows ordinary users to grant and modify permissions more reasonably when faced with various applications, greatly reducing the risk of permission control under the Android platform.

Key Words: Android; fine-grained permissions management system; permission control; malicious permission detection

作者简介:孙岚(1994-),女,江苏科技大学计算机学院硕士研究生,研究方向为网络与信息安全;李永忠(1961-),男,硕士,江苏科技大学计算机学院教授,研究方向为网络安全、嵌入式应用。

0 引言

随着Android智能手机的普及,Android系统的市场占有率不断提高,然而,Android因其系统结构及开源性引发的安全问题也亟待解决。根据市场调研机构Kantar发布的2018年Q2季度智能手机行业最新调查报告显示,Android手机占据了中国市场80.4%的市场份额,在德国、美国、法国、意大利、日本、西班牙等国家,Android手机的市场占有率也稳居第一[1]。

自2009年起,学者们对Android平台的权限管理机制展开研究。2009年,Enck等[2]建立Kirin安全服务以检测违反权限策略的软件,并拒绝对其进行安装;2010年,Shin等[3]构建形式化模型以检测权限机制的安全性;同年,美国宾夕法尼亚州立大学、杜克大学及英特尔实验室研究人员开发出TaintDroid系统[4],对应用如何使用隐私数据进行了分析;2011年,Felt等[5]利用Stowaway工具检测出符合应用功能需求的最小权限集,并将其与被应用申请的权限集进行比较;同年,著名的TISSA[6]系统被开发出来,该系统实现了Android平台的多粒度控制,但其难以避免应用之间的串谋攻击;近年来,戴维等开发了CrossDroid系统,以进一步改善TISSA系统中应用之间的串谋攻击问题。目前,Android权限控制方面应用最广泛的方案即是上述的TaintDroid、TISSA、CrossDroid 3项。

以上3种方案为之后的权限控制研究奠定了基础,其可最大限度地维护Android 平台权限管理的安全性,但仍存在许多漏洞,比如用户仅能在软件安装时进行权限管理,用户若拒绝软件权限申请则会取消安装[7-8]。因此,本文研究一种细粒度权限管理机制,使用户能够自主进行权限管理。安装应用时,系统将弹出权限申请框以提示有权限正试图提出申请,后台将对其进行识别,检测该权限是否带有恶意倾向将该应用转变为恶意应用,并将结果反馈给用户,以供用户参考并进行选择,从而极大提升了用户隐私的安全性。

1 Android安全机制

Android系统完整的安全架构与严谨的安全规范保证了系统架构每个层面的系统及用户信息安全。Android安全体系框架如图1所示,主要包括3部分:Android内核安全、Android应用层安全与Android用户层安全[9]。

图1 Android安全体系

由于权限机制能允许或拒绝应用程序访问API或系统资源,故其实质上是一种访问控制机制[10]。然而,权限机制还存在以下隐患:①用户在安装软件时,无法对权限进行筛选,只能全部接受,否则将结束安装;②用户难以区分权限是否具有恶意特征;③用户无法对已授权的权限进行更改。针对这些弊端,本文提出的模型不仅对隐私数据提取进行了权限控制,还评估了隐私权限组合,并在用户授权时给予警告,从而提升了Android系统权限控制的安全性[11]。

2 Android系统架构

Android系统架构采用分层架构思想,图2为Android系统总体架构[7]。系统自上而下分为应用层、框架层、系统库与Linux内核4层[12]。应用层位于Android系统架构顶层,该层存放了开发人员利用Java编写的Android第三方应用程序;框架层为应用程序开发提供API调用接口,如Android四大组件,以及丰富且可拓展的视图控件等[13]。同时,该层还能提供大量系统服务,使应用能够获取系统与其相关信息;系统库层包含系统类库与Android Runtime两部分,可促进Linux内核与框架层之间的沟通;Linux内核为Android奠定了基础,Android凭借该层实现了许多重要功能,如无线通信、硬件设备驱动、进程与内存管理、电源管理等[13]。

图2 Android系统总体架构

3 恶意权限检测算法

3.1 权限特征选取

权限特征选取中运用了卡方检验法,该方法主要用于计算权限与恶意倾向的相关性[14]。四格卡方检验公式为:

[x2=(ad-bc)2?N(a+b)(c+d)(a+c)(b+d)] (1)

式中,a、b、c、d分别代表四格频数,N为样本容量,即a、b、c、d之和。利用式(1)对权限进行计算,进而得出[x]2,再参考卡方界值表,将检验水准[α](默认值0.05)与卡方界值表对应的临界值进行比较,若卡方值大于查表值,则视该权限为冗余权限并将其去除。以上步骤实现了权限特征集合的降维操作,得到权限特征集合T。

3.2 权限特征聚类去冗余

根据对权限特征集合T的分析发现,权限之间具有相关性,许多权限都是捆绑出现的。因此,需要去除T的冗余特征,以提高权限特征的代表性,减少分类开销。本文采用基于熵的互信息法进行相似性度量,該方法可通过计算,从全局层次把握特征间的相关性大小[14]。信息熵[H(x)]与变量x的关系表达式如式(2)所示,已知变量y后x的条件信息熵公式如式(3)所示。

[H(x)=-iP(xi)lbP(yi)] (2)

[H(x|y)=-jP(yj)iP(xi|yj)lbP(xi|yj)] (3)

变量x与y之间的互信息[MI(x,y)]为:

[MI(x,y)=H(x)-H(x|y)=H(y)-H(x|y)=]

[x,yP(x,y)lbP(xy)P(x)P(y)]        (4)

特征[x、y]之间的相关性计算如式(5)所示。

[Sim(x,y)=2MI(x,y)H(x)+H(y)] (5)

其中,相关性区间为[0,1],0代表特征[x]与[y]不相关,1表示[x、y]完全相关。之后,采用[Sim(x,y)]值对特征集进行简单聚类,去除冗余权限[14]。聚类算法将权限特征集T作为输入,将去冗余后的权限特征集[T]作为输出,详细步骤如图3所示。

图3 权限特征聚类

通过以上步骤,可降低[T]属性维数与权限之间的相关性,并提高了其与恶意软件分类决策的相关性。

3.3 改进的朴素贝叶斯分类

本文为实现对Android恶意软件和非恶意软件的分类操作,采用朴素贝叶斯分类法[15]。条件概率P(X|Y)与P(Y|X) 的贝叶斯公式为:

[P(Y|X)=P(X|Y)P(Y)P(X)] (6)

由于P(X)为常数,若要为待分类对象找出最大可能的类别,只需使P(X|Y)P(Y)最大即可。然而在实际应用中,一个属性值对分类的影响并不能完全独立于其它属性值,常见的朴素贝叶斯分类法通常无法解决该问题,而本文之前得到的[T']可满足实际需求,使特征权限间实现相对独立,特征代表分类效果显著[15]。

在Android平台下,各种权限对不同恶意软件决策的影响也有所差别。所以权限需要作出区分,以提升分类准确率[16]。以3.1章中计算出的卡方值[x2]为基础,引入权重影响因子[β],进而对朴素贝叶斯分类后验证概率计算进行改进,将式(6)变形为式(7)、式(8)[15-16]。

[P(Y|X)=P(Y)k=1mP(Xk|Y)βkP(X)] (7)

[βk=1x2k×i=1mx2i] (8)

其中,[βk]表示该权限特征占所有分类影响中的比重。由式(8)求得待检测软件为非恶意软件及恶意软件的后验概率,从而能够更准确地判断出该软件是否为恶意软件。

4 Android平台安全系统设计与实现

4.1 系统总体框架设计

Android平台权限管理机制无法实现用户对所需权限的自由筛选功能,若用户想安装某个应用,只能被迫同意所有权限才能对其进行安装,但该做法可能导致用户隐私被窃取。因此,本文设计了一个细粒度权限管理机制对其进行优化。该机制一方面能实现用户对权限数据的获取与选择,另一方面能够识别权限是否会引入恶意应用,从而为用户提供授权建议[17]。

Android平台细粒度权限管理系统共分为3个模块,分别为隐私分析报告模块、权限设置管理模块与恶意权限识别模块。系统总体框架如图4所示。

图4 系统总体框架

4.2 隐私分析报告模块

隐私分析报告模块的主要作用在于当应用软件获取隐私权限时,该模块可将其拦截,并通过比较原有数据库中的权限对其作出分析。当数据库中存在该权限时则允许访问,否则,将在跳转至权限设置管理模块时立刻启动恶意识别模块[17]。隐私权限控制流程如图5所示。

图5 隐私权限控制流程

4.3 权限设置管理模块

权限设置管理模块主要满足了用户自主筛选软件中与隐私相关权限的功能,详细过程为先从系统中获取第三方应用软件,再对应用提取权限,从而过滤出隐私相关权限,最后存储到专门设计的SQLite数据库中[18] ,并通过用户与权限设置管理模块的交互实现数据库更新,其基本步骤如图6所示。

4.4 恶意权限识别模块

恶意权限识别模块是在应用申请权限后启用的模块,主要对输入的权限信息进行检测分析,并返回判断结果[19-20],恶意权限识别流程如图7所示。

图6 权限设置管理流程                 图7 恶意权限识别流程

恶意识别模块主要使用了卡方检验法、聚类算法及朴素贝叶斯分类法[15]。首先采用卡方检验法对特征权限进行筛选,得到相关性较高的权限集,然后通过权限间的互信息计算出权限间的相似度,并对其进行聚类与去冗余操作,从而使特征权限之间相对独立,最后采用朴素贝叶斯算法对特征权限进行分类,以達到区分正常软件与恶意软件的目的[21]。

5 系统测试

系统测试主要分为3部分进行,包括隐私分析报告模块测试、权限设置管理模块测试与恶意权限识别模块测试。

隐私分析报告模块测试主要测试应用提取隐私相关权限并与数据库中的数据进行对比,若不符合,则跳转至权限管理模块。隐私权限控制模块拦截效果如图8所示。

权限设置管理模块测试主要测试用户能否对权限进行自由筛选。具体而言,应测试系统能否成功获取第三方应用软件并提取其权限列表,用户是否能够对想要的权限进行勾选,并成功保存筛选结果,以及该结果是否能够生成权限数据库。权限设置功能测试如图9所示。

恶意权限识别模块测试旨在测试是否可以完成对恶意软件及非恶意软件的分类,即测试基于朴素贝叶斯算法的检测是否有效。然而要想测试系统的检测是否有效,则首先要过滤出非恶意软件配置文件AndroidManifest.xml的权限,再将其作为输入,并将最后一个权限作为识别点,判断该软件是否会转变成恶意软件[21]。

图8 隐私权限控制模块拦截效果             图9 权限设置

分别选取500个恶意软件及非恶意软件对其进行检测,将实验分为2组,准确率及误判率测试结果分别如表1、表2所示。

表1 恶意软件样本检测结果

表2 非恶意软件样本检测结果

由表1可以看出,系统平均误判率为9.75%,总体平均准确率为90.25%。

功能测试结果如图10所示。

图10 恶意权限检测模块结果

6 结语

本系统能够实现恶意软件识别、隐私权限分析与警告功能,可使用户自定义设置权限。运用该系统对1 000个样本进行实验,得出恶意软件误判率约为9.75%,检测准确率约为90.25%。该方案使普通用户在面对各种应用时能更合理地授予及修改权限,从而大大降低了系统被攻击的可能性,提高了Android系统的安全性。

参考文献:

[1] 李俊辉. 基于Android安全机制的权限控制系统[J]. 信息技术, 2014(9):125-128.

[2] 戴威,郑滔. 基于Android权限机制的动态隐私保护模型[J]. 计算机应用研究, 2012, 29(9):3478-3482.

[3] SHIN W,KIYOMOTO S, FUKUSHIMA K, et al. A formal model to analyze the permission authorization and enforcement in the Android framework[C].IEEE Second International Conference on Social Computing, 2010.

[4] ENCK W,GILBERT P,CHUN B G,et al. TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones[J]. ACM Transactions on Computer Systems,2014, 32(2):1-29.

[5] FELT A P, CHIN E, HANNA S, et al. Android permissions demystified[C]. ACM Conference on Computer & Communications Security. ACM, 2011.

[6] ZHOU Y, ZHANG X, JIANG X, et al. Taming information-stealing smartphone applications (on Android)[C]. International Conference on Trust and Trustworthy Computing,2011.

[7] 戈亚光. Android细粒度授权管理系统设计与实现[D].北京:北京交通大学, 2015.

[8] 汤瑾. Android平台下的隐私数据保护方法的研究与实现[D].北京:北京邮电大学, 2014.

[9] 王鹏. Android隐私保护机制的分析与改进[D]. 北京: 北京邮电大学, 2013.

[10] 符易阳,周丹平. Android安全机制分析[J]. 信息网络安全, 2011(9):23-25.

[11] 朱业丰. Android安全机制分析[J]. 电子世界, 2012(14):17.

[12] 张娜. Android系统架构研究与应用[D]. 西安:西安科技大学, 2013.

[13] JIANG X, ZHOU Y. A survey of Android malware[M]. Android Malware, 2013:3-20.

[14] 初建朝,郑力明. Android安全性分析[J]. 微型机与应用, 2013(20):1-3.

[15] 刘彧. 基于贝叶斯理论的文本分类技术的研究与实现[D].长春:吉林大学,2009.

[16] 王国才.朴素贝叶斯分类器的研究与应用[D].重庆:重庆交通大学, 2010.

[17] MELO L L D,ZORZO S D. PUPDroid - personalized user privacy mechanism for android[C]. IEEE International Conference on Systems. IEEE, 2012.

[18] 李欣. 一種基于智能卡的Android权限管理方法研究[J].信息网络安全,2012(8):57-60.

[19] 张中文,雷灵光,王跃武. Android Permission机制的实现与安全分析[C].全国计算机安全学术交流会, 2012.

[20] AU K W Y,ZHOU Y F,HUANG Z,et al. PScout:analyzing the Android permission specification[C]. ACM Conference on Computer & Communications Security,2012.

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

(责任编辑:黄 健)