Skip to main content
QUICK REVIEW

[论文解读] A Sink-driven Approach to Detecting Exposed Component Vulnerabilities in Android Apps

Daoyuan Wu, Xiapu Luo|arXiv (Cornell University)|May 24, 2014
Advanced Malware Detection Techniques参考文献 28被引用 16
一句话总结

本文提出一种基于汇点(sink-driven)的方法,通过系统性地识别和分类特定于漏洞的汇点(VSinks),以检测Android应用中的暴露组件漏洞(ECVs)。利用前向可达性分析与类别感知的反向数据流分析,ECVDetector在排名前1,000的Android应用中发现了49个此前未披露的漏洞应用,平均每个组件的分析时间仅为9.257秒。

ABSTRACT

Android apps could expose their components for cooperating with other apps. This convenience, however, makes apps susceptible to the exposed component vulnerability (ECV), in which a dangerous API (commonly known as sink) inside its component can be triggered by other (malicious) apps. In the prior works, detecting these ECVs use a set of sinks pertaining to the ECVs under detection. In this paper, we argue that a more comprehensive and effective approach should start by a systematic selection and classification of vulnerability-specific sinks (VSinks). The set of VSinks is much larger than those used in the previous works. Based on these VSinks, our sink-driven approach can detect different kinds of ECVs in an app in two steps. First, VSinks and their categories are identified through a typical forward reachability analysis. Second, based on each VSink's category, a corresponding detection method is used to identify the ECV via a customized backward dataflow analysis. We also design a semi-auto guided analysis and validation capability for system-only broadcast checking to remove some false positives. We implement our sink-driven approach in a tool called ECVDetector and evaluate it with the top 1K Android apps. Using ECVDetector we successfully identify a total of 49 vulnerable apps across all four ECV categories we have defined. To our knowledge, most of them are previously undisclosed, such as the very popular Go SMS Pro and Clean Master. Moreover, the performance of ECVDetector is high, requiring only 9.257 seconds on average to process each component.

研究动机与目标

  • 解决以往ECV检测工具依赖临时汇点集合且与特定漏洞类型紧密耦合的局限性。
  • 系统性地识别并分类多种ECV类别中的特定于漏洞的汇点(VSinks),以提升检测覆盖率。
  • 开发一种通用且可扩展的检测框架,将汇点分类与分析逻辑解耦,以增强适用性。
  • 通过半自动引导式分析减少误报,尤其针对仅系统广播接收器的检查。
  • 通过发布包含372个VSinks和183个数据源API的数据库,支持实际部署与研究社区的后续研究。

提出的方法

  • 基于API名称、权限语义及其他指标,定义基于规则的系统,将VSinks系统性地划分为四类不同类别。
  • 执行迭代的、流敏感的、过程内前向可达性分析,以定位应用组件中所有VSinks。
  • 针对每类VSink应用定制化的反向数据流分析,追踪从外部输入到脆弱汇点的潜在攻击传播路径。
  • 集成半自动引导式分析模块,用于验证并过滤误报,尤其针对仅系统广播接收器的场景。
  • 在ECVDetector工具中实现该方法,支持规则解释、汇点分类与端到端漏洞检测。
  • 利用规则解释器,基于预定义的语法与语义规则,动态选择并分类VSinks。

实验结果

研究问题

  • RQ1与以往的临时性方法相比,系统性且全面的特定于漏洞的汇点(VSinks)选择在多大程度上能提升ECV检测的覆盖率?
  • RQ2一种基于分析需求对VSinks进行分类的汇点驱动框架,是否能够实现对多种漏洞类别中此前未被发现的ECVs的检测?
  • RQ3在检测复杂ECVs时,基于VSink类别的反向数据流分析在多大程度上优于前向分析?
  • RQ4半自动引导式分析在减少误报方面,尤其是在仅系统广播接收器检查场景下,效果如何?
  • RQ5所提出的方法是否能够检测到此前未披露的真实世界ECVs,存在于广泛使用的Android应用中?

主要发现

  • ECVDetector成功在Google Play中排名前1,000的Android应用中识别出49个此前未披露的漏洞应用。
  • 该工具检测到Go SMS Pro和Clean Master等知名应用中的漏洞,这些漏洞此前未被报告。
  • 每个组件的平均分析时间仅为9.257秒,表明其具有出色的性能与可扩展性。
  • 共识别并分类出372个特定于漏洞的汇点(VSinks),并根据其分析需求划分为四种类别。
  • 该工具的半自动引导式分析显著减少了误报,尤其在仅系统广播接收器检查场景下效果明显。
  • 作者发布了包含372个VSinks和183个数据源API的数据库,以支持Android安全分析领域的后续研究。

更好的研究,从现在开始

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

无需绑定信用卡

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