STX RAT 공급망 공격, 지갑 및 X-VPN 타격
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 보고서는 러시아 정부 지원을 받는 Gamaredon 그룹이 우크라이나 정부 및 중요 인프라 환경 내에서 장기적인 접근을 유지하기 위해 사용하는 다단계 로더 프레임워크를 설명합니다. 로더는 합법적인 클라우드 플랫폼과 메시징 서비스를 통해 배달되며, Windows 레지스트리에 명령 및 제어 세부 정보를 저장하고 대체 데이터 스트림과 예약 작업에 의존하여 이후 페이로드를 트리거합니다.
조사
Sekoia.io는 Telegram, Telegraph, Check-Host와 같은 서비스에 호스팅된 공개 해답 해결자로부터 추가 코드를 검색하는 세 가지 VBScript 기반의 로더 단계를 재구성했습니다. 두 번째 단계는 ADS에 페이로드를 씁니다 %TEMP% 그리고 예약 작업을 생성하며, 세 번째 단계는 최종 GammaSteel 스틸러 모듈을 다운로드하고 실행하는 숨겨진 PowerShell 프로세스를 시작합니다.
대응책
방어자는 수상한 레지스트리 쓰기를 모니터링해야 합니다 HKCUConsole, 예상치 못한 예약 작업 DsSvcCleanup,에 대한 이상한 대체 데이터 스트림 사용 %TEMP%, 및 알려진 Cloudflare, Telegram, Check-Host 도메인으로의 네트워크 트래픽. 인코딩된 명령에 의존하는 서명되지 않은 VBScript와 PowerShell 스크립트의 실행도 차단하거나 엄격하게 제한되어야 합니다.
대응
침해 탐지 시, 영향을 받은 호스트를 즉시 격리하고, 관련된 레지스트리 키와 예약 작업 정의를 수집하며, ADS 관련 파일을 보존하고, 확인된 명령 및 제어 도메인 및 IP 주소를 차단하십시오. 포렌식 이미징을 수행하고 메모리와 디스크 모두에서 GammaSteel 스틸러를 탐색하십시오.
"graph TB %% Class Definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 classDef tool fill:#cccccc %% Node definitions initial_driveby["<b>Technique</b> – <b>T1189 Driveu2011by Compromise</b><br/><b>Description</b>: 사용자가 방문할 때 악성 콘텐츠를 제공하기 위해 웹사이트를 손상시킵니다."] class initial_driveby technique c2_deadDrop["<b>Technique</b> – <b>T1102.001 Web Service Dead Drop Resolver</b><br/><b>Description</b>: 명령 및 제어 데이터를 교환하기 위해 합법적인 웹 서비스를 사용합니다."] class c2_deadDrop technique c2_dynamic["<b>Technique</b> – <b>T1568 Dynamic Resolution</b><br/><b>Description</b>: 탐지를 피하기 위해 C2 주소를 동적으로 해결합니다."] class c2_dynamic technique execution_vbscript["<b>Technique</b> – <b>T1216.002 System Script Proxy Execution VBScript</b><br/><b>Description</b>: 시스템 스크립트 프록시를 통해 악성 VBScript를 실행합니다."] class execution_vbscript technique persistence_task["<b>Technique</b> – <b>T1053.005 Scheduled Task</b><br/><b>Description</b>: 지속성을 유지하기 위한 예약 작업을 생성합니다."] class persistence_task technique priv_esc_reflect["<b>Technique</b> – <b>T1620 Reflective Code Loading PowerShell</b><br/><b>Description</b>: PowerShell을 사용하여 메모리에 악성 코드를 반사적으로 로드합니다."] class priv_esc_reflect technique propagation_usb["<b>Technique</b> – <b>T1091 Replication Through Removable Media</b><br/><b>Description</b>: 전파를 위해 USB 드라이브에 악성 파일을 복사합니다."] class propagation_usb technique %% Connections showing attack flow initial_driveby –>|leads to| c2_deadDrop c2_deadDrop –>|uses| c2_dynamic c2_dynamic –>|enables| execution_vbscript execution_vbscript –>|establishes| persistence_task persistence_task –>|facilitates| priv_esc_reflect execution_vbscript –>|enables| propagation_usb "
공격 흐름
탐지
숨겨진 PowerShell 커맨드 라인을 통한 실행 가능성 (cmdline 경유)
보기
Powershell에서 의심스러운 .NET 메소드 호출 (powershell 경유)
보기
LOLBAS WScript/CScript (process_creation 경유)
보기
명령 및 제어 채널로서의 텔레그램 남용 가능성 (dns_query 경유)
보기
수상한 Trycloudflare 도메인 통신 (dns 경유)
보기
Cloudflare 개발 도메인 남용 가능성 (dns 경유)
보기
탐지할 IOCs (HashMd5): FSB의 matryoshka #2/3 – 끝없이 풀려나오는 선물 Gamaredon – GammaLoad
보기
탐지할 IOCs (SourceIP): FSB의 matryoshka #2/3 – 끝없이 풀려나오는 선물 Gamaredon – GammaLoad
보기
탐지할 IOCs (DestinationIP): FSB의 matryoshka #2/3 – 끝없이 풀려나오는 선물 Gamaredon – GammaLoad
보기
Gamaredon PowerShell 메모리 내 실행 탐지 [Windows Powershell]
보기
Gamaredon C2 URL 레지스트리 업데이트 탐지 [Windows Registry Event]
보기
시뮬레이션 실행
전제조건: 텔레메트리 및 기준 선행 조사가 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적대적 기술 (TTP)의 정확한 실행을 자세히 설명합니다. 명령과 서사는 식별된 TTP를 직접 반영하고 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성하려고 해야 합니다.
-
공격 서사 및 명령:
사용자의 세션을 손상시킨 위협 행위자는, 앞으로의 비콘이 새로운 서버에 도달할 수 있도록 C2 엔드포인트를 업데이트해야 합니다. Gamaredon은 잘 알려진 레지스트리 키에 URL을 저장합니다HKCUConsole. 공격자는 네이티브 PowerShell (Set-ItemProperty)를 사용하여 새로운 URL을 작성하며, 제3자 도구를 피하여 ‘living-off-the-land’ 상태를 유지합니다. 이 작업은 전체 경로를 포함한 레지스트리 값 설정 이벤트 (EventID 13)를 생성하며, Sigma 규칙의RegistryPath|contains필터에 일치합니다.# 시뮬레이션된 Gamaredon C2 URL 업데이트 - 모니터된 키에 작성 $c2Url = "https://c2.gamaredon.example.com/payload" $targetKey = "HKCU:ConsoleHistoryURL" New-Item -Path $targetKey -Force | Out-Null Set-ItemProperty -Path $targetKey -Name "URL" -Value $c2Url -
회귀 테스트 스크립트: (PowerShell – 독립형)
<# Gamaredon C2 URL 업데이트를 Sigma 규칙에 의해 모니터되는 레지스트리 키에서 시뮬레이션합니다. #> # 매개변수 (필요에 따라 조정) $c2Url = "https://c2.gamaredon.example.com/payload" $regPath = "HKCU:ConsoleHistoryURL" $valueName = "URL" # 키가 존재하는지 확인 if (-not (Test-Path $regPath)) { New-Item -Path $regPath -Force | Out-Null } # 악성 C2 URL 쓰기 Set-ItemProperty -Path $regPath -Name $valueName -Value $c2Url Write-Host "[*] C2 URL이 $regPath$valueName에 작성됨" -
정리 명령: (PowerShell)
# 시스템을 깨끗하게 유지하기 위해 시뮬레이션된 키/값 제거 $regPath = "HKCU:ConsoleHistoryURL" if (Test-Path $regPath) { Remove-ItemProperty -Path $regPath -Name "URL" -ErrorAction SilentlyContinue # 옵션으로 전체 키 제거 Remove-Item -Path $regPath -Recurse -Force -ErrorAction SilentlyContinue Write-Host "[*] 시뮬레이션된 레지스트리 아티팩트를 정리했습니다." }