포스팅 내용

악성코드 분석 리포트

Trojan.Ransom.Saturn 악성코드 분석 보고서

안녕하세요? 이스트시큐리티입니다.


최근까지 사용자의 중요 파일을 암호화한 뒤 복호화를 대가로 비트코인을 요구하는 랜섬웨어가 꾸준하게 발견되고 있는 가운데 Saturn으로 불리는 새로운 랜섬웨어가 발견되었습니다. 


이번에 발견된 Saturn 랜섬웨어는 파일을 암호화한 뒤 .saturn 확장자를 추가하고, Cerber 랜섬웨어와 마찬가지로 스크립트를 이용해 음성으로 감염 사실을 알리는 것이 특징입니다.  또한, 한글이 포함된 경로에 대해서는 암호화를 진행하지 않습니다. 암호화 대상 확장자는 총 162개로 이 중에는 비트코인 지갑 .wallet를 포함한 금융정보와 관련된 확장자가 포함되어 있습니다.

 

본 보고서에서는 Saturn 랜섬웨어를 상세 분석 하고자 합니다.




악성코드 상세 분석


1) 프로세스 실행 유무를 위한 시스템 환경 확인


가. 안티 디버깅 

Saturn 랜섬웨어는 현재 프로세스가 디버깅 중인지 확인하여 실행 유무를 결정합니다. IsDebuggerPresent 함수와 CheckRemoteDebuggerPresent 함수를 이용하여 현재 프로세스 또는 이외의 프로세스가 디버깅 되는지 확인합니다. 

만약 디버깅 중이라고 확인되면 파일 암호화 및 추가 악성 행위를 하지 않고 프로세스를 종료합니다.


[그림 1] 안티 디버깅 확인

 

나. VirtualBox 탐지

레지스트리 키 값 중에서 다음과 같은 값들이 확인되면 VirtualBox를 사용 중인 것으로 인식하고 프로세스를 종료합니다.


 

레지스트리 키 값

HKLM\\SOFTWARE\\Oracle\\VirtualBox Guest Additions

HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxGuest

HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxMouse

HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxSF

HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxVideo

[표 1] VirtualBox 탐지 레지스트리 키 값


 

2) 안티 포렌직

프로세스 실행 조건을 만족하면 Saturn 랜섬웨어는 암호화된 파일의 복원을 막기 위해 시스템에 내장된 볼륨섀도우 복사본을 삭제하고, 자동 복구 기능을 비활성화합니다. 서버 시스템일 경우 백업 카탈로그도 삭제합니다.


[그림 2] 안티 포렌직 명령어



3) 암호화 대상 파일 검색

암호화 대상 파일 검색은 모든 논리 드라이브를 대상으로 이뤄집니다. 다음과 같은 문자열이 확인되면 암호화 대상에서 제외시킵니다. 이는 시스템 오류로 인해 암호화가 비정상적으로 종료되는 경우를 방지하기 위함입니다. 또한, 한글이 포함된 경로에 대해서도 암호화가 진행되지 않습니다. 추후 비트코인 결제에 사용되는 Tor Browser와 관련된 경로도 제외됩니다. 


암호화 제외 경로

\\Program Files

Windows\\

:\\ProgramData\\

AppData\\Local\\

AppData\\LocalLow\\

AppData\\Roaming\\Microsoft\\

$Recycle.Bin\\

Application Data\\

\\Tor Browser\\

[표 2] 암호화 제외 경로

다음과 같은 확장자를 가진 파일을 대상으로 암호화를 진행합니다. 확장자 중에는 비트코인 및 금융정보와 관련된 파일들도 포함되어 있습니다. 


.txt .psd .dwg .pptx .pptm .ppt .pps .602 .csv .docm .docp .msg .pages .wpd .wps .text .dif .odg .123 .xls .xlr .doc .indd .xlsx.xlsm  .docx .rtf .xml .dot .pdf .cdr .cd .1cd .sqlite .wav .mp3 .wma .ogg .aif .iff .m3u .m4a .mid .pma .obj .max .3dm .3ds .dbf .accdb .db .dbf .sql .pdb .mdb .wsf .apk .com .torrent .old .bank .raf .raw .moneywell .blend .design .dxb .cad .kfx .proto .pb .pyw .fsproj .mfa .k25 .gcw .tax2017 .aep .swf .mswmm .flp .off .dot .odm .jou .rpb .abk .php5 .ocx .dcr .bik .back .exf .sav .incpas .stx .bk .jpg .jpeg .tiff .tif .png .bmp .svg .mdi .mp4 .mov .gif .avi .wmv .sfk .zip .rar .7z .tar .backup .bak .ms11 .ms11 (Security copy) .md .veg .pproj .prproj .ps1 .htm .rss .json .php .c .h .cpp .asm .py .cs .bat .cmd .vbs .class .vb .java .jar .asp .js .lib .pas .tiff .tif .cgm .nef .crt .csr .p12 .pem .vmx .vmdk .vdi .qcow2 .vbox .wallet .dat .cfg .config

[표 3] 암호화 대상 확장자



4) 파일 암호화 

암호화 대상 파일의 데이터는 AES 128 알고리즘으로 암호화되고, 이때 사용된 AES키는 RSA알고리즘을 이용해 암호화됩니다. RSA 공개키는 내부 코드에 포함되어 있습니다.

 

[그림 3] RSA 공개키


파일이 암호화 되는 과정은 다음과 같습니다.


① 암호화 대상이 될 원본 파일의 복사본을 생성한다. 복사본 파일은 .JBet 확장자가 추가된다. ex) PalinFile.txt.JBet

② AES알고리즘으로. JBet 파일의 데이터를 암호화 한다. 

③ MoveFileExA함수를 이용해 암호화된 .JBet 파일을 기존 원본 파일명으로 다시 변경한다.  ex)PlainFile.txt 

(MoveFileExA의 Flag 설정 값 때문에 기존 원본 파일을 덮어 씌우게 된다.)

④ 원본 파일명으로 변경된 암호화 파일에 .saturn 확장자를 추가한다.  ex) PlainFile.txt.saturn

다음은 원본 파일의 복사본(.JBet확장자가 추가된)을 생성하고, 데이터를 암호화 시키는 코드의 일부입니다.


[그림 4] 원본 파일 복사본 생성 및 데이터 암호화 코드


암호화가 진행된 파일은 기존 확장자에 .saturn 확장자를 추가합니다.  


[그림 5] 암호화된 파일 .saturn 확장자 추가

 

암호화된 파일은 다음과 같은 파일 구조를 가집니다.  암호화 조건에 따라 16바이트 블록 단위를 맞추기 위해 쓰레기 PADDIN G값을 추가하고, 80byte의 암호화된 AES키 값을 추가합니다. 


[그림 6] 암호화된 파일 구조


암호화가 끝난 후에는 정상적인 파일로서의 기능을 상실합니다.


암호화 전

암호화 후

 


 



[그림 7] 암호화 완료 화면



5) 랜섬노트 생성

암호화가 끝난 폴더 내에는 랜섬노트와 키 파일이 생성됩니다. 바탕화면에는 랜섬노트와 더불어 vbs 스크립트 파일도 함께 생성됩니다. 악성코드 제작자는 랜섬노트를 통해 암호화된 파일을 복구할 수 있는 방법에 대해 안내하며 비트코인 결제를 유도합니다. 생성되는 파일은 다음과 같습니다. 

 

 

성 파일

#DECRYPT_MY_FILES#.html

#DECRYPT_MY_FILES#.txt

#DECRYPT_MY_FILES#.vbs

#DECRYPT_MY_FILESBMP

#KEY-[ID-32자리].KEY

[표 4] 암호화 후 생성되는 파일 ]


‘#DECRYPT_MY_FILES#.vbs’ 스크립트 파일은 사용자에게 음성으로 랜섬웨어 감염 사실을 알립니다. 총 4번 반복됩니다.


[그림 8] 음성 안내 스크립트 파일


.txt와. html로 생성된 랜섬노트도 마찬가지로 사용자가 랜섬웨어에 감염된 사실을 알립니다. 그리고 비트코인 결제를 위한 토르 브라우저 설치를 유도합니다.


[그림 9] 랜섬노트 화면


토르 브라우저 설치 후 랜섬노트에 안내된 주소로 접속하면 KEY파일을 업로드할 수 있는 화면이 나옵니다. 악성코드 제작자는 해당 KEY파일과 captcha 기능을 통해 사용자 본인을 식별합니다. 


[그림 10] 토르 브라우저를 이용한 사용자 로그인 화면


결과적으로, 악성코드 제작자는 복호화에 필요한 ‘Saturn Decryptor’ 소프트웨어를 구매하도록 요구합니다. 구매 비용은 감염 일로부터 7일이내에는 300$(0.02853903 BTC)이고, 7일이 지나면 2배인 600$(0.05707806 BTC)를 지불해야한다고 안내합니다. 


[그림 11] 비트코인 요구 화면



6) 자동실행 등록

C:\Users\사용자계정\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 경로에 바로가기(.lnk) 파일을 생성하여 시스템 재 시작 이후에도 악성코드가 실행될 수 있도록 자동실행 등록합니다. 


[그림 12] 자동실행 등록 화면




결론


이번 Saturn 랜섬웨어의 유포 과정은 명확하지 않으나 신뢰할 수 있는 사람을 사칭한 사용자로부터 메신저, 이메일을 통해 전달 받았을 가능성이 높습니다. 


Saturn 랜섬웨어는 기존 랜섬웨어와 마찬가지로 공격자의 금전적인 이득을 목적으로 합니다. 복호화를 위한 소프트웨어 구매 비용을 일주일 이후에는 2배 이상 올리면서 사용자로 하여금 좀더 저렴한 가격일 때 구입하도록 유도하고 있습니다. 그러나 정작 복호화 비용을 지불 한다고 해서 복호화 소프트웨어를 제공한다는 보장이 없습니다. 100% 복원을 기대하기 어렵기 때문에 비용을 지불하는 것은 권장하지 않습니다. 


따라서, 랜섬웨어에 감염되지 않기 위해서는 예방이 중요합니다. 출처가 불명확한 이메일이나 URL은 실행하지 않아야 합니다. 또한 OS와 애플리케이션을 항상 최신 업데이트 버전으로 유지해야 하고, 중요 자료는 외부 매체에 저장하는 습관을 들여야 합니다.     


현재 알약에서는 해당 랜섬웨어를 ‘Trojan.Ransom.Saturn’으로 진단하고 있습니다. 




티스토리 방명록 작성
name password homepage