论文部分内容阅读
移动互联网时代,基于Android操作系统的应用程序在用户与社会的连接中起着重要的媒介作用,成为人们日常生活密不可分的一部分。然而由于Android系统安全机制不够完善,以及部分开发人员安全意识淡薄,漏洞在Android应用程序中普遍存在,给用户的隐私和财产等造成了安全威胁。权限泄露漏洞是Android应用程序漏洞中的一种,该漏洞是由于不合理地公开了程序组件或者没有对接收到的Intent进行合法性校验导致的,其表现形式为将一个拥有权限的API通过公开组件暴露给外界,攻击者可以构造数据访问这个API达到权限提升的效果。本文对Android应用程序权限泄露漏洞检测技术展开研究。本文研究分析发现,当前Android权限泄露漏洞检测方法存在不足,具体表现为漏洞检测不全面,采用静态分析时检测效率不够高、存在精度丢失。本文旨在改进这些不足,全面高效地检测权限泄露漏洞。本文提出从风险组件出发,采用静态污点分析技术检测权限泄露漏洞的方法。针对权限泄露漏洞检测,进行以下改进:1.设计基于静态分析的漏洞模式提取方法。使用静态分析工具Soot拆分Android系统源代码,定位源代码中的显示权限审核点和隐式权限审核点,然后从权限审核点出发,借助CG图执行后向可达性分析,提取所有权限与API的映射关系,进而得到比较完备的漏洞模式。该方法使得漏洞检测更加全面。2.设计Android应用程序分析流程构建方法。创建虚拟的main函数,收集程序组件和回调方法,填充到main函数中,并根据组件生命周期和既定策略组织程序执行顺序,得到程序分析流程。该方法解决了Android应用程序多入口点、普遍使用回调方法导致的分析困难。3.设计面向权限泄露漏洞的污染路径检测方法。以被测程序风险组件为起始点,借助CG构建漏洞检测的最小分析单位,生成ICFG,然后根据数据流传播规则执行污点传播分析,并利用Heros求解污染路径。该方法大幅削减了程序分析规模,能够有效提升漏洞分析效率。本文设计并实现了Android应用程序权限泄露漏洞检测系统ECMiner,整个系统包括风险组件扫描模块、程序分析流程构建模块、漏洞模式提取模块和权限泄露路径检测模块。ECMiner系统对小米应用商城中的225个实际应用程序进行检测,实验结果表明:所有的应用程序均存在权限泄露风险,每个应用程序平均包含7.3个风险组件,ECMiner平均检测时间为60.1秒,具有较高的检测效率。实验还发现了快手等应用程序的未知漏洞,表明ECMiner能够有效检测实际应用程序的未知漏洞。