샌드박스 (컴퓨터 보안)

위키백과, 우리 모두의 백과사전.

샌드박스(sandbox)란 외부로부터 들어온 프로그램이 보호된 영역에서 동작해 시스템이 부정하게 조작되는 것을 막는 보안 형태이다.

호스트 머신이나 운영 체제에 손상을 입히지 않고 확인되지 않거나 신뢰할 수 없는 서드파티, 공급자, 사용자, 웹사이트로부터 잠재적으로 테스트되지 않거나 신뢰하지 못하는 프로그램이나 코드를 실행하기 위해 종종 사용된다.[1]

고도로 제어되는 환경을 제공한다는 측면에서 샌드박스는 가상화의 특정 예시로 간주할 수 있다. 샌드박스는 소프트웨어가 호스트 장치에 위험을 주지 않게 하면서 바이러스나 기타 악성 코드를 포함할 수 있는 미검증된 프로그램을 테스트하기 위해 종종 사용된다.[2] 최근에는 샌드박스의 취약점을 이용한 악성 코드도 발견되고 있다.

자바의 샌드박스[편집]

  • 자바(Java)가 지원하는 기본 보안 소프트웨어로, 1996년 1월 발표된 JDK(Java development kit:자바개발도구)1.0부터 제공되고 있다. 외부에서 받은 프로그램을 JVM(Java Virtual Machine)이라는 보호된 영역 안에 가둔 뒤 작동시키는 방법으로 프로그램의 폭주나 악성 바이러스의 침투를 막는다.
  • 자바가 제공하는 샌드박스는 네트워크를 통해 전송받은 애플릿의 시스템 자원에 대한 접근을 제한한다. 샌드박스에서 접근을 허용한 애플릿은 작업이 가능하지만 그렇지 않은 경우는 로컬파일을 읽거나 바꿀 수 없게 하는 방법으로 시스템의 피해를 방지한다.
  • 샌드박스는 클래스 로더(class loader), 바이트코드 검사기(bytecode verifier), 보안관리자(security manager)의 콤포넌트로 구성된다. 각 콤포넌트는 시스템의 신뢰성을 유지하는 역할을 한다.

일반적 의미[편집]

  • 샌드박스는 실험적 의미의 프로그램을 연결하는 곳을 지칭하기도 한다. 따라서, 실제 적용 이전에 먼저 샌드박스로 연결하여 테스트하라는 것은 작동은 실제와 같으나 금융상 또는 법률상의 실제행위는 일어나지 않는 것을 뜻한다. 모의 테스트라는 의미이다.

각주[편집]

  1. Goldberg, Ian; Wagner, David; Thomas, Randi; Brewer, Eric (1996). “A Secure Environment for Untrusted Helper Applications (Confining the Wily Hacker)” (PDF). 《Proceedings of the Sixth USENIX UNIX Security Symposium》. 2011년 10월 25일에 확인함. 
  2. Geier, Eric (2012년 1월 16일). “How to Keep Your PC Safe With Sandboxing”. TechHive. 2014년 7월 12일에 원본 문서에서 보존된 문서. 2014년 7월 3일에 확인함.