본문 바로가기
  • AI (Artificial Intelligence)
Security/Issue

‘행위 분석 우회 기법’ 사용하는 악성코드까지 잡는다!

by 로샤스 2014. 3. 28.

많은 APT 대응 솔루션 벤더들이 신종 악성코드(unknown malware) 탐지를 위해 시그니처 리스(signature-less) 기술을 강조하고 있다. 이들 벤더들이 사용하고 있는 기술은 가상 머신(Virtual machine)이나 샌드박스(sandbox) 기반의 ‘행위 분석 기술’이다. 하지만 ‘샌드박스 기반의 행위 분석 기술’에 의존해서 신종 악성코드를 탐지하는 것은 더 이상 효과적이지 않을 것으로 예상된다. 최근 공격자들은 자동화된 행위 분석 시스템을 우회하기 위해 새로운 방식을 사용하는 악성코드 제작에 주력하고 있기 때문에 악성코드는 획기적으로 강력해지고 있다.

이 글에서는 샌드박스 기반의 행위 분석 기술의 한계가 무엇인지를 알아본다. 그리고 이를 대체할 수 있는 안랩 트러스와처(AhnLab TrusWatcher)의 새로운 기능을 소개한다.

진화하는 악성코드, 샌드박스 자동 분석 기술마저 우회하다 


2012년 11월 안랩 시큐리티 대응 센터 (ASEC, AhnLab Security E-response Center)에 흥미로운 악성코드 샘플이 탐지되었다. 이 샘플은 ‘한국 공군의 위상에 대한 평가와 진단’이라는 제목의 이메일 첨부 파일을 통해 유포되었다. 해당 문서 파일은 대한민국 공군의 비전, 항공우주군에 대한 사회의 인식 등 상세한 내용이 기술되어 있어 메일 수신자로 하여금 이 파일이 국방에 대한 중요 문서인 것처럼 인식하게 하고 있다. 이는 공격자가 타깃을 고려해 지능적으로 접근한 APT 공격에 이용되었음을 알 수 있는 대목이다.

또한 기술적인 면에서도 이 문서는 놀랍도록 정교하게 제작되었다. 파일의 악성 여부를 파악하기 어렵도록 아주 소량의 힙 스프레이(Heap Spray)만 발생시켜 힙 스프레이 탐지를 우회한 것이다. 또한 해당 소프트웨어의 최신 버전에서만 악성코드가 동작하도록 되어 있어 낮은 버전의 소프트웨어서는 동작조차 하지 않는다.

이 문서 파일을 해당 소프트웨어의 최신 버전에서 실행시키면 파일이 정상적으로 열리며 한국 공군의 관한 문서가 나타난다. 이때 어떠한 악성 행위도 발생하지 않으며 셸코드도 동작하지 않는다. 이처럼 악성 행위가 발생하지 않으므로, 대부분의 행위 기반 분석 기술을 이용하는 APT 솔루션은 이 파일을 정상 파일로 판단할 수 밖에 없다.

그러나 이 문서 파일은 분명 악성 행위를 한다. 과연 이 문서 파일의 비밀은 무엇인가?

이 파일이 악성 행위를 수행하기 위해서는 특정한 조건이 갖춰줘야 한다: 호기심을 느낀 사용자가 이 문서 파일을 연다. 사용자가 스크롤바를 아래로 이동하며 내용을 읽다가 두 번째 페이지의 ‘문제 제기’라는 문단에 도달하는 순간 ‘HncCtrl.exe’라는 이름의 악성 파일이 자동으로 생성되고 실행된다. 이 악성 파일이 실행되면 또 다른 악성 파일이 또 다시 생성되고 실행되는데, 이 파일이 PC에서 개인 정보를 수집해 이를 특정한 메일 주소로 전송한다. 즉, 공격자는 특정한 사용자의 행위(activity)가 있어야만 exploit이 발생되도록 이 악성 파일을 설계한 것이다. 이것이 문서 파일을 이용한 최신 APT 공격 유형의 하나로, 자동화된 샌드박스 분석 시스템을 우회하는 악성코드의 대표적인 사례이다.


샌드박스 기반의 행위 분석 기술(Behavior Analysis in Sandbox)의 한계

현재 많은 APT 대응 솔루션 업체들은 신종 악성코드(unknown malware) 탐지를 위해 악성코드 시그니처에 의존하지 않는 시그니처 리스(signature-less) 기술의 필요성을 강조하고 있다. 특히 일부 벤더들은 ‘행위 기반 분석’ 기술이 마치 ‘신종 악성코드’를 탐지할 수 있는 유일한 ‘시그니처 리스’ 기술인 것처럼 주장하고 있다. 그렇다면 과연 이러한 ‘샌드박스 기반의 행위 분석 기술’을 이용한 솔루션만으로 나날이 고도화되는 악성코드를 탐지하기에 충분할까? 

이 질문에 대한 대답은 ‘그렇지 않다’이다. ‘샌드박스 기반의 행위 분석 기술’을 이용한 APT 대응 솔루션의 최신 악성코드 탐지의 한계에 대해 살펴보자.

‘샌드박스 기반의 행위 분석 기술’은 분석 대상을 샌드박스라는 제한된 환경에서 실행시켜서 행위 결과로 악성/정상 여부를 판단하는 기술이다. 따라서 이 기술을 이용하고 있는 APT 대응 솔루션이 제 기능을 수행하기 위해서는 악성코드가 반드시 행위를 해야만 한다. 즉, 악성코드가 샌드박스 분석 환경에서 항상 의도하고 있는 행위를 그대로 유발해야만 이를 탐지할 수 있다. 그러나 앞서 언급한 바와 같이 최근에는 행위가 발생하지 않는 문서 파일을 이용한 공격 방식이 증가하면서 자동화된 샌드박스 분석 시스템을 우회하기 시작했다.


샌드박스 기반의 행위 분석 시스템을 우회하는 최신 악성코드의 대표적인 3가지 유형은 다음과 같다.

1. ‘컴퓨터 이용자의 특정 행위(interaction)’을 감지해서 악성 행위를 발생시키는 악성코드

예를 들어, 사용자가 악성 PDF 파일을 단순히 열기만 해서는 악성 행위(behavior)가 발생하지 않았다. 사용자가 특정 페이지로 스크롤해야만 악성 행위가 발생했다.

또 다른 사례는 PC가 악성코드에 감염된 상태에서, 악성코드는 사용자가 ‘마우스를 클릭(click)’하거나 특정 방향으로 이동하는 등 입력장치의 변화를 감지했을 때 비로소 악성 행위를 했다. 흥미롭게도 이때 악성코드에 감염되었다고 경고하는 팝업창이 나타나는데 팝업창의 확인(OK) 버튼을 클릭할 경우에만 악성 행위가 나타난다.

이러한 악성코드는 사용자가 특정 행위(activity)를 하지 전까지는 ‘의심 행위(behavior)가 없는 악성코드’이기 때문에 ‘샌드박스 기반의 행위 분석 기술’을 사용하고 있는 APT 대응 솔루션에서는 이를 탐지하기가 어렵다.


2. 자동화된 샌드박스 분석 시스템에서 제어하기 어려운 ‘시간의 제약’을 이용하는 악성코드

대부분의 APT 대응 솔루션은 자동화된 행위 분석을 위해 가상머신(virtual machine)이나 샌드박스(Sandbox)를 사용한다. 그러나 가상머신이나 샌드박스를 구동하기 위해 하드웨어의 제한된 리소스를 사용하기 때문에 샘플의 행위가 종료될 때까지 ‘해당 샘플 1개에 대한 동적 분석 시간’을 무한하게 사용할 수 없다. 악성코드 제작자들은 이런 점을 노리고 특정 시간에 악성 행위를 실행하는 스케줄링(scheduling) 기법을 이용한다. 이러한 기법을 이용하는 악성코드를 시한폭탄 악성코드(time-bomb malware) 또는 트로잔 냅(Trojan nap)이라고 부른다. 일부 APT 대응 솔루션에서는 시한폭탄(time-bomb) 기법에 이용되는 슬립(sleep) API와 같은 특정 API를 사용하면 무조건 악성코드라고 탐지한다. 그러나 해당 API는 정상적인 프로그램에서도 사용될 수 있기 때문에 이와 같이 판단할 경우 오탐이 늘어나는 문제가 발생할 수 있다.

3. 가상머신 또는 샌드박스를 인식해서 악의적인 행위를 숨기는 지능적인 악성코드

공격자가 이러한 유형의 악성코드를 제작하는 이유는 APT 대응 솔루션의 탐지 및 분석을 회피하기 위해서뿐만 아니라 악성코드 분석가들에 의한 동적 분석에서도 가상머신이나 샌드박스가 사용되기 때문이다. 일부 APT 대응 솔루션은 실행 중인 프로세스, 레지스트리 키 또는 레지스트리 값, 가상 하드웨어 등 가상머신이나 샌드박스 내의 다양한 변화를 파악하는 시도 자체를 탐지한다. 그러나 반대로 악성코드는 이러한 탐지가 있을 때는 이를 인지하고 ‘악성 행위’를 발생시키지 않는 방식으로 진화하고 있다.


안랩 트러스와처, 메모리 분석 기반의 익스플로이트 탐지 기술 탑재

안랩 트러스와처는 이처럼 행위 분석 기술을 우회하는 악성코드를 탐지하기 위해 새로운 분석 기술을 적용했다. 바로 동적 콘텐트 분석(Dynamic Intelligent Content Analysis) 기술이다. 이 기술은 메모리(memory) 영역에서 어셈블리 코드(assembly code) 기반의 분석을 수행하는 기술로, 안랩의 연구진이 개발한 독자적인(exclusive) 기술이다. 이 기술을 이용해 애플리케이션의 취약점 공격 단계(exploitation phase)에서 악성코드 여부를 탐지할 수 있으며, 새로운 제로데이(zero-day) 취약점을 이용하는 악성코드도 탐지할 수 있다. 





[그림 1] 동적 콘텐트 분석 기술의 개념 


안랩 트러스와처의 동적 콘텐트 분석 기술의 기본적인 개념은 [그림 1]과 같다. 특정 애플리케이션의 취약점을 공격하는 악성코드가 정상적으로 취약점을 익스플로이트(exploit)하여 악성 행위를 한다고 가정해 보자. 이 악성코드가 최종적으로 악성 행위가 발생하기까지의 과정은 ‘악성코드 자체의 실행 전단계(pre-exploitation phase)’와 ‘악성코드 실행 시점(exploitation phase)’으로 세분화된다. 이 악성코드가 실행 전단계에서 정상적으로 동작하지 않거나 악성코드 실행 시점에서 가상머신이나 샌드박스 환경을 인식해서 악성 행위를 하지 않는다면 ‘행위 기반 분석‘ 기술은 무용지물이 된다.

악성 행위의 발생 여부와 관계없이 악성코드 실행 전단계 또는 악성코드 실행 단계에서도 악성코드를 탐지할 수 있는 방법이 필요하다. 이 같은 행위 기반 분석 기술의 한계를 극복하고 익스플로이트가 일어나기 전단계에서 악성코드를 탐지하기 위해 개발된 것이 바로 안랩 트러스와처의 동적 콘텐트 분석(Dynamic Intelligent Content Analysis) 기술이다. 


안랩 트러스와처의 동적 콘텐트 분석 기술의 동작 방식



[그림 2] Dynamic Intelligent Content Analysis 동작 원리


[그림 2]는 메모리 구조를 간단히 도식화한 것이다. 예를 들어 버퍼오버플로우(buffer overflow) 공격에 취약한 마이크로소프트사의 워드 파일이 존재한다고 가정하자. [그림 2]의 좌측 도식은 정상적인 MS 워드 파일을 실행했을 때이다. 정상 워드 파일을 클릭하면 메모리 상에는 메인 프로그램인 winword.exe이란 파일과 관련된 동적 라이브러리 파일들이 메모리상에 로드된다. 만약 정상 프로그램이라면DLL #3까지 처리되면 정상적으로 워드 파일이 열리게 된다.

이제 취약한 워드 파일을 공격하는 익스플로이트(exploit)가 실행되는 경우를 살펴보자. 처음에는 정상적인 경우와 마찬가지로 프로그램이 진행되지만 어느 순간에 동적으로 데이터를 저장하는 힙(heap)이라는 영역에 셸코드를 저장을 해 놓는다. 그 후 버퍼오버플로우가 발생되는 익스플로이트 순간에 정상적인 경우라면 DLL #3으로 이동해야 할 EIP가 비정상적으로 셸코드가 있는 영역으로 점프(jump)하게 된다. 이후에 셸코드에 코딩된 악성 행위와 결과가 발생하게 되는 것이다.




동적 콘텐트 분석 기술을 탑재한 안랩 트러스와처가 도입된 경우라면 이러한 악성코드를 다음과 같이 악성코드를 탐지한다. 

안랩 트러스와처가 분석해야 하는 대상 프로그램이 메모리상에 로드되는 시점에 ‘디버깅 쓰레드’를 바로 삽입해서 비정상적인 메모리 영역으로의 이동/점프를 탐지한다. 동적 콘텐트 분석 기술은 일반적인 버퍼오버플로우는 물론 SHE(Structured Exception Handing), RTL(Return-to-Lib), ROP(Return-Oriented Programing), 힙스프레이(Heap spray) 등과 같은 악성코드가 이용하는 다양한 취약점을 공격(exploitation)하는 단계에서 악성코드를 탐지한다. 즉, 안랩 트러스와처의 동적 콘텐트 분석 기술은 악성코드에 의한 ‘악성 행위의 종류 및 발생 여부’와 관계 없이 악성코드를 탐지할 수 있다. 


APT를 사전에 차단하자

안랩 트러스와처의 동적 콘텐트 분석 기술은 안랩 연구진이 개발한 수십여 개의 알고리즘을 바탕으로 완성된 독자적인 기술이다. 대표적으로 악성 비실행형 파일이 익스플로이트을 일으키기 전 단계에서는 힙스프레이(Heap Spray)를 통해 셸코드를 저장하는 방법, 스택 오버플로우(Stack Overflow)를 통해 셸코드를 저장하는 방법, 악성 스크립트를 포함하여 메모리 영역에 셸코드를 저장하는 방법 등이 있다.

특히 안랩 트러스와처는 애플리케이션 취약점을 공격하는 악성 파일 내의 셸코드의 정확한 메모리 시작 지점을 판단해서 가시적으로 쉘코드 메모리 덤프 및 해당 어셈블리 코드를 보여준다. 메모리 분석을 통해 셸코드를 감지한 후 셸코드의 시작 주소를 정확하게 제공하는 것은 안랩 트러스와처만이 가능한 차별적이며 가장 뛰어난 기술이다.

지금까지 설명한 안랩 트러스와처의 동적 콘텐트 분석 기술은 그 자체로는 악성코드 분석가나 보안 연구진에게는 획기적인 새로운 개념은 아니다. 그러나 이러한 기술이 자동화된 분석 시스템에 탑재되어 대량의 파일을 분석할 수 있다는 점에서 악성코드 분석과 고도화된 악성코드를 이용한 APT 공격의 사전 차단을 위한 새로운 장을 열었다고 평가할 수 있다.

안랩 트러스와처는 이 기술을 탑재함으로써 환경, 동작 실행 조건 등 잠재적인 요소에도 영향을 받지 않고 악성코드를 진단할 수 있어 APT 공격 사전 차단에 더욱 강력한 힘을 발휘할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : http://v3.kcu.or.kr/secu_info_view.asp?list=/secu_info_list.asp&seq=22232&pageno=1&v_num=1664

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Security > Issue' 카테고리의 다른 글

VPN 보안 프로토콜 설명: PPTP 이해하기  (0) 2019.08.13
Absolute IPS NP Serise  (1) 2015.02.03
카스퍼스키랩, 가상화 보안솔루션 출시  (0) 2014.04.16
Security 용어정리 01  (0) 2014.02.27
DPI (Deep Packet Inspection)  (0) 2014.02.05

댓글