背景:
本文发表于2012年4月发表于ACM WiSec会议上,主要对android应用中嵌入的第三方ad lib进行风险分析。
出处:
WiSec’12,April 16–18, 2012, Tucson, Arizona, USA.
作者:
Michael Grace, Wu Zhou, Xuxian Jiang and Ahmad-Reza Sadeghi
概述:
本文针对第三方广告库所造成的隐私泄露问题进行研究,通过建立AdRisk系统来系统的识别和分析潜在的风险。分析范围从上传敏感信息到远程服务器到互联网源执行不可信代码。
主要成果:
对100000个app中的100个ad lib进行分析,找到并证明在绝大多数lib中存在威胁,包括收集次要信息,允许第三方代码在host app中执行等。建立主流ad lib与其获得的相应权限的关系表。
主要框架:
1.收集app并提取其中的ad lib(100个,包括主流的20个lib)
2.判别ad lib是否存在安全和隐私的风险(在此过程中建立API与权限之间的关系)
3.识别可能存在的风险(两个维度)
对每个ad lib进行可达性分析(reachability analysis)。
在第一个维度针对一些危险行为的事件(precipitating event),比如一个入口点(entry point)或是接收的网络包等。寻找从入口点到某一特定API的路径可以标注一个危险情况。
第二维度主要寻找一个到达外部的危险调用,如使用networkAPI。
这些危险的API调用在之前建立的API-permission表中有标注。
在原理方面,本文将之前进行标注的所有API调用视为危险,对每个API调用进行回溯并找到调用该API的源(library source),通过lib source寻找潜在的入口点,判断调用是否安全。对于无法溯源的API调用,向前查找其目标是否是外部的(network sink)。
在算法方面,在实验过程中,对每一个lib绘制控制流图,对其中API调用的所有可能的执行路径进行分析,判断这些路径是否可行。
实现工具:
使用Felt获得API调用与所需的相应权限。
基于开源的baksmali Dalvik disassembler(1.2.6)进行开发,加入4个hook,输入API-permission的关系文件用以分析。
实验结果:
找到主流ad lib所使用的危险权限,如下图所示:
总结:
本文对ad lib中的API调用进行检测,判断是否会有不安全泄露的风险。实验结果中给出主流ad lib获取的有安全风险的权限。但是在文中对于ad lib与权限的联系并没有详细的说明(即ad lib如何通过这些权限进行危险操作)。此外在寻找API调用的源和目的时不明确,没有解释哪种路径被判定为危险。
网友评论