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(Sandbox Profile Language)形式に変換するソフトウェアバンドルである。シリアル化されたフィルターグラフの逆解析とオートマトン再構築を活用することで、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 形式に逆アセンブル可能か?
  • RQ2特にサードパーティアプリ用のコンテナープロファイルを含め、Apple のデフォルトのサンドボックスプロファイルの構造的・意味的特徴は何か?
  • RQ3暗黙のルールやコンパイル時のアーティファクトは、逆アセンブルされたサンドボックスプロファイルの忠実度にどの程度影響を与えるか?
  • RQ4逆アセンブルされた SBPL プロファイルは、正常に再コンパイル可能であり、元のポリシー動作を再現できるか?
  • RQ5複数の iOS ファームウェアバージョンにわたって、逆アセンブルプロセスを自動化・スケーラブルにできるか?

主な発見

  • SandBlaster は、iOS 7、8、9 のすべての組み込みバイナリーサンドボックスプロファイルを、人間が読み取り可能な SBPL 形式に正常に逆アセンブルした。
  • わずかな修正を伴いながらも、再コンパイルに成功したことで、逆アセンブルされたプロファイルの構文的正しさが検証された。
  • コンパイル時に自動的に挿入される暗黙のルール(例:(allow signal (target self))) が同定され、削除された。
  • 逆アセンブルされたプロファイルは、ネットワーク、ファイル、Mach サービスへのアクセス制限を含む、詳細なシステムコール制約を明らかにした。
  • 逆アセンブルされたプロファイルは、わずかなプラットフォーム固有のトークン差異を除き、元の SBPL の意味論と極めて類似しており、調整が必要な点は限定的であった。
  • シリアル化されたフィルターオートマトンから正規表現を再構築するプロセスは、複雑なフィルターパターンに対しても効果的かつスケーラブルであることが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。