-
샌드박스란
샌드박스는 외부로부터 받은 파일을 바로 실행하지 않고 보호된 영역에서 실행시켜 봄으로써 외부로부터 들어오는 파일과 프로그램이 내부 시스템에 악영향을 주는 것을 방지하는 기술입니다.
이는 외부로부터 유입되는 악성코드로부터 시스템 내 파일이나 프로세스를 보호하는 데 사용합니다. 샌드박스에서 실행되어 안전하다고 검증받은 파일이나 작업은 시스템 변경이 가능하지만, 허용하지 않은 경우에는 변경할 수 없습니다.
기술적으로 설명하면, 외부로부터 들어온 프로그램이나 실행 파일을 가상화 내부에서 시험적으로 동작시켜봄으로써 가상화 밖으로는 영향을 주지 않습니다. 한 마디로 가상화 기술을 악성행위나 악성코드 감지 시스템에 적용한, 보안 가상화의 일종입니다. 가상화를 통한 보안은 상당히 많은 영역에서 사용되고 있습니다.
정보유출 방지 시스템에서의 SBC(Server Based Computing), VDI(Virtual Desktop Infrastructure, 데스크톱 가상화) 등이 있으며, 그리고 네트워크를 가상화한 망분리가 있습니다. 그리고 악성코드 전파 방지를 위해 샌드박스, 차폐, 악성코드 분석, 소프트웨어 테스트 등이 있습니다.현재 샌드박스 기술은 보안 솔루션 뿐만 아니라 소프트웨어 테스트, 브라우저, 앱스토어 등 여러 분야에서 시스템 안전을 목적으로 활용되고 있습니다. 샌드박스 기술이 보안 분야에서 각광받게 된 것은 사이버 공격 기술의 발전으로 인한 기존 시그니처 기반의 탐지 솔루션의 한계 때문입니다.
시그니처 기반의 탐지 솔루션은 기존 바이러스나 악성코드들을 서버에 등록해놓고 유입되는 파일들을 일일리 대입해 검증하는 방식입니다. 악성코드의 빠른 진화와 공격 기술 발전으로, 변종 악성코드들이 하루가 다르게 발생하는 상황에서 시그니처 기반으로 한 보안 제품은 공격을 막는데 한계에 봉착하게 됩니다.
특히 특정 운영체제나 소프트웨어에서 발견된 취약점을 각 개발업체나 보안업체들이 패치하기 전에 공격에 악용하는, 일명 제로데이 공격(zero day attack)에는 속수무책일 수 밖에 없습니다. 또한 최근 공격자들은 기업 시스템이나 개인 PC에 몰래 침투한 뒤, 오랫동안 들키지 않고 기업 기밀이나 개인정보를 빼내는 경향이 많아졌습니다. 이를 APT(advanced persistent threat)라고 합니다. 이를 위해 공격자들은 기존 보안 시스템에 감지되지 않는 우회 기술들을 많이 개발해내고 있습니다. 이런 기존 감지 시스템의 한계를 극복하기 위해 보안업체들은 샌드박스 기술을 도입했습니다. 샌드박스의 역할은 유입되는 파일이나 프로그램을 곧바로 본 시스템에 들여보내는 것이 아니라 본 시스템과 유사하게 만들어진 일종의 대기실에서 해당 파일이나 프로그램을 실행시키는 것입니다.
이때 악성 프로그램이나 파일 속에 숨은 악성코드는 본래의 공격을 개시하는데 악성코드가 활동해 감염되고 침투되더라도 이 대기실만 감염되는 것입니다. 샌드박스 밖으로는 전파되지 못합니다. 각 보안업체들이 이런 샌드박스 기능이 담긴 보안 솔루션을 내놓으면서 보안 상황은 한결 좋아졌습니다. 하지만 보안 담당자들의 행복은 오래가지 않았습니다. IT 보안 공격과 방어는 창과 방패의 악순환처럼, 보안업체들이 뚫리지 않는 방패를 만들면 공격자는 이를 뚫는 창을 다시 만들어내고 이를 다시 막아내는 순환 프로세스를 반복하고 있습니다. 공격자들은 샌드박스 특유의 코드를 파악해 샌드박스를 감지해 실행을 하지 않거나 일정 시간동안 실행을 중지하는 등의 지능형 악성코드를 개발했습니다. 일정 기간 별다른 악성 행위가 없으면 본 시스템으로 이전시키는 샌드박스 기능의 특성을 이용한 것입니다. 샌드박스 방식의 보안 솔루션이 APT 공격의 주된 방패로 알려져 있지만 이렇게 우회 기술이나 회피 기술이 나왔으며, 근본적으로 샌드박스는 작업을 수행하는 데 시간이 오래 걸린다는 단점이 있습니다. 그래서 샌드박스 기능은 단독 보안 솔루션으로 사용하기보다는 시그니처 기반의 감지 솔루션, 평판 분석, 정적 분석, 웹 게이트웨이 등 여러 보안 제품과 통합, 연동을 통해 APT에 대응합니다