STOCKSTAY un altro giorno: l’ultima aggiunta all’apparato di raccolta informazioni di Turla
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
Il Google Threat Intelligence Group ha identificato STOCKSTAY, una backdoor .NET multi-componente utilizzata dall’attore di minacce Turla collegato alla Russia. Il malware è costruito con un design modulare che include un tunnel, un orchestratore e una componente backdoor, tutti comunicanti tramite WebSocket sicuri. È progettato per supportare operazioni di cyber spionaggio a lungo termine contro obiettivi governativi e militari.
Indagine
GTIG ha eseguito un’analisi approfondita dell’ecosistema STOCKSTAY e ha rintracciato il suo sviluppo a dicembre 2022. I ricercatori hanno mappato i suoi componenti modulari, esaminato l’uso della chiave ambientale per decrittografare i dati di configurazione, e documentato il suo passaggio dal travestirsi come un’utilità di mercato azionario al posare come altre applicazioni benigne. L’indagine ha anche rivelato l’uso di K1MORPHER per l’offuscamento delle stringhe e collegamenti al toolkit KAZUAR noto di Turla.
Mitigazione
Le organizzazioni dovrebbero implementare un forte monitoraggio per il comportamento sospetto delle applicazioni .NET e del traffico WebSocket insolito verso domini non familiari. Difendersi dall’accesso iniziale tramite file RDP dannosi e potenziare le protezioni email contro il phishing sono anche critici. Inoltre, risolvere vulnerabilità come CVE-2025-8088 in WinRAR può aiutare a bloccare l’implementazione basata su sfruttamenti.
Risposta
Se viene rilevata un’attività STOCKSTAY, isolare immediatamente gli host interessati per interrompere la comunicazione di comando e controllo e il movimento laterale. Condurre un’indagine forense dettagliata per determinare l’intera portata della compromissione, con particolare attenzione ai cambiamenti di registro non autorizzati e ai nuovi compiti pianificati creati. I log di rete dovrebbero essere esaminati per sessioni WebSocket di lunga durata e i sistemi dovrebbero essere controllati per la presenza dei file componenti STOCKSTAY.
"flowchart TD step_initial_access["Accesso Iniziale: T1566 – Phishing (Allegati spearphishing come file RDP, MSI, o RAR; Link spearphishing a siti compromessi)"] step_execution["Esecuzione: T1204.002 – Esecuzione Utente: File Maligno (file HTA, config RDP); T1574.014 – Dirottare il Flusso di Esecuzione: AppDomainManager (payload .NET); T1543 – Creare o Modificare Processo di Sistema"] rules_for_execution("<b>Nome Regola</b>: Comportamento di Evasione di Difesa LOLBAS MSHTA Sospetto tramite Rilevazione di Comandi Associati (via process_creation)<br/><b>ID Regola</b>: feb459cf-289a-41ab-9241-d8edc232c487") step_persistence["Persistenza: T1543 – Creare o Modificare Processo di Sistema (voci autorun); T1133 – Servizi Remoti Esterni (connettività a lungo termine)"] step_defense_evasion["Evasione Difensiva: T1036 – Camuffamento (rinominare come utilità benigne); T1027.015 – File o Informazioni Offuscate: Compressione; T1497.001/002 – Evasione Virtualizzazione/Sandbox via WMI"] step_discovery["Scoperta: T1012 – Interrogare Registro; T1497.001 – Evasione Virtualizzazione/Sandbox (raccolta di info di sistema/hardware via WMI)"] step_command_and_control["Comando e Controllo: T1102.002/003 – Servizio Web: Comunicazione Bidirezionale/Monodirezionale (WebSocket via Render); T1568 – Risoluzione Dinamica"] rules_for_c2("<b>Nome Regola</b>: Tentativo di Abuso di Publicnode Ethereum come Canale C2 (via dns_query)<br/><b>ID Regola</b>: 280e86bf-fad9-4b9c-8867-e2355e3f50ba") step_collection_exfiltration["Raccolta ed Esfiltrazione: T1560.002/003 – Archiviazione Dati Raccolti tramite Libreria o Metodo Personalizzato (archivi ZIP in-memory)"] step_initial_access –>|porta_a| step_execution step_execution –>|abilita| step_persistence step_execution -.->|rilevata_da| rules_for_execution step_persistence –>|porta_a| step_defense_evasion step_defense_evasion –>|abilita| step_discovery step_discovery –>|porta_a| step_command_and_control step_command_and_control –>|abilita| step_collection_exfiltration step_command_and_control -.->|rilevata_da| rules_for_c2 "
Flusso di Attacco
Rilevazioni
Tentativo di Abuso di Publicnode Ethereum come Canale C2 (via dns_query)
Visualizza
Comportamento di Evasione di Difesa LOLBAS MSHTA Sospetto tramite Rilevazione di Comandi Associati (via process_creation)
Visualizza
Rilevazione Parsing di CryptoContainer e Offuscamento K1MORPHER nel Malware STOCKSTAY di Turla [Sysmon di Windows]
Visualizza
Rilevazione Comunicazione C2 via WebSocket di STOCKSTAY [Connessione di Rete di Windows]
Visualizza
Rilevazione Attività Maligne di STOCKSTAY [Creazione di Processo di Windows]
Visualizza
Esecuzione di Simulazione
Prerequisito: Il Controllo Pre-volo di Telemetria & Baseline deve essere superato.
Motivazione: Questa sezione descrive l’esatta esecuzione della tecnica avversaria (TTP) progettata per attivare la regola di rilevazione. I comandi e la narrativa DEVONO riflettere direttamente i TTP identificati e mirare a generare esattamente la telemetria prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a una cattiva diagnosi.
-
Narrativa dell’Attacco & Comandi: L’avversario mira a stabilire la persistenza utilizzando uno strumento camuffato come un componente di aggiornamento Microsoft legittimo. Per evitare il rilevamento, l’attaccante ha rinominato la loro backdoor STOCKSTAY in
MicrosoftUpdateOneDrive.exee l’ha posizionato in una directory temporanea. L’obiettivo è di eseguire questo processo per avviare una shell inversa o comunicazione di comando e controllo (C2), facendosi affidamento sul nome “legittimo” per eludere il monitoraggio di base del processo. -
Script di Test di Regressione:
# Script di Simulazione: Esecuzione Masquerade STOCKSTAY $MaliciousName = "MicrosoftUpdateOneDrive.exe" $TargetDir = "$env:TEMPStockstaySim" # 1. Creare una directory e file "maligno" simulato if (!(Test-Path $TargetDir)) { New-Item -Path $TargetDir -ItemType Directory -Force } $FakeBinary = Join-Path $TargetDir $MaliciousName # 2. Creare un eseguibile finto (usando un cmd.exe rinominato per scopi di simulazione) Copy-Item "C:WindowsSystem32cmd.exe" -Destination $FakeBinary -Force Write-Host "[+] Simulazione: Creato $FakeBinary" -ForegroundColor Cyan # 3. Eseguire il processo "maligno" Write-Host "[+] Simulazione: Esecuzione $MaliciousName..." -ForegroundColor Yellow Start-Process -FilePath $FakeBinary -ArgumentList "/c echo STOCKSTAY_SIMULATION_ACTIVE" -WindowStyle Hidden Write-Host "[+] Simulazione: Avviata esecuzione del processo." -ForegroundColor Green -
Comandi di Pulizia:
# Script di Pulizia $TargetDir = "$env:TEMPStockstaySim" if (Test-Path $TargetDir) { Remove-Item -Path $TargetDir -Recurse -Force Write-Host "[+] Pulizia: Rimossa directory di simulazione $TargetDir" -ForegroundColor Green } else { Write-Host "[-] Pulizia: Directory di simulazione non trovata." -ForegroundColor Red }