Skip to main content
QUICK REVIEW

[论文解读] Context-aware System Service Call-oriented Symbolic Execution of Android Framework with Application to Exploit Generation

Lannan Luo, Qiang Zeng|arXiv (Cornell University)|Nov 2, 2016
Advanced Malware Detection Techniques参考文献 26被引用 4
一句话总结

本文提出 Centaur,这是首个针对 Android Framework 的符号执行系统,可实现自动漏洞利用生成与漏洞发现。通过采用上下文迁移与轻量污染传播技术,将初始化阶段的物理执行与符号执行解耦,Centaur 克服了状态空间爆炸问题,实现了对 Android Framework 中系统服务调用漏洞的可扩展分析,在漏洞利用生成与漏洞发现方面均表现出有效性。

ABSTRACT

Android Framework is a layer of software that exists in every Android system managing resources of all Android apps. A vulnerability in Android Framework can lead to severe hacks, such as destroying user data and leaking private information. With tens of millions of Android devices unpatched due to Android fragmentation, vulnerabilities in Android Framework certainly attract attackers to exploit them. So far, enormous manual effort is needed to craft such exploits. To our knowledge, no research has been done on automatic generation of exploits that take advantage of Android Framework vulnerabilities. We make a first step towards this goal by applying symbolic execution of Android Framework to finding bugs and generating exploits. Several challenges have been raised by the task. (1) The information of an app flows to Android Framework in multiple intricate steps, making it difficult to identify symbolic inputs. (2) Android Framework has a complex initialization phase, which exacerbates the state space explosion problem. (3) A straightforward design that builds the symbolic executor as a layer inside the Android system will not work well: not only does the implementation have to ensure the compatibility with the Android system, but it needs to be maintained whenever Android gets updated. We present novel ideas and techniques to resolve the challenges, and have built the first system for symbolic execution of Android Framework. It fundamentally changes the state of the art in exploit generation on the Android system, and has been applied to constructing new techniques for finding vulnerabilities.

研究动机与目标

  • 解决 Android Framework 漏洞缺乏自动化漏洞利用生成技术的问题,此类漏洞因广泛存在的未修补设备而尤为关键。
  • 克服在 Android Framework 复杂数据流中识别源自恶意应用的符号输入的挑战。
  • 缓解符号执行期间因框架复杂初始化阶段导致的状态空间爆炸问题。
  • 将符号执行与 Android 运行时解耦,以确保在 Android 更新中保持可维护性与兼容性。
  • 在统一的符号执行框架中同时实现漏洞发现与自动漏洞利用生成,适用于 Android Framework。

提出的方法

  • 在 Android 运行时(ART)虚拟机上使用物理执行模拟初始化阶段,并捕获执行上下文。
  • 将执行上下文从 ART 迁移到独立的 Java 虚拟机,以实现符号执行与 Android 系统的解耦。
  • 应用轻量污染传播技术,通过分析特征访问模式,识别源自恶意应用的变量作为符号输入。
  • 基于迁移后的上下文构建符号执行路径,将系统服务调用作为漏洞利用生成的入口点。
  • 将符号执行与物理执行集成,避免探索虚假路径,从而减少状态空间爆炸。
  • 设计两级架构:物理执行负责上下文初始化,符号执行负责探索与漏洞利用相关的路径。

实验结果

研究问题

  • RQ1鉴于 Android Framework 的复杂初始化过程与庞大的状态空间,如何有效应用符号执行?
  • RQ2在 Android Framework 的数据流背景下,有哪些技术可用于识别源自恶意应用的符号输入?
  • RQ3如何将符号执行与 Android 运行时解耦,以确保在操作系统更新中长期可维护?
  • RQ4对 Android Framework 的符号执行能否实现针对系统服务漏洞的真实世界漏洞利用的自动生成?
  • RQ5该方法在多大程度上可提升对 Android Framework 中零日漏洞的发现能力?

主要发现

  • Centaur 成功实现了对 Android Framework 的符号执行,据我们所知,这是首个此类系统。
  • 通过使用物理执行进行初始化与上下文迁移,系统有效缓解了状态空间爆炸问题,避免了对整个初始化阶段进行符号探索的需要。
  • 轻量污染传播技术通过追踪特征访问模式,有效识别出源自恶意应用的符号输入,显著降低了符号执行中的误报率。
  • 与朴素的符号执行方法(如 UCSE)相比,Centaur 通过避免路径爆炸,在内存占用与执行时间方面表现更优,如对比实验所示。
  • 该框架在漏洞发现与自动漏洞利用生成两方面均表现有效,经真实 Android Framework 组件的评估验证。
  • 系统展示了生成涉及多个系统服务与应用交互的复杂上下文感知漏洞利用的可行性。

更好的研究,从现在开始

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

无需绑定信用卡

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