Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MiniBox: A Two-Way Sandbox for x86 Native Code(...
Search
Yuma Kurogome
August 07, 2014
Research
1
26k
MiniBox: A Two-Way Sandbox for x86 Native Code(USENIX ATC'14)の紹介
https://atnd.org/events/54159
で話した資料です。
Yuma Kurogome
August 07, 2014
Tweet
Share
More Decks by Yuma Kurogome
See All by Yuma Kurogome
The Art of De-obfuscation
ntddk
16
27k
死にゆくアンチウイルスへの祈り
ntddk
55
39k
Windows Subsystem for Linux Internals
ntddk
10
3.1k
なぜマルウェア解析は自動化できないのか
ntddk
6
4.3k
Linear Obfuscation to Drive angr Angry
ntddk
4
860
CAPTCHAとボットの共進化
ntddk
2
1.2k
マルウェアを機械学習する前に
ntddk
3
1.7k
Peeling Onions
ntddk
7
3.7k
仮想化技術を用いたマルウェア解析
ntddk
8
27k
Other Decks in Research
See All in Research
J-RAGBench: 日本語RAGにおける Generator評価ベンチマークの構築
koki_itai
0
620
[CV勉強会@関東 CVPR2025] VLM自動運転model S4-Driver
shinkyoto
2
510
【輪講資料】Moshi: a speech-text foundation model for real-time dialogue
hpprc
3
730
時系列データに対する解釈可能な 決定木クラスタリング
mickey_kubo
2
1k
とあるSREの博士「過程」 / A Certain SRE’s Ph.D. Journey
yuukit
11
4.3k
能動適応的実験計画
masakat0
2
830
EarthDial: Turning Multi-sensory Earth Observations to Interactive Dialogues
satai
3
210
Language Models Are Implicitly Continuous
eumesy
PRO
0
280
最適決定木を用いた処方的価格最適化
mickey_kubo
4
1.9k
一人称視点映像解析の最先端(MIRU2025 チュートリアル)
takumayagi
6
3.7k
大規模な2値整数計画問題に対する 効率的な重み付き局所探索法
mickey_kubo
1
380
不確実性下における目的と手段の統合的探索に向けた連続腕バンディットの応用 / iot70_gp_rff_mab
monochromegane
2
180
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1032
460k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
YesSQL, Process and Tooling at Scale
rocio
173
14k
A Tale of Four Properties
chriscoyier
160
23k
Bash Introduction
62gerente
615
210k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
論文紹介: MiniBox: A Two-Way Sandbox for x86 Native Code[Yanlin Li
et al., USENIX ATC'14] 2014/08/06 システム系論文輪読会 @ntddk ※図表はUSENIXでのスライドより
背景 • PaaS(Platform as a Service) – クラウドコンピューティングサービスが提供するソ フトウェアの構築・実行基盤 •
サンドボックス – アプリケーションからOSを守るために配備されて いる – OSからアプリケーションを守る仕組みがない • ユーザーの資産はOSではなくアプリケーション • サービス提供者の意図しない悪性コードがOSで動いてい たら
関連研究 • NaCl • TrustVisor
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境界に制限 • メモリ読み書き位置の制限
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を検証
関連研究 • NaCl(Google) – ブラウザ内部でネイティブコードを実行するone- way sandbox • TrustVisor(CMU CyLab)
– ハイパーバイザとTPMを用いてOSからsecurity- sensitiveなコードを分割するtwo-way memory isolation mechanism
Isolationの問題点 • アプリケーションのPALのみを保護 • Intel SGX – ハードウェアベースのtwo-way isolation •
TrustVisor – ハイパーバイザベースのtwo-way isolation
Sandboxの問題点 • サンドボックスはnon-isolatedなPALも実行し てしまう – Sensitive PALとnon-sensistive PALのどちらもサン ドボックスに押し込んでしまっている •
開発者はアプリケーションの分割(実質的な移 植)を必要とする
問題点 Iago Attacks: Why the system call API is a
bad untrusted RPC interface[Stephen Checkoway et al, ASPLOS 2013] • 悪意のOSカーネルからサンドボックス内のプ ロセスを攻撃する手法
提案手法 • One-way sandboxとtwo-way memory isolation mechanismの両立 – アプリケーションとOSどちらも保護する •
インターフェイスのセキュア化 • Iago attacksに対するアプリケーションの保護
実装 • TrustVisor v0.2.1 ベース • NaCl • Intel, AMDのマルチコアプロセッサをサポート
• ゲストOSはUbuntu 10.04 • Debugging modeではハイパーバイザによる isolationを無効化する代わりにアプリケーショ ンをgdbでデバッグすることが可能
None
実装 • LDTを辿ってTLSの整合性を保つ • Iago attacks対策としてLibOSによるsensitive callsのisolation – Dynamic memory
management – Thread local storage management – Multi-thread management – Secure file I/O
評価 • Non-sensitive system callsにおけるオー バーヘッド
まとめ • 既存のサンドボックスはPALを分割せずに保護 する点で問題があった • ハイパーバイザと連携してPALを分割した上で サンドボックスでアプリケーションを保護する 手法が提案された • NaClとGolangの連携が推し進められているの
で、そのうちGAEに導入されるかも