Presentation is loading. Please wait.

Presentation is loading. Please wait.

MiniBox: A Two-Way Sandbox for x86 Native Code

Similar presentations


Presentation on theme: "MiniBox: A Two-Way Sandbox for x86 Native Code"— Presentation transcript:

1 MiniBox: A Two-Way Sandbox for x86 Native Code
Yanlin Li, Jonathan McCune, James Newsome Adrian Perrig, Brandon Baker and Will Drewry ATC’14 June 19-20th,2014 Cho, Hyojae

2 CONTENTS Introduction Sandbox Two-way Memory Isolation
Combine Sandbox and Isolation MiniBox Evaluation

3 1. Introduction Platform as a Service 상업적으로 많이 사용되는 클라우드 컴퓨팅
백만 개의 애플리케이션이 구글 앱 엔진상에서 작동 시스템 보호를 위한 샌드박스 구조 요구 OS를 위험한 앱으로부터 보호

4 2. Sandbox Current Sandbox 위험한 앱이 게스트 OS를 공격하는 것으로부터 보호 단방향 보호의 문제점
One-way protection 단방향 보호의 문제점 OS가 앱을 공격하는 것에는 무방비

5 2. Sandbox Goal: Two-way Sandbox OS Protection Application Protection

6 3. Two-way Memory Isolation
Intel Software Guard Extensions (SGX) Hardware-based two-way memory isolation TrustVisor Hypervisor-based two-way memory isolation Only isolate a Piece of Application Logic (PAL) from the OS 취약점 존재

7 3. Two-way Memory Isolation
운영체제 샌드박스 애플리케이션 시스템 콜 공격 위험 (DMA 등) 메모리 운영체제 Isolation Module 메모리 공격 위험 Env switch 기존의 샌드박스 Intel SGX or TrustVisor

8 4. Combine Sandbox and Isolation
Option #1 Non-sensitive PAL에 샌드박스 구조 사용 애플리케이션에게 다량의 인터페이스 노출 앱 포팅 필요

9 4. Combine Sandbox and Isolation
Option #2 전체적으로 샌드박스 구조 사용 애플리케이션에게 다량의 인터페이스 노출 앱 포팅 필요없음 Iago attack*에 취약 *Iago attacks: Why the system call API is a bad untrusted RPC interface, ASPLOS `13

10 4. Combine Sandbox and Isolation
Challanges One-way sandbox + Two-way memory isolation 목표 One-way sandbox와 Two-way memory isolation을 통합하기 위한 시스템을 디자인 OS보호 및 애플리케이션 보호를 위한 모듈 간 인터페이스를 최대한 안전하고 간략하게 Iago attack으로부터 애플리케이션 보호

11 5. MiniBox Overview One-way sandbox + hypervisor-base two-way memory isolation Google NaCl + TrustVisor 샌드박스 컴포넌트를 서비스 런타임 모듈과 OS 보호 모듈로 분리 앱 실행 지원을 위한 격리된 메모리 공간 포함 앱에게 system call interface 제공 sensitive(민감한) system call / non-sensitive system call 분리 격리된 환경에서 sensitive call 핸들 안전하고 간소화된 OS 보호 모듈, 애플리케이션 보호 모듈 간 communication interface 제공

12 5. MiniBox Native Client 웹 상에서의 Native Module 실행을 위한 샌드박스 기술
Software Fault Isolation (SFI) 각각의 Native Module은 각각의 segmentation 안에서 실행 Disassembler & Validator Native Module 내에 SFI를 해제하는 코드가 없음을 보장

13 5. MiniBox Architecture

14 5. MiniBox Minimized and Secure Communication Interface
간소화된 두 환경 간 통신 인터페이스 제공 프로그램 로드 : program loader 런 타임 : only system call interface 두 환경 간의 안전한 통신 제공 애플리케이션은 system call 호출 Hypervisor가 두 환경 사이에 system call parameter와 return value 전달 OS 보호 모듈은 system call parameter를 검사

15 5. MiniBox Implementation 프로토타입 구현 TrustVisor (Ver. 0.2.1)
구글 Native Client (NaCl) 오픈소스 프로젝트 Intel and AMD 멀티코어 프로세서 지원 게스트 OS로 Ubuntu 사용

16 6. Evaluation Microbenchmarks Application Benchmarks
System call overhead Application Benchmarks I/O-bound applications CPU-bound applications MiniBox, MiniBox 디버깅 모드, NaCl간 성능 비교 MiniBox 상의 OS는 MIEE 상의 메모리 정보를 볼 수 없음 디버깅 모드에서는 hypervisor의 기능 해제 -> NaCl에서 제공하는 디버깅 툴 사용 가능.

17 6. Evaluation System Call Overhead OS가 핸들하는 system call의 경우
각각의 call은 environment switch 요구 높은 오버헤드 MIEE 내부에서 발생하는 system call의 경우 NaCl과 비슷한 퍼포먼스

18 6. Evaluation I/O-Bound Application (Zlib) Zilb 작업 수행
1MB의 파일을 파일시스템으로부터 읽어서 압축하기 MiniBox 상의 File I/O는 높은 오버헤드를 가짐 적절한 캐시 정책을 통해 성능 향상 기대

19 6. Evaluation I/O-Bound Application (Zlib) Zilb 작업 수행
1MB의 파일을 파일시스템으로부터 읽어서 압축하기 MiniBox 상의 File I/O는 높은 오버헤드를 가짐 적절한 캐시 정책을 통해 성능 향상 기대

20 6. Evaluation CPU-Bound Application AES Encryption 비트코인
200,000번의 SHA-256 연산 수행 NaCl과 성능 동일, 오버헤드 없음

21 7. Conclusion 실제적인 two-way sandbox 구현 최초 시도
네이티브 x86 코드를 위한 two-way protection의 일반적 아키텍처 제안 PaaS 클라우드 플랫폼 등 two-way protection이 필요한 곳에 널리 사용될 것으로 전망

22 7. Criticism


Download ppt "MiniBox: A Two-Way Sandbox for x86 Native Code"

Similar presentations


Ads by Google