콘텐츠로 이동하기
위협 인텔리전스

WhatsApp을 이용한 가짜 채용 제안! 북한이 배후에 있는 스피어 피싱?

2022년 9월 14일
Mandiant

사이버 보안 전문가 상담

글로벌 수준의 위협 인텔리전스와 클라우드 보안 전문가가 귀사의 비즈니스에 최적화된 보안 전략을 제안해 드립니다.

전문가에게 문의하기

*본 아티클의 원문은 2022년 9월 13일 Google Cloud 블로그(영문)에 게재되었습니다.


2022년 7월 맨디언트 매니지드 디펜스(Mandiant Managed Defense)는 UNC4034로 추적하는 위협 클러스터에서 새로운 방식의 스피어 피싱을 시도한 것을 발견하였습니다. 맨디언트는 UNC4034가 북한과 관련이 있는 것으로 보고 있습니다.

새로 발견한 스피어 피싱 방식은 WhatsApp을 이용하는 것입니다. UNC4034는 WhatsApp 메신저를 활용해 가짜 채용 공고로 피해를 유혹하였습니다. 위협 행위자는 피해자가 가짜 채용 제안을 보고 악성 ISO 패키지를 다운로드하도록 유도하였습니다. 이 악성 코드는 PuTTY 유틸리티의 트로이 목마를 통해 AIRDRY.V2 백도어를 배포합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/putty-attack-flow_smge.max-1600x1600.png

어떻게 위협 헌팅을 하였을까?

맨디언트 매니지드 디펜스 서비스의 핵심 중 하나는 선제적인 위협 헌팅입니다. 이를 통해 기존 방어 메커니즘을 우회하는 최신 TTP(기술, 전술, 절차)를 동원한 위협으로부터 고객을 보호합니다. 매니지드 디펜스 서비스는 맨디언트의 심층적인 연구와 위협 행위자 행위에 대한 관찰을 바탕으로 발전과 확장이 진행되고 있습니다.

이번에 소개하는 UNC4034의 행위는 맨디언트 인텔리전스에 의해 식별되었습니다. 맨디언트는 위협 인텔리전스 수집과 분석의 일환으로 스테이징 디렉토리(Staging Directories)라는 미션을 수행합니다. 이 미션은 위협 행위자가 변칙적인 파일을 디렉토리에 기록하는 행위는 탐색하는 것인데, 이를 수행하는 가운데 UNC4034의 새로운 스피어 피싱을 알게 되었습니다.

UNC4034가 사용한 기술은 맨디언트 매니지드 디펜스의 위협 헌팅 시나리오를 개선하는 데 사용됩니다. 이는 진화를 거듭하는 위협 행위자를 추적하는 데 유용한 실마리가 됩니다.

첫 실마리

UNC4034의 새로운 스피어 피싱 위협을 파헤치기 위한 첫 실마리는 호스트에서 다운로드된 amazon_assement.iso라는 이름의 파일이었습니다. 윈도우10 환경에서 이 파일을 더블 클릭을 하면 ISO, IMG 아카이브가 가상 드라이브에 마운트 됩니다. 따라서 피해자가 쉽게 컨텐츠에 접근할 수 있습니다. 이미지 파일이 자동으로 풀려 사용자가 쉽게 접근할 수 있다는 것은 위협 행위자에게 매우 매력입니다. RAR 아카이브처럼 뭔가 파일을 푸는 작업을 하지 않아도 되기 때문입니다. 참고로 맨디언트 매니지드 디펜스 서비스의 경우 피싱 첨부 파일로 들어오는 IMG, ISO 아카이브를 탐지합니다. 이런 아카이브에 포함된 페이로드는 맬웨어부터 고급 백도어까지 다양합니다.

미끼

맨디언트 매니지드 디펜스는 amazon_assement.iso 파일이 어떻게 생성되었는지 확인하기 위해 호스트 조사를 수행하였습니다. 참조할 수 있는 정보를 기반으로 맨디언트는 UNC4034가 이메일을 통해 아마존 채용 제안 내용으로 피해자와 커뮤니케이션을 시작한 것으로 추정하였습니다. 커뮤니케이션 시작 후 UNC4034는 WhatsApp을 통해 대화를 이어가며 amazon_assement.iso 파일을 공유하였습니다. 피해자는 웹 버전의 WhatsApp을 이용해 파일을 다운로드했습니다.

amazon_assement.iso 아카이브는 실행 파일과 텍스트 파일로 구성되어 있습니다. Readme.txt라는 이름의 텍스트 파일에는 두 번째 파일인 PuTTY.exe 파일 관련 정보가 담겨 있습니다.

Server: 137.184.15[.]189
User: test
Pass: [Redacted by Mandiant]

PuTTY는 오픈 소스 기반 SSH, 텔넷 클라이언트입니다. 합법적인 버전은 제작자의 페이지를 통해 받을 수 있는데, 이 버전은 유효한 디지털 서명을 포함하고 있습니다. 반면에 다음과 같이 UNC4034가 아카이브를 통해 피해자에게 전달한 PuTTY.exe에는 디지털 서명이 없습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/putty-fig2a_zzpz.max-1200x1200.png

또한, 피해자가 다운로드한 PuTTY 바이너리는 파일 크기도 합법적인 버전보다 큽니다. 자세히 보면 다음 그림과 같이 오늘 쪽의 합법적인 버전과 비교할 때 위협 행위자가 사용한 왼쪽의 조작된 버전은 .data 섹션의 엔트로피가 높습니다. 보통 이런 경우 압축 또는 암호화된 데이터가 포함됩니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/putty-fig3_epli.max-700x700.png

ISO 파일에 포함된 PuTTY.exe 파일이 의심스러운 특성을 보이고 있어 맨디언트 매니지드 디펜스는 호스트에 대한 심층 조사를 수행하였습니다. 악성 PuTTY 바이너라를 실행하면 호스트에서 백도어가 배포됩니다. 이 백도어는 맨디언트가 AIRDRY로 추적 중인 악성 코드 제품군에 속한 것으로 진화된 버전에 해당합니다. 맨디언트 매니지드 디펜스는 위협 행위자가 백도어를 발판 삼아 후속 활동을 하기 전에 조사를 성공적으로 마치고 호스트를 차단했습니다. 맨디언트는 2022년 7월 5일에 침해 시도를 탐지하고 대응하였습니다. 참고로 2022년 6월 27일에 VirusTotal에 동일한 PuTTY 실행 파일이 올라왔습니다.

또한, 맨디언트는 2022년 6월 17일 VirusTotal에 업로드된 두 번째 ISO 아카이브 파일도 발견했습니다. 맨디언트는 이 파일에 포함된 IP 주소를 참조해 두 번째 아카이브를 찾았습니다. 이 ISO 파일에는 동일한 IP 주소가 적힌 Readme.txt와 트로이 목마가 숨겨진 PuTTY 실행 파일이 있었습니다.

맨디언트가 찾은 두 ISO 파일은 아마존의 채용 제안 관련 내용을 미끼로 사용된 것으로 보입니다. 또한, AIRDRY.V2 백도어 페이로드를 생성하는 맬웨어도 포함되어 있었습니다.

악성 코드 분석

트로이 목마를 품은 PuTTY

각 ISO 파일에 포함된 실행 파일은 공개적으로 사용할 수 있는 PuTTY 버전 0.77 소스 코드를 컴파일한 완전히 기능하는 PuTTY 애플리케이션입니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/putty-fig4_aiwj.max-900x900.png

샘플에는 페이로드를 디스크에 쓰고 실행하는 악성 코드가 포함되어 있었습니다. 맨디언트가 발견한 PuTTY 샘플의 경우 connect_to_host 함수에 악성 코드가 위치했습니다. putty-0.77\ssh\ssh.c. 코드를 트리거 하려면 사용자가 Readme.txt 파일에 적힌 호스트 IP 주소에 SSH 연결을 시도해야 합니다.

VirusTotal에 올라온 PuTTY 샘플에는 ssh2_userauth_process_queue 함수에 악성 코드가 위치합니다. 악성 코드는 공개 키 또는 키보드 인증 등 암호 인증을 수행하는 함수의 일부에 포함되어 있습니다. 사용자가 연결을 설정하고 이름과 비밀번호를 입력하면 인증 결과와 관계없이 악성 코드가 실행됩니다. 이러한 방식은 UNC4034가 불필요하게 다음 단계에서 악성 코드를 사용하지 않기 위함으로 보입니다.

악성 코드에서 페이로드를 떨어뜨리고 실행하는 부분은 맨디언트가 살펴본 것과 VirusTotal에 올라온 샘플이 거의 같았습니다. 합법적인 윈도우 실행 파일인 C:\Windows\System32\colorcpl.exe가 C:\ProgramData\PackageColor디렉토리에 복사되고 C:\ProgramData\PackageColor\colorui.dll 페이로드에 기록됩니다. PuTTY 바이너리는 다음과 같이 DLL 탐색 순서 하이제킹을 통해 colorui.dll로 파일을 실행합니다.

C:\Windows\System32\cmd.exe /c start /b C:\ProgramData\PackageColor\colorcpl.exe 0CE1241A44557AA438F27BC6D4ACA246

VirusTotal 샘플의 경우 cmd.exe를 실행하는 데 사용되지 않습니다. colorcpl.exe 대신 윈도우 API 함수인 WinExec로 프로세스를 시작합니다.

C:\ProgramData\PackageColor\colorcpl.exe C8E71F4613ABFCA10B6330C9

두 경우 모두 전달된 명령줄 인수 colorcpl.exe는 윈도우 실행 파일의 합법적인 기능과 관련이 없습니다. 대신 악성 DLL이 인수를 활용합니다.

C:\ProgramData\PackageColor\colorcpl.exe 를 위한 지속성 확보는 schtasks.exe를 통해 이루어집니다. PackageColor이라는 이름의 예약된 작업을 통해 매일 오전 10시 30분에 PackageColor가 실행됩니다.

악성 DLL

colorui.dll 샘플은 리버스 엔지니어링으로부터 애플리케이션을 보호하는 Themida를 통해 패키징 되었습니다. 압축을 푼 샘플에는 파일 경로가 포함되어 있습니다. 예제 경로는 다음과 같습니다.

-Mandiant, 작성자: James Maclachlan, Mathew Potaczek, Nino Isakovic, Matt Williams, Yash Gupta

게시 위치