




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于权限的gvaldrous协议的设计与实现
0现有的权限授予机制大量的应用程序推动了移动和平面计算机等嵌入式设备的发展。在众多移动平台中,由Google设计的Android操作系统以其出众的开放性受到广大用户和手机制造商的青睐。随着应用程序及开发者数量的迅速上升,Android平台的安全隐患也受到了极大关注。频频发生的个人信息泄露和恶意扣费事件使得Android平台现有的访问控制策略受到了诸多质疑和诟病。Android采用了一种基于权限的访问控制策略判断应用程序某一行为是否是恶意行为往往依赖该行为发生的上下文。例如,对于一款游戏软件而言,读取用户通讯录并通过网络连接发送出去可以被认为是恶意行为;而对于通讯录同步软件而言,这却是个正常的行为。因此,权限授予过程需要用户参与。然而现有的权限授予机制强制要求用户在安装时做出授权决定,而此时用户可能无法得知应用程序会如何使用该权限,难以做出正确判断。例如,疯狂的小鸟(AngryBirds,一款流行的游戏应用程序)需要“发送短信”的权限以支持通过短信购买高级道具的行为,而用户在不知晓应用程序将在何时何地使用“发送短信”的权限前,几乎不可能做出正确判断。因此,如何在保障安全性和可用性的基础上为Android设计一种权限授予机制就显得十分重要。从安全性角度出发,这种权限授予机制需要保证用户可以在应用程序使用可疑权限前做出授权决定;从可用性角度出发,系统所需的用户参与频率要尽可能低。现有的权限授予方法在解决上述问题上存在明显的缺点:(1)Android及其扩展框架本文设计并实现了GrantDroid:一种支持Android权限即时授予的方法。它覆盖了Android平台上所有的权限使用点,并拦截所有应用程序对这些权限的使用。对于任意一次权限使用请求,GrantDroid基于一套恶意应用程序权限使用特征判断对该应用程序授权是否存在安全隐患。如果对用户存在潜在的安全威胁,则告知用户此次权限使用请求的相关信息和安全隐患,以帮助用户即时做出是否授权的决定;对于其他不会造成安全隐患的权限使用请求,系统自动完成授权。GrantDroid确保应用程序使用自动授予的权限时不会引发安全问题。为了减少不必要的用户参与以提高系统的可用性,本文推导出恶意应用程序所必备的权限使用特征,只有当应用程序对权限的使用符合其中至少一项特征时,才需用户进行确认,否则会被自动授权。为了验证恶意程序权限使用特征的有效性和完整性,我们对150个真实恶意应用进行了功能性测试。测试结果表明没有一款恶意应用程序能够自动获得完成其恶意行为所必须的所有权限。此外,我们从Android官方应用市场1背景和相关工作1.1)所授权权限的执行Android是一款基于Linux内核的移动平台操作系统。它定义了100多个权限来保护系统内部的敏感资源Android为每个应用程序维护一个已授权权限集合,当应用程序使用“Android权限”时,如访问GPS、访问通讯录、发送短信等,Android检测相应的权限是否在该应用的已授权权限集合中,如果不在则拒绝此次权限使用。应用程序请求使用“内核权限”时,如写文件、使用摄像头、创建网络连接等,由Linux内核执行权限检查。“内核权限”对应的资源由Linux内核管理并只允许应用程序通过系统调用的方式访问,所以应用程序可以使用JavaAPI、AndroidAPI,甚至可以编写本地代码直接触发系统调用完成访问。Android只能依赖底层的Linux系统控制应用程序对它们的访问。Android利用Linux用户组机制完成对“内核权限”的保护,约定何种权限对应何种用户组,因而形成了一个内核权限-用户组-内核资源的映射关系。如果用户在安装时授予应用程序某“内核权限”,Android则将该应用程序对应的uid与该权限所对应的用户组绑定,这样在应用程序启动时就具备了使用该权限的能力。1.2限模型的完善和对权限授予方式的改进现阶段对Android访问控制模型的研究主要包括对Android权限模型的完善和对权限授予方式的改进两个方面。Ongtang等人认为现有Android权限模型只能对Android的系统资源进行保护,不能很好地保护应用程序资源,因而对权限模型进行了扩展Kirin2目标和威胁模型2.1支持系统及应用程序为了解决Android当前的权限授予机制存在的隐患,我们需要一种“即时”的权限授予机制,即用户对应用程序的授权应发生在应用程序使用权限的时刻。由于应用程序对权限的使用十分普遍,频繁的用户显式授权将大大降低系统的可用性和有效性,因此需要减少不必要的用户交互。此外,Android官方应用市场就已拥有近百万数量的应用程序,对现有应用进行大规模修改或改变现有编程模型对Android平台而言都不切实际。因此提出的解决方案必须能够兼容现有的Android应用程序。综上所述,我们要基于Android平台设计并实现一种新的权限授予方法,需具备以下四个特点:(1)兼容现有应用,(2)即时,(3)低干扰(极少量的用户交互),(4)使应用遵循最小特权原则2.2android恶意程序为了更清晰地描述本方案的目标,我们提出了以下威胁模型:针对本方法的攻击者是一个第三方应用程序,而Linux内核及Android平台本身值得信任且不会被攻陷。发起攻击的应用程序可以利用Android编程模型执行任意逻辑。对于本方法而言的一次成功攻击被定义为:一个第三方应用程序在未经用户显式授权的情况下成功完成了恶意行为。该威胁模型并不涉及用户误将某恶意权限使用请求当作正常权限使用请求的问题,例如当一个恶意短信扣费软件申请使用发送短信的权限时,用户误以为这是该软件的正常逻辑。Android的恶意应用在代码层面上与普通应用并无区别。一些现有的Android恶意程序检测工具3格林威治的设计和实现3.1)直接授予应用为了实现上述目标,我们基于Android设计并实现了一种低干扰的权限即时授予方法GrantDroid。GrantDroid为用户提供了对存在安全隐患的权限使用进行即时授权的能力,在应用程序使用可疑权限前请求用户确认。此外,用户在安装时可将部分权限直接授予应用,也可在使用过程中通过设置界面动态调整各个应用的权限。例如,在安装QQ等即时通讯类应用程序时,可以在安装时直接授予其访问互联网的权限,而对于其他尚不清楚其用途的权限可以等到该权限真正被使用前再做出决定。权限的即时授予需要拦截应用程序对所有权限的使用请求。例如,应用程序开发人员使用权限发送一个HTTP请求时,既可以通过Android平台API如HttpClient类,也可以通过JavaSocket或ServerSocket类,甚至可以通过JNI直接调用socket相关的系统调用。GrantDroid必须能够拦截所有对权限的使用并确保应用程序无法绕过GrantDroid直接使用权限。应用程序对权限的频繁使用会使得GrantDroid需要用户频繁做出显式授权,这会给用户造成巨大负担继而降低系统的可用性。我们采用安全需求工程3.2)应用程序安装,使用拦截模块如图1所示,GrantDroid的架构扩展了Android基础架构,主要由三个模块组成:(1)应用程序安装模块,用于提供安装时部分权限授予的功能;(2)权限使用拦截模块,用于拦截应用程序对所有权限的使用;(3)决策模块,用于决定系统如何处理这些权限使用请求:放行、拒绝和要求用户显式授权。1(安装应用程序的模块)应用程序安装模块为用户提供在安装应用时将部分权限直接授予应用的功能。与此前已有的部分权限授予方法2不同种类权限的拦截权限使用拦截模块旨在拦截应用程序对所有权限的使用请求。GrantDroid在权限使用前会将权限使用请求重定向到一个权限使用监视器。为了能够完全覆盖所有可能的权限使用方式,GrantDroid在不同种类的权限被使用时采取不同的拦截方式。对于Android权限,Android会在权限被使用时检查应用程序是否具备相应权限。只需在权限检查点处将权限请求重定向到权限使用监视器,即能完全覆盖所有对Android权限的使用请求。然而内核权限由Linux的用户组机制保护,位于Android框架的控制范围之外,因此对这些权限使用请求的拦截和重定向就必须在内核层实现。GrantDroid设计并实现了一个系统调用拦截器负责对所有与内核权限相关的系统调用进行拦截并重定向到权限使用监视器,从而拦截所有对内核权限的使用请求。3资源访问请求的获取决策模块决定了GrantDroid将如何处理每一个被拦截的权限使用请求。在GrantDroid中,每个应用程序所申请的任一权限都有三个可能的状态:(1)已授权(对该权限的使用将被直接放行),(2)已阻止(对该权限的使用将被直接拒绝),(3)待定(对该权限的使用将请求用户的确认)。一个权限管理器负责处理所有的状态转换并持久化存储权限状态信息以保证设备重启后信息不会丢失。为了减少不必要的用户参与,当应用程序对权限的使用不会带来安全隐患时,决策模块将该权限直接设置为已授权状态。而一次权限的使用是否会带来安全隐患则由一个决策器进行判断,该决策器将权限使用请求与恶意程序权限使用特征进行比对,符合特征的权限使用请求将被认为可能会带来安全隐患。上述三个主要模块构成了GrantDroid的基本架构,图1展示了GrantDroid如何处理资源访问请求。在系统运行过程中,当一个应用程序试图使用某权限对敏感资源进行访问时(第1步),该权限使用请求会被拦截并重定向到权限使用监视器(第2步),权限使用监视器求助决策模块决定如何处理这次请求(第3步)。权限管理器根据权限使用监视器提供的权限信息和应用信息查询相应的权限状态(第4步),并将状态发送至决策器(第5步)。如果相应的权限状态是已授权或已阻止,则决策器将直接通知权限使用监视器同意或拒绝本次请求。如果相应的权限状态是待定,则决策器需要查询恶意应用程序权限使用特征集合,以确定本次请求是否符合某项特征。如果不符合任何一项特征,则通知权限使用监视器放行,并更新权限状态信息。否则将通知权限使用监视器对本次访问请求用户确认(第7步)。权限使用监视器向用户弹出交互窗口以提供本次权限使用请求的详细信息以及可能存在的安全隐患,并给予用户四种即时授权选项:授权一次、永久授权、阻止一次和永久阻止。如果用户选择授权一次或永久授权,权限使用监视器则允许应用使用该权限;如果用户选择了永久授权或永久阻止,权限使用监视器还将通知权限管理器更新权限状态信息(第8步)。3.3状态转换的限制在原版Android中,用户同意安装一个应用程序,就意味着该应用程序永久获得了它申请的所有权限。一个程序所申请的权限只有一种状态即已授权。而GrantDroid作为一种即时授权方法,允许用户在安装应用时授予其部分权限,在应用程序使用权限时即时授权,在使用系统过程中动态调整各应用程序所具有的权限。因此在GrantDroid中一个程序所申请的权限有多种状态。GrantDroid中应用程序的权限有三种基本状态:已授权、已阻止和待定。这三种状态之间的状态转换受到如下限制:(1)当且仅当应用程序至少尝试使用一次某权限时,该权限才能从已阻止或待定态转为已授权态;(2)处于已授权态的权限将在一段时间后自动转换为待定态。第一个限制用于防止用户将某些不必要的权限误认为必要而授予应用,导致违反最小特权原则。如果应用从未试图使用过某权限,GrantDroid将阻止用户在运行时对应用授予该权限。第二个限制用于防止用户将不常用的权限误认为常用。如果应用一段时间内未使用某权限,GrantDroid会将其回收。为了实现这两个限制,需对已有的三种基本状态进行扩展。我们结合应用程序是否尝试使用过该权限,扩展出6个状态,状态之间的相互转换如图2所示。处于“已阻止/未使用”状态及“待定/未使用”状态的权限不能通过动态调整转换为“已授权”状态。当权限处于“已授权/已使用”状态时才能被应用程序直接使用。而当应用程序尝试使用处于“未使用”状态的权限时,权限会立即自动转变为相应的“已使用”状态。处于“已授权/已使用”及“已授权/未使用”状态的权限在长时间未被应用程序使用后,会自动转变为“待定/未使用”状态。例如,当用户未在安装时授予新浪微博访问摄像头的权限时,权限进入“待定/未使用”状态,当应用请求使用摄像头时,权限立即进入“待定/已使用”状态。如果决策模块认为该使用请求无害,则直接自动完成授权,权限也相应进入“已授权/已使用”状态。否则权限使用监视器会要求用户即时做出决定。此外,用户在系统使用过程中可以通过GrantDroid的配置界面动态地对任意应用的各个权限状态做出符合限制的调整。3.4android平台机制如何拦截应用程序对内核权限的使用是GrantDroid需要解决的一大技术难点。内核权限的检查不在Android框架控制范围之内,它们被Linux内核所保护并仅能通过系统调用的方式使用。如图3所示,GrantDroid设计了一个系统调用拦截器,可以将所有第三方应用程序对相关系统调用的访问进行拦截并重定向至权限使用监视器。由于对内核的修改会对包括系统进程在内的所有进程产生影响,所以GrantDroid只修改了bioniclibc(bioniclibc是Google为Android特制的BSD标准C库的衍生版本)中的系统调用包装函数,并通过修改LD_LIBRARY_PATH强制第三方应用程序使用这一版本的函数库,而其他系统进程将使用原版函数库,从而避免对内核的修改。当第三方应用程序通过各种方式访问系统调用包装函数时,访问会被重定向至权限使用监视器。权限使用监视器将与权限管理器和决策器决定如何处理本次请求,并将决策结果告知系统调用包装函数。由于系统调用拦截器位于内核之外,第三方应用程序依然可以通过软中断的方式绕过拦截器使用内核权限。通过修改Android运行时环境,GrantDroid会在第三方应用程序加载本地代码库时对类库进行扫描,以确保其中不包含软中断指令SWI,从而保证了拦截器的可靠性。我们对应用市场的大量应用程序所带的本地代码库进行了扫描,并未发现任何一款应用直接使用了软中断指令,因此GrantDroid对于系统调用拦截器的实现并不会对现有应用造成影响。表1列出了Android平台上的所有内核权限。例如,对于一个申请了互联网访问权限的应用程序被用户同意安装后,Android为该应用程序分配一个唯一的uid,并将该uid与inet用户组绑定。当系统每次启动该应用时,将会指定进程的uid和所在的用户组,这样应用程序就可以顺利创建socket并访问网络。由于GrantDroid已经确保了第三方应用程序无法绕过系统调用拦截器而直接访问内核资源,因此可以将应用程序对应的uid加入相应的用户组。例如,某应用程序申请了INTERNET和CAMERA权限,则无论用户是否同意授予,都将在创建应用程序进程时,添加inet和camera到该进程所在的用户组中,而具体的访问控制将由系统调用拦截器重定向至决策器进行管理。3.5用户资源的预处理生成一个完整正确的恶意应用权限使用特征集合可以提高系统易用性、减少不必要的用户交互并保证系统安全性。我们采用安全需求工程的方法来推导恶意应用程序所必备的权限使用特征。首先,通过分析Android平台的特征识别出用户在Android设备中所拥有的资源,如手机短信、位置信息、通讯录和摄像头拍摄的影像等。在识别出所有的用户资源后,还需进一步分析每一种资源是如何被第三方应用程序滥用,进而影响系统的私密性、完整性和可用性,从而确定出针对每一种资源存在的安全威胁。例如,“一个恶意应用可以读取手机短信并将其通过互联网发送出去”,随后推导出制造安全威胁必须具备的权限特征:“一个恶意应用程序同时具备READ_SMS和INTERNET的权限时可以造成安全威胁”。安全需求工程的推导过程需要一定程度的人工参与,可能会造成特征集合的不完整。为了验证推导出的特征集合的完整性,我们验证了MalwareGenomeProject由于良性应用可能具备与恶意应用完全相同的行为,如一个手机备份软件可能会读取手机短信并通过互联网同步到服务器。因此,生成的特征集合不能作为区分恶意应用和良性应用的标准。该特征集合只能确保不符合特征的应用皆为良性应用,而不能保证符合特征的都是恶意应用,但这有效减少了用户不必要的显式授权。4实验与性能的评估4.1控制恶意应用我们采用了由文献[11]提供的150个真实恶意应用程序进行功能性测试,验证恶意应用程序在GrantDroid上能否获得完成其恶意行为所必备的所有权限,以评估GrantDroid的有效性。实验使用MonkeyRunner自动化随机UI测试并不能覆盖程序的所有执行路径。为了判断自动化测试是否促使恶意应用做出恶意行为,我们人工标记出这些应用程序为了做出恶意行为所必须使用的权限,并在实验过程中监视应用程序对这些权限的使用。如果应用程序请求使用了所有标记的权限,就认为自动化测试已完全覆盖该应用。对于测试无法完全覆盖的应用程序需要进行人工测试。实验中有121个恶意应用的测试时完全覆盖。实验结果表明GrantDroid在防止第三方应用的恶意行为上十分有效。所有恶意应用样本都无法自动获得完成其恶意行为所必须的权限。其中147个应用需要显式的用户授权,而剩余3个应用程序则是命令与控制型恶意应用。命令与控制型恶意应用需要从服务器端接受命令,根据不同的命令执行不同的恶意行为,因此在测试过程中难以触发其恶意行为。通过人工分析这三个应用接收到服务器端命令后的行为,最终确认其在GrantDroid上无法在未经用户显式授权的情况下完成恶意行为。4.2即时授权频率GrantDroid发现存在安全隐患的权限使用请求时会要求用户即时授权。为了评估用户参与显式授权对系统可用性的影响,我们测试了使用过程中用户显式授权的频率。由于GrantDroid兼容现有Android应用,我们从Android官方市场下载了1378个应用程序,并在决策模块中记录需要用户即时授权的次数。实验针对每个应用,通过MonkeyRunner在该应用范围内触发1万次用户操作。对于即时授权请求,系统自动代表用户做出决定:随机选择授权一次或阻止一次中的任意一种,而不是永久授予或永久阻止。从而统计出最坏情况下产生的即时授权频率。测试结果表明GrantDroid需要的用户显式授权频率非常低,对系统可用性的影响极小。分属13个类别的1378个应用共需要1842次即时授权,平均每个应用仅需1.33次。平均每7500余次用户操作才需要一次用户显式授权。而从另一个角度看,平均每290次权限使用才需要1次即时授权。这说明恶意程序权限使用特征集合帮助系统减少了99%以上的即时授权需求。4.3不同权限使用差异GrantDroid引入的性能开销主要来自权限使用拦截模块和决策模块。在GrantDroid中,对于不同类型的权限使用请求,决策模块的处理逻辑完全相同,而拦截模块的处理方式则不同。对内核权限的使用,会被系统调用拦截器拦截并重定向到处于另一个进程的权限使用监视器,这会比对Android权限的使用带来更多的性能开销。测试通过综合性能开销和最差情况性能开销对GrantDroid的性能进行评估。(1)ntdrod的综合性能测试使用常用的三个性能测试集来评估Gran
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年政策引导下的医疗器械国产化产业政策效应与产业发展趋势报告
- 聚焦2025年语言培训行业课程国际化质量提升策略报告
- 《初级会计实务技能训练》课件7
- 企业个人工作总结(15篇)
- 《当代新闻写作第二版》课件第11章
- 吊袋使用管理办法
- 呆账客户管理办法
- 商业外摆管理办法
- 商务手机管理办法
- 商场商家管理办法
- 环保专业基础知识
- 2024年阳江市阳东区区内选调教师笔试真题
- 以工代赈项目施工合同范本
- 《阿里巴巴集团介绍》课件
- 钢结构防腐与防火设计方案
- GB/T 33993-2024商品二维码
- 安全信息管理系统的数据备份与恢复策略
- 《格局》读书分享
- 外浮顶储罐施工方案
- 仓储管理员职业技能鉴定考试题库
- 基因检测经销合同协议书
评论
0/150
提交评论