Spionaggio informatico APT15: Analisi delle campagne e dei TTP
Detection stack
- AIDR
- Alert
- ETL
- Query
Sommario
APT15 è un gruppo di cyber spionaggio sponsorizzato dallo stato cinese, attivo dal 2010, che prende di mira principalmente agenzie governative, missioni diplomatiche e organizzazioni militari. Gli attori si affidano al spear-phishing, allo sfruttamento di applicazioni esposte al pubblico e backdoor personalizzate per ottenere l’accesso iniziale e mantenere una presenza a lungo termine. Il loro toolkit include steganografia, camuffamento, manipolazione del registro e canali C2 criptati incorporati negli header HTTP o nel traffico DNS. La campagna continua a evolversi con nuovi strumenti come Graphican e la rete di relay ORB3.
Indagine
L’indagine ha mappato diverse famiglie di malware (BS2005, TidePool, MirageFox, Graphican, ecc.) e un set completo di tecniche ATT&CK che coprono accesso iniziale, esecuzione, persistenza, escalation dei privilegi, evasione della difesa, accesso alle credenziali, scoperta, raccolta, esfiltrazione e comando e controllo. Gli analisti hanno estratto indicatori concreti tra cui domini, percorsi dei file, chiavi di registro e linee di comando dai dati del caso. L’infrastruttura del gruppo sfrutta domini come goback.stranged.net and finance.globaleducat.com per le operazioni C2.
Mitigazione
Le misure di difesa raccomandate includono scansioni rigorose degli allegati e-mail, patch tempestive di Microsoft Exchange, SharePoint e apparecchiature VPN, e monitoraggio delle modifiche sospette del registro, attività pianificate anomale, e l’esecuzione di payload basata su rundll32 o COM. Il monitoraggio delle reti dovrebbe concentrarsi su attività anomale dei cookie HTTP e query DNS TXT allineate a modelli di C2 noti. La whitelisting delle applicazioni e l’analisi comportamentale possono aiutare a bloccare l’uso di archiviatori rinominati e payload PNG basati su steganografia.
Risposta
Quando viene rilevata un’attività di APT15, isolare l’host interessato, catturare dati volatili e tutti gli IOC correlati, e bloccare i domini e gli indirizzi IP C2 identificati. Eseguire un’analisi forense completa per individuare scorciatoie persistenti, attività pianificate e modifiche del registro, quindi eradicare i componenti dannosi e reimpostare le credenziali compromesse. Informare gli utenti colpiti e aggiornare le regole di rilevamento per coprire le linee di comando osservate, i percorsi dei file e gli indicatori d’infrastruttura.
“graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Node definitions node_initial[“<b>Tecnica</b> – <b>T1566.001 Spearphishing Allegato</b><br/><b>Descrizione</b>: Invia email mirate con allegati dannosi per ottenere accesso iniziale.”] class node_initial technique node_valid[“<b>Tecnica</b> – <b>T1078 Account Validi</b><br/><b>Descrizione</b>: Utilizzare credenziali legittime compromesse per accedere ai sistemi.”] class node_valid technique node_exploit[“<b>Tecnica</b> – <b>T1190 Sfruttamento delle Applicazioni Pubbliche</b><br/><b>Descrizione</b>: Sfruttare le vulnerabilità nei servizi rivolti a internet per ottenere accesso.”] class node_exploit technique node_cmd[“<b>Tecnica</b> – <b>T1059.003 Shell di Comando Windows</b><br/><b>Descrizione</b>: Eseguire comandi tramite cmd.exe per eseguire codice dannoso.”] class node_cmd technique node_shortcut[“<b>Tecnica</b> – <b>T1547.009 Modifica Scorciatoia</b><br/><b>Descrizione</b>: Creare o modificare collegamenti LNK per persistenza.”] class node_shortcut technique node_task[“<b>Tecnica</b> – <b>T1053 Attività Programmata</b><br/><b>Descrizione</b>: Utilizzare attività programmate per eseguire payload a tempi definiti.”] class node_task technique node_active[“<b>Tecnica</b> – <b>T1547.014 Impostazione Attiva</b><br/><b>Descrizione</b>: Utilizzare le chiavi di registro di Impostazione Attiva per persistenza.”] class node_active technique node_token[“<b>Tecnica</b> – <b>T1134.003 Manipolazione Token di Accesso</b><br/><b>Descrizione</b>: Assumere privilegi maggiori alterando i token di accesso.”] class node_token technique node_steg[“<b>Tecnica</b> – <b>T1027.003 Steganografia</b><br/><b>Descrizione</b>: Nascondere dati all’interno di altri file per eludere rilevamenti.”] class node_steg technique node_masq[“<b>Tecnica</b> – <b>T1036 Disguise</b><br/><b>Descrizione</b>: Rinominare file o camuffarli come legittimi per evitare il rilevamento.”] class node_masq technique node_icon[“<b>Tecnica</b> – <b>T1027.012 Furtività Icona LNK</b><br/><b>Descrizione</b>: Incapsulare codice dannoso nelle risorse icona dei file LNK.”] class node_icon technique node_proxy[“<b>Tecnica</b> – <b>T1218 Esecuzione Proxy Binario di Sistema</b><br/><b>Descrizione</b>: Abusare di binari di sistema fidati per eseguire codice dannoso.”] class node_proxy technique node_guard[“<b>Tecnica</b> – <b>T1480.001 Guardrail di Esecuzione</b><br/><b>Descrizione</b>: Verificare le condizioni dell’ambiente prima dell’esecuzione.”] class node_guard technique node_sandbox[“<b>Tecnica</b> – <b>T1497 Evasione della Sandbox</b><br/><b>Descrizione</b>: Rilevare ed eludere ambienti sandbox di analisi.”] class node_sandbox technique node_keylog[“<b>Tecnica</b> – <b>T1056.001 Keylogging</b><br/><b>Descrizione</b>: Catturare i tasti premuti per ottenere credenziali.”] class node_keylog technique node_dump[“<b>Tecnica</b> – <b>T1003 Dump delle Credenziali del Sistema Operativo</b><br/><b>Descrizione</b>: Estrarre gli hash delle password dal sistema operativo.”] class node_dump technique node_sysinfo[“<b>Tecnica</b> – <b>T1082 Scoperta delle Informazioni di Sistema</b><br/><b>Descrizione</b>: Raccogliere dettagli su sistema operativo, hardware e software.”] class node_sysinfo technique node_inet[“<b>Tecnica</b> – <b>T1016.001 Scoperta della Connessione Internet</b><br/><b>Descrizione</b>: Identificare connessioni di rete attive e indirizzi IP.”] class node_inet technique node_stage[“<b>Tecnica</b> – <b>T1074.001 Dati In Scena</b><br/><b>Descrizione</b>: Accumulare dati localmente prima dell’esfiltrazione.”] class node_stage technique node_archive[“<b>Tecnica</b> – <b>T1560.001 Archivio tramite Utility</b><br/><b>Descrizione</b>: Comprimere dati utilizzando utility come zip.”] class node_archive technique node_email[“<b>Tecnica</b> – <b>T1114.002 Raccolta Email Remota</b><br/><b>Descrizione</b>: Accedere agli account email per raccogliere messaggi.”] class node_email technique node_http[“<b>Tecnica</b> – <b>T1071.001 Protocolli Web HTTP</b><br/><b>Descrizione</b>: Utilizzare HTTP per le comunicazioni di comando e controllo.”] class node_http technique node_obfusc[“<b>Tecnica</b> – <b>T1001 Offuscamento Dati</b><br/><b>Descrizione</b>: Codificare o crittografare i dati per nasconderne il contenuto.”] class node_obfusc technique node_dead[“<b>Tecnica</b> – <b>T1102.001 Risolutore di Dead Drop</b><br/><b>Descrizione</b>: Recuperare comandi o dati da posizioni nascoste.”] class node_dead technique node_encrypt[“<b>Tecnica</b> – <b>T1573.001 Canale Criptato</b><br/><b>Descrizione</b>: Crittografare il traffico C2 per nascondere le comunicazioni.”] class node_encrypt technique node_exfil[“<b>Tecnica</b> – <b>T1048.003 Esfiltrazione su Protocollo Non C2 Non Crittato</b><br/><b>Descrizione</b>: Trasferire dati utilizzando protocolli non associati a C2 senza crittografia.”] class node_exfil technique %% Connections node_initial u002du002d>|leads_to| node_valid node_initial u002du002d>|leads_to| node_exploit node_valid u002du002d>|leads_to| node_cmd node_cmd u002du002d>|enables| node_shortcut node_cmd u002du002d>|enables| node_task node_cmd u002du002d>|enables| node_active node_cmd u002du002d>|enables| node_token node_cmd u002du002d>|enables| node_steg node_cmd u002du002d>|enables| node_masq node_cmd u002du002d>|enables| node_icon node_cmd u002du002d>|enables| node_proxy node_cmd u002du002d>|enables| node_guard node_cmd u002du002d>|enables| node_sandbox node_cmd u002du002d>|enables| node_keylog node_cmd u002du002d>|enables| node_dump node_cmd u002du002d>|enables| node_sysinfo node_cmd u002du002d>|enables| node_inet node_sysinfo u002du002d>|feeds| node_stage node_inet u002du002d>|feeds| node_stage node_stage u002du002d>|includes| node_archive node_stage u002du002d>|includes| node_email node_archive u002du002d>|used_by| node_http node_email u002du002d>|used_by| node_http node_http u002du002d>|uses| node_obfusc node_http u002du002d>|uses| node_dead node_http u002du002d>|uses| node_encrypt node_http u002du002d>|exfiltrates_via| node_exfil “
Flow dell’attacco
Rilevazioni
Esecuzione di Software di Archiviazione tramite Interprete di Comandi e Script (attraverso process_creation)
View
Stringhe Powershell Sospette (attraverso powershell)
View
Stringhe Powershell Sospette (attraverso cmdline)
View
Binari / Script Sospetti in Posizioni di Avvio Automatico (attraverso file_event)
View
Possibile Esecuzione XCOPY per la Raccolta di Documenti (attraverso cmdline)
View
Aggiunta di Estensione File Sospetta alle Chiavi di Avvio [ASEPs] (attraverso registry_event)
View
IOC (Email) per il rilevamento: APT15 Cyber Espionage: Analisi di Campagne e TTP
View
Rilevamento delle Tecniche di Esecuzione Comando e Persistenza di APT15 [Creazione del Processo Windows]
View
Rileva la Comunicazione C2 di APT15 tramite Intestazioni HTTP Specifiche [Connessione di Rete Windows]
View
Esecuzione della simulazione
Prerequisito: Il controllo preliminare di telemetria e baseline deve essere superato.
Narrativa e comandi dell’attacco:
- Preparazione: L’avversario ha già compromesso un account utente ed è approdato sull’endpoint.
- Preparazione dati (T1059.003): Utilizzando esattamente
xcopyla sintassi osservata in attività storiche di APT15, l’attaccante copia i file del desktop della vittima in una cartella temporanea WMI nascosta, preservando i timestamp (/D:09-29-2021) per mimetizzarsi con l’attività legittima del sistema. - Esecuzione del payload (T1218.002): L’attaccante poi invoca
rundll32.execon un percorso a nome breve (C:DOCUME~1ALLUSE~1IEHelpermshtml.dll) per eseguire uno script JavaScript dannoso che stabilisce la persistenza. - Risultato: Entrambi i comandi generano distinti eventi di creazione di processi che corrispondono alla regola Sigma
selezione1andselezione2rispettivamente, attivando un allarme.
Script per test di regressione:
# -------------------------------------------------
# Script di simulazione APT15 – attiva la regola Sigma
# -------------------------------------------------
# 1. Creare directory di staging e file fittizi
$src = "C:usersREDACTEDDesktop"
$dst = "C:windowstempwmi"
New-Item -Path $src -ItemType Directory -Force | Out-Null
New-Item -Path $dst -ItemType Directory -Force | Out-Null
Set-Content -Path "$srcsecret.txt" -Value "sensitive data" -Encoding UTF8
# 2. Eseguire il comando xcopy esatto usato da APT15
$xcopyCmd = "xcopy /D:09-29-2021 /S/Y/C c:usersREDACTEDDesktop c:windowstempwmi"
Invoke-Expression $xcopyCmd
# 3. Distribuire la DLL dannosa (simulata copiando una DLL legittima)
$malDllSrc = "$env:SystemRootSystem32mshtml.dll"
$malDllDst = "C:DOCUME~1ALLUSE~1IEHelpermshtml.dll"
New-Item -Path (Split-Path $malDllDst) -ItemType Directory -Force | Out-Null
Copy-Item -Path $malDllSrc -Destination $malDllDst -Force
# 4. Eseguire rundll32 con il pattern di argomenti esatto di APT15
$rundllCmd = "rundll32.exe C:DOCUME~1ALLUSE~1IEHelpermshtml.dll, IEHelper"
Invoke-Expression $rundllCmd
# -------------------------------------------------
# Fine della simulazione
# -------------------------------------------------
Comandi di pulizia:
# Rimuovere file e directory di staging
Remove-Item -Path "C:usersREDACTEDDesktopsecret.txt" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:windowstempwmi" -Recurse -Force -ErrorAction SilentlyContinue
# Rimuovere la cartella IEHelper falsa e la DLL
Remove-Item -Path "C:DOCUME~1ALLUSE~1IEHelper" -Recurse -Force -ErrorAction SilentlyContinue
# Opzionale: fermare Sysmon (se necessario solo per il test)
# & "$env:ProgramFilesSysinternalsSysmon.exe" -u