1、基于权限机制的安卓软件分析和系统加固研究,杨 珉 复旦大学软件学院,1,2014年“软件与网络安全”科学与技术前沿论坛,以系统权限为中心的研究进展,2,软件行为分析技术,系统安全加固技术,安卓平台安全状况堪忧,3,安卓应用软件飞速增长,图:Google应用商城2009年12月份到2013年7月份的统计报告,众多第三方应用市场,4,应用软件恶意行为泛滥,5,国内Android应用商城中程序隐私泄露分析,第五届信息安全漏洞分析与风险评估大会,2012年,应用软件的安全缺陷涌现,6,Analyzing Inter-Application Communication in Android, in Mo
2、biSys11Permission Re-Delegation: Attacks and Defenses, in USENIX Security11Systematic Detection of Capability Leaks in Stock Android Smartphones, in NDSS12CHEX: Statically Vetting Android Apps for Component Hijacking Vulnerabilities, in CCS12DroidChecker: Analyzing Android Applications for Capabilit
3、y Leak, in WiSec12Detecting Passive Content Leaks and Pollution in Android Applications, in NDSS13The Impact of Vendor Customizations on Android Security, in CCS13IntentFuzzer: Detecting Capability Leaks of Android Applications, in AsiaCCS14,应用软件的安全核查,7,工信部,“关于加强移动智能终端进网管理的通知”2013年11月国家网信办,“APP应用程序发
4、展管理办法”2014年10月Google PlayBouncer:约40%的恶意行为识别率第三方应用市场商业化杀毒引擎+不断增长的恶意软件样本库,恶意行为分析:基于权限使用视图的分析平台,8,零天恶意软件依赖人工分析,人工分析:高成本、大时延、易规避,9,无法满足海量软件的分析检测需求,安装时的权限授予模式,利用系统调用分析软件行为的方法不适用安卓平台虚拟机沙箱导致语义割裂特有的编程与运行模型应用软件如何使用这些权限?应用软件对敏感资源施加何种影响?,10,基于权限使用视图的敏感行为分析,VetDroid自动化分析平台,11,Permission Use Analysis for Vettin
5、g Undesirable Behaviors in Android Apps,IEEE Transactions on Information Forensics and Security, 2014Vetting Undesirable Behaviors in Android Apps with Permission Use Analysis,ACM Conference on Computer and Communications Security 2013,基于权限使用的行为分析方法,12,读取通讯录,处理通讯录数据,打开网络,发送数据,自动识别权限使用行为,权限使用视图,孤立的动作
6、,有依赖关系的行为,自动构建行为视图,权限使用视图,13,使用权限获得的数据,申请使用权限,位置跟踪行为,VetDroid系统架构,14,核心组件显式权限使用分析:程序中哪些地方申请权限隐式权限使用分析:程序中哪些地方使用敏感资源程序驱动行为采样,分析过程,15,使用权限获得的数据,申请使用权限,第一步:自动地采样软件中申请权限的行为显式权限使用分析第二步:自动地跟踪软件中使用这些通过权限获得的数据的行为隐式权限使用分析,显式权限使用分析,目标:程序如何使用权限与系统交互技术难点1:获取所有显式权限使用点2:识别精确权限使用信息技术路线识别程序-系统交互点从安卓系统内部捕获权限检查信息根据不同
7、权限检查方式进行传播,16,采样权限检查信息,17,采样权限检查信息,18,E-PUP: ACCESS_FINE_LOCATION,Not a E-PUP,框架层权限检查传播方法 Binder层插桩内核层权限检查传播方法引入两个单独的系统调用,隐式权限使用分析,目标:程序如何使用通过权限获得的资源难点1:获取所有资源递交点(同步或异步方式)方案:区分同步和异步的方式,识别Callback的方式获取系统资源难点2:自动地跟踪程序内部逻辑方案:基于权限使用的污点技术(扩展TaintDroid系统),将敏感数据标记权限使用信息,19,原型系统与实验,原型系统支持Android 2.3/4.1运行在N
8、exus S/Prime/4手机、模拟器实验恶意软件分析GP商城应用分析,20,恶意软件样本集分析(Genome),21,恶意行为类别的识别精确,恶意行为捕获的机率高。,GP热门应用分析,22,更强的隐私泄露检测能力,精确的信息泄露诊断能力,VetDroid的优势,23,表:与相关研究工作的比较,敏感资源保护:基于上下文的细粒度权限管理框架,24,应用软件间密切协同,25,大量内嵌第三方SDK,频繁使用程序间交互,安卓权限机制分析,权限管理机制:应用软件的粒度,26,现有权限机制的安全风险,应用程序内部不敏感同一个程序内部的所有代码可以使用相同的权限例如:程序重打包攻击、恶意SDK攻击应用程序
9、间交互不敏感一个程序可能会被其他程序利用来访问某些资源例如:权限代理攻击、组件劫持攻击,27,基于权限机制的系统加固研究,28,问题:无法根据应用程序上下文进行灵活的权限管理,基于上下文的细粒度权限管理框架,全系统的权限统一管理机制程序运行时上下文跟踪技术,29,应用程序上下文信息,两类程序运行时上下文信息程序内上下文:内部的执行流信息函数之间的调用关系采用函数调用上下文来表示程序间上下文:程序间交互执行流基于Binder驱动跟踪程序交互上下文传播程序的UID信息,以及各个交互程序内部的上下文,30,基于Binder的上下文跟踪原理,31,规则语言,图:上下文敏感的权限管理规则语言的结构,32
10、,图:一个样例规则,基于上下文的权限管理,UID: 10053, com.snapwork.finance权限:android.permission.ACCESS_FINE_LOCATION程序内上下文:com.flurry.android.e-e-LL-42com.flurry.android.e-a-VLLZ-3com.flurry.android.v-run-V-21,33,LocationManager.getLastKnownLocation(),一、可以控制是否允许Flurry SDK访问位置信息二、不影响SnapWork自身访问位置信息,原型系统与实验,原型系统支持Android 2.3/4.1,支持Nexus Prime/4、模拟器实验整体性能测试最差情况下的性能测试规则匹配的性能测试,34,性能测试,35,表:整体性能测试结果,表:最差情况下的性能测试结果,规则匹配的性能测试,36,图:测试使用的样例规则,表:规则匹配性能测试结果,权限泄露漏洞修复实例,37,AOSP中Mms程序存在的WRITE_SMS权限泄露漏洞,应用实例:Mms权限泄露漏洞,Mms服务包含三种权限泄露路径,38,快速修复的安全策略,权限漏洞修复规则自动生成,利用CHEX漏洞分析结果,修复规则自动化生成,39,谢谢!,40,