안랩 ASEC에서 2013년 7월 국내,외에서 발생한 다양한 보안 위협 이슈와 동향들을 정리한 ASEC 리포트 2012 Vol.36을 발간하였다. 


이 번에 발간된 ASEC 리포트는 2013년 7월 주요 보안 위협 이슈들을 다음과 같이 분석하고 있다.


1) 악성코드 이슈

고객님, 당황~하셨어요?

구매 발주서로 위장한 키로그 악성코드 주의

구입 주문서 위장 악성 메일

PayPal 피싱 주의

날씨 배너에 숨겨진 악성코드

회사 도메인 파일을 첨부한 악성 스팸 메일 주의

특정 기관을 대상으로 유포된 한글 악성코드 발견

한글 문서 파일을 노린 악성코드

NTFS 파일 시스템을 악용하는 악성코드

일본 자동차 업체의 해외 사이트 악성코드 유포


2) 모바일 악성코드 이슈

PC 정보 탈취하는 안드로이드 앱

안드로이드 인증서 우회 취약점

중국산 Langya 악성 앱


3) 보안 이슈

마이크로소프트 IE Use-After-Free 취약점 (CVE-2013-3163) 악용

국내 다수의 사이트를 통해 악성코드 뱅키(Banki) 배포


ASEC에서 발간하는 월간 보안 위협 동향 리포트는 아래 웹 사이트에서 확인 할 수 있다. 


ASEC 보안 위협 동향 리포트 2013 Vol.43 발간

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by 비회원
안철수연구소는 ASEC 블로그를 통해서 배너광고를 통한 악성코드 유포사례에 대해서 여러차례 다룬 바 있고
이번에 발견된 사례도 기존과 크게 다르지 않다.


1. 악성코드 유포는 어떻게?

이번에 발견된 사례는 아래 그림과 같은 형식으로 유포가 되었다.

 

                                               [그림 1] 배너광고를 통한 악성코드 유표과정

2. 악성코드 감염은 어떻게?
[그림 1]처럼 악성 스크립트가 삽입된 배너광고에 노출된 PC가 만약 보안 취약점이 존재했다면 악성코드에 감염되었을 확률이 높다.

[그림 2] 배너에 삽입된 악성 스크립트

악성 스크립트가 정상적으로 동작하면 브라우저 버전, 취약점등 조건에 따라 최종적으로 아래 주소에서 악성코드를 다운로드 및 실행한다.


배너광고에 노출된 PC에 악성코드를 다운로드 및 실행하기 위해서 사용된 취약점은 아래와 같다.

※ CSS 메모리 손상 취약점(MS11-003, CVE-2010-3971)
http://technet.microsoft.com/ko-kr/security/bulletin/ms11-003

※ Adobe Flash Player 취약점: CVE-2011-2140
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2140
http://www.adobe.com/support/security/bulletins/apsb11-21.html

위 취약점들을 사용한 악성 스크립트에 포함된 쉘코드는 아래 그림처럼 암호화된 URL가지고 있으며 복호화한 후 다운로드 및 실행하도록 되어 있다.


[그림 3] Shellcode의 복호화 루틴

[그림 4] urlmon.URLDownloadToFileA 함수 호출
 

edi= 다운로드할 악성코드 URL, http://***.78.***.175/Ags/AGS.gif

ebx= 악성코드를 저장할 경로, %USERPROFILE%\Application Data\Y.exe

Y.exe가 실행되면 아래 그림과 같이 파일을 생성 및 백업한다.

                                           [그림 5] Y.exe의 실행과정

[그림 5]
에서처럼 악성 ws2help.dll은 HttpSendRequestA()를 메모리상에서 Inline Patch하여 특정 온라인 게임 사용자의 계정정보를 탈취하는 게임핵 악성코드이다.

             [그림 6] 악성 ws2help.dll에 의해서 HttpSendRequestA()함수 패치 전과 후

[그림 6]
을 보면 악성 ws2help.dll에 의해서 HttpSendRequestA()함수가 패치될 경우 0x100030f0란 주소로 분기하도록 되어 있음을 알 수 있다.

위와 같이 하는 이유는 사용자가 입력한 ID/PW를 사이트로 전송하기 전에 악성 ws2help.dll에 의해서 입력된 계정정보를 탈취하기 위한 목적이고 사용자의 계정정보는 아래 그림에서 보는 것처럼 특정 사이트로 전송된다.

                                   [그림 7] 특정 사이트로 전송되는 ID/PW

3. 안철수연구소의 대응상태

* V3 엔진버전 : 2011.11.21.00
JS/Shellcode
JS/Downloader
Dropper/Win32.OnlineGameHack


만약 악성코드에 감염되어 백신이 실행되지 않을 경우 아래 전용백신을 다운로드하여 검사 및 치료한다.

                          GameHackKill 전용백신 다운로드

 


4. 맺음말
주말이면 어김없이 취약한 웹 사이트를 통해서 악성코드 유포가 되풀이 되고 있고 아직도 상당수의 사용자들이 보안 업데이트를 하지 않아 악성코드 감염피해를 입고 있지만 백신(전용백신)으로 치료하면 그만이라는 생각을 가지고 있는 것 같다.

옛 속담에 "소잃고 외양간 고친다."란 말이 있다. 이 속담의 의미처럼 가장 기본이면서도 중요한 보안 업데이트를 꾸준히 함으로써 큰 피해를 미연에 방지했으면 한다.

저작자 표시 비영리 변경 금지
신고
Creative Commons License
Creative Commons License
Posted by AhnLab_ASEC
1. 서론
 온라인 게임 핵 악성코드를 유포하는 악성 스크립트가 다수의 국내 사이트에 삽입되어 있음이 확인되었습니다. 침해사고가 발생한 해당 사이트들에는 동일한 악성 스크립트 URL이 삽입되어 있었는데, 어떻게 동일한 악성 스크립트가 삽입되었는지와 삽입된 악성 스크립트는 어떤 취약점을 이용하여 악성코드를 유포시키며 유포된 악성코드는 어떤 목적을 가지고 있는지 살펴보고자 합니다.


2. 다수의 사이트에 악성코드 유포 스크립트가 삽입된 원인
 평일보다 주말에 윈도우 정상 파일을 변조하는 온라인 게임핵 관련 악성코드 관련 문의가 고객들에게 다수 접수된다는 점이 특이하여 해당 사례에 대해 자체적으로 확인한 결과 국내의 다수 사이트 및 블로그에서 동시에 같은 악성 스크립트를 통해 해당 악성코드를 유포하고 있어 조사를 하게 되었습니다.

조사한 결과 모든 사이트의 공통점은 특정 배너광고 업체에서 제공하는 배너 광고를 사용하고 있었으며 해당 배너를 보여주는 스크립트에 악성코드를 유포하는 악성 스크립트가 삽입되어 있었고, 제공된 배너를 사용했던 업체들은 자신들의 사이트들이 자체적으로 취약하지 않았더라도 악성 스크립트가 삽입된 배너에 의해서 악성코드를 유포하는 사이트로 전략했던 것입니다.

지금까지 확인된 악성코드를 유포한 배너광고 업체는 총 3군데 이며, 언급한 내용을 도식화해보면 아래와 같습니다.

[그림 1] 악성코드 유포 경로



3. 실제 사례 분석
 위 3개의 배너 관련 사이트 중 가장 최근에 발견된 것은 구글 애드센스 광고 이용자의 부정 클릭을 방지할 목적으로 서비스하는 사이트 입니다. 해당 코드를 추가한 블로그는 모두 악의적인 스크립트가 추가되어 악성코드를 유포하고 있는 것이 확인 되었습니다.
 
[그림 2] 문제의 ad******.kr 사이트 메인 화면


[그림 3] 악성코드가 삽입된 사이트에 삽입된 관련 스크립트 (ad******.kr)


위 [그림 3]의 스크립트가 실행되면 아래의  악성코드를 유포하는 사이트로 접속을 유도하게 됩니다.


[디코딩 후]
URL : http://ad******.kr/adinfo/mysense.js.html
[표 1] 삽입되는 스크립트 유형 (ad******.kr)



4. 삽입된 스크립트 분석
 이번에는 삽입된 스크립트에 대해 확인해 보도록 하겠습니다. 삽입된 스크립트 페이지에 접속을 하면 아래와 같이 세부 페이지로 접속을 하게 됩니다. 각각의 페이지에 대해서 확인해 보도록 하겠습니다.


http://www.ig***.co.kr/hong/rook.html
    L http://.ig***.co.kr /hong/cool.html
        L http://.ig***.co.kr/hong/i6.htm
        L http://.ig***.co.kr/hong/i7.htm
        L http://.ig***.co.kr/hong/ko1.htm
[표 2] 악성코드 유포 페이지 접속 시 접근하는 URL 경로(변종에 따라 다운로드 파일은 일부 다를 수 있음)


먼저 cool.html 페이지에 대해 간략하게 확인을 해보도록 하겠습니다. 아래는 cool.html 페이지의 일부 코드이며 내용을 보면 UserAgent 값을 확인하여 인터넷 익스플로러 브라우져, 파이어폭스 웹 브라우저등의 취약점이 노출된 시스템에 감염 시키는 것으로 추정됩니다.


즉, 최근 악성코드는 다양한 사용자의 시스템 환경을 먼저 확인한 후 다양한 취약점을 이용하여 악성코드를 감염 시키는 것으로 볼 수 있습니다.

[표 3] cool.html 코드 일부 (변종에 따라 일부 다를 수 있음)


이제 각 페이지 별로 어떤 취약점을 이용하는지에 대해 확인해 보도록 하겠습니다. 먼저 인터넷 익스플로러 6버전을 사용할 경우 접속하는 i6.htm 파일 코드를 보면 아래와 같습니다.

해당 페이지에서 이용하는 취약점은 Microsoft Internet Explorer "iepeers.dll" Use-after-free Vulnerability (MS10-018) 취약점으로 인터넷 익스플로러 관련 취약점 중 가장 최근에 나온 취약점입니다.

[표 4] i6.htm 코드 일부


다음은 인터넷 익스플로러 7버전을 이용할 시 접속하는 i7.htm 코드 입니다. 해당 코드 역시 ie6.htm과 마찬가지로 같은 Microsoft Internet Explorer "iepeers.dll" Use-after-free Vulnerability (MS10-018) 취약점을 이용하여 악성코드를 감염 시키고 있습니다.

[표 5] i7.htm 코드 일부


다음은 ko1.htm 페이지의 코드를 확인해 보겠습니다. 해당 페이지는 Adobe Flash 취약점(CVE-2009-1862)을 이용하여 악성코드를 감염 시키고 있습니다.

[표 6] ko1.htm 코드 일부


마지막으로 ko2.htm 페이지의 코드는 아래와 같으며 해당 코드가 이용하는 취약점은 Microsoft Office Web Components (Spreadsheet) ActiveX BOF (MS09-043) 취약점 입니다.


[표 7] ko1.htm 코드 일부


정리를 하자면 아래와 같은 취약점들을 이용하여 악성코드를 감염시키고 있습니다. 모두 가장 최근에 나온 다수의 취약점을 이용하므로 사용자들이 윈도우 보안 패치나 주요 어플리케이션에 대한 보안 패치를 하지 않는다면 쉽게 감염될 것으로 보입니다.


Microsoft Internet Explorer "iepeers.dll" Use-after-free Vulnerability (MS10-018)
Microsoft Office Web Components (Spreadsheet) ActiveX BOF (MS09-043)
Adobe Flash 관련 취약점 (CVE-2009-1862)



5. 악성코드 분석

 앞선 취약점 분석에서 PC에 어떤 취약점이 존재하면 악성코드에 감염되는지 살펴보았고 지금부터 유포된 악성코드에 대해서 분석해 보도록 하겠습니다. 그 전에 유포된 악성코드의 전체적인 구조를 요약해 봤습니다.

[그림 4] 악성코드의 감염 개요 (ad******.kr 사이트)


Exploit 스크립트에 의해서 love.exe가 실행되면 레지스트리에 자신의 값을 추가함으로써 윈도우가 부팅할 때마다 자동 실행되도록 합니다.

love.exe는 윈도우 정상 파일인 imm32.dll를 패치하는 악성코드이며 요즘 이슈를 만드는 악성코드들 중에 하나입니다.

imm32.dll은 윈도우의 시스템 파일이고 WFP(Windows File Protection)의 모니터링 대상이므로 s2.exe는 imm32.dll를 패치하기 전에 sfc_os.dll에서 특정 파일에 대해서 1분간 무력화할 수 있는 함수(#5)를 사용하여 imm32.dll에 대해서 WFP를 일시적으로 무력화합니다.

LoadLibraryA() : sfc_os.dll의 ImageBase 얻기
00401C81  |.  68 EC614000   push    004061EC                         ; /FileName = "sfc_os.dll"
00401C86  |.  66:AB         stos    word ptr es:[edi]                ; |
00401C88  |.  FF15 34404000 call    dword ptr [<&KERNEL32.LoadLibrar>; \LoadLibraryA

GetProcAddress() : sfc_os.dll에서 Undocumented API #5의 RVA값 얻기
00401C8E  |.  6A 05         push    5           ; /ProcNameOrOrdinal = #5
00401C90  |.  50            push    eax         |hModule = 76C10000 (sfc_os), sfc_os.dll의 ImageBase
00401C91  |.  FF15 30404000 call    dword ptr [<&KERNEL32.GetProcAdd>; \GetProcAddress

SfcFileException() : imm32.dll에 대해서 1분 동안 윈도우 파일 보호(WFP)기능 무력화
00401CC0  |.  50            push    eax         ; eax = "C:\WINDOWS\system32\imm32.dll")
00401CC1  |.  6A 00         push    0
00401CC3  |.  FFD6          call    esi        ; esi = 76C19496 (sfc_os.#5), SfcFileException()의 RVA
[표 8] imm32.dll에 대해서 WFP(Windows File Protection) 무력화 코드


이후 정상 %SYSTEM%\imm32.dll을 %SYSTEM%\imm32.dll.log로 백업해 두고 패치작업을 수행합니다. 그리고 1분이 경과하면 윈도우에서는 패치된 imm32.dll를 WFP로 보호합니다. 즉 패치된 imm32.dll을 정상 파일로 인식하는 것입니다.

[그림 5] 패치된 imm32.dll의 섹션


[그림 5]에서 보는 것처럼 패치된 imm32.dll에는 .rscmp라는 섹션이 추가되어 있음을 알 수가 있는데 해당 섹션의 기능은 특정 프로세스에서 패치된 imm32.dll을 로딩할 때 게임 핵인 ole.dll도 자동으로 로딩하게 하는 아주 단순한 역할을 합니다.

ole.dll은 특정 온라인 게임 사용자의 계정정보를 탈취하여 특정 URL로 전송하는 역할을 수행합니다. 이번에 유포된 love.exe에 의해서 생성된 ole.dll의 계정정보 탈취대상은 아래와 같습니다.

www.ha*****.com / www.sev*******online.co.kr / *****uls.ha*****.com / www.p*****.com
st*****word= / st****il= / c*****ail= / l****.bin / l****2.bin / d*****.exe / iexplore.exe / ****story.exe
****es.exe / game.exe / launcher.exe
[표 9] 계정정보 탈취 대상 리스트


일반적으로 게임 핵 악성코드에서 탈취한 계정정보를 유출하기 위해서 사용되는 URL은 암호화되어 있습니다. ole.dll에서는 아래 복호화 루틴을 사용하여 암호화된 URL을 복호화합니다.

(변종에 따라 일부 다를 수 있습니다)

00BC1058    56              push    esi
00BC1059    8B7424 08       mov     esi, dword ptr [esp+8]  ; 암호화된 URL의 시작 주소
00BC105D    803E 00         cmp     byte ptr [esi], 0
00BC1060    74 1C           je      short 00BC107E
00BC1062    8A06            mov     al, byte ptr [esi]
00BC1064    837C24 0C 00    cmp     dword ptr [esp+C], 0
00BC1069    50              push    eax
00BC106A    74 07           je      short 00BC1073
00BC106C    E8 8FFFFFFF     call    00BC1000
00BC1071    EB 05           jmp     short 00BC1078
00BC1073    E8 B4FFFFFF     call    00BC102C
00BC1078    8806            mov     byte ptr [esi], al   ; 복호화된 URL이 저장되는 주소
00BC107A    59              pop     ecx
00BC107B    46              inc     esi
00BC107C  ^ EB DF           jmp     short 00BC105D
[표 10] 복호화 루틴



6. V3의 대응현황
현재 V3에서는 아래와 같이 대응 중입니다.

(1) 다운로드 샘플
hxxp://ad******.kr/adinfo/mysense.js.html 에 접근시
-> hxxp://www.ig***.co.kr/hong/rook.html 사이트로 접속유도 후
=-> love.exe 파일 설치
 
(2) 생성파일/진단명
love.exe   (V3 진단명 : Dropper/Onlinegamehack.86016.C 외 다수)
c:\windows\system32\ole.dll   (V3 진단명 : Win-Trojan/Onlinegamehack.57344.AQ 외 다수) 
c:\windows\system32\imm32.dll   (V3 진단명 : Win-Trojan/Patched.BK 외 다수)

위 imm32.dll 관련 악성코드 감염 시 http://core.ahnlab.com/173 게시물을 참고하시어 전용백신으로 조치하시기 바랍니다.



7. 분석 에필로그
이번 사례는 해당 사이트들에 침해사고가 발생하여 악성코드를 유포했던 것이 아니라 실제로는 특정 배너광고 사이트가 침해사고를 당했고 해당 사이트에서 제공하는 배너 컨텐츠에 악성코드를 유포하는 악성 스크립트가 삽입되어 있었음을 확인할 수 있었습니다. 하지만 사용자들은 자신들이 직접 접속한 사이트들에서 악성코드를 유포하는 것으로 오해할 수가 있습니다.

이번 사례와 동일하게 운영되는 사이트는 많을 것이고 배너광고를 제공하는 사이트에 침해사고가 발생하면 해당 배너광고를 사용하는 사이트들에게까지 동시에 영향을 미쳐 마치 다수의 사이트들에서 동시에 침해사고가 발생하여 악성코드가 유포될 수 있는 문제점이 있기에 조심할 필요가 있습니다.

이번에 유포되었던 악성코드에 감염된 PC의 경우, 해당 PC에서 사용하는 보안 업데이트만 잘 되어 있었다면 감염피해는 미연에 방지할 수 있었고 가장 중요하면서 기본이 보안 업데이트라는 것을 알 수가 있었습니다.

끝으로 기업 보안 및 PC관리부서에서는 기업 내 PC에 대해서 보안 업데이트 정책 등 여러 가지 보안정책을 수립하는 것이 필요할 것으로 보입니다.
신고
Creative Commons License
Creative Commons License
Posted by 비회원
TAG imm32, 배너