Android应用软件API误用类漏洞自动化检测方法

文档序号:9217502阅读:1007来源:国知局
Android应用软件API误用类漏洞自动化检测方法
【技术领域】
[0001]本发明涉及一种Android应用软件API误用类漏洞自动化检测方法。
【背景技术】
[0002]随着移动互联网的快速发展,移动支付、移动办公等将融入人们生活,商业机密、个人隐私等敏感信息保护变得至关重要。伴随着Android系统的普及,越来越多的开发者加入Android阵营,随之而产生的Android软件安全问题越来越严峻,更由于众多开发人员安全意识的参差不齐,以及Android系统碎片化的严重,这些因素将使得软件漏洞长期存在,导致Android应用软件易被攻击。
[0003]在Android软件漏洞类型中,其中有一类漏洞很大程度是由于开发者没有按照google提供的安全编程规范而导致的漏洞。例如:framework API误用,AndroidManifest配置错误。针对应用软件API误用导致的漏洞的利用不仅可以窃取用户信息,远程控制用户手机,甚至还会影响开发者的利益。
[0004]目前现有技术中,针对API误用类漏洞的检测,主要还是针对具体漏洞进行检测,并对具体漏洞类型进行工具开发检测。其中Attacks on WebView in the Androidsystem[C]//Proceedings of the 27th Annual Computer Security Applicat1nsConference.ACM, 2011: 343-352.对Android应用软件常用的webview组件进行了分析,指出其中可能存在的安全隐患,包括调用导出接口执行APK native功能等。Why Eve andMallory love Android: An analysis of Android SSL (in) security[C]//Proceedingsof the 2012 ACM conference on Computer and communicat1ns security.ACM, 2012:50-61.重点关注于Android应用中SSL/TLS协议的使用问题,发现存在大量API的https类API误用问题,可导致中间人攻击,并设计了 MalloDroid通过静态动态结合的技术对可能存在漏洞进行中间人攻击检测。An empirical study of cryptographic misusein android applicat1ns[C]//Proceedings of the 2013 ACM SIGSAC conference onComputer & communicat1ns security.ACM, 2013: 73-84.发现了在大量Android应用中存在的对加密API的误用,相关加密存在安全风险。
[0005]但以上研宄主要关注与某种特定漏洞,只能进行相应漏洞的分析,不能较便捷的进行扩展,但其实本质上都是由于开发者对于framework API使用不规范而导致的漏洞,除了以上相关API的误用类漏洞,还存在一类关于文件权限控制相关的API误用漏洞,该类漏洞可导致的应用程序文件内容泄露。

【发明内容】

[0006]本发明的目的在于提供一种Android应用软件API误用类漏洞自动化检测方法,采用动态静态结合的方式对存在的API误用类漏洞进行检测,减少市面上静态检测存在的误报率,同时提高动态检测的覆盖率。
[0007]为实现上述目的,本发明采用如下技术方案:一种Android应用软件API误用类漏洞自动化检测方法,包括静态分析和动态分析,其特征在于:
所述静态分析的主要内容为:解析待检测应用软件的AndroidManifest.xml配置文件及其所有组件,并将各个组件的系统回调函数通过静态插粧连接在一起生成新的入口函数,以所述入口函数为入口点生成到各个组件的入口控制流程图;通过所述入口点对所述待检测应用软件进行建模构造全程序控制流程图,结合程序结构遍历进行API误用可达性分析和常量传播分析筛选出候选可疑漏洞;
所述动态分析的主要内容为:针对不同类型的漏洞设计不同的模块对所述静态分析得到的候选可疑漏洞进行漏洞触发,记录所述候选可疑漏洞的行为,最终给出所述待检测应用软件的漏洞安全评估。
[0008]进一步的,所述静态分析中的候选可疑漏洞的检测包括:
WebView漏洞检测:a、远程执行漏洞检测:targetSDK是否小与17,并检测是否调用了 addjavascriptlnterface 接口,是否调用了 removejavascriptlnterface 移除系统内置的暴露接口 ;b、file域隐私泄露漏洞检测:检测4.1以下的应用的webview是否存在setAllowFi IeAccessFromFi IeURI s 与 setAllowUniversalAccessFromFi IeURIs 误用;
Android HTTPS中间人攻击漏洞检测:a、检测是否存在使用setHostnameVerifier(ALLOff_ALL_HOSTNAME_VERIFIER) ;b、是否自定义 X509TrustManager 不校验证书;
文件权限误用检测:检测 Database,Shared Preferences,Internal Storage 安全风险,其中对相关的文件分别进行API误用可达分析,并分析是否使用MODE_WORLD_READABLE或M0DE_W0RLD_WRITEABLE模式创建文件;
密码学误用API检测:通过静态分析一系列的加密函数,所述加密函数包括Cipher.doFinal,KeySpec初始化函数,通过检查所述加密函数的参数值,检测是否存在密码学API误用;
Android通用拒绝服务漏洞特征定位检测:通过可达分析,确认应用组件有关intent处理extras函数的位置,记录解析该组件接收intent的特征,以便于进行拒绝服务检测;配置文件错误检测:allowBackup安全风险,暴露组件安全风险,可调试安全风险。
[0009]进一步的,所述动态分析中不同类型的漏洞包括:与网络相关漏洞、与文件操作相关漏洞及与组件IPC相关漏洞。
[0010]进一步的,针对所述不同类型的漏洞的测试方法如下:
与网络相关漏洞:使用网络代理工具MMT实施中间人流量劫持,通过替换证书后能够解密https流量或在手机上安装签发自定义证书的CA根证书后能够解密https流量则证明存在https漏洞;通过劫持网站跳转到挂马网站或注入js,可以验证静态检测的webview漏洞,后期有关网络部分的API误用漏洞动态测试可在其进行扩展;
与文件操作相关漏洞:通过运行应用,触发其相应API,通过adb shell对其/data/data目录下的所属权限进行文件API误用类漏洞进行验证,对于新类型的API误用漏洞,对其进行动态测试可以在其基础上增加模块;
与组件IPC相关漏洞:通过静态分析解析出的intent特征进行畸形数据的构造,生成动态测试数据,尝试触发Android通用拒绝服务漏洞。
[0011]本发明与现有技术相比具有以下有益效果:本发明采用静态动态结合的方式对存在的API误用类漏洞进行漏洞检测,静态分析中通过对应用程序进行建模,结合Android应用程序组件生命周期,事件回调等特点构建全程序控制流程图,通过在图上进行遍历与程序结构紧密结合在一起,减少市面上静态检测存在的误报率,同时提高动态检测的覆盖率;而动态检测结合静态检测的特征进行动态行为测试,一旦触发则将为有效漏洞,通过动态自动化测试的方式也弥补了静态分析误报率的不足,减少人工确认环节,自动化发现Android应用存在的API误用类漏洞。对于以后相关的存在误用漏洞的API,可以通过简单的扩展进行漏洞的检测,可以提高API误用类检测的效率。
【附图说明】
[0012]图1是本发明方法流程图。
[0013]图2是本发明静态分析流程图。
[0014]图3是本发明动态分析流程图。
【具体实施方式】
[0015]下面结合附图及实施例对本发明做进一步说明。
[0016]请参照图1,本发明提供一种Android应用软件API误用类漏洞自动化检测方法,包括静态分析和动态分析,其特征在于:
如图2所示,所述静态分析的主要内容为:解析待检测应用软件的AndroidManifest.xml配置文件及其所有组件,并将各个组件的系统回调函数通过静态插粧连接在一起生成新的入口函数,以所述入口函数为入口点生成到各个组件的入口控制流程图;通过所述入口点对所述待检测应用软件进行建模构造全程序控制流程图
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1