샌드박스
샌드박스의 개요
샌드박스의 정의
외부로부터 들어온 프로그램이 보호된 영역에서 동작해 시스템이 부정하게 조작되는 것을 막는 보안 기술
샌드박스의 필요성
- 인터넷 상 검증되지 않은 서드파트 공급자 혹은 프로그램에 노출
- 웹의 발달로 원격지의 프로그램이 로컬에서 구동되는 경우 발생
- 어플리케이션 혹은 데이터 간의 모호한 경계가 보안 문제를 일으킴
샌드박스의 개념 및 구현
샌드박스의 개념도
샌드박스의 구현
항목 | 설명 |
---|---|
A Jail | 가상 호스팅에서 일반적으로 사용되는 네트워크 접속 제한 |
Virtual Machine | 하나의 하드웨어 내에서 논리적으로 구현되는 각각의 가상 호스트 |
On native hosts | 네이티브 머신 내에 발생하는 각종 악성 프로그램들에 대한 예방 |
HTML5 | iframe 사용 시 샌드박스 처리 |
Java Virtual Machine | Java 내부의 자체적인 샌드박스 제한 정책을 적용 |
.NET Runtime | 신뢰할 수 없는 코드에 제한을 걸기 위한 Code Access Security 제공 |
Java 언어의 샌드박스
- 기본 보안 SW로 JDK 1.0부터 제공됨
- 외부에서 받은 프로그램을 JVM이라는 보호된 영역 안에서 작동
- 네트워크를 통해 전송받은 애플릿의 자원에 대한 접근 제한
- 클래스 로더(class loader), 바이트코드 검사기(bytecode verifier), 보안관리자(security manager)로 구성