1、基于权限机制的安卓软件分析和系统加固研究杨 珉 复旦大学软件学院 12014年“软件与网络安全”科学与技术前沿论坛以系统权限为中心的研究进展2软件行为分析技术系统安全加固技术安卓平台安全状况堪忧3安卓应用软件飞速增长图:图:GoogleGoogle应用商城应用商城20092009年年1212月份到月份到20132013年年7 7月份的统计报告月份的统计报告众多第三方应用市场众多第三方应用市场4应用软件恶意行为泛滥5国内Android应用商城中程序隐私泄露分析,第五届信息安全漏洞分析与风险评估大会,2012年应用软件的安全缺陷涌现6 Analyzing Inter-Application Com
2、munication in Android, in MobiSys11 Permission Re-Delegation: Attacks and Defenses, in USENIX Security11 Systematic Detection of Capability Leaks in Stock Android Smartphones, in NDSS12 CHEX: Statically Vetting Android Apps for Component Hijacking Vulnerabilities, in CCS12 DroidChecker: Analyzing An
3、droid Applications for Capability Leak, in WiSec12 Detecting Passive Content Leaks and Pollution in Android Applications, in NDSS13 The Impact of Vendor Customizations on Android Security, in CCS13 IntentFuzzer: Detecting Capability Leaks of Android Applications, in AsiaCCS14 应用软件的安全核查7 工信部,“关于加强移动智
4、能终端进网管理的通知” 2013年11月 国家网信办,“APP应用程序发展管理办法” 2014年10月 Google Play Bouncer:约40%的恶意行为识别率 第三方应用市场 商业化杀毒引擎+不断增长的恶意软件样本库恶意行为分析:基于权限使用视图的分析平台8零天恶意软件依赖人工分析 人工分析:高成本、大时延、易规避9无法满足海量软件无法满足海量软件的分析检测需求的分析检测需求安装时的权限授予模式 利用系统调用分析软件行为的方法不适用安卓平台 虚拟机沙箱导致语义割裂 特有的编程与运行模型 应用软件如何使用这些权限? 应用软件对敏感资源施加何种影响?10基于权限使用视图的敏感行为分析 V
5、etDroid自动化分析平台11Permission Use Analysis for Vetting 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使用权限获使用权限获得的数据得的数据申请使用申请使用权限权限第一步:第一步:自动地采样软件中申请权限的行为显式权限使用分析显式权限使用分析第二步:第二
7、步:自动地跟踪软件中使用这些通过权限获得的数据的行为隐式权限使用分析隐式权限使用分析显式权限使用分析 目标:目标:程序如何使用权限与系统交互 技术难点 1:获取所有所有显式权限使用点 2:识别精确精确权限使用信息 技术路线 识别程序-系统交互点 从安卓系统内部捕获权限检查信息 根据不同权限检查方式进行传播16采样权限检查信息17采样权限检查信息18E-PUP: ACCESS_FINE_LOCATIONNot a E-PUP框架层权限检查传播方法框架层权限检查传播方法 Binder层插桩内核层权限检查传播方法内核层权限检查传播方法引入两个单独的系统调用隐式权限使用分析 目标:目标:程序如何使用通
8、过权限获得的资源 难点1:获取所有资源递交点(同步或异步方式) 方案:区分同步和异步的方式,识别Callback的方式获取系统资源 难点2:自动地跟踪程序内部逻辑 方案:基于权限使用的污点技术(扩展TaintDroid系统),将敏感数据标记权限使用信息19原型系统与实验 原型系统支持Android 2.3/4.1运行在Nexus S/Prime/4手机、模拟器 实验恶意软件分析GP商城应用分析20恶意软件样本集分析(Genome)21恶意行为类型恶意行为类型# #恶意软件家族分类恶意软件家族分类偷取短信46BaseBridge, SMSReplicator, Zitmo, Gone60偷取手机
9、号码38ADRD, YZHC, GoldDream, Pjapps, GGTracker, GingerMaster, DroidDream, DroidKungFu1-4偷取通讯录8Zitmo, Gone60, Walkinwat跟踪地理位置9TapSnake, DroidDream, DroidKungFu1, Bgserv, DroidKungFu2, DroidKungFu4发送短信43Pjapps, Zsone, Walkinwat, RogueSPPush, GGTracker, FakePlayer, SMSReplicator阻截短信22Zitmo, RogueSPPush,
10、GGTracker, Zsone恶意行为类别的识别精确,恶意行为捕获的机率高。恶意行为类别的识别精确,恶意行为捕获的机率高。GP热门应用分析22泄露的隐私泄露的隐私TaintDroidTaintDroidVetDroidVetDroid手机串号(IMEI)135135手机号码77地理位置17172424联网状态0 02828更强的隐私泄露检测能力更强的隐私泄露检测能力精确的信息泄露诊断能力精确的信息泄露诊断能力泄露的隐私泄露的隐私# #泄露的原因泄露的原因地理位置12Inner-Active Ads Wetter Ads Flurry Ads Google Ads InMobi Ads For
11、tumo Payments基站位置3Vserv Ads Handmark手机号码1Mobile PublicVetDroid的优势23刻画安卓行为刻画安卓行为语义信息语义信息通用的行为通用的行为分析能力分析能力分 析 程 序分 析 程 序内部行为内部行为过滤不敏过滤不敏感行为感行为Syscall-based-CopperDroid-TaintDroid/AppIntent-ProfileDroid-DroidScope-PermissionEventGraph-VetDroidVetDroid表:与相关研究工作的比较表:与相关研究工作的比较敏感资源保护:基于上下文的细粒度权限管理框架24应用软
12、件间密切协同25大量内嵌第三方SDK频繁使用程序间交互安卓权限机制分析 权限管理机制:应用软件的粒度26现有权限机制的安全风险 应用程序内部不敏感应用程序内部不敏感 同一个程序内部的所有代码可以使用相同的权限 例如:程序重打包攻击、恶意SDK攻击 应用程序间交互不敏感应用程序间交互不敏感 一个程序可能会被其他程序利用来访问某些资源 例如:权限代理攻击、组件劫持攻击27基于权限机制的系统加固研究28权限系统扩展权限系统扩展Aurasium使用时权限授予机制Dr.Andorid & Mr.Hide提供细粒度的权限语义SEAndroid采用Linux强制式访问控制构建权限系统FlaskDroid针对
13、框架层资源引入强制式访问控制进行管理环境敏感的权环境敏感的权限机制限机制CRePE, MobileIFC, DR BACA, Saint根据设备所处的环境信息定义不同的权限使用规则,例如时间、地理位置程序通讯加固程序通讯加固IPC Inspection根据程序交互链中的各个程序的权限交集进行权限管理TrustDroid, XManDroid基于预定义规则阻止有风险的程序交互Quire提供程序员检查程序交互链的能力程序内部隔离程序内部隔离Aframe, AdDroid, AdSplit采用进程隔离第三方程序组件Compsac根据代码调用组件链中的各个组件的权限交集进行权限管理问题问题:无法根据应
14、用程序上下文进行灵活的权限管理基于上下文的细粒度权限管理框架 全系统的权限统一管理机制全系统的权限统一管理机制 程序运行时上下文跟踪技术程序运行时上下文跟踪技术29应用程序上下文信息 两类程序两类程序运行时上下文信息运行时上下文信息 程序内上下文程序内上下文:内部的执行流信息 函数之间的调用关系 采用函数调用上下文来表示 程序间上下文程序间上下文:程序间交互执行流 基于Binder驱动跟踪程序交互上下文 传播程序的UID信息,以及各个交互程序内部的上下文30基于Binder的上下文跟踪原理31规则语言图:上下文敏感的权限管理规则语言的结构图:上下文敏感的权限管理规则语言的结构32图:一个样例规
15、则图:一个样例规则基于上下文的权限管理 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-2133LocationManager.getLastKnownLocation()一、可以控制是否允许Flurry SDK访问位置信息二、不影响SnapWork自身访问位置信息原型系统与实验 原型系统 支持Android 2
16、.3/4.1,支持Nexus Prime/4、模拟器 实验整体性能测试最差情况下的性能测试规则匹配的性能测试34性能测试35测试集测试集原生系统原生系统FineDroidFineDroid (w/o context)(w/o context)FineDroid FineDroid (w/ context)(w/ context)AnTutuAnTutu77017718 (+0.22 %)7671 (-0.39 %)LinpackLinpack43.3642.60 (-1.76 %)42.50 (-1.99 %)CaffeineMark3CaffeineMark385188495 (-0.27
17、%)8457.5 (-0.71 %)权限使用类型权限使用类型原生系统原生系统FineDroidFineDroid (w/o context)(w/o context)FineDroidFineDroid (w/ context)(w/ context)Socket (KEP)Socket (KEP)0.14 ms2.16 ms 2.02 ms2.18 ms 0.02 msIMEI (AEP)IMEI (AEP)0.62 ms0.69 ms 0.06 ms1.09 ms 0.40 ms表:整体性能测试结果表:整体性能测试结果表:最差情况下的性能测试结果表:最差情况下的性能测试结果规则匹配的性能测
18、试36权限使用类型权限使用类型FineDroid FineDroid (w/o policy)(w/o policy)FineDroid FineDroid (w/ policy)(w/ policy)性能开销性能开销Socket (KEP)Socket (KEP)2.18 ms3.06 ms0.88 msIMEI (AEP)IMEI (AEP)1.09 ms1.99 ms0.90 ms图:测试使用的样例规则图:测试使用的样例规则表:规则匹配性能测试结果表:规则匹配性能测试结果权限泄露漏洞修复实例37AOSP中Mms程序存在的WRITE_SMS权限泄露漏洞应用实例:Mms权限泄露漏洞 Mms服
19、务包含三种权限泄露路径38 快速修复的安全策略权限漏洞修复规则自动生成 利用CHEX漏洞分析结果,修复规则自动化生成39应用名应用名泄露路径数泄露路径数生成规则数生成规则数com.gmail.traveldevel.android.vlc.app-13122com.froogloid.kring.google.zxing.client.android-672424de.cellular.tagesschau-5361361com.akbur.mathsworkout-9222com.appspot.swisscodemonkeys.paintfx-422com.androidfu.torrents-2611com.espn.score_center-14166com.espn.score_center-14266fr.pb.tvflash-922hu.tagsoft.ttorrent.lite-1588总计414414谢谢!40