분석 정보/랜섬웨어 분석 정보

[악성코드 분석] JavaScript(JScript)를 이용한 RAA 랜섬웨어

TACHYON & ISARC 2016. 7. 6. 16:38

 JavaScript(JScript)를 이용한 RAA 랜섬웨어 



 

 

1. 개요

JavaScript를 이용하여 동작하는 랜섬웨어가 발견됐다. Script 언어를 활용하여 악성코드를 추가적으로 다운로드 하거나 부수적 동작을 수행하는 악성코드는 이전에도 있었지만, JavaScript(.js) 단일 파일로 암호화를 진행하는 랜섬웨어는 근래 보기 힘든 악성동작이라 주의가 필요하다. 


잉카인터넷 시큐리티 대응센터에선 이번 보고서를 통해 JavaScript로 동작하는 RAA 랜섬웨어를 알아보고 대책 방안에 대해 살펴보고자 한다.




                                                  

2. 분석 정보

2-1. 파일 정보

구분

내용

파일명

RAA.js

파일크기

758,931 Byte

진단명

Script-VBS/W32.RAA

악성동작

파일 암호화를 통한 Bit-coin 요구






 



2-2. 유포 경로

RAA 랜섬웨어는 워드파일로 위장한 .js 파일을 이메일을 통해 유포되는 것으로 일반적으로 알려져 있다. 하지만 유포방식 및 공격방식은 추후 다른 방법으로 변경될 가능성이 있다.





2-3. 실행 과정

해당 악성파일은 JavaScript 파일(.js 파일)이지만 Windows 운영체제에서 실행이 가능하다. Script로 작성된 파일은Windows에서 지원하는 WSH(Windows Scripting Host) 기술을 통해 동작한다. RAA 랜섬웨어가 실행 되면 가장 먼저 가짜 워드 파일을 출력시켜 사용자의 주의를 돌리고 그 사이 암호화를 수행한다. 암호화가 끝난 뒤 RAA는 또 다른 정보탈취형 악성코드를 생성하고 실행한다.


[그림 1] 사용자의 주의를 돌리기 위한 가짜 문서 및 해당 내용





3. 악성 동작

3-1. 시작 프로그램 등록 및 VSS 삭제

RAA 는 동작하고 있는 wscript.exe 프로세스 수와 이전의 RAA 랜섬웨어가 암호화를 끝내고 설정한 “Raa-fnl” 레지스트리 값을 읽어 들여 RAA 랜섬웨어가 중복 실행됐는지 확인한다. 처음 실행이라면 현재 스크립트 파일이름을 Run 레지스트리 하위 값으로 설정한다. 또한 Windows 의 백업기능인 VSS(Volume Snapshot Service) 관련 정보를 삭제하고 실제 암호화 루틴을 수행한다.



[그림 2] JS 파일을 Run 레지스트리에 등록

 



[그림 3] 제거 된 VSS 관련 레지스트리 값




3-2. 암호화

RAA 랜섬웨어는 중복 실행됐는지 확인하고 처음 동작이라면 새 GUID 를 생성하여 감염된 사용자의 식별 아이디로 삼는다. 또한, 생성한 GUID 값을 특정 서버로 보내 응답 받은 값으로 실제 암호화에 쓰일 키를 생성한다.


[그림 4] GUID 값 생성 및 읽기


[그림 5] 생성 된 사용자 고유 ID (GUID 값)




암호화 대상이 되는 파일 확장자는 [표 1]과 같으며, 총 16개의 종류가 대상이다. [표 2]와 같은 폴더의 하위 파일은 암호화를 수행하지 않는다.


 

.doc .xls .rtf .pdf .dbf .jpg .dwg .cdr .psd.cd .mdb .png .lcd .zip .rar .csv

[표 1] 암호화 대상 파일 확장자



WINDOWS, RECYCLER, Program Files, Program Files (x86), Windows, Recycle.Bin, RECYCLE.BIN, Recycler, TEMP, APPDATA, AppData, Temp, ProgramData, Microsoft

[표 2] 암호화 대상에 들어가지 않는 폴더명





RAA 에서는 파일을 암호화 하기 위해 CryptoJS 라이브러리의 AES 암호화 방식을 사용한다. 파일은 크기에 따라 총 3가지 다른 방식으로 암호화 하며, 크기가 약 476MB 이상인 파일에 대해서는 암호화 하지 않는다. 암호화가 끝난 파일에 대해서는 “.locked” 확장자를 붙이며 암호화된 파일은 현재까지 복구가 불가능 하다.



[그림 6] 실제 데이터를 암호화하는 부분





모든 암호화를 끝낸 뒤 wordpad.exe 를 통해 랜섬웨어에 대한 안내문을 출력하고, “Raa-fnl” 레지스트리에 “beenFinished” 라는 값을 설정한다. 이 값은 RAA 가 시작할 때 검사하는 값으로 이미 동작 완료한 PC에서 다시 동작하지 않도록 한다.


[그림 7] 랜섬웨어 감염 안내 및 금전 요구 화면




[그림 8] 암호화가 끝난 뒤 설정하는 값과 안내문을 출력하는 코드



3-2. 추가 악성코드 실행

해당 랜섬웨어는 인포-스틸러(정보탈취 악성코드)를 추가적으로 드랍하고 실행시킨다. st.exe 라는 이름으로 드랍되는 이 악성코드는 PC 에 저장 된 FTP, 비트코인 지갑, 공유 드라이브, 웹 로그인 등의 계정정보를 조회하여 공격자에게 전송한다. 분석시점에서는 원격지에 연결이 되지 않고 있다.






4. 결론

Javascript를 이용한 랜섬웨어는 Ransom32 악성코드가 최초인 것으로 알려져 있어 RAA 랜섬웨어를 완전히 새로운 형태의 랜섬웨어로 보긴 어렵다. 


하지만, 일반 악성코드는 스크립트 파일이 부수적인 역할을 해왔던 반면, 이와 다르게 RAA 랜섬웨어는 Javascript로 단독 실행된다는 점에서 주의깊게 볼 필요가 있다. 또한, 파일 암호화 악성동작 외에도 사용자 계정정보를 탈취하는 악성코드를 추가 실행시키므로 2차 피해를 입기 쉽다. 


RAA 랜섬웨어는 감염 안내문을 볼 때 타깃이 러시아일 것으로 추정된다. 하지만, 비슷한 형태의 변종이 언제든지 국내에 유입될 수 있기 때문에 안심해서는 안된다.


랜섬웨어 피해를 최소화하기 위해선 불명확한 파일은 다운로드 받지 않고, 모르는 링크와 이메일 접속을 금지하며 만일의 사태를 대비하여 중요파일을 상시 백업하는 습관을 가져야 한다. 무엇보다 랜섬웨어 탐지가 가능한 백신 프로그램을 설치하고 항상 최신 버전으로 업데이트하는 것이 중요하다. 


해당 랜섬웨어는 잉카인터넷 안티바이러스 제품 nProtect Anti-Virus Spyware V3.0과 nProtect Anti-Virus/Spyware V4.0에서 진단 및 치료가 가능하다. 또한, nProtect Anti-Virus/Spyware V4.0 에서 랜섬웨어 차단 기능(환경설정-검사 설정-랜섬웨어 차단)을 이용하면 의심되는 파일 암호화 행위를 차단 할 수 있다.


(※랜섬웨어 치료는 악성코드를 치료한다는 의미로, 암호화된 대상을 복호화하는 의미는 아닙니다.)


[그림 9] nProtect Anti-Virus/Spyware V4.0 진단 및 치료 화면

 


[그림 10] nProtect Anti-Virus/Spyware V3.0 진단 및 치료 화면



[그림 11] nProtect Anti-Virus/Spyware V4.0 랜섬웨어 차단 기능