SandBox를 사용한 안전한 인터넷 서핑

인터넷을 이용하는 인구가 증가함에 따라 Web을 이용한 서비스가 발달하게 되었고, 이와 함께 Web을 이용한 공격 역시 빠른 속도로 증가를 하였습니다. 이제 악의적인 해킹 시도 중에 Web을 이용한 공격이 주를 이루고 있다고 해도 과언이 아닐 지경에 이르게 되었습니다.

[그림 1] 2005~2006년 바이러스/Trojan 감염 추이


이렇게 나날이 증가하는 위협 속에서 보다 안전하게 인터넷을 사용하기 위해 Anti-Virus 솔루션 및 악성코드 치료 프로그램 등을 사용함에도 불구하고 바이러스, AD-Ware, Worm과 같은 악성코드로 인해 고생을 한 경험이 누구나 한 번쯤은 있으리라 생각됩니다.
이렇게 날로 증가하는 위협에서 벗어나 마음 편하게 인터넷을 즐기기 위한 SandBox라는 도구를 소개하고자 합니다.

SandBox란?
아이들이 안전한 모래밭에서 놀 수 있도록 한 것에서 유래된 SandBox는 안전한 컴퓨터 환경을 제공하기 위한 도구로 외부에서 받은 프로그램을 보호된 영역에서 실행시키는 것을 가리킵니다. 사용자의 실수로 악의적인 목적을 가진 코드를 실행시켰을지라도 SandBox 환경을 초기화 하는 것만으로 원래 시스템에는 아무런 영향을 주지 않도록 하여 보다 안전한 시스템을 유지할 수 있도록 만들어 주는 프로그램입니다.


[그림 2] 일반적인 시스템의 동작 환경


일반적인 시스템에서의 각종 프로그램은 동작 시 직접적으로 하드디스크의 내용을 읽고/쓰는 작업을 수행하게 됩니다.


[그림 3] SandBox를 설치한 시스템의 동작 환경


SandBox가 설치된 시스템에서 SandBox는 중간에서 하드디스크의 내용을 읽어 실행을 하지만 기록은 하드디스크가 아닌 SandBox 가상의 공간에 하여 사용자의 환경을 보호하는 일을 하게됩니다. (단, 중요한 작업이나 문서의 편집을 SandBox의 환경에서 할 경우 실제 하드디스크에 기록이 되지 않아 낭패를 볼 수 있으니 작업 시 주의가 필요합니다.)

SandBox 프로그램 구하기
여러 종류의 SandBox가 있으나 무료로 배포를 하고 있는 SandBoxIE라는 프로그램을 소개합니다.

SandBoxIE 다운 받는 곳 : http://www.sandboxie.com/

SandBoxIE 사용하기
위 URL에서 다운받은 SandBox를 설치하고 나면 시스템 트레이에 아래 그림과 같은 노란색 마름모 모양의 아이콘이 나타나는 것을 볼 수 있습니다.


[그림 4] SandBoxIE 설치 후 트레이의 SandBoxIE 아이콘


아이콘 위에서 마우스 오른쪽을 클릭하면 아래와 같은 메뉴가 나타나는데


[그림 5] SandBoxIE 메뉴 화면


메뉴를 선택하면 다음과 같은 컨트롤 박스가 나타납니다.


[그림 6] SandBoxIE Control 창


윈도우 작업관리자와 흡사한 구조로 SandBox내에서 동작하는 프로그램을 관리할 수 있도록 되어있으며 SandBox에서 원하는 프로그램은 아래의 화면을 통해서 구동 시킬 수 있습니다.


[그림 7] SandBoxIE 메뉴 창


간단한 예로 메모장을 실행시켜보겠습니다.


[그림 8] SandBox 프로그램 실행 화면


[Run Sandboxed]-[Any Program]-Notepad.exe 를 실행하였습니다.


[그림 9] SandBox를 이용하여 메모장 실행


[그림 10] 정상적인 메모장 실행


위의 그림에서 알 수 있듯이 SandBox에서 실행한 메모장에는
[#] 표시가 되어있는 것을 확인할 수 있습니다.
[#] 표시가 SandBox의 보호모드에서 동작하고 있다는 것을 나타내는 표시입니다

그렇다면 이제부터 SandBox를 사용하여 문서를 [편집]-[저장]하여 그 결과를 확인하고 실제 물리적인 Disk에 저장하는 방법을 살펴보도록 하겠습니다.

먼저 편집을 하고자 하는 문서를 열어봅니다. 필자는 응용프로그램의 Readme.txt를 편집해보았습니다.

[그림 11] SandBox를 사용하여 문서 열기


[그림 10]에서 열어놓은 문서를 아래와 같이 「연습용 TEST.......」라는 구문을 반복하여 입력하고 그 내용을 저장을 해보았습니다.


[그림 12] SandBox에서 불러온 문서의 편집 후 저장


아무런 오류메시지 없이 저장이 되었다. 그렇다면 실제 문서가 변경되었는지 확인하기 위해 탐색기에서 기존의 문서를 다시 열어보았습니다. 아래의 [그림 12]처럼 조금 전에 저장했던 결과는 사라지고 원래의 원본 파일이 다시 열림을 확인 할 수 있습니다.


[그림 13] 일반 탐색기에서 저장된 파일 불러오기 결과


이로써 SandBox를 이용한 프로그램의 작업은 실제 시스템에 영향을 주지 않는 다는 것을 단순한 실험을 통해 재차 확인을 할 수 있었습니다.

그렇다면 변경된 내용 중 실제 물리적인 Disk에 반영할 수 있는 방법은 없을까?


[그림 14] SandBox에서 변경된 파일의 적용


일단은 대답은 “가능하다” 입니다. 다만 그 절차가 다소 번거롭다는 것입니다. 위의 그림에서 보는 것처럼 [Contents of Sandbox]-[Recover Files]를 클릭하면 아래와 같은 박스가 나타나는데 그 박스에는 변경된 파일의 목록이 나타납니다.


[그림 15] 변경된 자료를 물리적인 Disk로 저장


[Recover to Same Folder] 의 경우 선택된 파일/디렉토리를 물리적인 DISK에 반영
[Recover to Any Folder]의 경우는 변경된 모든 파일/디렉토리의 내용을 물리적인 DISK에 반영


[그림 16] 변경된 내용의 실제 적용 확인


[Recover to Same Folder]를 이용하여 readme.txt의 변경 내용을 물리적인 DISK에 적용시키자 파일에 대한 내용을 변경한다는 메시지가 나오는 것을 확인 할 수 있었으며 승인을 하자 아래의 그림처럼 실제 물리적인 DISK의 내용이 변경되었음을 확인 할 수 있었습니다.


[그림 17] 변경 내용의 저장 확인


그렇다면 반대로 여러 작업으로 인해 SandBox 가상 시스템이 오염되었을 경우 시스템에 반영을 하지 않기 위해서는 어떻게 하는지 알아보도록 하겠습니다.


[그림 18] SandBox 프로세스 종료


일단 SandBox는 시스템에 영향을 주지 않는 동작을 하기 위해 만들어진 프로그램이기에 Sandbox에서 동작한 프로그램은 SandBox를 종료하면 간단하게 해결이 되며 그 방법은 위 [그림 18]과 같이 SandBox 프로세스를 종료시키는 메뉴를 활용하거나 SandBox로 동작중인 프로그램을 종료시키면 간단하게 해결을 할 수 있습니다.
SandBox가 갖는 가장 큰 매력인 데이터의 의도하지 않은 변경을 제한할 수 있다는 것을 살펴보았습니다.
사용자의 정보를 지키고 악성코드나 바이러스에 대한 피해를 줄이기 위해서는 Anti-Virus 솔루션의 사용과 보안패치가 가장 중요합니다. 그러나 최근 Web 공격을 통한 일반 사용자의 개인정보를 탈취하려는 시도와 Zero-Day 공격이 큰 위협으로 대두되고 있는 요즘, SandBox와 같은 도구를 사용한다면 시스템 내에서 사용자의 동의 없이 설치되는 악성 프로그램으로부터 어느 정도는 안심할 수 있는 사용환경을 만들 수 있으리라 생각합니다.

Notice : Internet Explorer 7.0의 경우 보안 설정으로 인하여 SandBox의 일부 기능이 정상 동작하지 않을 수 있습니다.

[참고 URL 및 문헌]
http://www.sandboxie.com/
Trend Micro 악성 코드 활동 통계 자료

[저자] 안랩코코넛 CERT센터 홍민성(ebrain@coconut.co.kr)

[출처] 안랩코코넛 SECU-LETTER 2007년 1월호
 출처 : 안랩코코넛 SECU-LETTER [2007/01/15]

+ Recent posts