Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MiniBox: A Two-Way Sandbox for x86 Native Code(USENIX ATC'14)の紹介

MiniBox: A Two-Way Sandbox for x86 Native Code(USENIX ATC'14)の紹介

https://atnd.org/events/54159 で話した資料です。

Yuma Kurogome

August 07, 2014
Tweet

More Decks by Yuma Kurogome

Other Decks in Research

Transcript

  1. 論文紹介: MiniBox: A Two-Way Sandbox for x86 Native Code[Yanlin Li

    et al., USENIX ATC'14] 2014/08/06 システム系論文輪読会 @ntddk ※図表はUSENIXでのスライドより
  2. 背景 • PaaS(Platform as a Service) – クラウドコンピューティングサービスが提供するソ フトウェアの構築・実行基盤 •

    サンドボックス – アプリケーションからOSを守るために配備されて いる – OSからアプリケーションを守る仕組みがない • ユーザーの資産はOSではなくアプリケーション • サービス提供者の意図しない悪性コードがOSで動いてい たら
  3. NaCl Native Client: A Sandbox for Portable, Untrusted x86 Native

    Code[Bennet Yee et al., Oakland'09] • One-way sandbox • Webブラウザ内部でネイティブコードを実行 – x86, ARMに対応 – イメージは「Chromeで動くセキュアなCygwin」 • Software Fault Isolation – 信頼できないコードをフォールトドメインに隔離 • jmpの飛び先を32byte境界に制限 • メモリ読み書き位置の制限
  4. TrustVisor TrustVisor: Efficient TCB Reduction and Attestation[Jonathan M. McCune et

    al., OAKLAND'10] • Two-way memory isolation mechanism • Pieces of Application Logic(PAL)という単位 – self-contained security-sensitive codeblocksを守 るのがTrustVisorの目的 • ハイパーバイザを用いてPALを保護 – legacy OS and DMA-capable devicesから – Nested pagesをもとにPALを隔離 – µTPMを用いてPALを検証
  5. 関連研究 • NaCl(Google) – ブラウザ内部でネイティブコードを実行するone- way sandbox • TrustVisor(CMU CyLab)

    – ハイパーバイザとTPMを用いてOSからsecurity- sensitiveなコードを分割するtwo-way memory isolation mechanism
  6. 問題点 Iago Attacks: Why the system call API is a

    bad untrusted RPC interface[Stephen Checkoway et al, ASPLOS 2013] • 悪意のOSカーネルからサンドボックス内のプ ロセスを攻撃する手法
  7. 提案手法 • One-way sandboxとtwo-way memory isolation mechanismの両立 – アプリケーションとOSどちらも保護する •

    インターフェイスのセキュア化 • Iago attacksに対するアプリケーションの保護
  8. 実装 • TrustVisor v0.2.1 ベース • NaCl • Intel, AMDのマルチコアプロセッサをサポート

    • ゲストOSはUbuntu 10.04 • Debugging modeではハイパーバイザによる isolationを無効化する代わりにアプリケーショ ンをgdbでデバッグすることが可能
  9. 実装 • LDTを辿ってTLSの整合性を保つ • Iago attacks対策としてLibOSによるsensitive callsのisolation – Dynamic memory

    management – Thread local storage management – Multi-thread management – Secure file I/O