top of page

현재까지 파악된 랜섬웨어에 대하여 06 (Nemty, Ragnar, Immunl)



이 문서는 2021년 3분기까지 공개된 KISA의 분기별 랜섬웨어 동향 보고서를 제외하고 이후 공개된 랜섬웨어 암호기능 분석 보고서를 대상으로 확인하였습니다.


문서에 표기된 특정 랜섬웨어에 대한 자세한 정보는 KISA 홈페이지를 통해 분석 보고서를 다운로드하여 열람할 수 있습니다.


 

국내 랜섬웨어 대응 06 Nemty Ragnar Immuni

1. Nemty

Nemty 랜섬웨어는 2019년 8월에 처음으로 발견되었고 비너스락커 조직에서 유포하는 것으로 알려져있습니다. 이 랜섬웨어는 입사지원서, 포트폴리오 및 부당 전자상거래 위반행위 등의 제목으로 위장한 이메일에 첨부파일로 포함되어 배포되었습니다.


Nemty 랜섬웨어는 현재 3.1버전까지 업데이트(2020.05.06)되었고 1 버전은 복호화 도구가 개발되었으나 이를 보완한 2 버전 이후로는 복구 도구가 개발되지 않았습니다.


이 랜섬웨어는 감염 대상 컴퓨터 정보를 수집하고 감염 후 복구할 수 없도록 볼륨 섀도우 복사본은 삭제합니다. 또한 공격자의 이메일 주소가 담긴 랜섬 노트를 생성하고 감염 시스템 내부 파일을 모두 암호화합니다.


[감염 대상 컴퓨터 수집 정보]

하드웨어 프로필 GUID, IP, 국가, 감염 Nemty 버전, 시스템 이름, 사용자 이름, 드라이브 정보(타입, 문자열, 크기, 사용 크기)


[암호와 제외 대상 문자열]

windows

CONFIG.SYS

$RECYCLE.BIN

RECYCLER

rsa

BOOTSECT.BAK

NTDERECT.com

bootmgr

ntldr

programdata

MSDOS.SYS

appdata

IO.SYS

Program Files

boot.ini

AUTOEXEC.BAT

ntuser.dat

desktop.ini

Common Files (2 버전)

TorDir (2 버전)

DECRYPT.txt (2 버전)

NEMTY (2 버전)


[암호화 제외 확장자]

lnk, exe, log, cab, cmd, com, cpl, ini, dll, url, pif,

ttf(3 버전), mp3(3 버전), mp4(3 버전), NEPHILIM(3 버전), msi(3 버전)


[암호화]

Nemty 랜섬웨어는 파일을 암호화하기 위해 AES 암호화를 사용합니다. 또한 암호화가 완료된 파일의 확장자를 .NEMTY_랜덤숫자로 변경합니다.


[복호화]

Nemty 랜섬웨어는 자체 복구가 어렵습니다. 하지만 아래 특수한 경우에 대하여 복구가 가능합니다.


/* 제작자의 RSA-8192 개인키를 획득했을 경우 */

RSA-8192 개인키를 획득하면 RSA-512와 RSA-2048의 개인키를 복호화할 수 있으므로 AES 파일 암호키를 획득하고 파일 복호화가 가능해집니다.


/* 로컬에서 생성된 RSA-512와 RSA-2048의 개인키를 획득하는 경우 */

Nemty 랜섬웨어가 실행하는 중에 메모리 덤프를 통해 RSA-512와 RSA-2048 개인키를 획득하면 AES 파일 암호키를 획득하여 파일 복호화가 가능해집니다.


/* 파일 암호키를 재현할 수 있는 경우 */

AES 파일 암호키 재현을 위해 랜섬웨어 실행 당시의 시간 값, clock 값, 프로세스 개수 및 메모리 할당 크기에 대한 정보를 얻고 해당 정보를 기반으로 seed 값을 계산하여 Srand() 함수를 통해 키 생성에 필요한 랜덤 값을 획득할 수 있습니다.


 

2. Ragnar

Ragnar Locker 랜섬웨어는 2020년 4월 포르투갈의 다국적 에너지 대기업인 EDP(Energias de Portugal)를 공격하여 1,0000만 달러를 요구하고 같은 해 7월에는 미국의 여행 관리 회사인 CWT(Carlson Wagonlit Travel)를 공격하여 450만 달러를 받아낸 전적이 있습니다.


이 랜섬웨어는 사용자의 시스템 언어를 확인하여 특정 언어를 사용하는 시스템인 경우 감염을 수행하지 않습니다. 또한 복원, 백업, DB 관련 특정 서비스를 중지시키고 시스템 복원 기능을 이용하지 못하도록 볼륨 섀도 복사본을 삭제합니다.


Ragnar 랜섬웨어는 tor 브라우저를 이용한 연락 방법과 공격자의 메일 주소가 적혀있는 랜섬노트를 생성하고 파일을 암호화합니다.


[암호화 제외 시스템 언어]

Azerbaijani

Armenian

Belorussian

Kazakh

Kyrgyz

Moldavian

Tajik

Russian

Turkmen

Uzbek

Ukrainian

Georgian


[암호화 제외 대상 확장자]

.db

.msi

.sys

.drv

.dll

.exe

.lnk


[암호화 제외 대상 폴더]

Windows

Windows.old

Tor browser

Internet Explorer

Google

Opera

Opera Software

$Recycle.Bin

Mozilla

Mozilla Firefox

ProgramData

All Users


[암호화 제외 대상 파일]

autorun.inf

boot.ini

bootfont.bin

bootsect.bak

desktop.ini

iconcache.db

ntldr

ntuser.dat

ntuser.dat.log

ntuser.ini

thumbs.db

랜섬노트 파일명


[암호화]

Ragnar 랜섬웨어는 랜덤 값을 이용하여 해시값 일부로 이루어진 두 개의 시드(seed)를 생성하고 비트 연산자, 시프트 연산자와 같이 산술 연산자로 섞어서 무작위 값을 Salsa20 알고리즘과 함께 파일을 암호화 합니다.


파일 암호화에 사용된 시드 값들은 랜섬웨어 내부의 제작자의 공개키로 RSA-2048로 암호화하여 암호화된 파일 후위에 "_RAGNAR_" 문자열과 함께 추가합니다.


[복호화]

Ragnar 랜섬웨어는 아래 2가지 경우 복구가 가능합니다.


/* 제작자의 RSA-2048 개인키를 획득하는 경우 */

파일 암호화에 사용된 시드 값은 RSA-2048 개인키로 암호화되어 암호화된 파일 후위에 저장되어 있으며 이 시드 값을 제작자의 개인키로 복구하고 복구된 시드를 이용하여 암호화된 파일을 복호화할 수 있습니다.


/* 키 재사용 공격을 통한 파일 복구 방안 */

Ragnar 랜섬웨어는 동일한 키를 이용하여 Salsa20 스트림 암호로 모든 파일을 암호화하기 때문에 암호화된 파일 일부를 복구할 수 있습니다.


스트림 암호의 경우, 동일한 암호키를 사용하여 암호화를 진행하는 경우 키 재사용 공격(Reused key attack)이 가능합니다. 이러한 특성을 이용하여 원본 파일과 암호화된 파일을 확보하여 파일을 복구할 수 있습니다.


 

3. Immuni

Immuni 랜섬웨어는 2020년 5월경 코로나19 바이러스를 악용하여 유포되었습니다. immuni는 이탈리아 정부에서 코로나 감염경로 추적을 위해 제작된 모바일 어플리케이션이지만 공격자들은 이탈리아 약사 연맹(FOFI) 웹사이트와 유사한 가짜 피싱 사이트를 제작했습니다. 공격자들은 이 피싱 사이트에서 immuni PC 버전을 다운로드할 수 있다는 내용과 함께 메일을 전송하여 사용자가 Immuni 랜섬웨어를 다운로드 받도록 유도하였습니다.


Immuni 랜섬웨어가 실행되면 코로나 감염 현황이 표시된 차트를 보여주고 "FUCKUNICORN" 가 적힌 바탕화면으로 변경됩니다. 또한 특정 위치로 랜섬웨어 실행파일을 옮기고 파일 이름을 변경합니다.


그리고 파일을 암호화 후 암호화가 끝난 파일 명 뒤에 .fuckunicornhtrhrtjrjy 확장자를 추가합니다. 또한 "READ_IT.txt" 파일 명을 가진 랜섬노트를 생성하며 이 랜섬노트에는 이탈리아어로 작성된 300 유로 요구 사항과 Bitcoin 주소, 공격자의 메일 정보가 담겨있습니다.



[랜섬웨어 실행 파일 위치 및 파일 명]

C:\Users\<username>\Rand123\local.exe


[파일 암호화 대상 경로]

C:\Users\<username>\Desktop

C:\Users\<username>\Links

C:\Users\<username>\Contacts

C:\Users\<username>\Documents

C:\Users\<username>\Downloads

C:\Users\<username>\Pictures

C:\Users\<username>\Music

C:\Users\<username>\OneDrive

C:\Users\<username>\Saved Games

C:\Users\<username>\Favorites

C:\Users\<username>\Videos


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

오피스, 일반 문서, 소스파일, 미디어 파일, 압축파일 등 약 70가지의 확장자


[암호화]

Immuni 랜섬웨어는 랜덤 함수를 기반으로 생성한 패스워드를 이용하여 암호키와 IV를 생성하고 AES-256-CBC 알고리즘과 PKSC7 패팅을 이용하여 파일을 암호화합니다.


[복호화]

Immuni 랜섬웨어는 아래 3 가지 복구할 수 있는 경우가 존재합니다.


/* 볼륨 섀도 복사본 복구 */

Immuni 랜섬웨어는 감염 후 볼륨 섀도 복사본을 삭제하지 않기 때문에 볼륨 섀도 복사본이 활성화 되어 있고, 시스템 감염 이전 시점에 대한 파일이 저장되어 있는 경우 이를 이용하여 원본 파일을 복구할 수 있습니다.


볼륨 섀도 복사본은 ShadowExplorer 같은 섀도 파일 복구 프로그램을 이용하여 복구할 수 있습니다.


/* 메모리 덤프 */

Immuni 랜섬웨어는 암호화가 완료되어도 프로세스가 종료되지 않습니다. 이 Immuni 랜섬웨어 프로세스의 메모리 덤프를 확보하고 암호화에 사용한 암호키와 IV를 추출할 수 있습니다. 추출된 암호키와 IV를 이용하여 암호화된 파일을 복구할 수 있습니다.


/* Seed 값 전수조사 */

위 두 방법을 모두 사용할 수 없는 경우 Seed 값 전수조사를 통해 암호화된 파일을 복호화할 수 있습니다. Immuni 랜섬웨어는 컴퓨터가 부팅된 뒤부터 호출할 때까지의 시간을 재는 tickcount 값을 시드 값으로 사용하기 때문에 4 바이트 크기의 경우의 수를 모두 대입하여 시드 추출할 수 있으며 이를 통해 암호화 키와 IV를 확보 할 수 있습니다. 다만 사용자의 감염 상황에 따라 값을 추출하는 시간이 상이하며 이론상 최대 약 43억회의 확인 작업이 필요합니다.



bottom of page