论文部分内容阅读
随着智能移动终端功能和用户体验的日益完善,智能手机已经被越来越多的用户使用。研究数据表明,Android手机的购买量正在逐步超越个人电脑。Android系统被应用在越来越多的智能手机上面,但是由于Android系统出现时间比较短,Android系统上的权限机制并不完善,所以出现了Android应用权限泄露的现象。Android权限泄露的现象是指拥有某种权限的应用中的权限被没有相应权限的应用非法使用的现象。Android应用包含有四类的组件:活动、服务、内容提供者和广播。由于Android系统有意图的功能。一个应用可以通过意图调用其他应用的组件,来实现本应用所不包含的某种功能。因此一个不合法的意图调用有可能产生权限泄露的现象。权限泄露有两个必要条件:被调用的组件中包含有某种权限,被调用的组件在调用的过程中没有对调用方进行相应权限的验证。本文研究提出了一种静态分析的方法来检测Android应用的权限泄露。本方法首先分析应用所包含的入口,生成每个入口的控制流图和数据流图,并通过别名分析的办法来使控制流图更加精确。本方法将所研究的权限转化为相应的规则,应用这些规则对控制流图进行搜索,通过搜索的结果来分析应用每个组件所包含的权限。然后分析应用的配置文件,查看每个组件是否对该组件包含的权限进行验证,根据组件包含的权限和组件验证的权限之间的匹配关系生成权限泄露报告。基于上述方法,本文采用java语言开发了一个Android应用的权限泄露自动检测工具,并对研究提出的Android应用权限泄露检测技术进行了相应的实验。检测正确性实验表明,本文所提出方法没有误检的现象,漏检率为20%。应用权限泄露普遍性的实验针对Android应用市场的6697个应用进行了检测,发现大约有1.62%的应用存在权限泄露现象;工具性能的测试表明,大部分应用的分析时间为40s以内,是可以接受的。