Reliable Third-Party Library Detection in Android and its Security Applications

背景

  • 出处: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的不当行为

方法模型

为了对抗代码混淆,所有的特征都由类的层级结构生成,于具体的二进制代码无关。

  1. 首先使用Standard Class Hierarchy Analysis (CHA)生成包结构树;


    Reliable Third-Party Library Detection in Android and its Security Applications_第1张图片
    包结构树
  2. 特征生成:对app建立Merkle trees,Merkle trees的最底层(也就是方法层)对于每个方法的名字进行了过滤产生模糊的方法名(fuzzy descriptor),以对抗代码混淆;
    Merkle trees:本质就是Hash,从叶子节点开始一层一层向上。
    参考:http://www.tuicool.com/articles/B7fM7j
    Reliable Third-Party Library Detection in Android and its Security Applications_第2张图片
    Merkle trees

    fuzzy descriptor
    fuzzy descriptor
  3. 特征比对:以类为最小粒度,建立评价分数:



    lp:library package,ap:app package
    具体没细看,比对方法在传统的Merkle trees比对方法上避免了全部app与lib之间的比对,效率更高。

实验与应用

本文实验部分较为简单,主要讲述了上述方法的有效性;
重点在应用部分,本文利用此工具对Play里的app进行了很多统计和分析,例如第三方lib的流行性,被使用最多的第三方lib,AndroidSDK的版本利用程度等。引用含有漏洞的Facebook和Dropbox SDK对使用它们的app进行数据统计,分析了可能导致安全问题的API,指出misuse的广泛性。

总结

优点

本文重点在于后部的大量应用,表明了此工具是有用的。

不足

本文匹配方法较为简单。本质上来说,本文就是对于第三方库的一个研究。

我的想法

论文中有应用可证明我的工具是有用的,可加分。

你可能感兴趣的:(Reliable Third-Party Library Detection in Android and its Security Applications)