보안 이슈

AhnLab 보안 전문가의 심층분석! 보안 이슈 정보를 전해드립니다.

[Threat Analysis] 'GongDa'의 무차별 웹 공격이 시작됐다

  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.

  • AhnLab
  • 2012-05-08

 최근 국내 사이트를 통해 악성코드에 감염되는 사례들 가운데 중국에서 제작된 것으로 추정되는 웹 익스플로잇 툴킷(일명 공다팩, Gongda Pack)의 흔적들이 발견되고 있다. 해당 툴킷의 가장 큰 특징은 ‘Dadong’이라는 독특한 스크립트 난독화 방식을 사용한다는 점이다. 특히, 이 툴킷에는 가장 최신의 MS 제품 관련 취약점뿐만 아니라 상대적으로 보안 업데이트에 소홀할 수 있는 서드파티 애플리케이션 취약점에 대한 공격 코드가 포함되어 있어 그 피해 규모가 더욱 클 것으로 예상된다. 따라서, 사용자 및 보안 담당자들의 각별한 주의가 필요하다.


 

공다팩(GongDa Pack)

 

일반적으로 웹 익스플로잇 툴킷들은 내부적으로 사용되는 특징적인 도메인이나 변수들의 이름을 따서 명명된다. 공다팩(gongda pack)도 툴킷 내부 공격 코드에서 중국어로 ‘공격’을 의미하는 ‘공다(gong da)’라는 변수명 ‘gondad’가 상당 부분 사용되는 점을 특징으로 이름이 지어졌다.

 

 

스크립트 구조


공다팩 스크립트의 일반적인 구조를 요약하면 다음과 같고, 아래 스크립트를 참고하여 세부 내용을 확인할 수 있다.

 

1. 상단에 플래시 플레이어 관련 함수들이 있는 swfobject.js와 자바 실행 관련 jpg.js 스크립트가 삽입되어 있다.
2. 쿠키로부터 dadong, bot, spider, linux 등이 있는지 확인하여 해당 문자열이 쿠키에 없는 경우 쿠키 값 ‘dadong=Yes’를 설정한다.
3. 사용자 시스템의 브라우저 종류 및 취약점이 있는 애플리케이션의 버전에 따라 공격 코드가 달라진다.
4. 외부 사이트에 페이지 접속 로그를 남긴다.

 

그리고 다양한 취약점 공격이 가능하도록 새로운 스크립트가 추가되기도 한다. 기본 스크립트 구조에서 IE 브라우저를 사용하는지를 확인한다. 이 외에 추가되는 부분은 취약점이 존재하는 애플리케이션의 세부 버전까지 확인하여 여러 공격이 가능하도록 한다. 우선, 조건부의 다양한 취약점 스크립트 삽입 구조를 살펴보자.

 

[그림 1] 일반적인 공다팩 스크립트 구조(index.html)

 

기본 스크립트 구조 외에 다음과 같은 스크립트가 추가적으로 포함되는 경우가 있다.

 

[그림 2] 공다팩 조건부 다양한 취약점 삽입 구조(index.html)

 

위의 코드를 간단히 도식화하면 [그림 3]과 같다. 플래시 플레이어 버전이 10.3.183보다 작으면 f2.html(2011.05.13에 발표된 CVE-2011-2140 플래시 MP4 취약점)이 삽입된다. 그리고 플래시 플레이어 버전이 10.3.183.15, 11.1.102.62보다 작은 경우 ff.html(2012.01.18에 나온 CVE-2012-0754 플래시 MP4 취약점)이 삽입된다.
 


[그림 3] 공다팩 취약점 삽입 구조의 도식화

 

 

스크립트 상세

 

# swfobject.js


정상적인 SWFObject 자바 스크립트는 내장된 플래시 콘텐츠를 사용하기 위한 것으로 주 웹 브라우저가 사용하는 플래시 플러그인(Plugin)을 감지한다. 공다팩에서 이용하는 swfobject.js 파일은 정상인 것처럼 보이나 플래시 플레이어 취약점 버전을 세부적으로 확인하기 위해 커스터마이징 되었다.


플래시 플레이어 버전을 체크하기 위해 ‘deconcept.SWFObjectUtil.getPlayerVersion’과 같은 함수를 이용한다. 이 때 major,minor,rev 외에 gondad라는 변수를 정의하여 4번째 버전 값도 확인한다.

 

 
[그림 4] swfobject.js 일부

 

 

#jpg.js


정상적인 deployJava.js는 JRE 자동 설치 및 애플릿 배치(applet deploy)를 위한 것이다. JRE 자동 설치는 인터넷 익스플로러와 파이어폭스 브라우저에서만 가능하다. 이 외의 다른 브라우저는 JRE 다운로드 페이지로 리다이렉트된다. 공다팩 스크립트 기본 구조에서 IE를 사용하는지 여부를 점검하는 것도 이와 관련이 있는 것으로 보인다.


정상적인 deployjava가 JRE 7 이상 버전을 확인하는 것과 달리, 공다팩에서 이용하는 jpg.js 파일은 취약점이 있는 자바 1.6.0.18 버전을 기준으로 확인한다는 점 이외에 특이사항은 없다.

 


[그림 5] jpg.js 일부


 

# ff.html : 플래시 MP4 취약점, CVE-2012-0754

[그림 6]은 플래시 MP4 취약점과 관련하여 하단에 Gendad.swf가 삽입되며, 이 플래시 파일은 ee.jpg MP4 파일을 재생하여 취약점을 발생시킨다.

 


[그림 6] ff.html 일부

 


[그림 7] Gondad.swf 파일 내용 일부

 

 

# f2.html : 플래시 MP4 취약점, CVE-2011-2140

[그림 8]은 플래시 MP4 취약점으로 하단에 bb.swf 파일이 삽입되는데, 이 플래시 파일은 ea.jpg MP4 파일을 재생하여 취약점을 발생시킨다.
 


[그림 8] f2.html 일부

 

[그림 9] bb.swf 파일 내용 일부

 

 

# i.html : 윈도우 미디어 취약점, CVE-2012-0003


윈도우 미디어 취약점으로, exp.mid 파일이 로드되어 취약점이 발생한다.

 


[그림 10] i.html 일부

 

 

주요 취약점


공다팩을 비롯한 웹 익스플로잇 툴킷들은 패치가 되지 않은 제로데이 취약점을 비롯하여 패치되었으나 상대적으로 보안 업데이트가 잘 이루어지지 않은 가장 최신 취약점을 빠르게 반영한다. 최근 공다팩에서 이용하고 있는 주요 취약점들은 [표 1]과 같다.

 

[표 1] 최근 공다팩에서 이용하고 있는 주요 취약점

 

 

난독화


2010년부터 현재까지 취약점을 이용한 공격 사례 가운데 ‘Dadong’ 스크립트를 사용하는 경우가 빈번하게 발견되고 있다. 최신 버전은 Dadong 0.41 버전으로 공다팩에서도 /*Encrypt By 도메인's JSXX 0.41 VIP*/이라는 주석을 통하여 난독화되어 있는 것을 확인할 수 있다.


아래 코드는 index.html에서 난독화되어 있는 부분이다. 난독화되어 있기 때문에 어떤 취약점인지 한눈에 파악할 수 없는 어려움이 있다.

 


[그림 11] 공다팩 Dadong 난독화 해제 전 코드(index.html)

 

난독화를 해제하면 아래와 같은 코드가 나오고, 대다수 변수 이름이 ‘gondad’로 이루어져 있는 것을 볼 수 있다. 난독화가 해제된 코드는 Gondad.jpg(실제 jar 파일)라는 악성 자바 애플릿이 실행된다. 이를 통해 .exe 악성코드가 사용자 시스템에 다운로드된다.

 


[그림 12] 공다팩 Dadong 난독화 해제 후 코드(index.html)

 

유포되는 주요 악성코드
- 정상 소프트웨어 위장
  - ws2help.dll 파일 변조
  - AV 프로세스 KILL
  - 게임 사용자의 정보 탈취(온라인 게임핵)

 

최근 국내에서 발견되는 주요 악성코드는 위와 같은 주요 악성 행위들을 수행하며, 외국 사례에서는 커널 루트킷 배포도 보고되고 있다. 

취약점을 통해 다운로드되는 악성코드 gondad.exe의 등록정보를 보면 정상 소프트웨어를 위장하고 있는 것을 확인할 수 있다. 정상 소프트웨어의 등록정보를 보면 파일 버전/설명/저작권 등 상세 정보가 실제와 다른 것을 알 수 있다.

 

 
[그림 13] 악성코드 gondad.exe의 등록 정보(좌) / 정상 소프트웨어 등록 정보(우)

 

gondad.exe는 시그니처 기반 파일 탐지를 회피하기 위해 UPX로 패킹되어 있고, %windir%\wxp2.temp라는 파일을 생성하여 %windir%\system32\ws2.help.dll로 변경하려 한다. 이 과정에서 실패하면 정상 ws2help.dll을 ws2help.dll.[랜덤].tmp로 변경하고 ws2help.dll 악성 파일을 새로 생성한다.

 

 

또한 다음과 같이 국내 백신 프로세스를 확인하여 KILL하는 기능이 있다.

 

push gondad.004060A0          ; /Arg1 = 004060A0 ASCII "V3LSvc.exe"
call gondad.004018C0          ; \gondad.004018C0
push gondad .00406078          ; /Arg1 = 00406078 ASCII "AYAgent.aye"
call gondad.004018C0          ; \gondad.004018C0

 

마지막으로, [그림 14]와 같은 문자열이 들어있는 악성 파일에 온라인 게임과 관련된 계정을 탈취하는 기능이 포함되어 있음을 확인할 수 있다.

 

 
[그림 14] 악성코드 내 문자열 일부

 

 

웹 트래픽


공다팩과 관련해 대표적인 웹 트래픽의 특징은 다음 URL 특징과 쿠키 정보에서 살펴볼 수 있다.

 

# URL 특징


다음은 공다팩 관련 URL 요청에 대한 페이지 정보, 설명, 변경 상황에 관해 정리한 내용이다. 내부적으로 사용되는 일부 라이브러리 파일과 페이지 접근 정보 관련 정보들은 대부분 고정적(Static)이나 취약점과 관련된 페이지 정보는 유동적(Dynamic)으로 변경될 수 있다.

 

[표 2] 공다팩 관련 URL 요청에 대한 정보 변경 상황

 

 

# 쿠키 정보


index.html 파일에 아래와 같이 dadong=Yes; 라고 쿠키를 설정하는 부분이 있다.

 


[그림 15] index.html 파일의 쿠키 검사/설정 스크립트 부분


위 코드가 실행되고 나면 웹 트래픽에서는 [그림 16]과 같이 쿠키 값이 설정된다.
 


[그림 16] 실제 요청 헤더의 쿠키 정보


 

공다팩 추적


공다팩으로 인한 침해 흔적을 추적하는 방법은 서버, 사용자 시스템 혹은 어떤 관점에서 추적하는지에 따라 다양하다. 예를 들어 사이트 운영자라면 서버가 침해당했는지 확인하기 위해, [웹 트래픽]의 URL 특징에서 URI 정보를 기준으로 웹 서버의 홈페이지 파일을 저장하고 있는 디렉터리에서 해당 파일이 존재하는지 확인해 볼 수 있을 것이다. [네트워크상에서 탐지 및 보안 대책]에서와 같이 네트워크 보안 시그니처가 있다면 네트워크 보안 장비에서 조사해 볼 수도 있을 것이다.


이때, 공다팩을 포함한 웹 익스플로잇 툴킷과 같이 웹 침해 사고를 조사할 때는 브라우저가 제공하는 [표 3]의 정보들은 침해 흔적을 추적하는 데 도움이 된다.

 

히스토리와 캐시 데이터를 참고하여 [웹 트래픽]에서 특징적으로 나타나는 URL 정보가 존재하는지 검사할 수 있다. 또한 [스크립트 구조]에서 특징적으로 나타나는 악성 스크립트 패턴들을 임시 저장된 Cache 파일에서 키워드 검색을 통해 추적해 볼 수 있다. 의심 요소가 발견되면 데이터 시간 정보를 참고하여 TimeLine 분석을 수행할 수 있다.

 

[표 3] 브라우저가 제공하는 캐시, 쿠키, 히스토리 정보

 

각 브라우저가 제공해주는 캐시, 쿠키, 히스토리에는 index.dat 파일이 존재한다. index.dat는 인터넷 웹 브라우저가 사용하는 데이터베이스 파일이며, 이를 자동으로 분석해주는 도구(index.dat Analyzer)들을 이용하여 좀더 쉽게 분석할 수 있다. 단, 이러한 분석 도구는 파일의 내용을 검색할 수 없다는 한계가 있으므로 URL 요청에 한해서 참고할 수 있다.

 


[그림 17] 브라우저 정보(index.dat)를 자동으로 분석해주는 도구의 예

 

 

침해 사례


최근 발견된 공다팩 관련 침해 사례를 통해 크게 두 가지로 나누어 생각해 볼 수 있다.


첫째는 공격자가 상대적으로 보안이 허술한 광고 서버를 해킹하여 공격 코드를 업로드하는 사례이다. 이렇게 삽입된 공격 코드(Exploit)들은 뉴스 사이트에 접속하는 사용자 브라우저를 통해 광고 페이지와 함께 로딩된다. 공격이 성공하면 사용자는 공격자의 서버로부터 악성 실행 파일을 다운로드하고 이 파일이 실행되면 2차 악성코드에 감염된다.
둘째는 한 공격자가 다수의 악성 도메인을 운영하는 예이다. 경유지 서버 및 공격에 이용되는 공격자 서버가 의심스러운 한 사람의 정보로 등록되어 있는 경우가 있다. 또한 단일 IP에 대해 다수의 도메인이 등록되어 있기도 했다. 이 때, 도메인 차단 정책보다는 IP 차단 정책이 더 효율적일 수 있다.

 


[그림 18] 공다팩 침해 사례 예시

 

 

사용자 시스템상에서 보안 업데이트

 
사용자 시스템에서는 주기적으로 업데이트할 수 있도록 마이크로소프트 및 서드파티(Adobe, java) 제품 관련 자동 업데이트를 설정하는 것이 중요하다.

 

[표 4] 주요 응용 프로그램 취약점 업데이트

 

취약점별 버전 확인 및 업데이트 정보를 확인하는 방법은 다음과 같다.

 

# Oracle Java
  - Java 버전 확인 방법 : cmd > java -version 
  - 보안 업데이트: http://www.oracle.com/technetwork/topics/security/javacpuoct2011-443431.html#PatchTable

 

 

#Adobe Flash Player
  - Adobe Flash Player 버전 확인 방법 :
   + 사이트 접속 : http://get.adobe.com/kr/flashplayer/
   + 윈도우 7 기준 : 제어판 → 프로그램 및 기능
  - 보안 업데이트 : http://get.adobe.com/kr/flashplayer/

 

 

 

# Microsoft Windows Media & IE Explorer
  - 업데이트 설치 확인 방법 :
    윈도우 7 기준 제어판 → 프로그램 및 기능 → 설치된 업데이트 보기
   (예, KB2631813이라면 아래와 같이 확인할 수 있으며 윈도우 버전마다 패치 번호는 다를 수 있기 때문에 아래 보안 업데이트 페이지 정보를 참고한다.)
   * 윈도우 미디어의 취약점으로 인한 원격 코드 실행 문제점(2636391)
   * 인터넷 익스플로러 보안 업데이트(980182)
  - 보안 업데이트 : http://technet.microsoft.com/ko-kr/security/bulletin/ms12-004

 

 

 

* 참고

SWFObject: Javascript Flash Player detection and embed script
http://blog.deconcept.com/swfobject/

플래시 MP4 취약점 CVE-2011-2140, CVE-2012-0754
http://asec.ahnlab.com/786

인터넷 익스플로러 히스토리 파일 위치
http://www.forensicswiki.org/wiki/Internet_Explorer_History_File_Format

Emerging Threats(snort) 시그니처
http://rules.emergingthreats.net/open/snort-2.8.4/rules/emerging-current_events.rules

Chinese Pack Using Dadong’s JSXX VIP Script Posted on March 1, 2012 by darryl
http://www.kahusecurity.com/2012/chinese-pack-using-dadongs-jsxx-vip-script/

  • AhnLab 로고
  • A-FIRST 김지훈 팀장
  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.