MiniBox: A Two-Way Sandbox for x86 Native Code

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

Google App Engine 정순교 컴퓨터소프트웨어학과 Step 01.
Korea Virtual Payment 모바일 안전결제 (ISP) 서비스 모델 - iPhone 한국버추얼페이먼트㈜ 기술연구소
멀티미디어 신기술 세미나 프로젝트 제안서 김현철 김경률.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
J-Stream part1 (Software streaming service) ▪ 팀명 : Jukdori ▪ 팀원 : 16 th 윤병호 (PL) 15 th 송인규 16 th 김영진.
Dept. Computer Science, Korea Univ. Intelligent Information System Lab. 웹 서비스와 시멘틱 웹의 연동 방안 연구 고려대학교 지능정보시스템 연구실 이 윤 수.
I. 프로젝트 동기 II. 프로젝트 목표 III. 파일시스템 IV. 암호화 및 복호화 V. 인터페이스 VI. FBR READ/WRITE VII. 프로그램 흐름도 VIII. 미 구현 사항 IX. 프로젝트 기대효과 X. 프로그램 요구사항 및 팀원 역할분담 XI. 시연 XII.
Near Field Communication Security
The Value Chain of Telecommunications Service
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Security Solutions (S/W) - Fortify
A n d r o i d Android 2010년 5월 19일 동서대학교 백선재
Hadoop network I/O Performance on Virtualized Cluster - System Perspective August 25th Cho, Hyojae.
Linux/UNIX Programming
DIGITAL RACK MIXER M32C MIDAS NAME MODEL 제조사
그림으로 쉽게 설명하는 안드로이드 프로그래밍
2. 앱 개발환경 구축 Step by Step 안드로이드 프로그래밍 쉽게 시작하는 안드로이드 4.4 앱 개발.
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Web Service Computing and Practice_
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
창의적통합설계 프로젝트 제안서 (LG전자)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Visual Basic .NET 처음 사용하기.
Capstone-Design : IoTeam Introduction Abstract
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
부트로더와 Self Programming
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Xen and the Art of Virtualization
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
개인 개발자(업체)의 신뢰 실행 환경 기술 활용을 위한 프라이빗존 (privateZone)
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
CHAP 12. 리소스와 보안.
Wireless Java Programming
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
Method & library.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux/UNIX Programming
Go Lang 리뷰 이동은.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
Linux/UNIX Programming
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
Self Introduction Template PowerPoint
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
13차시_스마트 애플리케이션 기획 스마트 미디어의 사용환경과 사용자의 특성.
STS 에서 웹 서버 설치 방법.
컴퓨터 소프트웨어 설계 및 실험 년 1학기 실험계획 -.
AT MEGA 128 기초와 응용 I 기본적인 구조.
Wireless Java Programming
셀프 프로그래밍으로 쓰기 셀프 프로그래밍이란? 프린트포트의 ISP 모듈을 사용하지 않음 부트로더에 의한 펌웨어 다운로드
발표자 : 이지연 Programming Systems Lab.
08. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
Red Hat OpenShift Container Platform
KSP 메신저 김광민 서정건 박윤옥.
CHAP 15. 데이터 스토리지.
CODE INJECTION 시스템B 김한슬.
Platform Builder 사용법.
JAVA 프로그래밍 16장 JNLP.
LEON3 DBT 엔진을 이용한 ERC32 기반의 하이퍼바이저 프로토 타입 개발
Presentation transcript:

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

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

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

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

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

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 취약점 존재

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

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

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

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

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 제공

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

5. MiniBox Architecture

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를 검사

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

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에서 제공하는 디버깅 툴 사용 가능.

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

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

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

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

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

7. Criticism