Skip to main content
QUICK REVIEW

[论文解读] ATVHunter: Reliable Version Detection of Third-Party Libraries for Vulnerability Identification in Android Applications

Xian Zhan, Lingling Fan|arXiv (Cornell University)|Feb 16, 2021
Advanced Malware Detection Techniques参考文献 28被引用 7
一句话总结

ATVHunter 是一种静态分析系统,采用两阶段方法实现对 Android 应用中第三方库(TPL)版本的精确检测:首先进行粗粒度控制流图(CFG)匹配,随后进行细粒度指令码级分析。该系统在 TPL 版本检测中实现了 90.55% 的精确率和 88.79% 的召回率,在 9,050 个应用中识别出 53,337 个漏洞和 7,480 个安全漏洞,显著优于现有工具在准确性和抗混淆能力方面的表现。

ABSTRACT

We propose a system, named ATVHunter, which can pinpoint the precise vulnerable in-app TPL versions and provide detailed information about the vulnerabilities and TPLs. We propose a two-phase detection approach to identify specific TPL versions. Specifically, we extract the Control Flow Graphs as the coarse-grained feature to match potential TPLs in the pre-defined TPL database, and then extract opcode in each basic block of CFG as the fine-grained feature to identify the exact TPL versions. We build a comprehensive TPL database (189,545 unique TPLs with 3,006,676 versions) as the reference database. Meanwhile, to identify the vulnerable in-app TPL versions, we also construct a comprehensive and known vulnerable TPL database containing 1,180 CVEs and 224 security bugs. Experimental results show ATVHunter outperforms state-of-the-art TPL detection tools, achieving 90.55% precision and 88.79% recall with high efficiency, and is also resilient to widely-used obfuscation techniques and scalable for large-scale TPL detection. Furthermore, to investigate the ecosystem of the vulnerable TPLs used by apps, we exploit ATVHunter to conduct a large-scale analysis on 104,446 apps and find that 9,050 apps include vulnerable TPL versions with 53,337 vulnerabilities and 7,480 security bugs, most of which are with high risks and are not recognized by app developers.

研究动机与目标

  • 为解决 Android 应用中第三方库(TPL)版本级精确、可靠检测的关键空白问题。
  • 克服现有工具因混淆、版本模糊性和 TPL 数据库不完整而导致无法识别确切 TPL 版本的局限性。
  • 构建一个全面且公开可用的已知存在漏洞的 TPL 版本数据库(包含 1,180 个 CVE 和 224 个安全漏洞),以实现漏洞识别的准确性。
  • 实现对真实 Android 应用中存在漏洞的 TPL 进行大规模检测,揭示其广泛暴露于高风险漏洞的情况。
  • 通过为开发人员和应用市场提供关于 TPL 安全风险和版本更新的可操作洞察,支持其安全实践。

提出的方法

  • ATVHunter 使用两阶段检测流水线:首先提取控制流图(CFG)作为粗粒度特征,将潜在 TPL 与大型 TPL 数据库进行匹配。
  • 其次,分析 CFG 中每个基本块内的指令码,执行细粒度匹配以识别确切的 TPL 版本。
  • 构建了一个包含 189,545 个唯一 TPL 及 3,006,676 个版本的全面 TPL 数据库,实现对真实世界库的广泛覆盖。
  • 构建了一个专用的漏洞 TPL 版本数据库,包含 1,180 个 CVE 和 224 个已知安全漏洞,以实现精确的漏洞关联。
  • 该系统设计具备对常见混淆技术(如代码重排和重命名)的鲁棒性,确保在混淆应用中仍能保持高检测准确率。
  • 利用静态分析避免运行时依赖,支持大规模应用数据集的高效、可扩展处理。

实验结果

研究问题

  • RQ1结合 CFG 级和指令码级特征的两阶段静态分析方法,能否在混淆的 Android 应用中可靠检测出确切的 TPL 版本?
  • RQ2ATVHunter 在精确率和召回率方面,与当前最先进的 TPL 检测工具相比,其识别存在漏洞的 TPL 版本的效率如何?
  • RQ3在真实世界 Android 应用中,存在漏洞的 TPL 使用的真实规模和风险特征是什么?
  • RQ4现有工具在版本解析和数据库完整性方面的局限性,导致其在多大程度上无法检测到存在漏洞的 TPL 版本?
  • RQ5当前开发人员和应用市场如何处理 TPL 安全风险?自动化工具如 ATVHunter 在此过程中可发挥何种作用?

主要发现

  • ATVHunter 在检测确切 TPL 版本方面实现了 90.55% 的精确率和 88.79% 的召回率,显著优于现有工具在准确性和鲁棒性方面的表现。
  • 该系统在所分析的 104,446 个 Android 应用中的 9,050 个中成功识别出 53,337 个漏洞和 7,480 个安全漏洞,揭示了高风险 TPL 广泛存在的暴露风险。
  • ATVHunter 对常见混淆技术(如代码重排和重命名)具有鲁棒性,在高度混淆的应用中仍能保持高检测准确率。
  • 研究发现,78% 的漏洞存在于间接依赖中,凸显了精确版本级检测在发现隐藏风险中的必要性。
  • 许多开发人员对其应用中存在漏洞的 TPL 版本缺乏认知,且现有应用市场缺乏自动标记此类风险的机制,凸显了 ATVHunter 等工具的迫切需求。
  • 构建的 TPL 及漏洞 TPL 版本数据库(包含 189,000 个 TPL、300 万个版本、1,180 个 CVE 和 224 个安全漏洞)已公开提供,可作为未来研究的基础资源。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。