El Dorado의 귀환, 빠르게 성장하는 RaaS 그룹 BlackLock 랜섬웨어 분석

El Dorado의 귀환, 빠르게 성장하는 RaaS 그룹 BlackLock 랜섬웨어 분석

BlackLock은 2024년 3월경 결성된 것으로 추정되는 비교적 신생 랜섬웨어 갱단이다. 초기에는 El Dorado라는 이름으로 활동했으며, 2024년 9월경 BlackLock으로 리브랜딩했다.  본 게시글에서는 BlockLock 랜섬웨어의 특징과 임호화 방식, 그리고 공격자가 암호화된 파일을 복호화하기 위해 사용한 기술들에 대해 분석함으로써, 향후 유사한 위협에 대비하기 위한 인사이트를 제공하고자 한다. 

 

1. 개요

1.1. BlockLock

BlackLock은 2024년 3월경 결성된 것으로 추정되는 비교적 신생 랜섬웨어 갱단이다. 이들의 존재는 2024년 6월 Dedicated Leak Site(DLS)가 확인되면서 공개적으로 알려졌으며, 당시 이미 다수 피해 기업 정보가 게시되어 있어 몇 달 전부터 은밀히 활동해 왔을 가능성이 높다. 초기에는 El Dorado라는 이름으로 활동했으며, 2024년 9월경 BlackLock으로 리브랜딩했다.

 

BlackLock 랜섬웨어는 Go로 작성되었다. Go는 크로스플랫폼 언어이므로, Windows, Linux, VMwareESXi 환경을 대상으로 암호화를 수행할 수 있도록 설계된 것으로 보인다. 이는 이들의 공격 범위가 넓고, 서로 다른 운영체제를 동시에 표적으로 삼을 수 있음을 시사한다.

주로 미국 내 기업과 지방 정부 기관이 표적이 되었지만, 한국, 일본 등 다양한 국가에서도 피해가 확인되었다. 또한 공공기관, 운영·컨설팅, 교육·연구, 운송, 골프장, 건설·건축, 공장 등 다양한 분야에서 피해가 확인되었다.

 

BlackLock의 개발자들은 러시아어를 사용하는 것으로 추정된다. 코드상의 언어적 특징과 커뮤니케이션 패턴, 러시아어권 사이버 범죄 포럼인 RAMP에서 활동을 홍보한 이력도 확인된다. 운영 모델은 Ransomware-as-a-Service(RaaS)로, 특히 침투 전문가(Hacker)를 적극 모집해 파트너 생태계를 확장하는 방식을 취한다.
 


[그림 1] BlackLock 유출 전문 사이트(DLS)
 

 

2. 분석내용

 

BlackLock 랜섬웨어는 크로스 플랫폼을 지원하는 Go 언어로 개발되었다. Go 표준 라이브러리를 활용하여, 단일 코드로도 다양한 운영체제에서 실행 가능한 바이너리를 쉽게 생성할 수 있다. Go는 encoding, crypto와 같은 내장 패키지를 통해 암호화 기능을 쉽게 구현할 수 있어 랜섬웨어 개발에 용이하다.

 

또한 Windows 환경을 대상으로, SMB 공유 폴더를 탐색하고 접근하는 기능을 구현하기 위해 go-smb2 와 같은 공개된 Github 프로젝트를 활용한 것으로 확인되었다. 자체적인 기능 개발에 드는 시간과 노력을 줄이고, 안정적인 동작을 보장하기 위한 것으로 파악된다.
 

2.1. 초기루틴

BlackLock 랜섬웨어는 다양한 기능들이 구현되어있으며 실행시, 인자를 통해 기능 활성화/비활성화 여부를 설정할 수 있다. 만약 아무런 옵션을 설정하지 않고 실행하면 로컬 드라이브 전체를 대상으로 암호화를 수행한다.

 

지원하는 옵션은 아래 표와 같다.

 

실행 옵션 설명
-path 암호화 대상 경로 지정
-delay 시작 지연 시간 (단위 : 분)
-time 시작 시간 지정 (형식 : HH:MM)
-perc 각 블록(1MiB) 당 암호화할 비율 (단위 : 퍼센트)
-threads 암호화 작업에 사용할 스레드 수
-keep 작업 종료 후 자기자신을 삭제하지 않음
-skip-local 로컬 드라이브에 대해 암호화 작업 생략
-n 원격 스캔 대상 네트워크/호스트 범위 지정
-u SMB 공유 폴더 접근 시 사용할 사용자명
-p SMB 공유 폴더 접근 시 사용할 평문 비밀번호
-h SMB 공유 폴더 접근 시 사용할 NTLM 해시
-skip-net SMB 공유 폴더에 대해 암호화 작업 생략
-yes 미구현
-test 테스트 모드 (암호화 작업 비활성화)
-hide 로그에 대한 콘솔 출력 숨김
-log 로그 파일 경로 지정
-esxi 미구현
-sort 암호화 대상 폴더 내림차순 정렬

[표 1] 실행 인자 설명

 

특징으로, VMware 가상화 플랫폼인 ESXi를 대상으로 한 ‘-esxi’ 옵션이 지원되지만, 본 보고서 분석 샘플에서는 옵션만 존재하고 실제 기능은 구현되어 있지 않다. 또한 ‘-sort’ 옵션을 통해 주요 폴더를 우선하여 암호화하거나, ‘-perc’ 옵션을 이용해 파일의 일부만 암호화하는 등 공격의 효율성을 높이기 위한 공격자의 고민을 볼 수 있다.

 

2.2. 파일 암호화

 

BlackLock 랜섬웨어는 암호화 과정에서 내장 패키지인 crypto 적극적으로 활용한다. ChaCha20.NewUnauthenticatedCipher()함수를 사용하여 암호화에 사용할 스트림을 생성한다. 이때 키(이하 FileKey)와 Nonce 값이 필요하다. FileKey, Nonce 두 값은 암호화 대상인 각 파일마다 랜덤하게 생성된다.

 


[그림 2] 랜덤한 FileKey 생성 (32 Bytes)

 

 


[그림 3] 랜덤한 Nonce 생성 (24 Bytes)

 

FileKey, Nonce는 NewUnauthenticatedCipher()의 인자로 활용되어 XChaCha20 스트림 암호를 생성하고, XORKeyStream()에 의해 원본 파일에 대해 암호화를 수행한다.

 

 

2.3. 키 및 메타데이터 저장

 

금전적 목적을 가진 공격자는 암호화된 파일을 복구할 수 있는 절차를 반드시 마련한다. 복호화가 불가능할 경우 공격자의 평판이 훼손되어, 피해자는 복호화 비용(Ransom)을 지불하지 않기 때문이다. 이를 위해 BlackLock 랜섬웨어는 파일을 암호화한 후, 암호화에 사용된 키, 메타데이터를 파일 끝에 추가한다. 피해자가 복호화 비용(Ransom)을 지불하면 공격자는 파일 끝에 추가된 정보를 바탕으로 복호화할 수 있다. 도식화하면 다음 [그림 4]와 같다.

 


[그림 4] 복호화를 위한 데이터 추가

 

다만 메타데이터를 평문으로 추가하게 되면 FileKey가 노출되어, 피해자 스스로 복호화할 수 있다. 랜섬웨어는 이를 방지하기 위해 메타데이터를 공유키로 암호화한다.

 

공유키는 타원곡선 디피-헬만(ECDH) 키 교환을 사용하여 얻는다. 각자 자신이 가진 개인키와 상대의 공개키를 조합하여 동일한 공유키를 만드는 방식이다. 랜섬웨어 감염 상황에 대입하면 다음과 같다.

 

–         공격자 : ECDH(공격자의 개인키, 피해자의 공개키) = 공유키

–         피해자 : ECDH(피해자의 개인키, 공격자의 공개키) = 공유키

 

입력 키는 서로 다르지만, ECDH의 특성에 따라 양측은 동일한 공유키를 얻는다. BlackLock 랜섬웨어에는 피해자 개인키, 공격자 공개키 역할을 하는 데이터가 내장되어 있으며, 이를 통해 공유키를 생성한다.

 


[그림 5] ECDH 방식으로 생성된 공유키 (32 Bytes)

 

이후 이 공유키와 Nonce를 인자로 하여 secretbox.Seal() 함수를 호출해 직렬화된 메타데이터를 암호화한다. 암호화된 메타데이터는 파일 끝 부분에 추가된다. 마지막으로 Nonce와 메타데이터의 길이를 모두 더한 값을 가지는 Length 필드가 추가되며 파일 암호화가 마무리된다.

 

2.4. 랜섬 노트

 

아래 [그림 6]은 BlackLock 랜섬웨어 악성코드를 감염시킨 화면이다. 바탕화면은 변경되지 않으며, 파일이 암호화되어 랜덤한 이름으로 변경된 것을 확인할 수 있다.

 


[그림 6] 암호화 작업 완료 후 모습

 

랜섬 노트는 ‘HOW_RETURN_YOUR_DATA.TXT’라는 이름을 가지며, 암호화 작업이 완료된 모든 경로 생성한다.

 


[그림 7] 랜섬 노트 (HOW_RETURN_YOUR_DATA.TXT)

 

랜섬 노트에는 데이터 암호화 사실을 알리며, 금전을 지불하지 않을 경우 피해자의 비즈니스 웹사이트를 마비시키거나 고객에게 데이터 유출 사실을 유포하겠다는 협박성 내용이 포함되어 있다.

 

2.5. 백업 데이터 삭제

 

모든 작업이 끝나게 되면 VSS(볼륨 섀도 복사본 서비스)에 있는 데이터와 휴지통에 있는 파일을 삭제한다. 일반적인 랜섬웨어와는 달리 직접 커맨드 명령어로 WMI 쿼리를 실행하지 않는다. COM 객체를 이용해 WMI 쿼리를 실행할 수 있는 인스턴스를 구성하고, 볼륨 섀도 복사본을 조회 및 삭제한다. 이 과정은 쉘코드가 수행하며, BlackLock 랜섬웨어는 저장되어 있던, 쉘코드를 메모리 상에 로드 및 실행한다.

 


[그림 8] 쉘코드 실행 (볼륨 섀도 데이터 삭제 기능)
 

3. 결론

 

BlackLock 랜섬웨어 그룹은 현재 가장 활발히 활동하는 위협 그룹 중 하나로, 특정 산업에 국한되지 않고 다양한 분야에서 피해가 발생하고 있다. 본 보고서에서 확인된 바와 같이, 이 랜섬웨어는 각 파일마다 서로 다른 암호화 키를 생성하고 이를 공유키로 다시 암호화하기 때문에 복구가 극히 어렵다. Windows 환경에서는 로컬 드라이브뿐만 아니라 SMB 공유 폴더까지 암호화 대상에 포함되어 피해 규모가 확대될 수 있으며, Linux 및 VMware ESXi 환경을 대상으로 한 빌드도 가능해 공격 대상의 범위는 더욱 넓어진다.

 

이에 따라 기업측에서는 주요 자산을 보호하고 안정적으로 운용하기 위해 다음과 같은 대응 가이드를 철저히 준수할 것을 권장한다.
 

 

 

4. 안랩 대응 현황

 

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

 

4.1. V3

Ransom/MDP.Behavior.M2649 (2022.09.06.00)

Ransom/MDP.Decoy.M1171 (2024.09.06.02)

Ransom/MDP.Event.M1946 (2024.07.30.00)

Ransom/MDP.Event.M1785 (2024.08.20.03)

Ransom/MDP.Event.M4353 (2022.07.14.02)

Ransom/MDP.Event.M4428 (2022.09.05.02)

Trojan/Win.Generic.C5775331 (2025.07.02.02)
 

4.2. EDR

Behavior/DETECT.Event.M2662 (2024.06.04.00)
 

 

MD5

f392807da3ee1f3e9702ce5fa91d418d