背景
- 出處:CCS ’16, October 24–28, 2016, Vienna, Austria
- 作者:Michael Backes, Sven Bugiel, Erik Derr @ CISPA, Saarland University
Saarland Informatics Campus
概述
論文主要觀點
實現了一種可靠的第三方庫探測方法,且描述了這種方法的幾個應用
成果
- 業(yè)內第一個設計出輕量有效的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,從葉子節(jié)點開始一層一層向上。
參考: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的廣泛性。
總結
優(yōu)點
本文重點在于后部的大量應用,表明了此工具是有用的。
不足
本文匹配方法較為簡單。本質上來說,本文就是對于第三方庫的一個研究。
我的想法
論文中有應用可證明我的工具是有用的,可加分。