背景
- 出处:CCS ’16, October 24–28, 2016, Vienna, Austria
- 作者:Michael Backes, Sven Bugiel, Erik Derr @ CISPA, Saarland University
Saarland Informatics Campus
概述
论文主要观点
实现了一种可靠的第三方库探测方法,且描述了这种方法的几个应用
成果
- 业内第一个设计出轻量有效的APP第三方库扫描方法,且此方法可以对抗一般的代码混淆,可准确指出使用库的版本
- 建了一个包含164个不同第三方库共2065个版本的数据库
- 利用工具在Google Play的top APP上做了研究,得到了第三方lib的流行性,app和lib的更新频率等结果
- 研究了使用有问题的Facebook和Dropbox SDK的APK,结果说明使用这些lib的APP会有很大可能遭受攻击
- 分析了对于第三方lib的滥用和加密API,揭露了Play上296个app的不当行为
方法模型
为了对抗代码混淆,所有的特征都由类的层级结构生成,于具体的二进制代码无关。
-
首先使用Standard Class Hierarchy Analysis (CHA)生成包结构树;
包结构树 - 特征生成:对app建立Merkle trees,Merkle trees的最底层(也就是方法层)对于每个方法的名字进行了过滤产生模糊的方法名(fuzzy descriptor),以对抗代码混淆;
Merkle trees:本质就是Hash,从叶子节点开始一层一层向上。
参考:http://www.tuicool.com/articles/B7fM7j
Merkle trees
fuzzy descriptor -
特征比对:以类为最小粒度,建立评价分数:
lp:library package,ap:app package
具体没细看,比对方法在传统的Merkle trees比对方法上避免了全部app与lib之间的比对,效率更高。
实验与应用
本文实验部分较为简单,主要讲述了上述方法的有效性;
重点在应用部分,本文利用此工具对Play里的app进行了很多统计和分析,例如第三方lib的流行性,被使用最多的第三方lib,AndroidSDK的版本利用程度等。引用含有漏洞的Facebook和Dropbox SDK对使用它们的app进行数据统计,分析了可能导致安全问题的API,指出misuse的广泛性。
总结
优点
本文重点在于后部的大量应用,表明了此工具是有用的。
不足
本文匹配方法较为简单。本质上来说,本文就是对于第三方库的一个研究。
我的想法
论文中有应用可证明我的工具是有用的,可加分。
网友评论