샌드박싱 (Sandboxing)

정보보안학
한 줄 정의: 프로그램을 시스템의 나머지 부분과 격리된 제한된 실행 공간에서 동작시켜, 악성 행위가 발생하더라도 피해가 외부로 퍼지지 않도록 하는 보안 기법입니다.

쉽게 풀면

어린아이가 모래놀이터(샌드박스) 안에서만 놀게 하면, 아무리 어질러도 놀이터 밖으로 모래가 퍼지지 않는 것과 비슷합니다. 컴퓨터에서는 신뢰할 수 없는 프로그램이나 파일을 별도의 격리된 공간에서 실행시켜, 설령 그것이 악성코드라 해도 실제 시스템 파일이나 다른 프로그램에 손을 대지 못하게 막습니다. 웹 브라우저가 방문한 웹사이트의 스크립트를 제한된 환경에서 실행하는 것도 대표적인 샌드박싱 사례입니다. 문제가 생겨도 샌드박스 안에서만 발생하므로 실제 피해를 최소화할 수 있습니다.

왜 중요한가

알 수 없는 프로그램이나 파일을 안전하게 실행하고 분석해야 하는 경우가 많은 정보보안 분야에서, 샌드박싱은 실제 시스템에 위험을 노출하지 않고도 동작을 관찰할 수 있게 해줍니다. 그래서 악성코드 분석, 브라우저 보안, 모바일 앱 권한 관리 등 다양한 연구에서 핵심 방어 기법으로 다루어집니다.

논문에서는 이렇게 쓰입니다

"악성코드 시료를 격리된 샌드박스(sandbox) 환경에서 실행하여 파일 시스템 변경, 네트워크 통신 등의 행위 지표를 수집하였다."

의심스러운 파일을 실제 사용자 시스템이 아닌 격리된 분석 환경에서 실행해 안전하게 행동을 관찰하는 연구 방법입니다.

"모바일 운영체제의 애플리케이션 샌드박싱(application sandboxing) 정책이 앱 간 데이터 유출을 얼마나 효과적으로 차단하는지 평가하였다."

모바일 OS에서 각 앱을 독립된 공간에 격리하여 다른 앱의 데이터에 함부로 접근하지 못하게 하는 구조를 분석한 예입니다.

조금 더 깊게 보면

샌드박싱은 운영체제 수준의 프로세스 격리, 가상머신(VM), 컨테이너, 또는 애플리케이션 계층의 권한 제한 등 여러 방식으로 구현될 수 있습니다. 격리 수준이 높을수록 안전성은 높아지지만 성능 오버헤드나 호환성 문제가 발생할 수 있어, 연구에서는 이 둘 사이의 균형을 다루는 경우가 많습니다.

주의할 점

샌드박스가 완벽한 격리를 보장하는 것은 아니며, 정교한 악성코드는 샌드박스 환경을 탐지해 행동을 숨기거나 격리를 우회하려 시도하기도 합니다. 따라서 샌드박싱은 단독 방어책이 아니라 다른 보안 기법과 함께 사용되는 경우가 일반적입니다.

관련 용어