보안 위협 분석

온라인 문의

LockBit 5.0 랜섬웨어 분석

악성코드 분석        2026-04-23

LockBit 5.0 랜섬웨어

BorgWarner Blender로 위장한 LockBit 5.0 랜섬웨어 분석

1)개요

LockBit 5.0은 국제 수사기관의 대규모 검거 작전(Operation Cronos) 이후 다시 모습을 드러낸 랜섬웨어다. 랜섬웨어란 피해자의 파일을 암호화해 사용하지 못하게 만든 뒤, 복구 대가로 금전을 요구하는 악성 프로그램이다. LockBit 5.0은 Windows, Linux, VMware ESXi 등 여러 운영체제를 동시에 겨냥할 수 있으며, 보안 솔루션의 탐지를 피하고 피해자가 스스로 복구하지 못하도록 방해하는 기능이 이전 버전보다 강화되었다.
공개된 분석 보고서에 따르면 2025년 9월에 LockBit 5.0 또는 ChuongDong이라는 이름의 변종이 확인되었으며, Check Point Research는 같은 달 LockBit 관련 피해 조직 12곳 중 절반가량이 이 변종에 감염된 것으로 분석했다. AHA와 Health-ISAC 또한 2025년 10월 공동 공지를 통해 LockBit 5.0을 의료기관이 특히 주의해야 할 위협으로 지목했다.
본 보고서에서 분석하는 샘플은 자동차 부품 기업 BorgWarner의 정상 소프트웨어(Blender.exe)로 위장한 LockBit 5.0 변종이다. 파일 속성에는 BorgWarner 명의의 디지털 서명이 표시되지만, 이 서명은 신뢰되지 않는 루트 인증서로 발급되어 유효성 검증에 실패한다.


<그림 1> BorgWarner 명의로 표시되지만 신뢰되지 않는 디지털 서명 정보

2) 분석 대상 및 전체 공격 흐름
공격자는 피싱·취약점·크리덴셜 탈취 등으로 초기 침투한 뒤, BorgWarner 정상 소프트웨어로 위장한 Blender.exe를 실행시킨다. 분석 대상 파일 blender.bin은 두 단계로 나뉜다. 1단계 로더는 분석 환경을 탐지해 정상 환경이면 페이로드를 메모리에 복호화한 뒤, defrag.exe에 주입(Process Hollowing)해 위장 실행하고 스스로를 삭제한다. 2단계 메인 페이로드는 보안 이벤트 기록 차단 → 백업·로그 삭제 → 랜섬노트 배포 → 파일 암호화 순으로 동작한다.

<그림 2> 공격 흐름도

3) 공격 기법 분석
코드 난독화
blender.bin(로더)은 보안 연구자가 내부 코드를 분석하기 어렵도록 세 가지 난독화 기법을 함께 적용하고 있다.

비트 연산 난독화: 프로그램 시작 지점부터 200줄 이상의 복잡한 수식이 나열되어 있다. 수식이 매우 복잡해 보이지만 어떤 입력 값이 들어오든 항상 같은 위치로 이동하는 가짜 분기 구조로, 분석가가 코드 흐름을 추적하지 못하도록 미로처럼 위장한 것이다.
문자열 암호화: 악성 코드 내부의 문자열을 그대로 저장하지 않고, 실행 순간에만 간단한 연산으로 복원해 쓴다. 파일을 정적으로 열어 분석해도 실제 문자열이 보이지 않아 자동화 탐지를 피할 수 있다.
함수 주소 암호화: 내부에서 호출하는 모든 함수의 주소를 난수를 이용해 숨겨둔다. 분석 도구(디버거)가 감지되면 난수 생성 흐름이 의도적으로 오염되어 전체 복호화가 실패하고 프로그램이 조용히 종료된다. 즉, 분석하려는 순간 아무것도 볼 수 없게 만드는 구조다.


<그림 3> 난독화 처리된 진입부 코드

안티디버깅 3중 검사
blender.bin(로더)은 현재 자신이 분석 도구(디버거) 안에서 실행되고 있는지 확인하기 위해 Windows가 각 프로그램 실행 시 내부적으로 관리하는 정보 묶음(PEB)에서 세 가지 항목을 검사한다. 하나라도 디버거가 있음을 나타내는 값이 감지되면 이후 동작이 의도적으로 실패하도록 설계되어 있으며, 악성 기능을 수행하지 않은 채 조용히 종료된다.
검사 항목 위치 정상 값 디버거 환경 값
BeingDebugged 디버거 부착 플래그 PEB+0x02 0 1
NtGlobalFlag 전역 디버그 설정 값 PEB+0xBC 0 0x70 계열 플래그
Heap Flags / ForceFlags 메모리 관리 방식 차이 PEB.ProcessHeap → 내부 구조체 일반 heap flags 메모리 진단 모드 활성화 계열
<표 1> PEB 기반 안티디버깅 3중 검사 항목


<그림 4> PEB 기반 안티디버깅 검사 코드

페이로드 복호화 (XORSHIFT + LZ77 압축 해제)
blender.bin(로더)의 데이터 영역에는 약 1.1MB 크기의 암호화된 데이터가 18개 조각으로 나뉘어 숨겨져 있다. 실행 시 네 개의 상태 값을 돌려가며 난수를 만들어내는 XORSHIFT 방식의 의사난수 생성기를 이용해 바이트 단위로 복호화를 수행하고, 이어서 LZ77 계열 압축을 풀어 실행 가능한 악성 파일 전체를 메모리 위에 복원한다. 이처럼 파일을 디스크에 저장하지 않고 메모리 위에서만 복원하는 이유는, 디스크에 남는 파일을 기준으로 악성코드를 탐지하는 보안 솔루션의 검사를 우회하기 위함이다.

자가삭제
악성 메인 페이로드 실행이 시작되면 blender.bin(로더)은 스스로를 삭제해 흔적을 지운다. 일반적인 파일 삭제는 보안 도구가 탐지하거나 복구 소프트웨어로 되살릴 수 있어, 대신 NTFS 파일 시스템의 대체 데이터 스트림(ADS, Alternate Data Stream) 기능을 악용한다. ADS는 하나의 파일에 눈에 보이지 않는 별도 이름을 붙일 수 있는 Windows 파일 시스템 고유 기능이다. blender.bin(로더)은 원본 blender.bin을 blender.bin:DyRnUm 같이 콜론 뒤에 임의의 이름을 붙인 형태로 먼저 이름을 바꿔둔 뒤, 그 상태에서 삭제 플래그를 설정하고 핸들을 닫는다. 핸들이 닫히는 순간 원본 파일이 제거되며, 이름을 한 번 바꿔둔 덕분에 삭제 작업 자체가 “blender.bin에 대한 삭제”가 아니라 임의 이름 파일에 대한 삭제로 이벤트에 남아 탐지가 어려워진다. 삭제가 끝나면 메모리에 남아 있던 복호화 데이터도 0으로 덮어써 추가 흔적을 제거한다.

<그림 5> 파일 삭제 위장 흔적

Process Hollowing
악성 메인 페이로드는 Windows에 기본 포함된 정상 프로그램 defrag.exe(디스크 조각 모음 도구)를 실행 대상으로 삼는다. 먼저 defrag.exe를 일시 중단(CREATE_SUSPENDED) 상태로 실행해 껍데기 프로세스를 만든 뒤, 그 안에 원래 들어 있던 정상 코드를 모두 지우고 자신의 악성 코드를 통째로 밀어 넣는다. 이어서 프로세스 안 스레드의 실행 시작 지점을 새로 밀어 넣은 악성 코드로 바꾸고 일시 중단을 해제하면, 겉으로는 Windows 정상 프로그램이 실행되는 것처럼 보이지만 실제 실행되는 코드는 악성 코드인 구조가 만들어진다. 이 기법을 Process Hollowing이라 부르며, 실행 중인 프로세스 이름 목록을 감시하는 보안 솔루션의 탐지를 피하는 것을 목적으로 한다.

<그림 6> CreateProcessW 호출 시점의 x64dbg 레지스터

비교 가능한 메모리 범위에서 로더(blender.bin)가 defrag.exe에 배치한 PE 이미지와 실행 중 덤프한 메인 페이로드의 PE 헤더 및 섹션 데이터가 동일하게 확인되었다. 본 그림은 그중 MZ 시그니처, DOS Stub, PE 헤더 및 Optional Header/섹션 헤더 초반부가 시그니처 4D 5A의 주소를 가리키는 부분을 제외하고는 일치하는 대표 구간이다.

<그림 7> 주입 직전 PE 이미지(좌)와 실행 중 메인 페이로드 덤프(우) 비교

실행 옵션 및 초기 제어
blender.bin을 --help 옵션으로 실행하면 공격자가 조정할 수 있는 실행 설정 목록이 출력된다. 이를 통해 암호화 범위, 속도, 랜섬노트 배포 방식 등을 피해 환경에 맞게 세밀하게 조정할 수 있는 구조임을 확인할 수 있다. 명령행 전체 길이는 최대 500자까지 허용된다.
옵션 기능 설명
-p 암호화 경로 지정 암호화할 폴더 경로를 세미콜론(;)으로 구분해 여러 개 입력
-b 제외 폴더 지정 암호화하지 않을 폴더 경로 목록
-m 암호화 범위 선택 all(전체) / local(내 컴퓨터만) / net(네트워크 공유 포함)
-t 시작 대기 시간 암호화를 시작하기 전 지정한 초(秒)만큼 기다림
-n <0/1/2> 랜섬노트 저장 위치 0: 생성 안 함 / 1: 모든 암호화 경로 / 2: C 드라이브 최상위에만
-h / --help 도움말 출력 사용 가능한 옵션 목록을 화면에 출력
-k 실행 파일 보호 .exe 파일은 삭제하지 않음
-w 빈 공간 덮어쓰기 암호화 완료 후 디스크 빈 공간을 무작위 데이터로 채워 복구를 방해
-f 빠른 암호화 파일 일부만 암호화해 속도를 우선으로 처리
-i 조용한 실행 확장자 변경, 랜섬노트 생성, 수정 시각 변경 없이 눈에 띄지 않게 실행
-d 디버그 모드 동작 과정을 화면에 출력하며 실행 (분석·테스트용)
-v 상태 표시 모드 콘솔에 진행 상태바를 표시하며 실행. -p 옵션과 함께 쓰면 비활성됨
-nomutex 중복 실행 허용 기본적으로 한 번만 실행되도록 막혀 있는 제한을 해제해 동시에 여러 개 실행 가능
<표 2> CLI 옵션 목록


<그림 8> --help 실행 시 출력되는 LockBit 5.0 배너 및 CLI 옵션 목록

랜섬노트
랜섬노트(피해자에게 협박 내용을 전달하는 안내문)는 악성 파일 내부에 암호화된 형태로 숨겨져 있다가, 실행 시점에 복호화되어 생성된다. 보안 분석 도구가 파일을 정적으로 열어봐도 내용이 바로 드러나지 않도록 설계된 구조다. 랜섬노트는 파일 암호화 이전 단계에서 먼저 생성되며, 순회 경로 대상에 있는 모든 드라이브와 폴더에 ReadMeForDecrypt.txt라는 이름으로 드랍된다. -n 옵션으로 배포 범위를 조정할 수 있으며(0: 생성 안 함 / 1: 모든 암호화 경로 / 2: C 드라이브 최상위만), 별도 지정이 없으면 광범위하게 배포된다.

<그림 9> 감염 후 생성된 ReadMeForDecrypt.txt 랜섬노트 전문

암호화 대상 탐색을 위한 디렉터리/볼륨 순회
악성 파일은 암호화 대상 드라이브를 탐색할 때 일반적인 알파벳 순서(A → B → C …)를 사용하지 않고, 키보드 자판 배열 순서(Q → W → E → R → T → Y → …) 로 드라이브 문자를 순회한다. 또한 파일 경로를 다룰 때 일반 경로(C:\Users\...) 대신 앞에 \\?\ 라는 특수 접두사를 붙인 확장 경로 형식(\\?\C:\Users\...)을 사용한다. Windows는 기본적으로 파일 경로 전체 길이를 260자(MAX_PATH)로 제한하는데, 이 특수 접두사를 사용하면 제한을 해제해 최대 32,767자까지 사용할 수 있다. 이를 통해 일반 방식으로는 접근이 불가능한 깊게 중첩된 폴더 안의 파일이나 긴 이름의 파일까지 빠짐없이 암호화 대상에 포함할 수 있다.

<그림 10> QWERTY 순서 드라이브 문자 배열

파일 암호화 (XChaCha20/HChaCha20)
blender.bin의 파일 암호화 루틴은 XChaCha20이라는 스트림 암호화 알고리즘을 사용한다. 바이너리 내부에는 "expand 32-byte k"라는 고정 문자열이 포함되어 있는데, 이는 ChaCha20 계열 알고리즘이 초기화 단계에서 반드시 사용하는 표식과 같은 상수로, 이 알고리즘 사용 여부를 판별하는 직접적인 근거가 된다. 암호화 방식은 속도를 우선한 구조다. 파일을 8MB 크기의 블록으로 잘라 순차적으로 읽고, 각 블록을 암호화한 결과를 원본 파일의 같은 위치에 바로 덮어쓴다. 별도 복사본을 만들지 않고 원본 위에 바로 쓰기 때문에 디스크 쓰기 부담이 줄어들고, 대용량 파일도 빠르게 처리할 수 있다. 여러 개의 스레드가 동시에 파일을 처리해 전체 암호화 시간을 더욱 단축한다. 암호화가 끝난 파일 끝부분에는 96바이트 크기의 고정 영역이 추가로 기록된다. 또한 이 영역은 같은 파일이 두 번 이상 암호화되지 않도록 막는 중복 암호화 방지 표식이다. 한 번 암호화 된 파일의 끝에서 이 영역을 먼저 확인하기 때문에, 이미 처리된 파일은 건너뛴다.
알고리즘 XChaCha20 (상수: "expand 32-byte k")
키 도출 HChaCha20로 서브키 유도
처리 단위 8MB 청크(0x800000) 단위 원본 위치 직접 덮어쓰기
Footer 96바이트 footer/trailer 추가
재암호화 방지 필드 footer/trailer 기반 재처리 방지 값을 처리
중복 방지 footer/trailer 구조 확인으로 이미 처리된 파일을 건너뜀
멀티스레드 병렬 처리
<표 3> XChaCha20/HChaCha20 암호화 구조

<그림 11> XChaCha20/HChaCha20 암호화 코드

암호화가 끝난 파일 이름에는 .e9dfbb4bc56636b6, .fe8a70b6b1c3f370처럼 파일마다 다른 16자리의 16진수 문자열이 확장자처럼 붙는다.
이 값은 파일별로 다르게 생성되며, 어떤 파일이 암호화되었는지 추적하고 나중에 복호화 시 각 파일을 식별하는 용도로 쓰인다. 파일 크기는 암호화 전후를 비교하면 정확히 96바이트가 늘어난다. 이는 앞서 설명한 파일 끝에 추가되는 고정 영역의 크기와 일치한다. 이 96바이트 안에 중복 암호화 방지 표식과 복호화에 필요한 정보가 함께 들어 있는 것으로 분석된다.


<그림 12> 암호화 전후 파일명 비교


<그림 13> 암호화 전후 파일 말미 데이터 비교

언어/지역 기반 실행 회피
악성 파일은 실행 시 운영체제의 언어 설정과 지역 코드를 가장 먼저 확인한다. 러시아어 환경으로 판단되면 "Do not try to offend the Russians ;-)" 메시지를 출력한 뒤 스스로 실행을 종료한다. 이는 러시아 기반 랜섬웨어 그룹이 자국 또는 동맹국을 공격 대상에서 제외하는 전형적인 수법이다.

<그림 14> 언어/지역 기반 실행 회피 코드

Mutex (단일 인스턴스 검사)
실행 초반에 "Instance Check"라는 이름의 잠금 객체(Mutex, 뮤텍스)를 생성해, 같은 악성 파일이 동시에 두 개 이상 실행되지 않도록 막는다. 뮤텍스는 Windows가 제공하는 프로그램 간 동시 실행 제어 기능으로, 같은 이름의 뮤텍스가 이미 존재하면 새로 실행된 프로세스는 종료된다. -nomutex 옵션을 지정하면 이 검사를 건너뛰어 여러 개를 동시에 실행할 수 있다.

보안 이벤트 기록 차단(ETW 패치)
Windows가 프로그램의 모든 동작을 실시간으로 기록하는 내부 로깅 시스템이다. 보안 솔루션(EDR, AV 등)은 이 기록을 분석해 이상 행위를 감지한다. 악성 파일은 ETW의 핵심 기록 함수(EtwEventWrite)의 첫 번째 명령어를 0xC3(즉시 반환하는 RET 명령)으로 덮어쓴다. 함수가 호출되는 즉시 아무 일도 하지 않고 되돌아오게 만들어, 이 프로세스 안에서 발생하는 모든 보안 이벤트 기록을 차단한다.

이벤트 로그 삭제
Windows 이벤트 로그는 시스템에서 발생한 모든 활동을 기록한 파일로, 침해 사고 조사 시 핵심 증거로 활용된다. 악성 파일은 이 로그를 관리하는 라이브러리(wevtapi.dll)를 동적으로 불러와, 로그 채널을 하나씩 열고 내용을 삭제한다. 이로써 사후 포렌식 추적을 방해한다.

볼륨 섀도 서비스(VSS) 삭제
VSS(Volume Shadow Service)는 Windows가 주기적으로 생성하는 자동 백업 스냅샷으로, 시스템 복원과 파일 버전 복구에 쓰인다. 악성 파일은 COM 인터페이스를 통해 VSS 관리 API를 호출해 이 백업본을 모두 제거한다. 이는 피해자가 암호화된 파일을 과거 버전으로 되돌리지 못하도록 복구 경로를 차단하는 것을 목적으로 한다.

TEMP 폴더 정리
악성 파일은 실행 과정에서 Windows 임시 파일 저장 폴더(\AppData\Local\Temp\)에 남긴 흔적을 스스로 삭제한다. 포렌식 조사 시 임시 폴더는 악성 행위의 흔적이 남는 주요 위치 중 하나이므로, 이를 직접 정리해 사후 분석을 방해한다. 이 경로는 동시에 암호화 제외 경로로도 지정되어 있어, 정리 동작 중인 파일이 실수로 암호화되는 상황을 막도록 설계되어 있다.

<그림 15> 감염 전후 TEMP 폴더(\AppData\Local\Temp) 비교

빈 공간 덮어쓰기(Free-Space Wipe)
-w 옵션을 지정하고 실행하면, 디스크의 빈 공간 전체를 임의의 데이터로 덮어쓰는 동작을 추가로 수행한다. 파일을 삭제해도 실제 데이터는 디스크에 일정 시간 남아 있어 복구 도구로 되살릴 수 있는데, 빈 공간을 덮어씌우면 이미 삭제된 파일의 데이터까지 복구가 불가능해진다. 이 동작이 실패하면 내부에 별도 오류 메시지가 기록되고, 실패 여부와 관계없이 암호화는 완료 상태로 처리된다.


제외 확장자 및 파일 목록
시스템 구동에 필수적인 파일 형식과 악성코드 자신이 생성한 메타데이터 파일은 암호화 대상에서 제외한다. 운영체제 핵심 파일(exe, dll, sys 등)까지 암호화하면 컴퓨터 자체가 부팅되지 않아 피해자가 랜섬노트조차 열어볼 수 없게 되고, 이 경우 협박 자체가 성립하지 않기 때문이다.
확장자 및 파일
exe, dll, sys, lnk, cpl, encmeta / iconcache.db, e.db, thumbs.db
<표 4> 제외 확장자 및 파일 목록

제외 폴더 목록
운영체제 복구·부팅·응용 프로그램 실행에 필요한 핵심 경로도 제외된다.
폴더
$Recycle.Bin, AllUsers, Boot, chocolatey Microsoft Office, Microsoft Visual Studio, Windows Kits, WindowsApps VisualStudio, System Volume Information, Microsoft\Windows, Windows\Hyper-V \AppData\Local\Temp\
<표 5> 제외 폴더 목록


4)결론
본 보고서에서 분석한 샘플은 BorgWarner의 정상 소프트웨어(Blender.exe)로 위장한 LockBit 5.0 / ChuongDong v1.01 계열 Windows 랜섬웨어다. 1단계 파일이 악성 코드를 메모리 위에서만 꺼내 실행한 뒤 스스로 삭제되고, 2단계부터는 Windows 정상 프로그램인 defrag.exe 안에 숨어 동작하기 때문에 디스크 기반·프로세스 이름 기반 보안 솔루션으로는 탐지가 어렵다.
파일 암호화 전에 랜섬노트를 먼저 배포한 뒤, XChaCha20 계열 스트림 암호로 파일 본문을 암호화하며, 각 파일에 고유 16자리 식별자와 96바이트 마커를 추가한다. 보안 이벤트 기록 차단(ETW 패치), Windows 이벤트 로그 삭제, 볼륨 섀도 서비스(VSS) 삭제, 임시 폴더 정리, ADS 방식 자가삭제 등 분석 방해와 복구 방해를 동시에 수행해, 피해자가 자체적으로 대응하거나 증거를 수집하기 매우 어렵게 만든다.
방어 관점에서는 다음 행위들을 조합해서 감지하는 것이 중요하다.
① defrag.exe가 CREATE_SUSPENDED 상태로 생성된 직후 외부 프로세스에 의해 메모리가 기록되는 행위
② EtwEventWrite 함수 시작 바이트가 런타임에 0xC3로 변경되는 행위
③ wevtapi.dll·vssapi.dll이 짧은 시간 내 연속 동적 로드되는 행위
④ 다수 파일이 16자리 16진수 확장자로 일괄 rename되는 행위
⑤ 드라이브 루트에 ReadMeForDecrypt.txt가 동시다발적으로 생성되는 행위
또한 네트워크 공유 폴더까지 암호화 범위가 확장될 수 있으므로, 엔드포인트와 파일 서버 양쪽에서 행위 기반 탐지를 병행해야 한다.


5) IOCs
본 분석 샘플 MD5
95daa771a28eaed76eb01e1e8f403f7c

관련 LockBit 5.0 MD5
48b0a4505a96a640300e43e2af712276
8f718979876dd1050ce4f729d69e0072
2513d6678b476a432af2e84fff485b44
c462c6b02b35df2910689947c5090fae
e47032b3d1b9cbbcf77741d5d260004d  
ca93d47bcc55e2e1bd4a679afc8e2e25
a1539b21e5d6849a3e0cf87a4dc70335
5e1f61b9c1c27cad3b7a81c804ac7b86
274e5ff2aa33e7ec980700e617eb2214  
2908589ca1a1f5d98c7f71563a3abac6
bf4443f6dbbdee8816aa9a1098374326

본 분석 샘플 URL
http://lockbitfbinpwhbyomxkiqtwhwiyetrbkb4hnqmshaonqxmsrqwg7yad[.]onion
http://lockbitsuppyx2jegaoyiw44ica5vdho63m5ijjlmfb7omq3tfr3qhyd[.]onion
http://lockbitapt67g6rwzjbcxnww5efpg4qok6vpfeth7wx3okj52ks4wtad[.]onion




6) 참고 자료








 

김민수

위협분석센터                                                          ms.kim2@piolink.com

  • 목록
문의