선택적 암호화 알고리즘을 사용하는 Qilin 랜섬웨어 분석 (리눅스 환경 대상 유포, ELF 형태)

선택적 암호화 알고리즘을 사용하는 Qilin 랜섬웨어 분석 (리눅스 환경 대상 유포, ELF 형태)

최근 Qilin 랜섬웨어가 전 세계 다양한 국가와 산업의 기업들을 대상으로 지속적인 공격을 감행하고 있으며, 국내에서도 피해 사례가 확인되고 있다. 이에 따라 본 게시글에서는 Qilin 랜섬웨어 ELF 유형에 대한 주요 특징과 암호화 방식, 그리고 복호화가 불가능한 기술적 이유를 분석하여, 향후 유사한 위협에 효과적으로 대응할 수 있는 인사이트를 제공하고자 한다.
 

Qilin 랜섬웨어 그룹은 2022년 8월 처음 등장했으며, 일부에서는 Agenda 랜섬웨어라고도 불린다. 다양한 국가를 대상으로 파일 암호화 및 데이터 탈취를 통해 협박하는 방식의 공격을 수행하며, Windows 기반 시스템을 겨냥한 PE 유형에서는 스피어 피싱, 언어 전환(Go → Rust), 주요 산업 대상 공격 등의 특징이 확인되었다. 이러한 내용은 “선택적 암호화 알고리즘을 사용하는 Qilin 랜섬웨어 분석”[1]에 작성되었으며, 본 게시글에서는 ELF 유형의 Qilin 랜섬웨어를 다룬다.

 

ELF 유형의 Qilin 랜섬웨어는 리눅스 및 유닉스 기반 시스템을 겨냥하며, 특히 서버 환경에서의 피해 가능성이 크다. 이 유형은 PE 기반과 유사한 암호화 기능을 가지면서도, 리눅스 환경에 특화된 명령어를 활용해 시스템을 장악한다.

 

PE 유형과 ELF 유형의 차이

분석내용에 앞서 Qilin 랜섬웨어의 PE 유형과 ELF 유형의 차이를 간략하게 나타낸 표이다. [표 1]에서 볼 수 있듯이 비밀번호 비교는 PE 유형과 ELF 유형이 동일하지만, 나머지 행위들은 다른 것을 확인할 수 있다.

 

항목

PE

ELF

비밀번호 비교

SHA-256

SHA-256

복구 방해

Volume Shadow Copies, Windows Event Log 삭제

ESXi의 VMFS 파일시스템과 설정 조작, Nutanix의 AHV VM 우선순위(HA) 비활성화

서비스 종료

데이터 저장·관리, 백업·복구, 가상화 및 보안 관련 서비스 등의 서비스 종료

X

프로세스 종료

데이터 저장·관리, 백업·복구, 가상화 및 보안 관련 프로세스 종료

VM 프로세스 종료

암호화 알고리즘

AES-256, ChaCha20, RSA-4096

AES-256, RSA-4096

파일 암호화 시도 횟수

한 번 암호화

세 번 암호화

바탕화면 변경

O

X

랜섬노트

README-RECOVER-<암호화 확장자>.txt

<암호화 확장자>_RECOVER.txt

[표 1] PE 유형과 ELF 유형의 차이

 

분석 내용

Qilin 랜섬웨어의 ELF 유형의 초기 루틴은 PE 유형과 동일하게 “–password” 인자를 통해 올바른 비밀번호가 입력된 경우에만 동작하며, SHA-256 해시 알고리즘을 사용해 비밀번호를 비교한다. 그러나 ELF 유형은 추가로 “–path” 인자를 통해 암호화 대상 폴더를 지정하거나 “–whitelist” 인자가 존재하여야 실행된다. 또한, 실행되는 모든 과정은 <파일명>.log.<랜덤 숫자 8개> 파일에 작성된다.

 

본문에서는 PE 유형과 마찬가지로 조건문을 우회하여 진행하였다. 중복 실행 방지의 경우 PE 유형과는 다르게 Mutex 생성이 아닌 <랜섬웨어 파일명>.lock 파일을 생성하여 해당 파일의 존재 유무로 중복 실행을 방지한다. 또한 여러 개의 인자를 지원하며, 각 인자 값의 세부 내용은 아래 [표 2]와 같다.

 

 

인자 값

행위

–debug

디버그 로그 활성화

–dry-run

암호화 대상 파일 확인, 암호화 수행 X

–help

도움말 출력

–log-level

로그 레벨 설정 (0~5)

–no-df

폴더 White/Black list 무시

–no-ef

확장자 White/Black list 무시

–no-ff

파일 White/Black list 무시

–no-proc-kill

VM 프로세스 강제 종료 비활성화

–no-rename

암호화 확장자 변경 비활성화

–no-vm-kill

VM 프로세스 강제 종료 비활성화

–path

실행 시 필요한 암호화 대상 폴더 지정

–password

실행 시 필요한 비밀번호 입력

–rename

암호화 확장자 변경 활성화 (default)

–timer

암호화 작업 지연 설정

–whitelist

White list 모드 활성화 (default= Black list)

–yes

모든 질문에 대해 ‘yes’로 응답

[표 2] 인자 값 별 행위 (ELF 유형)

 

 

ELF 유형의 Qilin 랜섬웨어는 Linux 환경을 확인한다. Linux 환경이 만약 ESXi나 Nutanix일 경우 VM 장애 및 데이터 손상 유도형 루틴을 수행한다.

 

ESXi VMFS 파일시스템 조작

for I in $(esxcli storage filesystem list |grep ‘VMFS-5’ |awk ‘{print $1}’);
do
    vmkfstools -c 10M -d eagerzeroedthick $I/eztDisk > /dev/null;
    vmkfstools -U $I/eztDisk > /dev/null;
done

[표 3] ESXi VMFS 파일시스템 조작

 

ESXi 고급 설정 조작

esxcfg-advcfg -s 32768 /BufferCache/MaxCapacity
esxcfg-advcfg -s 20000 /BufferCache/FlushInterval

[표 4] ESXi 고급 설정 조작

 

Nutanix AHV VM 우선순위(HA) 비활성화

for vm_id in `acli vm.list | grep -oP ‘([a-f0-9-]{36})’ | awk ‘{print $1}’`;
do
    acli vm.update $vm_id ha_priority=0;
done

[표 5] Nutanix AHV VM 우선순위(HA) 비활성화

 

주요 파일을 잘못 암호화하여 시스템이 손상되는 것을 방지하기 위해, 암호화에서 제외되는 확장자와 파일 및 경로가 별도로 지정되어 있다. 자세한 목록은 아래 [표 7], [표 8], [표 9]와 같다.

 

암호화 제외 파일 확장자

v00, v01, v02, v03, v04, v05, v06, v07, v08, v09, b00, b01, b02, b03, b04, b05, b06, b07, b08, b09, t00, t01, t02, t03, t04, t05, t06, t07, t08, t09, g6Fx_dqnnL (암호화 확장자이며 파일마다 상이함)

[표 6] 암호화 제외 파일 확장자

 

암호화 제외 파일 이름

initrd, vmlinuz, basemisc.tgz, boot.cfg, bootpart.gz, features.gz, imgdb.tgz, jumpstrt.gz, onetime.tgz, state.tgz, useropts.gz

[표 7] 암호화 제외 파일 확장자

 

암호화 제외 경로

/boot/, /proc/, /sys/, /run/, /dev/, /lib/, /etc/, /bin/, /mbr/, /lib64/, /vmware/lifecycle/, /vdtc/, /healthd/

[표 8] 암호화 제외 경로

 

 

파일 암호화

암호화 제외 경로, 파일, 확장자 확인이 완료되면 파일 암호화를 진행하기전에 파일 암호화에 사용할 알고리즘을 선택하는 PE 유형과는 다르게 ELF 유형의 경우 AES-256 알고리즘만 사용한다. 따라서, 파일은 AES-256 (대칭키)으로 암호화되고, 암호화 키는 RSA-4096 (공개키)로 암호화된다.

 

모든 확인 절차가 완료되면 파일 전체 데이터가 암호화된다. 암호화가 완료된 후, 파일의 끝에는 “—–END CIPHERTEXT BLOCK—-“문자열이 추가되어 암호화된 데이터 구간이 명확히 구분된다. 이후 암호화된 데이터의 첫 부분에서 최대 512바이트까지의 데이터가 삽입된다. 최종 파일 구조는 “암호화된 데이터 + 암호화된 키 데이터 + 끝을 알리는 문자열 + 암호화된 데이터(최대512바이트)”의 형태로 구성된다. 따라서 로컬 환경에는 해당 파일을 복호화 할 수 있는 단서가 남아 있지 않게 된다.

 

ELF 유형과 PE 유형의 가장 큰 차이점은 ELF 유형의 경우 파일을 세번 암호화하여 복호화를 어렵게 한다. 이때, 파일 원본을 세번 암호화하는 것이 아닌 위의 과정을 세번 반복한다. 이는 [그림 1]과 같다. 1차 암호화의 경우 PE 유형과 마찬가지로 원본 파일의 크기를 정확하게 파악할 수 있는 형태이지만 1차 암호화된 형태 전체를 두 번 더 암호화하면서 원본 파일의 크기를 파악할 수 없다. 2차 암호화와 3차 암호화를 거친 후 데이터의 크기는 원본의 약 3배 정도의 차이가 있다.

 


[그림 1] 파일 암호화 이후 추가되는 데이터 구조 (원본 16바이트 크기의 파일이 암호화된 상태)

 

안랩 대응 현황

안랩 제품군의 진단명과 엔진 날짜 정보는 다음과 같다.

 

[V3 진단]

  • Ransomware/Linux.Qilin.1395184 (2025.09.17.00)

 

[EDR 진단]

  • DefenseEvasion/EDR.Remove.M11361 (2023.10.18.01)
  • Ransom/EDR.Decoy.M10879 (2023.12.18.03)

 

MD5

37aeb403ec4979626e2ec85380296439
457b4eeb5b9090476ea52ceccdf63c0b
4ca3438f72d0ee6fc2c0c572db9fa866
b04e8ee43aba85fa5c585b9335c953c2
e7adc46e79fc8a44b986ef77dfb1f4c5