ATVHUNTER:Reliable Version Detection of Third-Party Libraries for Vulnerability Identification in Android Applications(ICSE 2021)
基本介绍#
**研究背景:**安卓中第三方库(TPLs)使用十分常见,检测第三方库对于漏洞识别等都十分有用,但是由于TPL的分散性、直接或间接的依赖性以及应用中TPL信息的不透明性,现有工具不能很好的检测,更不用说检测具体某版本
研究挑战:
现有的TPL检测技术使用基于聚类的方法或相似性比较方法。但是聚类方法只能用于识别常用TPL且难以区分TPL版本,而相似性方法所依赖的TPL数据集规模远小于实际应用市场的TPL集合,导致这两种方式低召回率、难以精确识别版本的问题。对于TPL的检测,作者总结了三个挑战:
- 缺乏易受攻击的TPL版本数据集。
- 缺乏精确表述TPL版本的方法。
- 大量代码混淆导致TPL识别的困难。
研究贡献:
- ATVHunter:高效的TPL版本检测工具,可以找到app的TPL中存在的漏洞并给出报告
- 一个大型TPL数据集:包含189,545个不同的TPL,具有3,006,676个版本
- 包含957个TPL中的1180个CVE,共38243个有漏洞的版本
- 162个TPL中的224个安全bug,共4533个版本
- 大数据分析:利用ATVHunter对104,446个安卓应用进行了大规模分析,发现9,050个应用程序包含具有53,337个漏洞和7,480个易受攻击的TPL版本
ATVHunter#
主要分为下面两部分:
- TPL版本检测
- TPL漏洞检测
TPL版本检测#
- Preprocessing
- Module Decoupling
- Feature Generation
- Library Identification
Preprocessing#

- Decompiling:反编译输入的app,将bytecode转为中间IR表示
- Primary module elimination:识别app中的主要模块并移除,尽可能地除去host app(primary module)对TPLs(non-primary module)的影响。
Module Decoupling#

- 把non-primary module拆分为独立的候选库
这里作者不采用诸如包依赖图(PDG)这类易受package flattening影响的方式,而是采用类依赖关系,从而克服了之前的问题
主要选取以下类依赖关系:
类继承(不考虑interface)
方法调用关系
作用域关系
使用CDG区分TPL的文件,作为备选TPL
Feature Generation#

粗粒度的特征生成:基于CFG,用于定位潜在的TPL
- 根据CFG为节点编号0 1 2 …
- 节点n的子节点中出边最多的编号为n+1,其他节点编号为n+2
- 生成签名(节点数,邻接列表hash值) :邻接列表示例: parent1->(child1,child2…)
细粒度的特征生成:基于CFG中每个基本块的Opcode,用于区分TPL的版本,使用fuzzing hash计算hash,避免传统 hash算法在相似性比对上的缺陷
普通hash有细微差别结果就会差距很大,而Fuzzing hash是先分片再hash,最后组合,因此部分差别对结果影响不大。表现为hash值相似
Library Identification#
TPL数据库构造:从Maven Repository爬取了3,006,676个版本的软件,获取到了189,545个TPL,提取粗粒度和细粒度的特征存储到Mongodb中(300GB特征)
粗粒度和细粒度结合,先通过粗粒度识别TPL,再通过细粒度识别版本
库匹配:
通过包名缩小比较范围(只用于缩小范围) 并且判断是否被混淆
根据类数目继续缩小范围(去除数目差太大的)
粗粒度根据CFG搜索
版本匹配:
methods相似度匹配算法(根据编辑距离),阈值0.85
TPL相似度计算算法,阈值0.95
TPL漏洞检测#
收集了1,180 CVEs from 957 unique TPLs with 38,243 affected versions. 当检测出TPL版本后在漏洞数据库中进行搜索并生成报告
Evalutaion#
工具链:APKTool(反编译)+Soot(CFG)+ssdeep(Fuzzing Hash)
准确率#
时间效率#
抗混淆性能#
大规模数据分析#
数据集:搜集了33个分类下,下载量1w-500w的最新版app共104,446个 其中73110个app包含TPL
发现: 9050/73110个app存在问题,涵盖53337个漏洞和7480个安全漏洞
个人感想#
研究基础:通过对9个工具的统计调研发现不足(ASE 2020)
大规模的实验直接展示了当前软件安全现状,容易吸引眼球