[상세보고서] Offline Ransomware

malwares.com 악성코드 분석팀 분석 자료


< 부제 : 멈출줄 모르는 랜섬웨어 >


0. 개요


2015년을 강타한 보안 키워드를 꼽자면 단연 랜섬웨어 일 것이다. 랜섬웨어는 PC에서 모바일에 이르기까지 모든 디바이스를 대상으로 하는 악성코드로 발전했다. 이는 과거 수동적이던 악성코드 수익 모델을 적극적인 형태로 변환한 대표 사례일 것이다. 


1. Version History 및 동작 시나리오


[Figure 1. Offline Ransomware Version History (출처: CheckPoint)]


"Offline" Ransomware는 러시아에서 주로 활동하는 랜섬웨어로 Cryptolocker와 같이 기존에 알려진 파일 암호화 형태의 Ransomware와 다르게 복호화를 위한 키가 외부 서버가 아닌 암호화된 파일내에 저장되어 있으며 그로 인해 "Offline" Ransomware로 명명되었다. 보안업체 CheckPoint에 따르면 2014년 6월부터 꾸준히 발견되고 있으며 그 버전 또한 지속적으로 향상되고 있음을 알 수 있다. [참고1] (분석 대상으로 하는 파일 버전은 CL 1.2.0.0 이다.)

해당 Ransomware는 파일 암호화로 분류되며 최초 동작시 자신을 Unpack하는 과정에서 자신을 반복실행하게 되며 파일 암호화시 HDD내 모든 파일을 확인해 특정 확장자를 갖는 파일에 대해 파일 암호화를 하게 된다. 파일 암호화가 완료되면 사용자에게 알리기 위해 바탕 화면을 변경하게 된다. 


2. 숙주 파일 정보


[Figure 2. 악성코드 파일 정보 (malwares.com)]


[Figure 3. Anti-Virus 진단 정보 (malwares.com)]


3. 감염 증상 

(1) 파일 암호화 


[Figure 4, 감염된 파일]


"Offline" Ransomware에 감염되면 HDD내 감염 대상 파일을 암호화 후 일정한 형태의 파일명으로 수정한다. 대상 파일은 파일의 시그니처를 확인하지 않고 단순히 확장자만 확인한다. 


● 감염된 파일명

    email-<연락할 이메일 주소>.ver-<"Offline" Ransomware 버전>.id-<랜덤 데이터>-<감염날짜/시간>

   .randomname-<암호화된 파일이름>.cbf

● 감염 대상 파일 확장자

    r3d,rwl,rx2,p12,sbs,sldasm,wps,sldprt,odc,odb,old,nbd,nx1,nrw,orf,ppt,mov,mpeg,csv,mdb,cer,arj,ods,

    mkv,avi,odt,pdf,docx,gzip,m2v,cpt,raw,cdr,cdx,1cd,3gp,7z,rar,db3,zip,xlsx,xls,rtf,doc,jpeg,jpg,accdb,

    abf,a3d,asm,fbx,fbw,fbk,fdb,fbf,max,m3d,dbf,ldf,keystore,iv2i,gbk,gho,sn1,sna,spf,sr2,srf,srw,tis,tbl,x3f,

    ods,pef,pptm,txt,pst,ptx,pz3,mp3,odp,qic,wps


[Figure 5. HDD 내 여유 공간 확인]


파일 암호화 과정에서 원본 파일에 비해 파일의 크기가 증가하기 때문에 감염하려는 HDD의 공간이 충분해야 한다. 따라서 "Offline" Ransomware는 파일 암호화 이전에 HDD의 여유 공간을 확인한다. 


● 사용 API : GetDiskFreeSpace( ), SetFilePointer( )


(2) 바탕화면 변경


[Figure 6. 감염된 파일의 바탕화면]


HDD 내 파일 감염이 완료되면 바탕 화면을 변경해 해당 PC가 감염되었음을 사용자가 알 수 있도록 한다. 바탕 화면에는 암호화된 파일 해제를 위해 연락해야 할 악성코드 유포자의 이메일 주소가 표기되어 있다. SecurityAffairs에 따르면 유포자의 이메일 주소는 Figure 6의 anton_ivanov34@aol.com 외에도 다수가 존재하며 그 목록을 다음과 같이 공개하고 있다. (참고2)


● 이메일 목록

    ivanivanov34@aol.com, moshiax@aol.com, mserbinov@aol.com, masfantomas@aol.com, load180@aol.com, 

    trojanencoder@aol.com, vpupkin3@aol.com, watnik91@aol.com, d_madre@aol.com, Ninja.gaiver@aol.com, 

    scasiva@aol.com, igor_svetlov2@aol.com, Seven_Legion2@aol.com, cryptolocker@aol.com, iizomer@aol.com, 

    ivanivanov34@aol.com, caesar2@aol.com, hontekilla@aol.com, Moniva.moka@aol.com, 

    base1c1c1c@gmail.com, deskripshen1c@gmail.com, helpdecrytpt123@gmail.com, vernutfiles@gmail.com, 

    watnik91@gmail.com, systemsinfo32@gmail.com, sishelp100@gmail.com, deskr1000@gmail.com, 

    marivanna1953@gmail.com, help163btc@163.com, eric.decoder10@gmail.com, madeled@mail.ru

    helpfiledeskript111@gmail.com


[Figure 7. 바탕 화면 변경용 이미지 파일 생성 (JPEG의 경우)]


변경할 바탕 화면 이미지는 숙주 파일이 아닌 Unpack을 통해 생성한 별도 파일의 리소스 영역에 존재한다. 


● 저장된 리소스 : RT_RCDATA

● 리소스 이름 : DESK

● 생성 파일 : DESK.jpg / DESK.bmp

● 생성 경로 : Wallpaper / TileWallpaper


4. 생성 파일 정보


[Figure 8. 악성코드 파일 정보 (malwares.com)]


[Figure 9. Anti-Virus 진단 정보 (malwares.com)]


6. 상세 분석
(1) 레지스트리 등록 

[Figure 10. 레지스트리 등록]


"Offline" Ransomware는 재부팅시 동작 수행을 위해 레지스트리에 자신을 등록한다. 이때 숙주 파일의 반복 실행과정에서 실제 악성 동작을 수행하는 악성파일의 경로가 최초 숙주 파일의 위치가 아닌 다른 경로로 변경되며 해당 경로를 레지스트리에 등록한다. 이러한 과정에서 숙주 파일이 %TEMP% 경로에 복사되기도 한다. 

● 경로
    -  HKLM\Software\Microsoft\Windows\CurrentVersion\Run
       Key : "pr"
       Data : %PROGRAMFILES%\1C\<숙주파일명>

(2) 생성 파일

[Figure 11. 생성 파일 내부 구조]


파일 암호화가 진행되기 이전에 "Offline" Ransomware는 저장된 파일 경로에 일정한 구조를 갖는 파일을 생성한다. 

● 파일 경로 : %PROGRAMFILES%\1C\<랜덤파일명>

해당 파일은 파일 암호화 동작 과정을 확인하거나 감염된 PC를 식별하는 특정 값, 감염 시간등이 기록된 파일이며 파일 암호화가 시작되면 "noneend"로 설정해 동작하고 파일 암호화가 끝나면 "endend"로 변경해 상태를 저장하게 된다. 

(3) 파일 암호화

[Figure 12. 암호화된 파일 내부 구조]


암호화된 파일의 구조는 Figure 12와 같다. 


● 암호화 알고리즘 : 랜덤 테이블 암호화, RSA, 


파일의 모든 영역을 RSA 알고리즘으로 암호화하진 않는다. (속도 문제가 아닐까 추정된다.) 하지만 랜덤 테이블 관련 영역 또한 RSA에서 사용할 값을 사전에 연산해 이용한다. 


파일 암호화는 다음의 조건이 만족될 경우 시작한다. 


● HDD에 여유 공간이 있을 것

● 암호화 대상 확장자일 것

● 파일 크기가 14Bytes 이상일 것

● 기 암호화된 파일이 아닐 것


기 암호화된 파일 여부를 판단하기 위해서 암호화된 파일에서 사용하는 시그니처를 검증한다. 시그니처는 파일의 끝에서 14Bytes를 읽어들여 검증한다. 


● 시그니처 : {ENCRYPTENDED}


파일 암호화에 사용되는 암호화 알고리즘인 RSA는 4단계로 이루어져 있다. 

1) 키 생성 (Key Generation)

2) 키 분배 (Key Distribution)

3) 암호화 (Encryption)

4) 복호화 (Decryption)

이 과정에서 "Offline" Ransomware는 키 분배가 필요하지 않기 때문에 2) 키 분배 과정은 제외된다. 따라서 3단계로 동작한다. 

( e : n과 서로소인 값, d : 개인키, m : 메시지, n : 합성수 )

그 중 키 생성 과정에서 연산에서 필요한 e, n 값을 먼저 결정해야 한다. 

n 은 p와 q라는 2개의 서로소간의 곱으로 서로소인 두개의 값 p, q를 구하고 연산을 위한 고정 값 e를 결정하면 된다. 

"Offline" Ransomware는 이 과정에서 p, q를 결정하기 위해 256Bytes의 테이블을 생성했으며 e는 65537로 고정 값을 사용했다. 


[Figure 13. 랜덤 테이블 생성]


랜덤 테이블 생성을 위해 p, q를 구할 때 사용한 테이블을 이용한다. 각각의 테이블 또한 256Bytes 크기의 랜덤 테이블이므로 해당 랜덤 테이블을 인덱스로 하는 별도의 2048Bytes의 테이블을 생성한다. 

생성된 랜덤 테이블과 파일 데이터를 Byte 단위 연산을 통해 암호화하게 되고 이때 Byte 단위 암호화는 개별 데이터마다 상이한 연산을 적용한다. 파일 암호화시 사용된 랜덤 테이블은 파일별로 상이하기 때문에 외부에서 별도로 관리하기 어렵다. 따라서 "Offline" Ransomware는 랜덤 테이블을 파일의 특정 영역에 저장하게 된다. 


● 영역 : {ENCRYPTSTART}{랜덤 테이블}


[Figure 14. RSA 암호화 코드 (일부)]


랜덤 테이블을 통한 암호화한 영역 이후 부분은 다시 데이터의 크기에 따라 다른 형태로 RSA 암호화를 적용한다. 이렇게 암호화된 데이터는 "BLOCK"으로 명명되어 파일에 저장되며 그 영역은 시그니쳐 "BLOCKSTART"부터 "BLOCKEND"까지이다. 


(4) 외부 서버 접근


[Figure 15. 외부 서버 접근 시도 (malwares.com)]


외부 서버 접근을 시도하지만 현재 접근이 불가능한 상태이다. 

● URL : www.rescuemydata.co.ur

● IP : 188.121.59.128


[Figure 16. 외부 서버 접근 시도(코드)]


외부 서버 접근시 전달하는 Sub-URL은 다음과 같다. 


● Sub-URL : /pwksfmaw/install/inst.php?vers=CL%201.2.0.0&

                   id=XAHNVBINVBHOVBGOXELRYDKQXDJQWCJQWDJQ-2015-12-03%20 


이때 전달되는 Sub-URL은 ? 이후 "sender" 정보가 전달되도록 설계되어 있다. 


● sender 구조 : ver=<버전정보>&id=<랜덤데이터>&sender=<>


[Figure 17. 외부 서버 접근 시도(malwares.com]




▶ 보고서 원본 PDF 다운로드: https://goo.gl/ZuGmrQ


* 본 보고서 및 관련 컨텐츠는 저작권의 보호를 받습니다. 재배포, 영리목적의 활용 관련 법률에 의거 처벌 받을 수 있습니다.



이 글을 공유하기

댓글(0)