샌드박스(sandbox)는 모래통, 모래상자를 말한다. 또 레일이 미끄러지지 않도록 모래를 뿌리기 위해 기관차에 부착한 모래 상자 또는 증기 기관차의 모래통이다. 또 예전에 압지(押紙)가 없었던 시절에 잉크를 말리기 위해 뿌리는 모래를 넣은 모래주머니였다.
골프에서는 모래 둔덩용의 모래주머니, 즉 tee 용의 모래그릇이다. 금석가공에서는 모래로된 모래로 된 거푸집 곧 모래 주형(sand mold)를 지칭한다. 미국에서는, 이린이가 안전하게 안에서 노는 모래터, 모래밭을 말하는데 즉 모래 놀이통이다. 영국에서는 이를 sand-pit이라 한다.
미국의 가정집 뜰에서 어린이가 다치는 것을 방지하고 안전하고 재미있게 놀수 있게 만든 일종의 ‘모래 놀이통’(sandbox)에서 유래했다고 한다. 그래서 외부에서 받은 프로그램을 자바 가상머신(JVM:Java Virtual Machine)이라는 보호된 영역 안에 가둔 뒤 작동시키는 식으로 프로그램이 폭주하는 것을 사전에 대비하고 또 악성 바이러스 침투를 차단하는 것이다.
외부에서 파이을 보냈거나 또는 어떤 형태로든지간에 내부 시스템에 접촉을 하려는 어떤 시도가 있다면 순순히 시스템 안으로 들여보내지 않는다. 대신에 내부시스템과 유사하게 꾸며진 샌드박스로 유도해서 거기서 파일의 본색을 찾아보는 것이다.
다시 말해서 샌드박스란 미리 지정해둔 보호된 영역에서 각종 컴퓨터 프로그램을 구동해 볼 수 있는 공간이다. 중요한 정보를 담고 있는 기업의 기간시스템은 각종 보안(保安) 장비들로 복잡한 계층을 이뤄 보호하고 있다.
해킹 기술이 갈수록 진화하면서 이러한 보안 장벽을 다 뚫어버리기 일쑤이다. 시스템 공격 기법을 탐지하도록 만든 보안장비의 기능을 역으로 이용해서 일정시간 후에 악성 공격을 시작하도록 프로그래밍 한다든지 다양한 방식으로 호시탐탐 침투 기회를 노리게 된다.
샌드박스는 주요 시스템의 기능을 갖춘 것처럼 가상의 환경을 꾸며, 해커들이 악성 공격을 시도할 때 이 샌드박스에 숨겨둔 공격기능을 끄집어 내도록 유도한다.
어린아이들이 안심하고 마음껏 뛰어 놀도록 놀이터에 안전한 모래밭을 깔아주는 것과 같은 원리로, 해커들이 본 시스템인것처럼, 착각해 해킹활동을 펼쳤을 때 이를 탐지하고 퇴치해 본 시스템에 영향을 미치지 않도록 하는 일종의 안전창치라고 볼 수 있다.
흔히 백신(vaccine)으로 알려진 안티바이러스 혹은 침입 탐지(IDS, Infiltration Detecting Solution)나 침입방지(IPS, Infiltration Preventing Solution) 솔루션은 알려지지 않은 멀웨어를 탐지하기까지는 몇 일이 소요된다. 더욱이 몇몇 멀웨어는 영영 탐지되지 않기도 한다.
보통 기업들은 한시간에도 1~2회씩 멀웨어를 다운로드 하는 것으로 나타나 있다. 이 멀웨어는 알려지지 않은 취약점을 골라서 공격해오기도 하고 보안 솔루션이 잡아내기 힘든 신종 악성코드를 살포한다.
하물며 이러한 사이버 공격이 특정 대상을 목표로 삼아 각종 사회공학적 기법까지 가미해 끈질기게 공격해 온다면 도저히 누구도 당해낼 방법이 없다. 그래서 이와 같은 알려지지 않은 사이버 위협을 감지하고 사전에 색출(索出)하고자 ‘샌드박스’라는 기법을 활용하는 것으로 알려져 있다.
재언하지만 샌드박스는 모래를 넣은 주머니, 곧 모래주머니로 번역되는데, 사낭(沙囊)이다. 조류(鳥類)에서, 앞 뒤 두 부분으로 갈라진 위(胃)의 뒷부분이다. 근육이 많고 위벽(胃壁)은 강하고 두껍다.
조류는 이가 없기 때문에 삼킨 모래나 잔돌을 모래주머니에 채워서 먹은 것을 으깨어 부순다. 또 지렁이 등의 빈모류(貧毛類)나 곤충의 모이주머니에 이어지는 부분이다. 튼튼한 근벽(筋壁)을 가지며, 속에 들어 있는 모래알이나 키틴질(chitin質)의 이 등으로 식물(食物: 먹는 음식)을 으깨어 부순다.
악성코드가 첨부된 보고서를 받았을 경우에 PC가 내부망에 접속하기 전에 샌드박스에서 해당 보고서에 숨겨진 악성코드의 본색이 드러나도록 조치를 취하는 것이다. 샌드박스는 가상화된 환경으로 구성되어 있다. 내부 시스템과 동일한 환경이기도 하다.
해커가 심어 놓은 악성코드가 샌드박스 안으로 진입했을 때 내부 시스템을 파괴하거나 혹은 정보를 유출하거나 잠복하도록 설정된 해커의 명령을 수행하려는 시스템으로 착각하게 된다. 그리고 본색을 드러내게 되면 그때 보안 솔루션이 샌드박스 내에 있는 악성코드나 사이버 해법을 찾아내 없애버리는 것이다.
이 같은 샌드박스는 사회공학적 표적 공격에서 매우 효과적인 방어력을 발휘한다. 요즈음엔 해커도 아주 약아져서 이 같은 샌드박스를 우회하는 사이버 위협이 급증하고 있다는 것이 새로운 골칫거리로 대두되고 있다. 그래서 단순한 파일 기반의 샌드박스 솔루션을 구축했다면 악성코드는 이를 우회하거나 뛰어 넘어 샌드박스를 피해갈 수 있는 새로운 공격기법을 발휘하고 있다.
악성코드가 대상 시스템 내부로 숨어서 들어갔는데, 일단 내부 시스템처럼 보이기는 하지만 그 어떤 별다른 시스템의 움직임이 없다는 판단이 서면 여기는 실제 시스템이 아니고 그럴듯하게 위장한 샌드박스라고 판단해 악성공격을 하지 않도록 구성되어 있다.
단순 샌드박스는 이 정도의 단계에서 이 파일에는 별다른 악성공격이 숨어있지 않다고 판단해서 내부 시스템으로 해당 파일을 들여보내게 된다. 실제로 내부 시스템에 숨어 들어간 악성코드는 비로소 활발한 시스템 동작 과정을 인지하고서야 악성활동을 시작하는 방식이다.
더군다나 악성코드의 활동을 단순히 몇 분 동안 지연시키는 것만으로도 샌드박스를 우회할 수 있다. 대부분의 샌드박스는 다음 파일로 이동하기 위해 미리 정해진 몇 분 동안만 파일을 모니터링 한다.
이러하기 때문에 공격자는 단순히 몇 분 동안만 행위를 지연해 모니터링 프로세스가 완료된 후에야 비로소 샌드박스 솔루션을 우회할 수 있도록 하는 것이다.
오늘날 위협 동향에 있어 전통적인 샌드박스 솔루션은 지연공격 등과 같이 갈수록 지능적으로 정교해지고 있는 실정이다. 그래서 악성 공격이나 우회침투에 더 이상 대응하지 못하고 있다. 또 대항 하는 데에도 한계점에 와 있다.
지능화된 멀웨어는 언제 가상 환경이 실행 중인지를 판단하고, 그에 따라 그들의 악성행위를 멈춰 탐지를 피할 수 있는 방식으로 목하 점차 진화해 가고 있다. 2013년 6월25일에 우리 정부에 가해진 분산서비스거부(DDoS) 공격이 좋은 예가 되고 있다.
최근 진화하고 있는 지능형 악성코드는 누구나 쉽게 접할 수 있는 범용 가상화 제품 기반의 탐지기술을 다양한 방법으로 우회하고 있다. 악성코드 제작자가 파일 기반의 샌드박스에서 탐지를 우회하기 위해 사용하는 여러 가지 기법들을 이해하는 것은 보안 전문가들이 잠재되어 있는 지능형 지속위협(APT)에 대해 보다 잘 식별하고 대비할 수 있도록 도움을 줄 것이다.