악성 ActiveX 개체 실행 방지

악성 ActiveX 개체 실행 방지
- SandboxIE와 MS Killbit의 활용


개요

온라인 상의 보안 위협은 점차 지능적이고 복잡하게 변화하고 있다. 이런 다양한 보안 위협 중 악성소프트웨어는 항상 이슈화되어 왔다. 악성소프트웨어는 ActiveX 형태로 사용자의 실수 또는 동의 없이 설치되는 것이 일반적이다. 이번 호에서는 인터넷을 사용하는 대부분의 사용자가 어떻게 하면 ActiveX를 통해 설치되는 악성소프트웨어를 효과적으로 통제하고 좀 더 안전하게 컴퓨터 보안을 향상시킬 수 있는 방법을 알아보도록 하겠다.

[사용되는 도구]
- SandboxIE v2.64
- ActiveX Compatibility Manager v1.00

1. SandBoxIE 소개
SandboxIE는 실행 가능한(읽기/쓰기) 가상의 환경 내에서 운영체제에 설치되어 있는 모든 응용프로그램, 시스템 파일, 레지스트리 등을 실행 할 수 있다. SandboxIE를 통해 실행된 임의의 프로그램들은 SandBoxIE내 생성된 가상의 드라이브에만 영향을 미치며 실제 하드디스크에는 데이터 쓰기가 제한되어 전혀 영향을 받지 않는다. [그림 2]는 SandboxIE에 대한 개념을 잘 보여준다.


[그림 1] 일반적인 프로그램 실행 시 데이터 흐름



[그림 2] SandboxIE 환경 내에서 프로그램 실행 시 데이터 흐름


예를 들어 여러분들이 SandboxIE를 통해 인터넷 서핑 중 사용자도 모르게 악성소프트웨어가 설치되었다고 하더라도 단지 SandboxIE의 가상 공간에만 데이터가 쓰여지기 때문에 실제 시스템에는 전혀 영향을 받지 않게 된다. 테스트를 위해 SandboxIE에서 메모장을 실행하여 문서를 작성한 후에 실제 시스템에서 확인해 보면 해당 문서가 생성되지 않음을 직접 확인해 볼 수 있다.
SandboxIE 환경에서 실행된 응용프로그램은 [그림 3]과 같이 제목 표시줄을 통해 구분’[#]’할 수 있으며, SandboxIE를 통해 가상 공간에 생성된 모든 데이터는 [그림 4]의 메뉴를 통해 확인할 수 있다.


[그림 3] SandboxIE 환경 내 실행된 Internet Explorer



[그림 4] SandboxIE 환경 내 가상 저장 공간 확인


2. Microsoft Kilbit을 이용한 ActiveX 개체 실행 방지(With SandboxIE)

위에서 소개한 SandboxIE v.2.64를 다음 사이트(http://www.sandboxie.com)에서 다운받아 설치 한 후 ActiveX 개체의 실행을 방지해 보도록 하자.
먼저 Microsoft Killbit에 대해 알아보자. Killbit은 Internet Explorer HTML 렌더링 엔진을 사용하여 ActiveX 개체가 로드 되는 것을 막는 보안 기능이다. Killbit은 레지스트리 설정을 통해 수행되며, 일단 Killbit을 설정하면 ActiveX 개체가 완전히 설치되었어도 실행되지 않는다.
MS Killbit을 설정하기 위해선 먼저 실행을 방지할 ActiveX 개체의 Class ID (CLSID, 클래스 식별자) 값을 알아야만 가능하다. 따라서 SandboxIE를 활용하여 의심되는 ActiveX 개체가 직접 시스템 설치되는 것을 막고 CLSID값을 확인할 것이다. CLSID(or GUID) 값을 확인하는 여러 가지 방법이 있지만 여기서는 SandboxIE에서 직접 확인하도록 할 것이다.
그럼 SandboxIE의 메뉴에서 [Function]?[Run Sandboxed]?[Internet Explorer]를 클릭하여 IE를 실행하자. 테스트를 위해 Adobe Flash Player 9 ActiveX를 예로 설명할 것이며 현재 시스템에는 설치되어 있지 않다.


[그림 5] SandboxIE 환경에서의 ActiveX 설치


설치를 완료한 후 SandboxIE 메뉴에서 [Function]?[Content of Sandbox]?[Explore Contents]를 선택한다. 일반적으로 설치된 ActiveX 개체는 “C:\WINDOWS\Downloaded Program Files” 에서 확인할 수 있다. 따라서 가상 공간에서의 해당 경로에 설치된 파일을 확인한 후 [그림 6]과 같이 CLSID(=GUID) 값을 확인 할 수 있다.


[그림 6] SandboxIE에서 ActiveX CLSID 확인


이제 CLSID값을 가지고 Killbit을 설정하여 보자. Killbit 설정은 매우 간단하다. Killbit이 설정될 레지스트리의 위치와 설정 순서는 아래와 같다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\CLSID

(1) 레지스트리 편집기 (regedit.exe) 실행
(2) 위 레지스트리 위치에서 실행 중지할 ActiveX 개체의 CLSID값을 키로 생성
(3) Compatibility Flags 를 생성하고 DWORD값을 0x00000400으로 설정



[그림 7] 실제 Registry에서의 Killbit 설정


아래 [그림 8]은 Killbit이 설정된 ActiveX 개체가 응용프로그램 실행 시 실제 호출되지 않는 것을 보여주고 있다.


[그림 8] IE에서 ActiveX 미 호출


[그림 9]은 ActiveX 개체의 Killbit을 간편하게 설정할 수 있는 자동화된 도구이다. 위 과정이 힘들다면 아래 도구를 이용해도 좋을 것이다. ActiveX Compatibility Manager v.1.00은 다음 사이트(http://www.nirsoft.net/utils/acm.html)에서 다운로드 받아 사용할 수 있다.


[그림9] ActiveX Compatibility Manager v.1.00


3. 요약
지금까지 SandboxIE라는 가상화 기술을 통해 실제 시스템에 ActiveX를 설치하지 않고 CLSID를 확인하여 kilbit을 설정하는 방법을 알아보았다. 만일 여러분들이 악성소프트웨어를 분석하거나 의심스러운 파일 또는 전자메일을 확인하고자 할 때에도 SandboxIE 기술을 이용하여 시스템에 영향을 미치지 않고 확인 할 수 있으며, ActiveX 실행 중지 기법(Killbit) 을 통해 좀 더 안전하게 컴퓨터를 사용할 수 있을 것이다.

4. 참고사이트
A. http://support.microsoft.com/kb/240797
B. http://www.sandboxie.com
C. http://www.nirsoft.net/utils/acm.html

[저자] 안랩코코넛 전략마케팅 / 기술기획 주임 유상준

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

+ Recent posts