DriveSurge utilizza ClickFix e falsi aggiornamenti per attacchi drive-by su vasta scala
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
DriveSurge è un nuovo broker di accessi iniziali che compromette siti web legittimi e inietta JavaScript dannosi per indirizzare i visitatori attraverso un sistema di distribuzione del traffico open-source noto come zTDS. Successivamente, l’attore serve false pagine di aggiornamento del browser o prompt in stile ClickFix che distribuiscono malware agli utenti di macOS e Windows tramite download ingannevoli o comandi PowerShell dannosi. La sua infrastruttura include migliaia di .icu domini registrati tramite NiceNIC e ospitati su infrastrutture bulletproof. La campagna è di ampio respiro e mira a utenti su più browser e sistemi operativi.
Indagine
I ricercatori hanno identificato otto distinti fingerprint tecnici legati all’operazione, compresi nomi di file JavaScript caratteristici come t.js, t..js, ed ext-b..js, insieme a ricorrenti caratteristiche del server come nginx e specifici hash JARM. La mappatura dell’infrastruttura si è basata su ricerche di dominio, pivot email WHOIS e analisi di siti web compromessi inclusi jclforwarding.com. Il team ha anche estratto URL di distribuzione payload, server di comando e controllo, e documentato comportamenti di hijacking della clipboard mirati specificamente agli utenti macOS.
Mitigazione
Le organizzazioni dovrebbero monitorare i pattern di iniezione JavaScript documentati, la presenza di file relativi a zTDS come jsrepo con il parametro rnd e connessioni in uscita a indirizzi IP bulletproof noti. I difensori dovrebbero bloccare .icu domini registrati tramite NiceNIC che corrispondono ai fingerprint identificati e applicare rigide politiche di sicurezza dei contenuti agli asset web esposti a Internet. Le protezioni degli endpoint dovrebbero anche essere in grado di rilevare le catene di comandi PowerShell e Bash codificate in Base64 utilizzate nella distribuzione.
Risposta
Se viene rilevata attività di DriveSurge, gli asset web compromessi dovrebbero essere immediatamente isolati, JavaScript dannosi rimossi, e qualsiasi registrazione di dominio compromessa riesaminata o revocata. I domini e gli indirizzi IP identificati dovrebbero essere bloccati al perimetro della rete. I team di sicurezza dovrebbero anche eseguire analisi forensi su qualsiasi sistema che abbia eseguito i comandi di download dannosi e resettare eventuali credenziali esposte. Gli indicatori rilevanti dovrebbero essere condivisi con ISAC di settore e partner fidati.
graph TB %% Definizione classi classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ffcc99 classDef process fill:#ff9966 classDef operator fill:#ff9900 %% Nodi node_initial_access[“<b>Azione</b> – <b>T1189 Compromissione Drive-by</b><br/><b>Descrizione</b>: Compromissione di siti web ad alta reputazione con iniezione di JavaScript malevolo.<br/><b>Risultato</b>: Il browser della vittima carica codice malevolo.”] class node_initial_access action node_content_injection[“<b>Azione</b> – <b>T1659 Iniezione di contenuto</b><br/><b>Descrizione</b>: Script iniettati (t.js, ext-b, jsrepo) caricano il sistema di distribuzione del traffico zTDS.”] class node_content_injection action tool_ztds[“<b>Strumento</b> – zTDS Traffic Distribution System<br/><b>Scopo</b>: Fornire JavaScript malevolo ai browser compromessi.”] class tool_ztds tool malware_jsrepo[“<b>Malware</b> – jsrepo<br/><b>Ruolo</b>: Script loader offuscato che distribuisce URL dei payload.”] class malware_jsrepo malware node_obfuscation[“<b>Azione</b> – Offuscamento del codice<br/><b>Tecniche</b>: T1027.010, T1027.007, T1027.018<br/><b>Descrizione</b>: JavaScript codificato in base64, uso di atob, concatenazione e Unicode invisibile per nascondere URL.”] class node_obfuscation action node_fake_updates[“<b>Azione</b> – <b>T1554 Falsi aggiornamenti</b><br/><b>Descrizione</b>: Pagine di aggiornamento false inducono il download di binari malevoli.<br/><b>Riferimento</b>: T1204.004 Esecuzione utente.”] class node_fake_updates action node_copy_paste[“<b>Azione</b> – <b>T1204.004 Copia e incolla malevolo</b><br/><b>Descrizione</b>: L’utente copia comandi da pagine false ed esegue nel terminale.”] class node_copy_paste action node_clickfix[“<b>Azione</b> – <b>T1684 ClickFix ingegneria sociale</b><br/><b>Descrizione</b>: Falsi errori sostituiscono la clipboard con comandi in Base64.<br/><b>Riferimento</b>: T1115 Clipboard hijacking.”] class node_clickfix action node_clipboard_hijack[“<b>Azione</b> – <b>T1115 Hijacking degli appunti</b><br/><b>Descrizione</b>: L’attaccante sovrascrive la clipboard con comandi malevoli.”] class node_clipboard_hijack action node_browser_hijack[“<b>Azione</b> – <b>T1185 Browser Session Hijacking</b><br/><b>Descrizione</b>: I siti compromessi reindirizzano tramite zTDS verso domini controllati dall’attaccante.”] class node_browser_hijack action node_payload_delivery[“<b>Azione</b> – <b>T1133 Servizi remoti esterni / T1105 trasferimento strumenti</b><br/><b>Descrizione</b>: Script usano curl/wget per scaricare payload macOS secondari.”] class node_payload_delivery action tool_curl[“<b>Strumento</b> – curl<br/><b>Scopo</b>: Trasferimento file dal server dell’attaccante.”] class tool_curl tool tool_wget[“<b>Strumento</b> – wget<br/><b>Scopo</b>: Trasferimento file dal server dell’attaccante.”] class tool_wget tool process_download[“<b>Processo</b> – script di download<br/><b>Azione</b>: Esegue curl/wget per ottenere binari macOS.”] class process_download process node_c2[“<b>Azione</b> – <b>T1102.002 Comunicazione bidirezionale Web</b><br/><b>Descrizione</b>: Il malware comunica con C2 tramite HTTPS e iniezione di contenuti.”] class node_c2 action node_ad_distribution[“<b>Azione</b> – <b>T1596.004 Sistema di distribuzione pubblicitaria</b><br/><b>Descrizione</b>: Malvertising e CDN distribuiscono i payload.”] class node_ad_distribution action %% Connessioni node_initial_access –>|usa| node_content_injection node_content_injection –>|carica| tool_ztds node_content_injection –>|consegna| malware_jsrepo malware_jsrepo –>|esegue| node_obfuscation node_obfuscation –>|abilita| node_fake_updates node_fake_updates –>|attiva| node_copy_paste node_copy_paste –>|porta a| node_clickfix node_clickfix –>|usa| node_clipboard_hijack node_clipboard_hijack –>|porta a| node_browser_hijack node_browser_hijack –>|reindirizza a| node_payload_delivery node_payload_delivery –>|usa| tool_curl node_payload_delivery –>|usa| tool_wget node_payload_delivery –>|consegna| process_download process_download –>|esegue| node_c2 node_c2 –>|comunica via| node_ad_distribution
Flusso di Attacco
Rilevamenti
Download o Upload via Powershell (tramite cmdline)
Visualizza
Chiama Funzioni API Windows Sospette da Powershell (tramite powershell)
Visualizza
Possibile Manipolazione di Stringhe Codificate in Base64 [MacOS] (tramite cmdline)
Visualizza
Tentativo di Esecuzione di Curl Sospetto [MacOS] (tramite cmdline)
Visualizza
IOC (HashSha256) per rilevare: Incontra DriveSurge: Un Nuovo Attore di Minacce che Utilizza ClickFix e Falsi Aggiornamenti Drive-By in Migliaia di Siti Compromessi
Visualizza
IOC (SourceIP) per rilevare: Incontra DriveSurge: Un Nuovo Attore di Minacce che Utilizza ClickFix e Falsi Aggiornamenti Drive-By in Migliaia di Siti Compromessi
Visualizza
IOC (DestinationIP) per rilevare: Incontra DriveSurge: Un Nuovo Attore di Minacce che Utilizza ClickFix e Falsi Aggiornamenti Drive-By in Migliaia di Siti Compromessi
Visualizza
Rilevare L’Esecuzione del Comando ClickFix Malevolo [Windows Powershell]
Visualizza
Rilevamento dell’Iniezione di JavaScript Malevolo da DriveSurge [Server web]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo Pre-volo del Telemetrio & Baseline Deve Essere Passato.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento.
-
Narrativa e Comandi di Attacco
-
Fase 1 – Distribuire payload malevolo:
Un attaccante carica un file JavaScript denominatot.js(o un nome basato su hash) sul server web compromesso. Il file contiene uno snippet di DriveSurge HTML-smuggling che recupera silenziosamente payload aggiuntivi. -
Fase 2 – Richiesta della Vittima:
Il browser della vittima (simulato concurl) richiede il file malevolo, producendo un log di ingresso in cui l’URI della richiesta corrisponde alla regex Sigma. -
Fase 3 – Generazione dell’Allerta:
Il SIEM ingere la linea di log di accesso, la regola Sigma valuta ilnome filecampo, e l’allerta viene sollevata.
-
-
Script di Test di Regressione
#!/usr/bin/env bash set -euo pipefail # --- Variabili ------------------------------------------------- WEB_ROOT="/var/www/html" MALICIOUS_NAME="t.js" MALICIOUS_PATH="${WEB_ROOT}/${MALICIOUS_NAME}" MALICIOUS_CONTENT='console.log("DriveSurge payload eseguito");' # --- Distribuire JavaScript malevolo --------------------------- echo "${MALICIOUS_CONTENT}" | sudo tee "${MALICIOUS_PATH}" > /dev/null sudo chown www-data:www-data "${MALICIOUS_PATH}" sudo chmod 644 "${MALICIOUS_PATH}" # --- Dare ad Apache un momento per notare il nuovo file -------- sleep 2 # --- Simula richiesta della vittima (genera telemetria) ------- curl -s -o /dev/null "http://localhost/${MALICIOUS_NAME}" # --- Opzionale: emettere la linea di log recente per revisione manuale ------- echo "=== Ingresso recente del log di Apache per verifica ===" sudo tail -n 5 /var/log/apache2/access.log | grep "${MALICIOUS_NAME}" || echo "Ingresso di log non trovato" -
Comandi di Pulizia
#!/usr/bin/env bash set -euo pipefail WEB_ROOT="/var/www/html" MALICIOUS_NAME="t.js" MALICIOUS_PATH="${WEB_ROOT}/${MALICIOUS_NAME}" # Rimuovere il file malevolo sudo rm -f "${MALICIOUS_PATH}" echo "Pulito ${MALICIOUS_PATH}"