Skip to main content
QUICK REVIEW

[论文解读] SandBlaster: Reversing the Apple Sandbox

Răzvan Deaconescu, Luke Deshotels|arXiv (Cornell University)|Aug 15, 2016
Digital Games and Media参考文献 2被引用 7
一句话总结

SandBlaster 是一个软件套件,可将 iOS 7、8 和 9 中的 Apple 二进制沙盒配置文件反编译为人类可读的 SBPL(沙盒配置文件语言)格式。通过逆向工程序列化过滤器图并重构自动机,该工具实现了对 Apple 沙盒策略的完整分析,并通过验证性重新编译,证明了反向生成配置文件的语法正确性。

ABSTRACT

In order to limit the damage of malware on Mac OS X and iOS, Apple uses sandboxing, a kernel-level security layer that provides tight constraints for system calls. Particularly used for Apple iOS, sandboxing prevents apps from executing potentially dangerous actions, by defining rules in a sandbox profile. Investigating Apple's built-in sandbox profiles is difficult as they are compiled and stored in binary format. We present SandBlaster, a software bundle that is able to reverse/decompile Apple binary sandbox profiles to their original human readable SBPL (SandBox Profile Language) format. We use SandBlaster to reverse all built-in Apple iOS binary sandbox profiles for iOS 7, 8 and 9. Our tool is, to the best of our knowledge, the first to provide a full reversing of the Apple sandbox, shedding light into the inner workings of Apple sandbox profiles and providing essential support for security researchers and professionals interested in Apple security mechanisms.

研究动机与目标

  • 将 iOS 7、8 和 9 中使用的 Apple 编译后二进制沙盒配置文件反向工程为人类可读的 SBPL 格式。
  • 克服缺乏公开文档以及二进制沙盒配置文件复杂性的问题,这些配置文件以序列化图的形式存储,难以分析。
  • 提供一个工具链,使安全研究人员能够检查、修改并验证 iOS 应用程序的沙盒策略。
  • 通过固件文件(.ipsw)自动提取和反编译过程,无需使用物理设备。
  • 通过移除编译期间添加的隐式规则和标准策略结构,清理反向生成的配置文件。

提出的方法

  • 通过分析表示过滤器转换和操作的序列化图结构,对二进制沙盒配置文件进行逆向工程。
  • 使用状态移除技术,从类似 NFA 的自动机中重构正则表达式,处理带有字符串模式标记的转换。
  • 利用系统库中已知的映射关系和逆向工程的模式,将二进制过滤器键和值映射到其 SBPL 对应项。
  • 整合现有工具(例如 Blazakis 和 Esser 的工具)并配合自定义脚本,自动化从 .ipsw 固件文件中提取和反编译配置文件的过程。
  • 应用清理启发式规则,移除隐式添加的规则(例如 (allow signal (target self))) 和原始 SBPL 中不存在的标准策略结构。
  • 在 Mac OS X 上对反向生成的 SBPL 配置文件进行重新编译,以验证其语法正确性,并对平台特定的标记差异进行少量调整。

实验结果

研究问题

  • RQ1Apple 的 iOS 7、8 和 9 中的二进制沙盒配置文件能否被完全反向生成为人类可读的 SBPL 格式?
  • RQ2Apple 默认沙盒配置文件的结构和语义特征是什么,特别是第三方应用的容器配置文件?
  • RQ3隐式规则和编译产物在多大程度上影响了反向生成配置文件的保真度?
  • RQ4反向生成的 SBPL 配置文件能否成功重新编译并重现原始策略行为?
  • RQ5如何实现反向工程过程的自动化并扩展到多个 iOS 固件版本?

主要发现

  • SandBlaster 已成功将 iOS 7、8 和 9 中所有内置二进制沙盒配置文件反向转换为人类可读的 SBPL 格式。
  • 通过最小修改成功完成重新编译,验证了反向生成配置文件的语法正确性。
  • 该工具识别并移除了编译期间自动注入的隐式规则(例如 (allow signal (target self)))。
  • 逆向工程生成的配置文件揭示了详细的系统调用限制,包括网络、文件和 Mach 服务访问策略。
  • 反编译后的配置文件与原始 SBPL 语义高度一致,仅存在少量需调整的平台特定标记差异。
  • 从序列化过滤器自动机重构正则表达式的流程在处理复杂过滤模式时被证明是有效且可扩展的。

更好的研究,从现在开始

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

无需绑定信用卡

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