목차
- 개요
- 주요 목표
- 영향을 받는 산업
- 지리적 초점
- 감염 사슬
- 초기 발견
- 미끼 문서를 살펴보겠습니다.
- 기술 분석
- 1단계 – 초기 배송
- 경로 A: LNK 기반 실행
- 경로 B: 실행 파일 기반 배포
- 2단계 – 스크립트 기반 드롭퍼 체인
- 3단계 – 러스트클록(Rust Loader)
- 4단계 – 아주르베일(어댑틱스 C2 에이전트)
- 1단계 – 초기 배송
- 인프라 및 속성
- 맺음말
- SEQRITE 보호
- 침해 지표(IOC)
- MITRE ATT&CK 매핑
- 작성자
개요
The Seqrite APT 팀은 전 세계의 위협을 적극적으로 추적해 왔습니다. 최근 분석 결과, 체코와 대만의 공무원 및 시민을 대상으로 하는 스피어피싱 캠페인을 발견했습니다. 해당 캠페인은 하나의 미끼 문서와 여러 보조 자료를 분석했는데, 이 자료들은 공식적인 서신과 매우 유사하게 만들어져 있어 이 지역들을 특정적으로 겨냥한 것으로 강력하게 시사합니다.
이 공격은 ZIP 첨부 파일로 시작됩니다. 압축을 풀면 겉보기에는 정상적인 파일처럼 보이지만 실제로는 백그라운드에서 악성 페이로드를 실행하도록 설계된 구조화된 감염 체인의 일부인 여러 파일이 들어 있습니다.
이 블로그 게시물은 전체 감염 과정을 자세히 살펴보고 공격자가 두 가지 다른 전달 경로를 사용하여 페이로드를 실행하는 방법을 설명합니다. 또한 Microsoft Azure Blob Storage와 같은 신뢰할 수 있는 서비스가 명령 및 제어 통신에 악용되는 방식과 Adaptix 에이전트가 데이터 유출 및 원격 제어에 사용되는 방식에 대해서도 살펴봅니다.
또한, 페이로드를 보호하는 데 사용된 다중 계층 암호화를 분석하고 공격자가 탐지를 회피하는 데 어떻게 도움이 되는지 살펴봅니다. 이 블로그 게시물에서는 주요 침해 지표(IOC)를 제시하고 분석에서 도출된 중요한 결과를 강조하며, 관찰된 동작을 MITRE ATT&CK 기법에 적용하여 이 캠페인이 중국과 연관된 위협 행위자의 소행임을 입증합니다.
주요 목표
영향을 받는 산업
- 정부 및 공공 부문
- 연구 및 학계
- 기술 및 소프트웨어
- 금융 서비스
지리적 초점
- 체코
- Taiwan
감염 사슬

초기 발견
지속적인 위협 모니터링 활동의 일환으로, SEQRITE 연구팀이 의심스러운 ZIP 압축 파일을 발견했습니다. threat intel라이선스 플랫폼 VirusTotal.

입수 가능한 원격 측정 데이터에 따르면, 해당 파일은 2026년 3월 26일 대만에서 처음 제출되었습니다. 이 최초 제출은 캠페인이 처음 관찰되었거나 적극적으로 목표로 삼았던 지역을 나타낼 수 있는 중요한 단서를 제공합니다.

압축 해제된 ZIP 파일의 내용을 분석한 결과, '...'라는 이름의 폴더를 포함하여 여러 개의 의심스러운 파일을 발견했습니다. 데이터, PDF 문서로 가장한 바로가기 파일 計畫申請審查結果通知單.pdf.lnk, 합법적인 파일로 위장한 실행 파일 _計畫申請審查結果果通知單.exe. 파일 이름은 다음과 같이 번역됩니다. "프로젝트 신청 심사 결과 통지" 이는 공식 문서처럼 보이도록 위장하려는 시도를 시사합니다. 파일 이름은 대만에서 흔히 사용되는 번체 중국어로 작성되어 있어, 해당 지역 사용자들을 대상으로 한 캠페인임을 더욱 뒷받침합니다.

데이터 폴더의 내용을 분석한 결과, 암호화된 페이로드 컨테이너(1.dat 및 Com.dat), 스크립트 파일(Profile.ps1 및 empty.vbs), 사이드 로딩에 사용되는 악성 DLL(UnityPlayer.dll), 그리고 피해자의 주의를 분산시키기 위한 미끼 PDF 파일 등 감염 과정의 여러 단계에 관련된 여러 파일을 발견했습니다.
실행 파일을 분석한 결과, 체코 공화국의 공식 문서와 유사하게 만들어진 추가 미끼 문서가 생성되는 것을 확인했습니다. 이 문서는 블로그 후반부에서 자세히 분석할 예정이며, 이러한 문서의 존재는 해당 캠페인이 체코 공무원들 또한 표적으로 삼고 있음을 시사합니다.
미끼 문서를 살펴보겠습니다.
ZIP 압축 파일의 내용을 조사한 결과, data/ 폴더 안에 000b67d70f3876965bb09fd37164b7.pdf라는 이름의 미끼 문서를 발견했습니다. 또한, 메인 실행 파일인 _計畫申請審查結果通知單.exe를 분석한 결과, 실행 파일 자체 내에도 또 다른 미끼 문서가 포함되어 있음을 확인했습니다. 언뜻 보기에 두 문서는 이름 때문에 비슷해 보이지만, 내용은 서로 다릅니다.
문서 1: data/ 폴더 안에서 발견된 미끼

data/ 폴더에서 000b67d70f3876965bb09fd37164b7.pdf 파일이 발견되었으며, 이 파일은 0xBE 키를 사용한 단일 바이트 XOR 암호화 방식으로 암호화되어 있습니다. 복호화 결과, 해당 문서는 중국어로 작성되었으며 WPS PDF 소프트웨어 광고와 관련된 내용을 포함하고 있는 것으로 확인되었습니다. 실행 파일에 포함된 유인 문서와 유사한 이름 패턴을 가지고 있지만, 이 파일은 감염 과정의 어떤 단계에서도 참조되거나 사용되지 않습니다.
이는 해당 문서가 공격자가 의도치 않게 포함시켰을 가능성을 시사하며, 아마도 다른 공격 캠페인의 잔여물로, 미끼 역할을 했을 수도 있음을 나타냅니다.
문서 2: _計畫申請審查結果communication單.exe 내부에 내장된 미끼

미끼 파일은 실행 파일 _計畫申請審查結果通知單.exe 내부에 삽입되어 있으며, 실행 중에 피해자에게 표시되는 문서입니다. 문서 이름은 000b67d70f3876965bb09fd37164b7ccrezervaci.pdf로, 해시값과 유사한 문자열과 체코어 단어("rezervaci")가 결합된 형태입니다. 이 문서는 체코어로 작성되었으며, 체코 사회보장청(ČSSZ)의 예약 통지서처럼 보이고, 아마도 공식 웹사이트 cssz.cz에서 가져온 것으로 추정됩니다. 문서에는 특정인의 예약 일정과 같은 세부 정보가 포함되어 있습니다. 주자나 코슈코바 2026년 3월 16일에, 마치 정부에서 발행한 진짜 문서처럼 보이게 만들 것입니다.
문서의 마지막 부분에는 수신자에게 사무실 도착 시 해야 할 일에 대한 추가 지침이 제공됩니다. 제공된 식별 코드를 사용하여 대기 번호를 받는 방법과 일반적인 예약 절차와 유사하게 차례를 기다리는 방법이 설명되어 있습니다.
해당 문서에는 체코 사회보장청(ČSSZ) 공식 웹사이트 링크도 포함되어 있어 예약 관리 또는 취소가 가능합니다. 이 문서는 원본 웹사이트를 PDF 파일로 저장하거나 인쇄하여 생성된 것으로 보입니다.
다음 섹션에서는 이 캠페인의 기술적인 측면을 살펴보겠습니다.
기술 분석
ZIP 파일 내용을 살펴보던 중 흥미로운 점을 발견했습니다. 실제로는 다음과 같은 것들이 있었습니다. 두 가지 방법 감염 과정은 궁극적으로 피해자가 어떤 파일과 먼저 상호 작용했는지에 따라 페이로드가 포함된 악성 DLL 파일을 사이드로드 방식으로 설치하게 됩니다.
경로 A에서감염은 피해자가 악성 LNK 파일인 計畫申請審查結果通知單.pdf.lnk를 클릭할 때 시작됩니다. 이 작업은 자동으로 VBScript(empty.vbs)를 실행하고, 이어서 PowerShell 스크립트(Profile.ps1)를 실행합니다. PowerShell 스크립트는 파일을 복호화하는 역할을 합니다. 1.dat복호화된 내용을 RuntimeBroker_update.exe라는 이름으로 저장하고 실행합니다.
경로 B에서피해자는 _計畫申請審查結果通知單.exe를 직접 실행합니다. 이 실행 파일은 필요한 모든 구성 요소를 자체적으로 추출한 다음 동일한 RuntimeBroker_update.exe를 실행하는 자체 포함형 Rust 기반 드로퍼 역할을 합니다.
초기 단계는 다르지만 두 경로 모두 결국 같은 단계에 도달합니다. RuntimeBroker_update.exe는 DLL 사이드 로딩을 사용하여 악성 UnityPlayer.dll을 로드하고, 이로 인해 Rust 기반 로더가 실행됩니다. 러스트클록이 로더는 최종 페이로드를 복호화하고 실행합니다. 아주르베일Adaptix C2 에이전트입니다.
1단계 – 초기 배송
경로 A: LNK 기반 실행
첫 번째 전달 방법은 計畫申請審查結果통지單.pdf.lnk라는 악성 Windows 바로가기 파일로 시작됩니다. 이는 "Project Application Review Result Announce.pdf"로 해석됩니다. 이중 확장 사용(.pdf.lnk이는 의도적인 것으로, 파일이 일반 PDF 문서처럼 보이게 하기 위한 것입니다.

LNK 파일은 Windows 시스템 디렉터리에서 wscript.exe를 실행하도록 구성되어 있으며, 인수로 .\data\empty.vbs를 전달합니다. PDF 파일을 여는 대신, 바로 가기는 이 VBScript 파일을 백그라운드에서 조용히 실행합니다. 동시에 Microsoft Edge 아이콘을 사용하여 일반 문서처럼 표시됩니다.
경로 B: 실행 파일 기반 배포
두 번째 전달 방법은 Rust로 컴파일된 실행 파일인 `_計畫申請審查結果通知單.exe`를 사용합니다. 이 파일은 필요한 모든 구성 요소가 내부에 포함된 완전한 드롭퍼 역할을 하므로 ZIP 아카이브의 외부 파일에 의존하지 않습니다.

동적 분석 결과, 해당 바이너리는 자체적으로 여러 작업을 수행하는 것으로 나타났습니다. 먼저 %LOCALAPPDATA%\WebViewFixUtility 경로에 디렉터리를 생성하여 파일을 저장합니다. 그런 다음 BrowserViewUtility.exe(사이드로딩에 사용되는 정상적인 실행 파일), 악성 UnityPlayer.dll(RUSTCLOAK), 암호화된 구성 파일, 미끼 문서(000b67d70f3876965bb09fd37164b7ccrezervaci.pdf) 및 RuntimeBroker_update.exe를 포함한 여러 구성 요소를 드롭합니다.
2단계 – 스크립트 기반 드롭퍼 체인
경로 B 모든 것을 내부적으로 처리하므로 여기서는 오직 이 부분에만 집중하면 됩니다. 경로 A스크립트 기반 체인은 empty.vbs, Profile.ps1 및 1.dat의 세 가지 추가 구성 요소를 거칩니다. 이러한 각 구성 요소는 최종 바이너리인 RuntimeBroker_update.exe를 준비하고 실행하는 데 역할을 하며, 이 바이너리는 나중에 DLL 사이드 로딩에 사용됩니다.
피해자가 LNK 파일을 클릭하면, 빈.vbs 해당 명령이 실행되면 스크립트 기반 처리 과정이 시작됩니다. 이 흐름은 백그라운드에서 조용히 실행되며, 사용자에게 의심스러운 점을 표시하지 않고 한 구성 요소에서 다음 구성 요소로 제어권을 넘깁니다.

해당 VB 스크립트를 분석한 결과, PowerShell을 사용하여 Profile.ps1을 실행하는 단 하나의 목적을 가진 매우 간단한 스크립트임을 확인했습니다. 이 스크립트는 실행 정책 우회가 활성화된 숨겨진 창에서 PowerShell을 실행하므로 사용자에게는 아무것도 보이지 않습니다. 스크립트 자체에는 실질적인 논리가 포함되어 있지 않으며 단순히 다음 단계로 넘어가는 연결 고리 역할을 합니다.

감염 과정의 핵심 논리는 Profile.ps1 스크립트에서 처리됩니다. 이 스크립트는 다음을 읽습니다. 1.dat 인사말 데이터 / 폴더를 열고 하드코딩된 키 P@ssw0rd_am_2026을 사용한 간단한 XOR 연산으로 복호화합니다. 복호화 후 파일은 다음과 같습니다. RuntimeBroker_update.exe그런 다음 디스크에 기록됩니다.
이 스크립트는 UnityPlayer.dll과 Com.dat 파일을 %TEMP% 디렉터리로 이동시켜 필요한 모든 구성 요소를 한 곳에 배치합니다. 모든 준비가 완료되면 백그라운드에서 RuntimeBroker_update.exe를 실행하고 사용자의 주의를 분산시키기 위해 가짜 문서를 엽니다.
파일 1.dat은 일반 실행 파일이 아닙니다. RuntimeBroker_update.exe를 담고 있는 XOR 암호화된 컨테이너 파일입니다. 암호화 방식은 간단하고 짧은 키를 사용하는데, 이는 기본적인 탐지를 피하기 위한 것으로 보입니다. Profile.ps1에 의해 복호화되면 실제 실행 파일인 RuntimeBroker_update.exe가 생성되어 실행됩니다.
앞서 설명했듯이, 이 공격 캠페인은 피해자가 아카이브와 상호 작용하는 방식에 따라 두 가지 다른 진입점을 사용합니다. 두 경로 모두 최종적으로 동일한 페이로드인 RuntimeBroker_update.exe를 전달하지만, 전달 방식은 다릅니다. 경로 A는 피해자가 LNK 파일을 클릭하는 순간부터 시작되는 여러 단계의 스크립트 기반 과정을 따르는 반면, 경로 B는 자체적으로 실행되며 피해자가 실행 파일만 실행하면 됩니다.
3단계 – 러스트클록(Rust Loader)

두 경로가 여기서 합쳐지고 RuntimeBroker_update.exe가 실행됩니다. Windows는 가장 먼저 같은 폴더에서 UnityPlayer.dll 파일을 찾습니다. 공격자는 이를 악용하여 악성 UnityPlayer.dll 파일을 같은 폴더에 넣어둡니다. 그 결과 Windows는 정상적인 DLL 파일 대신 공격자의 DLL 파일을 로드하게 됩니다.

RUSTCLOAK이라고 부르는 이 DLL은 Rust 기반 로더로, 실행 체인을 계속 진행하고 최종 페이로드를 준비하는 역할을 합니다.
개발자 산출물

분석 과정에서 얻은 주요 결과 중 하나는 다음과 같습니다. 러스트클록 이는 공격자가 저지른 운영상의 보안 오류였습니다. Rust 빌드 경로인 C:\Users\dell2\.cargo\registry\src\ index.crates.io-1949cf8c6b5b557f\ src\decrypt_SM4.rs가 바이너리 내부에 평문으로 남아 있어 개발자 시스템의 세부 정보가 노출되었습니다.
이를 통해 개발자의 Windows 사용자 이름인 dell2와 SM4 암호화에 사용된 libsm-0.5.1 및 Base64 연산에 사용된 base64-0.21.7과 같은 특정 라이브러리 버전이 노출됩니다.
분석 방지: 샌드박스 탐지
악의적인 행위를 실행하기 전에, 러스트클록 이 프로그램은 시스템이 샌드박스 환경 또는 분석 환경에서 실행 중인지 확인합니다. 시스템의 컴퓨터 이름을 가져와 100개 이상의 알려진 샌드박스 및 분석 시스템 이름 목록과 비교합니다.

일치하는 항목이 발견되면 로더는 페이로드를 실행하지 않고 즉시 종료됩니다. 목록에는 일반적으로 사용되는 이름들이 포함되어 있습니다. 데스크톱-NAKFFMT, 줄리아-PC예산 및 아치볼드-PC이는 자동 분석 설정에서 흔히 볼 수 있는 기능입니다. 이 검사는 악성코드가 분석 과정에서 탐지를 피하는 데 도움이 됩니다.
3중 계층 복호화 체인
일단 러스트클록 프로그램이 로드되면 디스크에서 암호화된 페이로드(Com.dat)를 읽어 여러 단계의 복호화 과정을 거친 후 실행됩니다.
1단계: 사용자 지정 RC4 복호화 – 첫 번째 단계에서는 수정된 RC4 알고리즘을 사용합니다. 이 단계에 사용되는 키는 다음과 같습니다: F8 83 40 17 1D 66 AA C2 B0 25 A8 6C A0 DD C4 5A
2단계: Base64 디코딩 – RC4 단계 후에도 출력 결과는 바로 사용할 수 없습니다. Base64 형식으로 인코딩되어 있으므로 로더가 디코딩하여 다음 단계에서 사용할 실제 바이너리 데이터를 얻습니다.
3단계: SM4-CBC 복호화 – 마지막 단계에서는 SM4를 CBC 모드로 사용하여 데이터를 복호화합니다. 사용된 키와 초기화 벡터는 다음과 같습니다.
범례: CD CE 4F DB 3E 6A F2 44 AC 62 8C F4 96 1F 6B FB
IV: FA 70 B1 81 A0 BA 5D 46 7A 5D 40 DD 99 B6 9B 42
Windows 파이버를 통한 메모리 내 실행

복호화 과정이 완료되면, 러스트클록 VirtualAlloc을 사용하여 메모리를 할당하고 복호화된 셸코드를 해당 메모리에 복사합니다. 그런 다음 VirtualProtect를 사용하여 메모리 권한을 실행 가능으로 변경한 후 페이로드를 실행합니다.
보안 도구에서 자주 감시되는 새 스레드를 생성하는 대신, Windows 파이버를 사용하여 실행합니다. 로더는 CreateFiberEx를 호출한 다음 SwitchToFiber를 호출하여 셸코드로 제어권을 넘깁니다.

로더를 디버깅하는 동안, 로더가 상당한 메모리 영역을 할당하고 복호화된 페이로드를 해당 영역에 복사하는 것을 확인했습니다. 해당 메모리 영역을 자세히 살펴보니 유효한 PE 헤더(MZ)가 존재했으며, 이는 셸코드 내부에 완전한 실행 파일이 포함되어 있음을 확인시켜 줍니다. 메모리에 저장된 페이로드의 크기는 약 103KB였습니다.
디버깅 과정에서 메모리에 저장된 PE 파일을 추출했는데, 이것이 최종 페이로드인 것으로 밝혀졌습니다. 아주르베일. 이것은 러스트클록 이는 단순히 셸코드를 직접 실행하는 것이 아니라, 완전한 실행 파일을 복호화하여 메모리에 로드한 다음 실행 권한을 해당 파일로 넘기는 방식입니다.
4단계 – 아주르베일(어댑틱스 C2 에이전트)
AZUREVEIL은 최종 탑재체이며 이번 작전에서 기술적으로 가장 흥미로운 부분입니다.

DIE를 사용하여 파일을 분석한 결과 다음과 같은 사실을 발견했습니다. 아주르베일 이 제품은 MinGW C++를 사용하여 64비트 DLL로 컴파일된 모든 기능을 갖춘 Adaptix C2 에이전트입니다.

VirusTotal에서 분석한 결과, 해당 샘플은 여러 업체에서 악성으로 분류되었으며, Adaptix 멀웨어 계열과 관련된 내장 구성 요소가 탐지되었습니다.
우리는 다음과 같은 사실을 관찰했습니다. 아주르베일 이 라이브러리는 djb2 기반 해싱 방식을 사용하여 런타임에 약 87개의 Windows API를 해석합니다. 이러한 API는 다음과 같은 핵심 라이브러리에서 로드됩니다. wininet.dll, Ws2_32.dll, Advapi32.dll, Iphlpapi.dll예산 및 msvcrt.dll.
Azure Blob Storage C2 통신

분석 과정에서 다음과 같은 사실을 발견했습니다. 아주르베일 이 악성 프로그램은 명령 및 제어 통신을 위해 Microsoft Azure Blob Storage를 사용합니다. 흥미로운 점은 C2 메커니즘인데, 기존의 C2 서버가 전혀 없다는 것입니다. 이 악성 프로그램은 전 세계 수천 개의 정상 기업에서 사용하는 것과 동일한 서비스인 Azure Blob Storage와 직접 통신합니다.
C2 엔드포인트: note1ggbbhggdwa1[.]blob[.]core[.]windows[.]net
기존의 풀 기반 C2 모델을 사용하는 대신, 아주르베일 이 방식은 '데드 드롭' 방식을 따릅니다. 공격자와 감염된 시스템은 직접 통신하지 않고, 대신 동일한 Azure 스토리지 컨테이너를 사용하여 데이터를 교환합니다.
에이전트는 주기적으로 약 124바이트 크기의 암호화된 작은 비콘을 업로드하여 자신이 활성화되었음을 알립니다. 공격자는 동일한 컨테이너에 명령어를 삽입합니다. 아주르베일 이 프로그램은 해당 명령어를 검색하고, 암호 해독하고, 실행한 다음, 결과를 암호화된 데이터 덩어리로 다시 업로드합니다.
AZUREVEIL의 지휘 기능

정적 및 동적 분석을 통해 우리는 지원되는 36개의 명령어를 확인했습니다. 아주르베일이는 광범위한 사후 공격 활동을 포괄합니다. 이러한 기능을 통해 공격자는 감염된 시스템을 완전히 제어하고, 데이터를 탈취하며, 네트워크를 통해 측면 이동할 수 있습니다.
파일 시스템 작업
- 디렉터리 내용 및 논리 드라이브 목록
- 파일을 읽고, 이동하고, 이름을 바꾸고, 삭제하세요.
- 파일을 Azure Blob Storage로 유출
- C2에서 피해자 시스템으로 파일을 드롭합니다.
- 파일 다운로드 대기열
공정 및 쉘 제어
- 쉘 명령 실행
- 실행 중인 프로세스와 명명된 파이프 목록을 표시합니다.
- 프로세스 구성 및 종료
- 프로세스를 종료하거나 네트워크를 차단하세요.
네트워크 및 피벗팅
- 포트 포워딩 및 SOCKS 프록시 제어
- TCP 및 UDP 피벗 연결
- 명명된 파이프 통신
- 네트워크 어댑터 열거(MAC 주소, IP 주소, 유형)
C2 관리
- 런타임 시 C2 설정을 재구성합니다.
- 제어 파일 전송 상태
- 시스템 가동 시간 조회
인메모리 코드 실행
- 비콘 객체 파일(BOF)을 완전히 실행합니다.
디스크에 쓰지 않고 메모리에 저장
BOF 실행 엔진

정적 분석 중에 0x32 명령어가 눈에 띄었습니다. 처음에는 일반적인 인젝션 루틴처럼 보였지만, 재배치 코드를 분석해 보니 그 이상의 의미를 지니고 있음을 알게 되었습니다.

해당 함수는 섹션 개수의 경우 오프셋 +2, 심볼 개수의 경우 오프셋 +12에서 데이터를 읽었는데, 이는 표준 COFF 파일 형식에 정의된 오프셋과 정확히 동일합니다. 이를 확인하기 위해 분석 장비에서 실제 AMD64 COFF 객체 파일을 컴파일하고 그 구조를 파서와 비교했습니다.
BOF(객체 파일)를 수신하면 AzureVeil은 먼저 메모리를 할당하고 객체 파일의 여러 섹션을 해당 메모리에 로드합니다. 그런 다음 필요한 재배치를 처리하고 내부 해시 기반 조회를 사용하여 함수 참조를 해결합니다. 모든 설정이 완료되면 로더는 에이전트 프로세스 내에서 BOF 진입점을 직접 실행합니다.
실행 중에 생성된 모든 출력은 명명된 파이프를 사용하여 캡처된 후 Azure Blob Storage를 통해 공격자에게 다시 전송됩니다. 이를 통해 공격자는 시스템에서 추가 함수를 실행하고 결과를 얻을 수 있으며, 이 모든 작업은 메모리 내에서만 수행됩니다.
인프라 및 속성
분석 과정에서 다음과 같은 사실을 발견했습니다. 아주르베일 이 공격은 마이크로소프트 Azure Blob Storage를 통해 전적으로 통신하며, 합법적인 클라우드 인프라를 명령 및 제어에 악용합니다. 기존의 C2 서버 대신, 공격자는 전용 Azure 스토리지 계정(note1ggbbhggdwa1[.]blob[.]core[.]windows[.]net)을 사용합니다.

추가 분석 결과 저장 장치 구성에 대한 다음과 같은 세부 정보가 밝혀졌습니다.
컨테이너: /note/ats/
Blob 형식: {agent_id}/{timestamp1}_{timestamp2}.bin
에이전트 ID: 345831bc
포트: 443 (HTTPS)
모든 통신은 포트 443의 HTTPS를 통해 이루어지므로 트래픽이 일반적인 Azure 활동과 섞여 보이지 않습니다. blob.core.windows.net은 정상적인 애플리케이션에서 널리 사용되므로 이러한 접근 방식을 통해 공격자는 네트워크 수준의 탐지를 피할 수 있습니다.
또한, 스토리지 계정에 대한 모든 작업을 인증하는 데 사용되는 _計畫申請審查結果通知單.exe 실행 파일에서 드롭되는 encrypted_blob 내부에 하드코딩된 SAS(Shared Access Signature) 토큰을 발견했습니다.
sv=2024-11-04&ss=b&srt=sco&sp=rwdlaciytfx&st=2026-03-19T09:20:44Z&se=2027-03-19T17:35:44Z&spr=https&sig=ECJjJIIE9Ou75dwiHhliC4fWccdBpLX9u580AX9TGwY=
해당 토큰은 2026년 3월 19일부터 2027년 3월 19일까지 1년간 유효합니다. 이처럼 긴 유효 기간은 공격자가 장기간에 걸쳐 지속적인 접근 권한을 유지하려 했음을 시사합니다. 토큰에 부여된 권한은 읽기, 쓰기, 삭제 및 업로드 작업을 포함하여 스토리지 컨테이너와의 모든 상호 작용을 허용합니다.
이번 캠페인에서 관찰된 전술, 기술, 도구 및 타겟팅을 바탕으로, 중국에 기반을 둔 위협 행위자와 연관이 있을 가능성이 높다고 판단합니다. 그러나 이번 캠페인에 사용된 기법들이 이전에 공개적으로 알려진 중국 APT 활동에서 보고되지 않은 것들이기 때문에, 특정 알려진 그룹과 연관 짓지는 않습니다.
맺음말
드래곤 위브 작전 이는 표적 스파이 활동 캠페인입니다. 이 캠페인의 독특한 특징 중 하나는 Microsoft Azure Blob Storage를 숨겨진 C2 채널로 활용한다는 점입니다. 악성코드는 일반적인 C2 서버와 통신하는 대신, 일반적인 클라우드 활동과 섞여 트래픽을 전송하므로 탐지가 훨씬 어려워집니다. 최종 페이로드인 AZUREVEIL은 36개의 사후 공격 명령어를 포함하는 완전한 기능을 갖춘 Adaptix C2 에이전트입니다. 인메모리 BOF 실행 기능을 통해 공격자는 디스크에 많은 흔적을 남기지 않고도 추가 코드를 실행하고 시스템을 제어할 수 있는 상당한 유연성을 확보할 수 있습니다.
또한, 해당 캠페인이 체코와 대만을 모두 표적으로 삼고 있으며, 지역별 특성을 고려한 미끼 문서를 사용하고 있음을 확인했습니다. 이는 이번 공격이 무작위적인 것이 아니라 계획적이고 표적화된 공격임을 시사합니다. 사용된 도구와 기법의 차이를 바탕으로, 우리는 이 캠페인이 중국에 기반을 둔 위협 행위자와 연관되어 있다고 판단합니다.
SEQRITE 보호
링크.트로이.50646.GC
트로이 목마.에이전트.S38943638
스크립트.트로잔.50655.SL
스크립트.트로잔.50650.SL
침해 지표(IOC)
SHA-256사진이름
| 096372d19b4787e989f44e04c5ecc29885aa927c34ae8666628d6c0eb20bb447 | 計畫申請審查結果통지單.pdf.lnk |
| 1c56228cbd1bdebb9e5ea55c2749150fee06c865ede4a3754e8bd6843e51d2d4 | 計畫申請審查結果communication單.exe |
| 080ab9bc2893ba7bad354551604a667af40ed2ae2d042d2323c2bd9ad3122192 | UnityPlayer.dll |
| 5ed14c2b7f7433a1a72dd6b668413f935a217ba10b69d89b774a82990fa12fe1 | BrowserViewUtility.exe |
| 61f7d9cd2d8ce7df950639b23ce90085b300b0c6dd0d8d934bba8fdecb670f15 | RuntimeBroker_update.exe |
| 24aa4e780ccd66cef13da9ef98c32954105cf2a32ec643efab0ba1aa2d6352f4 | Com.dat |
| 02542a49b3bd6bd2795afb67840acb4557b17e017f7503dd03ebe3aeeb28720e | 000b67d70f3876965bb09fd37164b7ccrezervaci.pdf |
| 8ae7c82a3e4f742777e590b25a1c563d19bd9bcba2a387d004aae72c4b2828f9 | 000b67d70f3876965bb09fd37164b7.pdf |
| 047687548605734348792e2a9d771b6cba42facd0d0d7d44d778290a25848574 | 1.dat |
| a4e9f9919d62589b57cfa08c9ccb89e386b09f683271373413cd8e8c8c7d1c5a | 빈.vbs |
| 823d5969db3f3b72ebbdce1b78752717ea849884a0fb40d86146416c38e128de | 프로필.ps1 |
| 783661d0f7edb338d2d50be087764d82dbbc9ee7989ddc57db1801e4ec9045b0 | 아주르베일.exe |
네트워크 표시기
지시자 기술설명
| note1ggbbhggdwa1[.]blob[.]core[.]windows[.]net | Azure Blob Storage C2 |
MITRE ATT&CK 매핑
| 술책 | 기술 ID | 기술명 |
| 초기 액세스 | T1566.001 | 스피어피싱 첨부파일 |
| 실행 | T1204.002 | 악성 파일 - 사용자 실행 |
| T1059.001 | PowerShell을 | |
| T1059.005 | Visual Basic을 | |
| 방어 회피 | T1574.002 | DLL 사이드 로딩 |
| T1027 | 난독화된 파일 또는 정보 | |
| T1055 | 프로세스 주입 | |
| T1497.001 | 가상화/샌드박스 회피 | |
| T1620 | 리플렉티브 코드 로딩 | |
| 발견 | T1083 | 파일 및 디렉터리 검색 |
| T1057 | 프로세스 발견 | |
| T1016 | 시스템 네트워크 구성 검색 | |
| T1082 | 시스템 정보 검색 | |
| 명령 및 제어 | T1102.001 | 웹 서비스 - 데드 드롭 해결사 |
| T1573 | 암호화된 채널 | |
| T1090 | 대리 | |
| T1105 | 진입 도구 전송 | |
| 여과 | T1041 | C2 채널을 통한 유출 |
작성자
프리야 파텔
카르티쿠마르 지바니



