샌드박싱 (Sandboxing)
쉽게 풀면
어린아이가 모래놀이터(샌드박스) 안에서만 놀게 하면, 아무리 어질러도 놀이터 밖으로 모래가 퍼지지 않는 것과 비슷합니다. 컴퓨터에서는 신뢰할 수 없는 프로그램이나 파일을 별도의 격리된 공간에서 실행시켜, 설령 그것이 악성코드라 해도 실제 시스템 파일이나 다른 프로그램에 손을 대지 못하게 막습니다. 웹 브라우저가 방문한 웹사이트의 스크립트를 제한된 환경에서 실행하는 것도 대표적인 샌드박싱 사례입니다. 문제가 생겨도 샌드박스 안에서만 발생하므로 실제 피해를 최소화할 수 있습니다.
왜 중요한가
알 수 없는 프로그램이나 파일을 안전하게 실행하고 분석해야 하는 경우가 많은 정보보안 분야에서, 샌드박싱은 실제 시스템에 위험을 노출하지 않고도 동작을 관찰할 수 있게 해줍니다. 그래서 악성코드 분석, 브라우저 보안, 모바일 앱 권한 관리 등 다양한 연구에서 핵심 방어 기법으로 다루어집니다.
논문에서는 이렇게 쓰입니다
의심스러운 파일을 실제 사용자 시스템이 아닌 격리된 분석 환경에서 실행해 안전하게 행동을 관찰하는 연구 방법입니다.
모바일 OS에서 각 앱을 독립된 공간에 격리하여 다른 앱의 데이터에 함부로 접근하지 못하게 하는 구조를 분석한 예입니다.
조금 더 깊게 보면
샌드박싱은 운영체제 수준의 프로세스 격리, 가상머신(VM), 컨테이너, 또는 애플리케이션 계층의 권한 제한 등 여러 방식으로 구현될 수 있습니다. 격리 수준이 높을수록 안전성은 높아지지만 성능 오버헤드나 호환성 문제가 발생할 수 있어, 연구에서는 이 둘 사이의 균형을 다루는 경우가 많습니다.
주의할 점
샌드박스가 완벽한 격리를 보장하는 것은 아니며, 정교한 악성코드는 샌드박스 환경을 탐지해 행동을 숨기거나 격리를 우회하려 시도하기도 합니다. 따라서 샌드박싱은 단독 방어책이 아니라 다른 보안 기법과 함께 사용되는 경우가 일반적입니다.