[发明专利]Android应用权限泄露漏洞的测试方法及系统在审
申请号: | 201410232423.6 | 申请日: | 2014-05-29 |
公开(公告)号: | CN103996007A | 公开(公告)日: | 2014-08-20 |
发明(设计)人: | 诸葛建伟;杨坤;王永科;魏克;段海新 | 申请(专利权)人: | 诸葛建伟 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100871 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | android 应用 权限 泄露 漏洞 测试 方法 系统 | ||
技术领域
本发明涉及计算机程序测试技术领域,尤其涉及一种Android(安卓系统)应用权限泄露漏洞的测试方法及系统。
背景技术
Android智能手机已经越来越普及,Android应用市场也增长迅猛,给用户带来方便的同时,用户敏感数据也面临被恶意窃取的威胁。谷歌引入一种权限模型对用户手机中的各种敏感数据加以保护,然而某些恶意应用可以在不申请任何权限的情况下,通过调用有漏洞应用的公开接口来访问敏感数据,这种现象称为权限泄露,也叫做权限重委托。为了减少对用户个人敏感数据的威胁,谷歌设计了一种基于权限的模型,默认情况下Android应用被禁止获得任何危险权限,安装过程中应用向用户申请所需权限,得到用户许可后,运行时方可访问敏感数据和调用相关系统API。
关于权限泄露漏洞检测的研究方面,目前已经存在一些检测技术,主要采用静态分析的方法,在对应用反编译后得到的Java源代码或Dalvik字节码中根据某些特征查找权限泄露漏洞。以上静态分析方法主要依赖于程序控制流图技术,通过这种技术绘制Android应用程序可能的执行路径,结合数据流分析和污点标记技术,从执行入口函数动态跟踪相关数据直到权限泄露触发点。例如DroidChecker将Android应用反编译到Java源代码级别,提取具有潜在权限泄露漏洞的组件,针对每个组件构造程序控制流图,利用静态污点标记技术跟踪数据传输路径,依据相关特征定位权限泄露触发点。Woodpecker提取Android应用Dalvik字节码,构造程序控制流图确定潜在的执行路径,采用过程间数据流分析技术,定位触发敏感权限泄露的路径。
现有技术仅停留在对Android应用静态代码进行分析,没有考虑动态的测试方法。使用的反汇编技术在正确性方面存在一定的障碍,目前无法实现将Android应用完全正确地反编译成Java代码。程序控制流图技术虽然是研究较为成熟的技术,但Android应用程序的Java继承机制和异步回调特性导致Android控制流图的构造存在一定的难度。除此之外,静态分析技术依据的权限泄露漏洞特征定义模糊,没有严格规范的特征定义模式,在一定程度上导致漏洞检测误报和漏报现象。
发明内容
本发明要解决的技术问题是,针对现有技术的不足,提供一种Android应用权限泄露漏洞的测试方法及系统,降低权限泄露检测漏报率。
根据本发明一个方面,提供一种Android应用权限泄露漏洞的测试系统,包括:控制端和位于Android系统上的代理端;其中,代理端包括:系统权限检查模块,适于通过修改Android系统中的权限检查函数,将通过检查的权限相关信息记录到系统日志中;Extra信息获取模块,适于通过修改Android系统中的获取Extras信息函数,将所获取的Extras信息的键和值数据类型相关信息记录到系统日志中;和代理应用模块,适于接收控制端构造好的Intent对象,然后通过Android ICC机制发送至待测试应用的目标组件;其中,控制端包括:Intent构造模块,分别与所述Extra信息获取模块和代理应用模块连接,适于通过所述代理应用模块从待测试应用中提取Action、Data信息,适于利用从所述Extra信息获取模块得到Android系统反馈的Extras信息的键和值数据类型,构造合适的Extras键值对信息,还适于基于以上得到的Action、Data和Extras信息构造Intent对象,并通过代理应用模块发送至待测试应用的目标组件;和权限泄露检测模块,与所述系统权限检查模块连接,适于获取所述系统权限检查模块对所述待测试应用的权限检查输出的日志,判断所述待测试应用是否存在权限泄露漏洞。
根据本发明另一个方面,提供一种Android应用权限泄露漏洞的测试方法,包括:步骤一、从Android应用程序包中的Manifest文件提取所有对外公开的Service和Broadcast Receiver组件;步骤二、针对Android应用中Service和Broadcast Receiver两种模块间通讯组件接口,提取Action、Data和Extras信息,构造作为模糊测试输入的Intent对象;步骤三、通过ICC机制,由代理应用向应用目标组件通讯接口发送构造好的Intent对象;和步骤四、通过修改Android系统中的权限检查函数,监控权限检查日志情况,基于日志作出是否发生权限泄露的判断。
可选的,在步骤四后还包括:步骤五、重复以上步骤直至遍历完成步骤二中所有的Action、Data域、Extras域实例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于诸葛建伟,未经诸葛建伟许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410232423.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种体内组织直接修复与成形的医疗系统及其修复方法
- 下一篇:三尖瓣修复设备