多层次的Android系统权限控制方法罗杨1,2,3,张齐勋1,2,3,沈晴霓1,2,3,刘宏志1,2,3,吴中海1,2,31(北京大学软件与微电子学院,北京100871)2(网络与软件安全保障教育部重点实验室(北京大学),北京100871)3(北京大学服务计算与大数据技术研究室,北京100871)通讯作者:罗杨,E-mail:luoyang@pku.
edu.
cn,http://www.
pku.
edu.
cn摘要:随着Android智能平台的普及,其安全问题日益受到人们关注.
在底层安全方面,部分root工具已经实现了对最新版本Android的root提权,从而给恶意软件滥用权限造成可乘之机;在上层应用安全方面,目前还没有能够在应用权限进行有效管理的方法.
基于安全策略的思想,提出了一种Android应用权限动态管理机制,利用安全策略对授权进行描述,在Android框架层设置权限检查点,并调用请求评估算法进行授权评估,从而实现对应用行为的监控.
实验结果表明,该方法能够有效管理Android应用权限的正常调用,约束非法调用,并且系统开销较小.
关键词:权限管理;安全策略;SELinux;请求评估;权限检查中文引用格式:罗杨,张齐勋,沈晴霓,刘宏志,吴中海.
多层次的Android系统权限控制方法.
软件学报,2015,26(Suppl.
(2)):263271.
http://www.
jos.
org.
cn/1000-9825/15037.
htm英文引用格式:LuoY,ZhangQX,ShenQN,LiuHZ,WuZH.
Androidmulti-levelsystempermissionmanagementapproach.
RuanJianXueBao/JournalofSoftware,2015,26(Suppl.
(2)):263271(inChinese).
http://www.
jos.
org.
cn/1000-9825/15037.
htmAndroidMulti-LevelSystemPermissionManagementApproachLUOYang1,2,3,ZHANGQi-Xun1,2,3,SHENQing-Ni1,2,3,LIUHong-Zhi1,2,3,WUZhong-Hai1,2,31(SchoolofSoftwareandMicroelectronics,PekingUniversity,Beijing100871,China)2(MoEKeyLaboratoryofNetworkandSoftwareAssurance(PekingUniversity),Beijing100871,China)3(ResearchLaboratoryofServiceComputingandBigDataTechnology,PekingUniversity,Beijing100871,China)Abstract:WiththeexpansionofthemarketshareoccupiedbytheAndroidplatform,securityissues(especiallyapplicationsecurity)havebecomeattentionfocusofresearchers.
Infact,theexistingmethodslackthecapabilitiestomanageapplicationpermissionswithoutrootprivilege.
ThisstudyproposesadynamicmanagementmechanismofAndroidapplicationpermissionsbasedonsecuritypolicies.
Thepaperfirstdescribesthepermissionsbysecuritypolicies,thenimplementespermissioncheckingcodeandrequestevaluationalgorithminAndroidframeworklayer.
ExperimentalresultsindicatethatthepresentedapproachsucceedsinpermissionmanagementofAndroidapplications,anditssystemoverheadislow,whichmakesitaneffectivemethodforAndroidpermissionmanagement.
Keywords:permissionmanagement;securitypolicy;SELinux;requestevaluation;permissioncheckAndroid近年来发展迅速,在2014年年底其市场占有率已经高达76%,远超第二名成为最流行的移动终端操作系统[1].
由于Android在设计之初对系统安全性考虑不周,虽然历经多个版本的漏洞修补和安全增强,其目前仍面临着很多安全威胁[2].
总体上主要包括以下几个方面:①应用程序权限混乱,缺乏管理[3];②恶意软件吸费、扣费[4];③移动平台杀毒软件无法很好地抵御病毒入侵[5];④非法root容易破坏系统现有安全体系[6].
造成这些问题的原因,一方面是由于Android平台的漏洞层出不穷,给病毒、木马、恶意软件等以可乘之机;另一方基金项目:国家科技重大专项(2012ZX03002022);国家自然科学基金(61232005);国家高新技术研究发展计划(863)(2015AA016009)264面,Android系统结构复杂,权限控制机制也不够健全.
Android底层采用的是Linux内核,上层则封装了Java虚拟机并在此基础上运行应用,这导致其底层安全和上层应用安全无法采用相同的机制.
Android系统底层依赖于Linux内核及各种Linux服务,其权限管理也采用的是Linux系统自有的DAC模型.
DAC模型由于其访问控制的粗粒度,资源所有者可以任意修改访问权限等问题一直广为诟病,因此Google从Android4.
3开始,逐渐引入基于SELinux安全加固机制,并在Android5.
0版本上对所有domain执行enforcing模式.
SELinux同时包括DomainTypeEnforcement(DTE),Role-BasedAccessControl(RBAC)和Multi-LevelSecurity(MLS)这3个安全模型的实现.
然而,目前的SELinux仍存在一些问题,如RBAC,MLS等安全机制实际上并没有启用,Android实现了MLS模型及其验证机制,但是由于MLS策略制定需要依据Bell-LaPadula(BLP)模型为每一个主体和客体设置(密级,范畴集)二元组表示的安全级,过于复杂,因此当前MLS模型中只有一个安全级s0,模型也就无法发挥其应有作用.
除此之外,SELinux由于支持策略的动态加载,还存在策略容易被恶意代码动态篡改等威胁.
以上诸方面均会导致Android系统在面临攻击时的漏洞缓解能力大打折扣.
经过实验,结果表明,目前的SuperSU,KingRoot等工具已经实现对Android5.
1.
0R3版本的root提权,从而允许第三方应用获取系统最高权限,给系统带来非常大的安全隐患.
Android上层平台主要负责对应用权限的管理.
由于Android对应用权限管理机制的安全不够重视,一直以来缺乏对应用权限进行管理的统一的安全机制.
目前学界和业界针对Android应用的权限管理提出了很多改进方案,主要包括以下3种:重打包、系统补丁和注入钩子.
重打包技术的代表应用是AppShield,此方法主要通过更改应用程序APK安装包中的AndroidManifest.
xml文件来实现权限的修改,然后再重新打包[7].
本方法技术上易于实现,但是重新打包势必会破坏应用原有的签名,从而导致应用安装时显示的厂商信息出现错误,给用户带来误导.
系统补丁方式的典型应用就是PDroid[8],此方法通过对内核进行修改,可以有效地在系统API的内核态调用处设置权限检查点,从而对应用的系统权限调用进行拦截.
此方法的缺陷是需要对系统内核进行修补,此操作需要root权限,容易对系统造成威胁.
并且,一旦用户对系统内核进行升级,则此系统补丁失效,需要重新根据新内核改写补丁并更新,使用较为繁琐.
目前比较流行的权限管理解决方案是注入钩子[9].
如目前市场占有率较高的360手机卫士和LBE安全大师.
这些软件通常首先取得Android系统的root权限,接下来对系统框架层涉及到应用权限的系统调用进行挂钩.
当一个应用需要进行权限调用时,会触发这些软件设置的钩子函数,通过软件内部的策略来决定权限调用是成功还是失败.
这样的解决方案通用性较好,适用于几乎所有的系统版本.
但是,其存在的问题是,需要进行root操作来获取最高权限,而root操作极易给系统带来隐患.
为了解决Android平台不同层次的权限限制和管理问题,本文提出了多层次的Android权限管理方法,在系统底层方面,提出了面向MLS的Linux用户权限模型,并给出了Linux用户权限关系树到MLS安全级定义的转换算法;在系统上层应用方面,提出了基于Android应用权限动态管理机制.
首先设计安全策略文件的内容和格式,接着给出请求评估算法,并在系统调用关键位置设置权限检查点,从而有效解决Android应用权限的动态管理问题.
本文首先介绍目前现有的Android的权限控制方法,并分析其不足.
第1节提出面向MLS的Linux用户权限模型.
第2节提出上层应用的动态权限管理机制.
第3节给出相关实现并进行实验验证.
最后第4节总结全文,给出未来的研究方向.
1底层的Linux用户权限模型1.
1Linux用户权限关系树构建为了解决新版本Android系统存在的root提权问题,本文提出基于MLS的Linux用户权限模型.
Android系统底层基于Linux内核,也具有Linux用户等概念.
但是Android系统是单用户系统,Linux传统的用户概念没罗杨等:多层次的Android系统权限控制方法265有意义,因此其在设计之初赋予了Linux用户不同的含义,将不同的Linux用户用来区分不同的应用或服务[10].
Android5.
1.
0现在启用的有52个Linux用户,其中只有15个用户作为进程UID使用,其他37个用户只作为进程GID或者文件UID/GID来使用.
这15个作为进程UID的用户分别是:root,system,logd,nobody,shell,radio,drm,media,install,keystore,media_rw,camera,nfc,wifi,Bluetooth.
vpsdime怎么样?vpsdime是2013年注册的国外VPS主机商,实际上他还有一系列的其他域名站点如Winity.io, Backupsy,Cloudive, Virtora等等,母公司“Nodisto IT”相对来说还是很靠谱了的商家。VPSDime主要提供各种高配低价VPS套餐,其中Linux VPS和存储VPS基于OpenVZ架构,高级VPS基于KVM。VPSDime在上个季度的Low...
ZJI原名维翔主机,是原来Wordpress圈知名主机商家,成立于2011年,2018年9月更名为ZJI,提供香港、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册业务。ZJI今年全新上架了台湾CN2线路服务器,本月针对香港高主频服务器和台湾CN2服务器提供7折优惠码,其他机房及产品提供8折优惠码,优惠后台湾CN2线路E5服务器月付595元起。台湾一型CPU:Inte...
7月份已经过去了一半,炎热的夏季已经来临了,主机圈也开始了大量的夏季促销攻势,近期收到一些商家投稿信息,提供欧美或者亚洲地区主机产品,价格优惠,这里做一个汇总,方便大家参考,排名不分先后,以邮件顺序,少部分因为促销具有一定的时效性,价格已经恢复故暂未列出。HostMem部落曾经分享过一次Hostmem的信息,这是一家提供动态云和经典云的国人VPS商家,其中动态云硬件按小时计费,流量按需使用;而经典...