샌드박스

샌드박스의 개요

샌드박스의 정의

외부로부터 들어온 프로그램이 보호된 영역에서 동작해 시스템이 부정하게 조작되는 것을 막는 보안 기술

샌드박스의 필요성

  • 인터넷 상 검증되지 않은 서드파트 공급자 혹은 프로그램에 노출
  • 웹의 발달로 원격지의 프로그램이 로컬에서 구동되는 경우 발생
  • 어플리케이션 혹은 데이터 간의 모호한 경계가 보안 문제를 일으킴

샌드박스의 개념 및 구현

샌드박스의 개념도

샌드박스의 구현

항목 설명
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)로 구성