Skip to main content
QUICK REVIEW

[论文解读] ACMiner: Extraction and Analysis of Authorization Checks in Android's Middleware

Sigmund Albert Gorski, Benjamin Andow|arXiv (Cornell University)|Jan 11, 2019
Advanced Malware Detection Techniques被引用 4
一句话总结

ACMiner 是一种静态分析框架,通过挖掘导致抛出 SecurityException 的代码模式,自动提取并分析 Android 系统服务中的授权检查,然后应用关联规则挖掘技术检测不一致情况,从而发现缺失或错误的访问控制。它在 Android 7.1.1 中发现了 28 个漏洞,将手动分析的入口点从 4,004 个减少到 246 个,其中 7 个为可被第三方应用利用的、安全敏感的入口点。

ABSTRACT

Billions of users rely on the security of the Android platform to protect phones, tablets, and many different types of consumer electronics. While Android's permission model is well studied, the enforcement of the protection policy has received relatively little attention. Much of this enforcement is spread across system services, taking the form of hard-coded checks within their implementations. In this paper, we propose Authorization Check Miner (ACMiner), a framework for evaluating the correctness of Android's access control enforcement through consistency analysis of authorization checks. ACMiner combines program and text analysis techniques to generate a rich set of authorization checks, mines the corresponding protection policy for each service entry point, and uses association rule mining at a service granularity to identify inconsistencies that may correspond to vulnerabilities. We used ACMiner to study the AOSP version of Android 7.1.1 to identify 28 vulnerabilities relating to missing authorization checks. In doing so, we demonstrate ACMiner's ability to help domain experts process thousands of authorization checks scattered across millions of lines of code.

研究动机与目标

  • 为解决 Android 受 privilege 保护的系统服务中访问控制强制机制缺乏系统性分析的问题,这些服务对平台安全至关重要。
  • 克服先前工具(如 Kratos 和 AceDroid)依赖手动维护检查列表或粗粒度分析的局限性。
  • 使领域专家能够高效识别数以千计服务入口点中缺失或不一致的授权检查,这些入口点分布在数百万行代码中。
  • 提高检测覆盖范围和精度,识别 Android 中间件中与缺失或配置错误的访问控制相关的漏洞。
  • 通过关联规则挖掘提供可操作的洞察,建议一致的访问控制模式,以支持漏洞筛选和修复。

提出的方法

  • ACMiner 通过分析服务入口点与抛出 SecurityException 的代码之间的程序逻辑,使用静态分析提取导致授权检查的相关条件。
  • 它应用文本分析和正则表达式,挖掘影响导致 SecurityException 抛出的条件逻辑的安全相关常量、变量名和方法名。
  • 该框架从挖掘出的条件构建策略规则,表示每个服务入口点的预期访问控制策略。
  • 它在服务粒度上应用关联规则挖掘,比较同一服务内不同入口点的授权检查,识别可能指示漏洞的不一致性。
  • 该方法支持半自动发现多样化的授权检查,包括先前工具(如 App Ops 或手动定义列表)未覆盖的检查。
  • 通过关联规则建议对结果进行优先级排序和筛选,使安全专家能够高效地进行人工验证。

实验结果

研究问题

  • RQ1如何从大规模、复杂的代码库中系统且自动地提取 Android 系统服务中的授权检查?
  • RQ2关联规则挖掘在检测同一系统服务内不同入口点之间访问控制强制不一致方面,其有效程度如何?
  • RQ3与 Kratos 和 AceDroid 等现有工具相比,ACMiner 在识别缺失或错误授权检查方面的覆盖范围和精度如何?
  • RQ4ACMiner 是否能够减少识别 Android 核心系统服务中安全漏洞所需的手动分析工作量?
  • RQ5该方法能够发现哪些类型的漏洞,特别是可被第三方应用利用的漏洞?

主要发现

  • ACMiner 分析了 AOSP Android 7.1.1 中的 4,004 个系统服务入口点,识别出其中 1,995 个包含授权检查。
  • 在这些入口点中,关联规则挖掘识别出 246 个授权检查不一致的入口点,显著缩小了需人工审查的攻击面。
  • 对这 246 个可疑入口点进行人工调查后,发现了 28 个安全漏洞,其中包括 7 个可被第三方应用利用的、安全敏感的入口点。
  • 此外,在 12 个不直接被第三方应用利用的入口点中也发现了漏洞,但这些漏洞仍构成关键的访问控制缺陷。
  • ACMiner 通过采用半自动挖掘方法,相比 Kratos 在检查覆盖范围上实现了 2552% 的提升,不再依赖手动维护的列表。
  • 该框架通过将需专家分析的入口点数量从 4,000 多个减少至仅 246 个,展示了卓越的可扩展性和精度,实现了高效的漏洞筛选,并通过关联规则挖掘提供了可操作的建议。

更好的研究,从现在开始

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

无需绑定信用卡

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