[악성코드 분석리포트] Trojan.Ransom.Filecoder
최근 랜섬웨어 수가 급증하면서 파일을 암호화 하는 대신 파일의 데이터를 삭제하는 악성코드 유형이 발견되었습니다.
‘GermanWiper’라 불리는 이 악성코드는 대부분 랜섬웨어와 동일한 증상을 보입니다. 제외 확장자 및 문자열이 존재하고 복호화를 위한 랜섬노트를 생성하거나 바탕화면도 변경합니다. 하지만 파일 암호화 대신 파일의 데이터를 ‘0’으로 덮어 씌운다는 점에서 기존 랜섬웨어와 차이점이 있다. 데이터가 파괴된 파일은 랜섬웨어와 마찬가지로 임의의 확장자가 추가됩니다.
따라서 본 보고서에서는 파일 암호화를 위장한 ‘Trojan.Ransom.Filecoder’에 대해 상세 분석하고자 합니다.
2.1. 프로세스 인젝션
[그림 1] 프로세스 인젝션 코드
2.2. 파일 암호화를 위장한 파일 삭제
주요 악성 행위는 파일 내부의 데이터를 삭제한 뒤 랜섬웨어 같이 파일이 암호화되어 확장자가 변경된 것처럼 위장하는 것입니다.
먼저, 현재 실행 중인 프로세스를 검색하여 민감한 정보에 접근하는 프로세스들을 종료시킵니다. 이는 해당 프로세스에서 파일 접근 시, 정상적으로 데이터 삭제가 진행되지 않을 수 있기 때문입니다. 프로세스 목록은 다음과 같습니다.
notepad.exe
dbeng50.exe
sqbcoreservice.exe
encsvc.exe
mydesktopservice.exe
isqlplussvc.exe
agntsvc.exe
sql.exe
sqld.exe
mysql.exe
mysqld.exe
oracle.exe
[표 1] 종료 대상 프로세스 목록
프로세스를 종료하고 로컬에 연결되어 있는 드라이브 A~Z까지 검색하여 데이터 삭제 대상 파일을 찾습니다.
[그림 2] 드라이브 검색 코드
드라이브 검색 후 특정 문자열을 가지는 파일 및 폴더는 데이터 삭제 대상에서 제외됩니다. 이는 시스템의 안정성과 효율적인 파일은 제외함으로써 정상적인 데이터 삭제를 하기 위함으로 보입니다. 다음은 제외 대상 폴더 문자열 목록입니다.
windows
recycle.bin
mozilla
boot
applicationdata
appdata
programfiles
programfiles(x86)
programme
programme(x86)
programdata
perflogs
intel
msocache
systemvolumeinformation
[표 2] 제외 대상 폴더 문자열 목록
다음은 제외대상 파일 확장자 목록입니다.
'386', '.adv', '.ADV', '.ani', '.ANI', '.bat', '.BAT', '.bin', '.BIN', '.cab', '.CAB', '.cmd', '.CMD', '.com', '.COM', '.cpl', '.CPL', '.cur', '.CUR', '.deskthemepack', '.DESKTHEMEPACK', '.diagcab', '.DIAGCAB', '.diagcfg', '.DIAGCFG', '.diagpkg', '.DIAGPKG', '.dll', '.DLL', '.drv', '.DRV', '.exe', '.EXE', '.hlp', '.HLP', '.icl', '.ICL', '.icns', '.ICNS', '.ico', '.ICO', '.ics', '.ICS', '.idx', '.IDX', '.ldf', '.lnk', '.LNK', '.mod', '.MOD', '.mpa', '.MPA', '.msc', '.MSC', '.msp', '.MSP', '.msstyles', '.MSSTYLES', '.msu', '.MSU', '.nls', '.NLS', '.nomedia', '.NOMEDIA', '.ocx', '.OCX', '.prf', '.PRF', '.psl', '.PSL', '.rom', '.ROM', '.rtp', '.RTP', '.scr', '.SCR', '.shs', '.SHS', '.spl', '.SPL', '.sys', '.SYS', '.theme', '.THEME', '.themepack', '.THEMEPACK', '.wpx', '.WPX', '.lock', '.LOCK', '.hta', '.HTA', '.msi', '.MSI', 'autorun.inf', 'boot.ini', 'bootfont.bin', 'bootsect.bak', 'desktop.ini', 'iconcache.db', 'ntldr', 'ntuser.dat', 'ntuser.dat.log', 'ntuser.ini', 'bootmgr', 'bootnxt', 'thumbs.db'
[표 3]제외 대상 파일 확장자 목록
데이터가 삭제된 파일들은 다음과 같이 임의의 확장자로 변형됩니다. 랜섬웨어와 동일하게 파일 확장자를 변경하지만 실제로 암호화가 진행된 것이 아니라 파일 데이터가 삭제된 상태입니다.
데이터 삭제 전 | 데이터 삭제 후 |
|
|
[표 4] 데이터 삭제 전/후 비교 화면
실제 확장자가 변경된 파일의 데이터를 확인해보면 다음과 같이 ‘0’으로 덮어 씌어져 있습니다. 이를 통해 모든 데이터가 삭제되었음을 알 수 있습니다.
[그림 3] 삭제된 데이터 화면
데이터 삭제 이후에는 복호화 방법을 안내하는 랜섬노트 파일을 생성하고 바탕화면을 변경하여 사용자 결제를 유도합니다. 변경된 바탕화면은 내용은 다음과 같이 ‘당신의 데이터는 암호화 되었습니다. 데이터를 어떻게 복호화 할 수 있는지 T4tSp_Entschluesselungs_Anleitung.html(복호화가이드) 파일을 열어 확인하십시오!’ 의 뜻으로 해석됩니다.
[그림 4] 독일어로 변경된 바탕화면
또한, 랜섬노트를 시작프로그램 위치에 생성함으로써 부팅 시마다 실행되도록 합니다.
[그림 5] 랜섬노트 화면
2.3. 볼륨섀도우 삭제
사용자가 시점 복원을 통해 파일들을 복원할 수 있기 때문에 공격자는 이를 방해하기 위하여 볼륨섀도우를 삭제합니다. 해당 코드는 다음과 같습니다.
[그림 6] 볼륨섀도우 삭제 코드
실제 cmd 창을 통해 작업이 완료된 화면입니다.
[그림 7] 볼륨섀도우 실행 화면
결론
이번에 살펴 본 악성코드는 파일 암호화를 위장한 ‘GermanWiper’ 로써 로컬 파일들을 검색하여 내부 내용을 모두 삭제하고 확장자를 변경합니다. 뿐만 아니라 시점 복원을 방지하기 위하여 볼륨섀도우를 삭제합니다.
데이터가 삭제된 파일은 파일 자체는 존재하지만 내부 데이터를 모두 삭제해 포렌식을 이용한 파일 복원도 어렵고 공격자 또한 삭제된 데이터를 복원할 수 없어 복구가 불가능합니다. 그렇기 때문에 사용자는 공격자의 의도대로 복호화를 위한 결제 비용을 지불한다면 복호화를 장담할 수 없습니다.
따라서, 사용자들은 신뢰할 수 없는 사이트 접속을 지양하고 출처가 불분명한 이메일 첨부파일을 열어보는 행위를 삼가해야 하며 백신의 주기적인 업데이트를 습관화하여야 합니다.
현재 알약에서는 ‘Trojan.Ransom.Filecoder’ 로 진단하고 있습니다.