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)生成包结构树;


    包结构树
    包结构树
  2. 特征生成:对app建立Merkle trees,Merkle trees的最底层(也就是方法层)对于每个方法的名字进行了过滤产生模糊的方法名(fuzzy descriptor),以对抗代码混淆;
    Merkle trees:本质就是Hash,从叶子节点开始一层一层向上。
    参考:http://www.tuicool.com/articles/B7fM7j
    Merkle trees
    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的广泛性。

总结

优点

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

不足

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

我的想法

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,043评论 25 709
  • 好多次经过那里,都被那一路花开所吸引,一簇簇,一团团,美的妖娆,美的惊艳! 每次便告诉自己,一定抽空徒步过来,徜徉...
    芝麻山庄的石头阅读 1,300评论 1 1
  • 问题:微软的bot设计原则是怎样的? 注释:这里的bot是特指软件形态对话式交互的bot。微软面向Skype、Fa...
    维京阅读 2,994评论 0 2
  • 栈:操作受限的线性表,后进先出栈的内部存储既可以用顺序表,也可以用链表,分别称作顺序栈和链栈。 先来实现一个简单的...
    dongwenbo阅读 1,794评论 0 0
  • 做得好的:坚持早睡早起;每周三次跑步;坚持看书,每日陪乔一小时,每日坚持英文启蒙,听课。 下周目标:英文启蒙持续按...
    乐乔妈阅读 754评论 0 0