BlueDelta가 HOOKEDGE를 방위 및 외교 목표물에 배치
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
러시아 정부가 지원하는 위협 그룹 블루델타는 HOOKEDGE라는 경량형 윈도우 배치 스크립트 백도어를 사용하여 초기 접근 캠페인을 수행했습니다. 이 그룹은 외교 테마의 유인물을 포함하는 매크로 활성화된 Microsoft Word 문서를 통해 악성코드를 전달하고, 합법적인 웹훅 서비스를 명령 및 제어와 데이터 탈취에 악용합니다. 캠페인은 러시아 정보 목표를 지원하기 위해 주로 정부 및 외교 조직을 대상으로 합니다.
조사
인시트 그룹은 2025년 말부터 2026년 초까지 루마니아, 스페인, 터키의 조직을 대상으로 한 여러 캠페인을 식별했습니다. 조사를 통해 HOOKEDGE는 HEADLACE 백도어의 진화적 후계자이며, 핵심 아키텍처 및 운영 기법을 공유하고 있음을 밝혀냈습니다. 분석가들은 또한 초기 조사 후 가치 높은 목표에 더 강력한 2단계 페이로드가 배포되는 단계적 모델을 관찰했습니다.
완화
조직은 인터넷에서 유래한 문서의 매크로를 비활성화하고 서명되지 않은 VBA 매크로를 차단하는 정책을 시행해야 합니다. 보안 팀은 예약된 작업 오용과 비정상적인 Microsoft Edge 실행, 특히 헤드리스 모드를 모니터링해야 합니다. 또한 webhook.site 를 포함한 합법적인 웹훅 서비스로의 아웃바운드 트래픽을 검사하는 것도 명령 및 제어 활동을 식별하는 데 도움이 될 수 있습니다.
대응
블루델타 활동이 탐지되면, 보안 팀은 의심스러운 예약된 작업 생성과 비정상적인 브라우저 자동화 동작을 조사해야 합니다. 대응 팀은 문서 열기 카나리아와 네트워크 측정을 통해 초기 타협의 범위를 결정해야 합니다. 차단된 웹훅 끝점을 차단하고 Microsoft Office 보안 제어를 강화하는 것에 우선 순위를 두어야 합니다.
공격 흐름
탐지
의심스러운 예약된 작업 (감사를 통한)
LOLBAS WScript / CScript (프로세스 생성 통해)
웹사이트훅 엔드포인트를 통한 가능한 악성코드 배포 (프록시 통해)
웹사이트훅 엔드포인트를 통한 가능한 악성코드 배포 (DNS 통해)
탐지할 IOCs (HashSha256): HOOKEDGE로 방어와 외교를 목표로 한 BlueDelta Part 2
탐지할 IOCs (HashSha256): HOOKEDGE로 방어와 외교를 목표로 한 BlueDelta Part 1
Word 문서의 AutoOpen 매크로를 통한 BlueDelta HOOKEDGE 실행 탐지 [Windows 프로세스 생성]
HOOKEDGE 백도어 실행 및 데이터 탈취 탐지 [Windows 파일 이벤트]
시뮬레이션 실행
전제 조건: 텔레메트리 및 베이스라인 사전 비행 검사가 통과되어야 합니다.
이유: 이 섹션에서는 탐지 규칙을 트리거하기 위해 설계된 상대 기술(TTP)의 정확한 실행을 설명합니다. 명령과 설명은 식별된 TTP를 직접 반영해야 하며 탐지 논리에 의해 기대되는 정확한 텔레메트리를 생성하는 것을 목표로 합니다. 추상적이거나 관련이 없는 예는 오진을 초래할 수 있습니다.
-
공격 서사 및 명령: 상대는 Word 문서를 포함하는 피싱 이메일을 보냅니다. 피해자가 매크로를 활성화하면 VBA 스크립트가 실행됩니다. 바이너리를 직접 다운로드하는 대신, 매크로는
Shell기능을 사용하여msedge.exe를 특정 URL과 함께 실행합니다. 이 기술은 합법적인 브라우저를 사용하여 방화벽 제약을 우회하고, HTTP/S를 통해 악성 사이트에 도달하거나 데이터를 탈취하기 위한 “생존형” 방법을 제공합니다. 목표는ParentImage == winword.exeandImage == msedge.exe논리를 가진 특정 탐지 규칙을 트리거하는 것입니다. -
회귀 테스트 스크립트:
# 시뮬레이션 스크립트: BlueDelta HOOKEDGE 탐지 논리 트리거 # 이 스크립트는 매크로가 활성화된 Word 문서가 Edge를 실행하는 동작을 시뮬레이트합니다. $WordPath = "C:Program FilesMicrosoft OfficerootOffice16WINWORD.EXE" $EdgePath = "C:Program Files (x86)MicrosoftEdgeApplicationmsedge.exe" if (-not (Test-Path $WordPath)) { Write-Error "Word 실행 파일이 $WordPath에 없습니다. 경로를 조정하세요." exit } Write-Host "[*] 시뮬레이션 시작: Winword 실행..." $WordProcess = Start-Process -FilePath $WordPath -PassThru # '매크로' 실행을 Word 프로세스가 Edge를 시작하도록 시뮬레이트합니다. # 실제 시나리오에서는 VBA: Shell("msedge.exe http://malicious.com")를 통해 수행됩니다. Write-Host "[*] VBA 매크로 실행 시뮬레이션: winword.exe에서 msedge.exe 시작..." # Word 프로세스의 자식 프로세스로 보이게 만드는 트릭을 사용합니다. # 고급 도구 없이 실행 중인 Word 프로세스에 쉽게 주입할 수 없으므로 # 프로세스를 모사하는 하위 프로세스를 시작하여 행동을 시뮬레이트하거나 # 환경이 허용하는 한에서 PowerShell을 사용하여 특정 부모-자식 관계를 트리거할 수 있습니다. # 그러나 본 논리의 순수한 시뮬레이션을 위해: $Action = { Start-Process -FilePath $EdgePath -ArgumentList "https://www.google.com" } # 부모가 Winword인지 확인하기 위해 Edge 실행 명령을 사용합니다. # 참고: 실제 테스트에서 개발자는 컴파일된 DLL 또는 실제 VBA를 사용합니다. # 여기서는 브릿지로 작용하는 PowerShell 명령을 사용합니다. Start-Process -FilePath "powershell.exe" -ArgumentList "-Command & {$Action}" -WindowStyle Hidden # 주어진 특정 탐지 규칙의 경우, 규칙은 WINWORD -> MSEDGE를 기대합니다. # 규칙이 'ParentImage endswith winword.exe'에 엄격하다면, # 진정한 레드 팀 도구 (맞춤형 VBA 매크로 등)가 필요합니다. Write-Host "[+] 시뮬레이션 명령 전송됨. SIEM을 통해 winword.exe -> msedge.exe 모니터링" Start-Sleep -Seconds 10 Stop-Process -Id $WordProcess.Id -Force -
정리 명령:
# 정리: 시뮬레이션의 남은 프로세스가 없도록 보장 Stop-Process -Name "winword" -ErrorAction SilentlyContinue Stop-Process -Name "msedge" -ErrorAction SilentlyContinue Stop-Process -Name "powershell" -ErrorAction SilentlyContinue