블랙매터 랜섬웨어, 다크사이드의 후예인가?
2021년 7월 21일, 러시아에서 운영되는 것으로 추정되는 다크웹 익스플로잇(DarkWeb Exploit) 포럼에 블랙매터(Black Matter)라는 새로운 랜섬웨어 조직이 등장했다. 제작자에 따르면, 블랙매터 랜섬웨어는 기존 잘 알려진 다크사이드(DarkSide), 블루크랩(BlueCrab), 록빗(LockBit) 랜섬웨어의 기능을 통합해 만들었다고 전해진다. 또 일각에서는 조직을 미국 콜로니얼 파이프라인 공격 후 자취를 감춘 다크사이드 그룹과 동일인으로 보기도 한다.
이번 글에서는 블랙매터 랜섬웨어의 특징, 피해 현황 및 공격 과정을 분석해본다.
블랙매터(BlackMatter) 그룹의 활동은 2021년 8월부터 본격적으로 시작되었으며, 10월 초까지 28개의 조직에 랜섬웨어를 유포한 이력이 확인된다.
이들은 다크웹(DarkWeb)을 통해 공격자를 구인하고, 특정 기업에 대한 표적 공격으로 기업 내부 인프라를 장악해 랜섬웨어 유포와 함께 민감한 데이터를 탈취하는 등 최근 랜섬웨어를 유포하는 조직들과 유사한 면모를 보인다. 복구 비용을 지불하지 않은 기업은 자체적으로 운용하는 유출 페이지를 통해 기업 이름과 유출 데이터를 공개한다.
특징
블랙매터 랜섬웨어의 가장 큰 특징은 병원, 원자력, 수력 발전소 등 주요 기반시설과 석유 및 가스 산업, 방위산업, 비영리 기관, 정부 기관에 대한 공격은 하지 않는다고 명시했다는 점이다. 이는 2021년 5월, 다크사이드(DarkSide) 랜섬웨어 그룹이 감행한 미국 콜로니얼 파이프라인(Colonial Pipeline) 공격 사례에 영향을 받은 것으로 추정된다. 당시, 다크사이드 랜섬웨어 그룹은 FBI와 미국 정부가 적극적으로 사건에 개입하면서 수익과 운영 인프라를 모두 잃은 것으로 알려졌다.
[그림 1] 블랙매터 그룹 공지
블랙매터 그룹은 만약 실수로 해당 분류에 속하는 기업이 감염될 경우, 무료로 복호화 툴을 제공한다고 공지하고 있다.
피해 현황 및 주요 사례
2021년 10월 기준, 전 세계적으로 블랙매터 랜섬웨어에 피해를 입은 기업은 총 28개이며, 산업군 및 국가별 감염 현황은 각각 [그림 2], [그림 3]과 같다. 통계는 유출 페이지 및 언론 보도 사례를 참고해 작성했다.
[그림 2] 블랙매터 랜섬웨어 산업군별 감염 현황
[그림 3] 블랙매터 랜섬웨어 국가별 감염 현황
주요 사례: 올림푸스(Olympus)
올림푸스(Olympus)는 일본에 본사를 두고 있는 의료기기 정밀 기계 제조 전문 글로벌 대기업이다.
[그림 4] 올림푸스(Olympus) 블랙매터 랜섬웨어 감염 관련 정보
2021년 9월 8일, 올림푸스는 대규모 랜섬웨어 감염으로 인해 유럽, 중동, 아프리카 지역 계열사의 모든 네트워크가 마비되는 피해를 입었다. 이에 올림푸스는 “사이버 보안 사고에 대한 수사를 진행 중”이라는 성명을 발표했다. 관계자에 따르면, 블랙매터 랜섬웨어 그룹의 것으로 추정되는 랜섬노트가 확인된 것으로 알려졌다.
공격 분석
안랩이 블랙매터 랜섬웨어 분석에 사용한 샘플은 [표 1]과 같다. 이어서 블랙매터 랜섬웨어의 공격 방식을 단계 별로 분석해본다.
[표 1] 블랙매터 랜섬웨어 샘플 정보
1. 프로세스 권한 확인 및 UAC Bypass
블랙매터 랜섬웨어가 최초 실행되면, 현재 프로세스의 권한을 확인하는 코드가 실행된다. 프로세스가 유저 권한일 경우 UAC Bypass를 통한 권한 상승이 실행되며, 관리자 권한일 경우 해당 구간의 함수는 종료된다.
난독화된 데이터가 복호화 되면, dllhost.exe 문자열이 생성된다. 그리고, [그림 5]와 같이 해당 실행파일의 전체 경로와 함께 “Elevation:Administrator!new:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}” 문자열을 생성한다.
[그림 5] 문자열 생성
CoGetObject, ObjectStublessClient9 함수가 호출되면, [그림 6]과 같이 dllhost.exe 프로세스가 실행되고 자식 프로세스로 블랙매터 랜섬파일이 실행된다. 이 때, 권한 상승이 발생하며 해당 기법을 CMSTPLUA COM Interface를 이용한 “UAC Bypass”라 한다.
[그림 6] UAC Bypass 권한상승
2. 명령인수에 따른 코드 분기
이후, CommandLineToArgvW 함수를 이용해 명령인자를 파싱(Parsing: 문장의 구성을 분석하는 것) 한다. 전달된 파라미터 문자열은 자체적인 해쉬 함수에 의해 하드코딩된 해쉬 값과 비교 연산되며, 파라미터에 따라 [그림 7]과 같이 코드가 분기된다.
[그림 7] 명령인수 값에 따른 코드 분기
참고로, 블랙매터 랜섬웨어는 명령인수에 따라 실행되는 코드가 다르다. 이에 대한 설명은 [표 2]를 참고하면 된다.
[표 2] 명령인수에 따른 코드 분기
3. 프로세스 중복 실행 방지
다음으로 시스템 GUID 값을 이용해 블랙매터 커스텀 해시 연산이 진행된다. 이어서 XOR 연산(하드코딩된 값)으로 현재 시스템에만 유효한 랜덤 이름의 뮤텍스(Mutual Exclusion: 상호 배제) 문자열을 생성한다. 이를 통해 프로세스 중복 실행이 방지된다.
[그림 8] 프로세스 중복 실행 방지
이 때 생성되는 뮤텍스 문자열은 아래와 같다.
▶Global\0c111f6a663f88b095d9e4f755e54840)
4. 시스템 정보 수집 및 JSON 데이터 생성
블랙매터 랜섬웨어는 현재 시스템의 호스트 정보와 디스크 정보를 수집한 후, [그림 9]와 같이 JSON 형식의 데이터구조를 생성한다.
[그림 9] 시스템 호스트, 디스크 정보 수집 JSON 데이터 생성
이어서 뮤텍스 문자열 생성하는 알고리즘과 유사한 방식으로 BotID가 생성되며, 이를, 앞에서 생성했던 JSON 형식의 데이터 구조에 추가한다.
[그림 10] JSON 데이터 값 추가 (BotID)
5. 수집된 정보(JSON 데이터) AES 암호화 및 C2 전송
JSON 데이터 형식으로 수집된 정보는 AES(Advanced Encryption Standard)에 의해 암호화된다. 샘플 파일 내부에 하드코딩 된 AES Key가 사용된다. 암호화된 데이터 혹은 수집된 정보는 Base64 인코딩 이후, HttpOpenRequestW, HttpSendRequestW 함수에 의해 공격자 서버(C2)로 전송된다.
[그림 11] 암호화된 데이터(수집된 정보) C2 전송
6. 랜섬 방해 프로세스 종료
블랙매터 랜섬웨어는 “ZwQuerySystemInformation” 함수를 이용해 SYSTEM_PROCESS_INFORMATION 구조체를 구한 후 내부 멤버를 파싱한다. 그리고, 프로세스의 이름을 하나씩 [표 5]의 종료 대상 프로세스와 비교한 뒤 NtOpenProcess, ZwTerminateProcess 함수를 통해 종료한다.
[그림 12] 랜섬 방해 프로세스 종료
encsvc, thebat, mydesktopqos, xfssvccon, firefox, infopath, winword, steam, synctime, notepad, ocomm, onenote, mspub, thunderbird, agntsvc, sql, excel, powerpnt, outlook, wordpad, dbeng50, isqlplussvc, sqbcoreservice, oracle, ocautoupds, dbsnmp, msaccess, tbirdconfig, ocssd, mydesktopservice, visio
[표 3] 프로세스 종료 리스트
7. 랜섬 방해 서비스 제거
OpenSCManager, EnumServicesStatusExW 함수를 이용해 시스템의 설치되어 있는 모든 서비스를 구한 후, [표 4]의 문자열이 포함된 랜섬 방해 서비스를 탐색한다. 그리고, 확인된 서비스를 DeleteService 함수를 통해 제거한다.
[그림 13] 제거 대상 서비스 탐색 및 제거
mepocs, memtas, veeam, svc$, backup, sql, vss
[표 4] 제거 프로세스 문자열
8. 디렉토리 탐색, 랜섬노트 생성 및 파일 암호화
랜섬 방해 서비스 제거 후, FindFirstFileExW, FindNextFileExW 함수를 이용한 디렉토리 탐색 루프 구간이 실행된다. 이 때, [표 5]의 경로에 대한 접근은 제외된다. 모든 탐색된 경로에 랜섬노트가 우선적으로 생성되고, 파일 암호화가 진행되며 [표 6]의 일부 파일과 [표 7]의 확장자를 갖는 파일은 암호화에서 제외된다.
[그림 14] 디렉토리 탐색 및 파일 암호화
system volume information, intel, $windows.~ws, application data, $recycle.bin, mozilla, program files (x86), program files, $windows.~bt, public, msocache, windows, default, all users, tor browser, programdata, boot, config.msi, google, perflogs, appdata, windows.old
[표 5] 접근 제외 폴더명
desktop.ini, autorun.inf, ntldr, bootsect.bak, thumbs.db, boot.ini, ntuser.dat, iconcache.db, bootfont.bin, ntuser.ini, ntuser.dat.log
[표 6] 암호화 제외 파일 목록
themepack, nls, diagpkg, msi, lnk, exe, cab, scr, bat, drv, rtp, msp, prf, msc, ico, key, ocx, diagcab, diagcfg, pdb, wpx, hlp, icns, rom, dll, msstyles, mod, ps1, ics, hta, bin, cmd, ani, 386, lock, cur, idx, sys, com, deskthemepack, shs, ldf, theme, mpa, nomedia, spl, cpl, adv, icl, msu
[표 7] 암호화 제외 확장자 목록
파일 암호화는 [그림 15]의 난수 값을 생성하는 코드에 의해 생성된 키를 이용하여 Salsa20으로 암호화된다. 암호화에 사용된 키는 RSA에 의해 추가로 암호화된다.
[그림 15] 랜덤 키 값 생성 > Salsa20 암호화 키
추가적으로, [그림 16]과 [그림 17]은 각각 암호화된 파일에 대한 샘플과 랜섬노트 파일에 관한 이미지이다.
[그림 16] 암호화된 파일 샘플
[그림 17] 랜섬노트
9. 바탕화면 변경 및 자동 실행 레지스트리 등록
모든 파일 암호화가 완료되면 바탕화면 파일을 생성하며, [그림 18]과 같이 변경된다. 또, “SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce”의 레지스트리 경로에 *RYL415ver 이름으로 자동실행 레지스트리 키 값을 생성한다.
[그림 18] 랜섬노트 바탕화면 변경
[그림 19] 자동실행 레지스트리 등록
결론
안랩 제품이 블랙매터 랜섬웨어를 진단한 진단명과 엔진 버전 정보는 다음과 같다.
▶Ransomware/Win.BlackMatter C4575089(2021.08.04.03)
다크사이드 랜섬웨어 그룹의 공격이 중단된 이후, 갑작스럽게 등장한 블랙매터 랜섬웨어에 대해 일각에서는 동일한 공격자의 소행으로 추측하기도 한다. 하지만 공격 방식 등 기술적인 분석을 진행한 결과, 유사한 기능을 구현한 부분이 분명 있지만 소스코드가 유사하다고 하기는 어렵다. 아울러, 바이너리 분석 결과도 동일한 공격자로 판단하기 어렵다고 보여진다.
다만, 과거 랜섬웨어와의 유사성과 별개로 블랙매터 랜섬웨어는 2021년 8월부터 본격적으로 활동하기 시작해 10월까지도 피해 사례가 확인된 ‘현재진행형’ 공격이다. 앞서 통계에서 확인했듯, 국내 감염 사례도 확인되어 기업들의 각별한 주의와 공격 방식에 대한 이해가 요구된다.
출처 : AhnLab