본문 바로가기
악성코드 정보

한국을 목표로 한 랜섬웨어, CryptoLocker 상세정보

by yhayoung 2015. 4. 29.

1. 개요

랜섬웨어는 사용자 시스템에 설치된 후 파일들을 암호화해서 정상적으로 사용하지 못하도록 하고 이를 정상적으로 돌려준다는 조건으로 비트코인 또는 추적이 어려운 전자 화폐를 통한 금액 지불을 요구하는 악성코드이다. 주로 국외에서 확산되면서 많은 피해자를 양산했는데 최근 몇 년 사이에 국내에서도 랜섬웨어에 감염된 사용자가 증가하였으며 그 중 국내 유명 인터넷 커뮤니티 사이트를 통해 유포된 CryptoLocker 에 대한 분석 정보를 공유하고자 한다.

최근에 발견된 ‘CryptoLocker’는 [그림-1]에서 볼 수 있듯이 과거 2013년 9월에 처음 발견이 되었으며 ‘CryptoWall’, ‘TorrentLocker’, ‘CryptographicLocker’, ‘TeslaCrypt’ 등의 이름으로 변형들이 계속해서 나타났다. 주로 이메일을 통해 유포되던 랜섬웨어 악성코드가 최근 국내 인터넷 커뮤니티 사이트를 이용해 유포되었고 해당 랜섬웨어인 ‘CryptoLocker’ 도 과거의 그것들과 같은 류이다.

 

[그림-1] 주요 랜섬웨어 타임라인

 

이번 랜섬웨어에 감염되면 나타나는 페이지는 [그림-2]와 같은데 암호화된 파일들을 복원하기 위해 한화 약 438,900원의 BitCoin을 요구한다. 피해자들이 비용 지불을 쉽게 할 수 있도록 결제 방법을 상세하게 설명하고 있으며 실제 복원이 됨을 증명하기 위해 암호화된 파일 중 1개의 파일을 무료로 복호화 해주고 있다. 이를 통해 악성코드 제작자는 중요한 파일을 암호화하여 사용자의 금액 지불을 유도하는 것이 목적임을 알 수 있다.

 

[그림-2] CryptoLocker에 감염 시, 보여지는 웹 페이지

 

그리고 사용자 PC의 IP대역을 확인해서 해당 국가에 맞은 언어의 안내 페이지를 생성 및 실행하여 보여 준다. 결제를 진행하기 위해 안내된 링크를 클릭하면 아래와 같은 정보가 기본으로 세팅 되어 있는데, Tor (anonymity network)를 사용해서 네트워크를 추적하기 어렵게 해 놓았다.

(예제) http://zoqowm4kzz4cvvvl.torlocator.org/jxt85f9.php 
- User-Code:  12lrne9
- User-Pass:  8394

 

2. 감염 경로

아래의 [그림-3]과 같이 사용자 시스템의 취약점을 이용한 전형적인 웹 기반의 DBD(Drive-By-Download) 방식을 통해 감염이 이루어졌다. 국내에서 많은 사용자들을 보유하고 있는 유명 커뮤니티 사이트에 접속하게 되면 취약한 사이트로 리다이렉션(Redirection) 되면서 특정 취약점에 의해 랜섬웨어 악성코드가 다운로드 되고 실행되었다.

 

[그림-3] 감염경로

 

1) 최초 유포지 및 경유지

이번 랜섬웨어 악성코드 배포에는 국내 3곳의 대표적인 IT 커뮤니티가 악용되었음이 확인되었다.

(1) C업체
(2) S업체
(3) R업체

이들 국내 사이트에는 광고 데이터를 동적으로 받아서 화면에 보여주는 기능이 포함되어 있다. 공격자는 이 기능을 악용하여, 아래와 같이 광고서버에 악의적인 스크립트를 삽입하거나 또는 직접 사이트를 변조하는 방법으로 사용자들이 인지하지 못한 채 악의적인 사이트로 연결되도록 유도하였다.

[그림-4] C업체에 삽입된 악성스크립트

 

[그림-5] S업체에 삽입된 악성스크립트

 

[그림-6] R업체에 삽입된 악성스크립트 (SWF 이용)

 

특히, 삽입된 악성 스크립트들은 경유지 사이트를 거쳐, 최종적으로 취약점 공격코드가 탑재된 사이트로연결된다. 이 때, 사용자 클라이언트 시스템 상의 취약점을 이용하기 위해 자동화된 웹 공격 툴킷인  “Angler EK” 가 사용되었다. 

 

2) 자동화된 웹 공격 툴킷 –“Angler EK”

아래의 [그림-7], [그림-8]과 같이 사용자는 최종적으로 난독화된 “Angler EK”의 취약점 랜딩페이지로  연결된다.

[그림-7] Angler EK 난독화된 취약점 랜딩페이지

 

[그림-8] Angler EK 동작구조

 

이 때, 악성코드의 탐지우회 기능과 유사하게, 스크립트 레벨에서도 취약점 'CVE-2013-7331'을 이용하여 가상환경, 분석환경, 백신 프로그램 등의 클라이언트 환경을 체크한다. 만약, 해당 프로그램들이 존재하는 경우, 공격이 정상적으로 이루어지지 않는다.

또한, 다음과 같이 특유의 변수를 이용하여 개별 애플리케이션들의 공격여부를 제어한다.

애플리케이션

변수

 

 

Adobe Flash Player

 

window.sf325gtgs7sfdf1

window.sf325gtgs7sfdf2

 

MS SilverLight

 

window.sf325gtgs7sfds

 

Oracle Java

 

window.sf325gtgs7sfdj

 

환경체크

 

window.sf325gtgs7sfdfn

[표-1] 애플리케이션 제어 변수

 

3) 취약점 및 페이로드 (쉘코드)

일반적인 Angler EK는 다양한 애플리케이션 취약점을 이용하는 것으로 알려져 있으나, 이번 공격에는 “God Mode”로 알려진 'CVE-2014-6332'와 Flash 취약점인 'CVE-2014-0515' 취약점이 이용되었다.

[그림-9] 'CVE-2014-6332' 취약점

 

[그림-10] 'CVE-2014-0515' 취약점 발생부분

 

[그림-11] 웹으로부터 전달된 “exec” 파라미터(Base64 인코딩) 처리

 

[그림-12] 'CVE-2014-0515' 취약점 원인 'Pixel Bender Binary Data'

 

[그림-13] 'CVE-2014-0515' 취약점 코드

 

다음과 같이 실제 쉘코드 실행 시, 공격자 사이트로부터 추가적인 Payload를 다운로드 받는다. 이를 해당 KEY 문자열로 해제한 후, 페이로드의 시작이 “9090” 또는 “MZ” 인지 구별하여 직접 메모리 상에서 실행하거나 tmp 파일(%temp%폴더)로 생성하여 실행한다.

[그림-14] 쉘코드(ShellCode) 일부

 

3. 기능분석

 

1) 전체 동작 흐름

이번 랜섬웨어가 실행이 되면 기타 다른 악성코드처럼 자기 자신을 ‘%WINDOWS%’ 폴더에 복사해놓고 ‘HKCU\Software\Microsoft\Windows\CurrentVersion\Run\<랜덤명>’ 에 등록한다. 해당 키에 실행 파일을 동록 해 놓으면 시스템을 재 부팅할 때마다 자동으로 실행이 되는데, 이렇게 되면 해당 파일을 찾아서 삭제하지 않는다면 감염된 PC의 사용자가 금액을 지불하고 파일을 복구했다고 하더라도 재감염 될 가능성이 높다. 자신을 자동 실행되게 등록한 후에는 정상 ‘explorer.exe’ 프로세스를 생성하고 C&C 서버 통신 및 파일을 암호화하는 주요 기능을 포함한 PE파일을 인젝션 시켜서 동작한다.

[그림-15] CryptoLocker 동작흐름

 

2) 세부 내용

 

a) 네트워크 접속

네트워크 통신 상태를 확인하기 위해 ‘www.download.windowsupdate.com’ 와 ‘akamaitechnologies.com’에 접속한다. 이후 아래의 [그림-16]과 같이 C&C 서버 인 ‘https://lepodick.ru/topic.php’에 두 번에 걸쳐 ‘POST’ 패킷을 전송하는데 첫 번째는 사용자 PC의 정보를 전달한 후 IP대역에 따른 (각 나라별) ‘.txt’와 ‘.html’ 파일을 받아 온다. 그리고 두 번째에는 앞에서 보낸 정보에 암호화된 파일들을 복호화 할 때 필요한 키 정보(256byte)를 함께 보내고 서버에서 ‘200 OK’ 응답을 받으면 파일들을 암호화하기 시작한다. 서버로부터 받은 ‘DECRYPT_INSTRUCTIONS.txt’와 ‘DECRYPT_INSTRUCTIONS.html’ 파일은 암호화한 파일이 있는 모든 폴더에 생성되며, 시스템이 감염되었다는 메시지를 사용자에게 보여주고 파일을 정상적으로 복원하기 위해 BitCoin을 사용한 결제 방법이 설명되어 있다.

[그림-16] C&C 통신과정

 

b) 볼륨 섀도우 카피 삭제

아래 명령을 실행해서 볼륨 섀도우 카피를 삭제하는데 이렇게 되면 Windows 운영체제에서 제공하는 파일 백업 및 복원 기능을 정상적으로 사용할 수 없다. 이 명령은 CryptoLocker류에서 공통적으로 확인 할 수 있는 기능이다.

- vssadmin.exe Delete Shadows /All /Quiet

 

c) 파일 암호화

랜섬웨어의 가장 특징적인 기능인 사용자의 중요 파일들을 암호화하는데 아래에 리스트 되어 있는 확장자를 가진 파일과 폴더는 대상에서 제외된다. 그리고 ‘이동식 드라이브’와 ‘네트워크 드라이브’에 있는 파일도 암호화 대상이 되며 암호화가 완료된 파일에는 확장자 뒤에 ‘.encrypted’ 문자열이 붙게 된다.

 

[제외대상 확장자]

.avi, .wav, .mp3, .gif, .ico, .png, .bmp, .txt, .html, .inf, .manifest, .chm, .ini, .tmp, .log, .url, .lnk, .cmd, .bat, .scr, .msi, .sys, .dll, .exe

 

[제외대상 폴더]

- %Program Files%
- %ProgramW6432%
- C:\WINDOWS
- C:\Documents and Settings\All Users\Application Data
- C:\Documents and Settings\사용자계정\Application Data
- C:\Documents and Settings\사용자계정\Local Settings\Application Data
- C:\Documents and Settings\사용자계정\Cookies
- C:\Documents and Settings\사용자계정\Local Settings\History
- C:\Documents and Settings\사용자계정\Local Settings\Temporary Internet Files

앞에서 리스트 되어 있던 암호화 대상 제외 확장자 및 폴더를 제외하고는 파일 외형적으로는 아래 [그림-17]처럼 파일의 확장자에 ‘.encrypted’ 가 추가가 된 것을 확인 할 수 있다. 이렇게 암호화된 파일 내부에는 변경된 원본 데이터와 시그니쳐 그리고 복호화에 필요한 256 바이트 Public Key가 포함되어 있다.

[그림-17] 감염 전/후의 변경된 파일명

 

4. 복구 프로그램

이번 국내 이슈가된 CryptoLocker 에 대한 복구 프로그램은 내부에 감염 사용자 별로 다른 복호화 키 인덱스 정보(0x20 바이트)를 포함하고 있다. 실행 시, 아래의 [그림-18]과 같은 화면이 나타나며 "Start Decryption" 버튼을 클릭하면, 감염 조건에 부합하는 드라이브 및 폴더에 대한 스캔과정을 수행하며 ".encrypted" 확장자를 갖는 파일들에 대해 실제 복호화작업이 이루어짐을 확인할 수 있다.

[그림-18] 복구 프로그램 내부에 저장된 Key 정보

".encrypted"로 암호화된 파일은 공통적으로 원래 파일크기에 0x108(264 바이트)가 증가한 것을 알 수 있다. 파일 끝에 추가된 0x108 크기의 데이터는 다음과 같은 구조를 갖는다.

증가한 264 바이트 = 해쉬정보(4-bytes) + 시그니처(4-bytes) + 공개키(256-bytes)

아래의 [그림-19]는 실제 복구툴 내부에 저장된 키 인덱스 정보(0x20 바이트)룰 통해 생성된 데이터(0x108 바이트)와 ".encrypted" 파일에 존재하는 해쉬정보 비교를 통해 유효한 키 인지 검증하는 과정을 나타낸다.

[그림-19] 유효한 키 여부 검증하는 부분

 

5. 결론

이번 CryptoLocker 랜섬웨어는 국내 유명 커뮤니티 웹사이트의 광고 배너를 통해 유포되면서 많은 국내 피해자를 발생시켰다. 이에 웹 관리자의 보안에 대한 주의가 필요하며 PC 사용자는 랜섬웨어 악성코드를 예방하기 위해 발신자가 불명확한 이메일의 열람에 주의하고 중요 파일들은 별도로 백업해 놓을 필요가 있겠다. 그리고 취약점에 의한 감염 피해를 줄이기 위해 운영체제와 응용프로그램들을 항상 최신으로 업데이트해야 하겠다. 이 외에도 백신프로그램을 통해 예방 할 수 있는데 V3에서는 해당 악성코드를 ‘Win-Trojan/Cryptolocker.229892’, ‘Win-Trojan/Cryptolocker.Gen’, ‘Trojan/Win32.Cryptolocker’ 등으로 진단하고 있으며 현재까지 파악된 관련 악성 경유지 및 유포지를 아래와 같이 확보하였다. 이에 주의가 필요하겠다.


[경유지]
- medbps.filmwedding.ro/bkktab2.html (gtdgq2.html, lrvqdg2.html, nprgj2.html)
- guhm.gusg.com.br/pzvjqn2.html
- aker.ktc66.com/tpgop2.html
- lub.liuboya.com/xzrwqh2.html (wvbrrd2.html, gibusn2.html, jibnnm2.html, lxhufq2.html, ubodwx2.html)
- lab.lamo.ro/tpgop2.html

[유포지]
- row.bottomwebsites.xyz/elusiveness_sugarcoated_icepack_worthier/41294017316481015
- gate.moneyslistsarea.xyz/dynasty_sunset_trepidation_guitarists/65630335056125154
- gate.nothaveillinous.xyz/tyrant_absolves_pimply_casualness/16752510507522986
- gate.nothaveillinous.xyz/shirked_edison_gatehouses_springier/47090670725834176

[C&C]
- lepodick.ru/topic.php
- possoqer.ru/topic.php
- koposorer.ru/topic.php
- wosowpe.ru/topic.php
 

 

댓글