SOC Prime Bias: Critico

26 Mar 2026 15:16

GlassWorm Nasconde un RAT All’interno di un’ Estensione Maligna per Chrome

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
GlassWorm Nasconde un RAT All’interno di un’ Estensione Maligna per Chrome
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riassunto

GlassWorm sfrutta pacchetti npm, PyPI, GitHub e OpenVSX compromessi per distribuire una piattaforma malware a più stadi. Il primo stadio lancia un loader che interroga una memoria blockchain Solana per ottenere indirizzi di comando e controllo, quindi scarica un payload criptato. Il secondo stadio ruba credenziali, file di portafogli di criptovaluta e dettagli dell’host, mentre il terzo stadio distribuisce un RAT persistente basato su WebSocket insieme a un’estensione di Chrome dannosa progettata per catturare dati del browser. L’operazione è rivolta principalmente a sviluppatori e possessori di criptovaluta.

Indagine

Gli analisti hanno collegato il compromesso iniziale a script di pre-installazione malevoli e loader basati su Unicode incorporati in pacchetti altrimenti legittimi. Hanno scoperto due indirizzi Solana wallet che agiscono come luoghi di rilascio per gli URL C2 e hanno visto il loader interrogare diversi endpoint RPC di Solana. Il RAT del terzo stadio si basa su nodi bootstrap DHT e si ritorna al recupero basato su Solana se il DHT non riesce a risolverlo. I ricercatori hanno anche identificato l’infrastruttura di esfiltrazione e mappato l’estensione di Chrome malevola utilizzata nella campagna.

Mitigazione

Le organizzazioni dovrebbero applicare la scansione della catena di fornitura per npm e altri ecosistemi di pacchetti, verificare l’integrità del pacchetto e la fiducia del pubblico editore, e bloccare gli IP e i domini maliziosi noti. Le difese degli endpoint dovrebbero monitorare i runtime Node.js rogue, compiti programmati inattesi e chiavi Run di registro sospette. I depositi di credenziali del browser dovrebbero essere rafforzati e gli utenti di criptovaluta dovrebbero adottare la verifica hardware del portafoglio ove possibile.

Risposta

Se GlassWorm viene rilevato, isolare l’endpoint interessato, interrompere i processi dannosi e rimuovere eventuali file scaricati e meccanismi di persistenza come i compiti programmati. Revocare i token npm compromessi, ruotare le credenziali dei portafogli di criptovaluta e resettare le password memorizzate nel browser. Completare una revisione forense completa dei log dell’host per tracciare l’esecuzione del loader e aggiornare i controlli di sicurezza per ridurre il rischio di compromessi futuri della catena di fornitura.

"graph TB %% Definizioni delle classi classDef technique fill:#ffcc99 classDef persistence fill:#99ffcc classDef exfil fill:#ff9999 classDef credential fill:#ccccff classDef execution fill:#ffdb4d classDef collection fill:#c2f0c2 classDef command fill:#ffd699 %% Nodi – Step di Attacco step1_initial_access["<b>Tecnica</b> – <b>T1195.001 Compromesso della Catena di Fornitura</b><br/>Pacchetti npm/pyPI malevoli e repository GitHub compromessi consegnano un loader."] class step1_initial_access technique step2_obfuscation["<b>Tecnica</b> – <b>T1027 File o Informazioni Offuscate</b><br/>Il codice del loader è offuscato e compilato dopo la consegna (T1027.004)."] class step2_obfuscation execution step3_guardrails["<b>Tecnica</b> – <b>T1480 Barriere di Esecuzione</b><br/>Il loader controlla localizzazione, lingua e fuso orario e abbandona l’esecuzione al di fuori delle regioni russe mirate."] class step3_guardrails execution step4_dead_drop["<b>Tecnica</b> – <b>T1102.001 Risolutore Dead Drop</b><br/>Il loader interroga i memo di transazione blockchain di Solana per ottenere l’URL C2."] class step4_dead_drop command step5_cred_files["<b>Tecnica</b> – <b>T1552.001 Credenziali nei File</b><br/>Raccoglie .npmrc, NPM_TOKEN, configurazioni del provider cloud e chiavi private SSH."] class step5_cred_files credential step6_browser_creds["<b>Tecnica</b> – <b>T1555.003 Credenziali dai Browser Web</b><br/>Estrae password, cookie, dati di riempimento automatico e carte di pagamento da Chrome, Edge, Firefox; elude la crittografia vincolata allu2011app."] class step6_browser_creds credential step7_private_keys["<b>Tecnica</b> – <b>T1552.004 Chiavi Private</b><br/>Copia i file dei portafogli di criptovaluta e schermate delle seed phrase."] class step7_private_keys credential step8_exfil_webhook["<b>Tecnica</b> – <b>T1567.004 Esfiltrazione tramite Webhook</b><br/>Comprime i dati messi in scena e invia con POST a endpoint HTTP controllati dall’attaccante."] class step8_exfil_webhook exfil step9_persistence_rc["<b>Tecnica</b> – <b>T1037.004 Script RC</b><br/>Crea l’entrata HKCUSoftwareMicrosoftWindowsCurrentVersionRun e i compiti programmati per lanciare il lanciatore PowerShell all’avvio."] class step9_persistence_rc persistence step10_wmi_event["<b>Tecnica</b> – <b>T1546.003 Sottoscrizione Evento WMI</b><br/>Registra eventi WMI per rilevare portafogli hardware USB e lanciare un’interfaccia di phishing."] class step10_wmi_event persistence step11_ps_profile["<b>Tecnica</b> – <b>T1546.013 Profilo PowerShell</b><br/>Aggiunge persistenza tramite script del profilo di PowerShell."] class step11_ps_profile persistence step12_vnc["<b>Tecnica</b> – <b>T1021.005 VNC</b><br/>Carica un modulo nativo VNC nascosto (HVNC) per l’accesso remoto invisibile."] class step12_vnc command step13_multi_stage["<b>Tecnica</b> – <b>T1104 Canali a piùu2011stadi</b><br/>Stabilisce un canale WebSocket Socket.IO bidirezionale per comandi C2."] class step13_multi_stage command step14_input_injection["<b>Tecnica</b> – <b>T1674 Iniezione di Input</b><br/>Esegue JavaScript fornito dall’attaccante via eval() all’interno del RAT."] class step14_input_injection execution step15_keylog_clip["<b>Tecnica</b> – <b>T1056.001 Keylogging</b> &amp; <b>T1115 Dati degli Appunti</b><br/>L’estensione malevola di Chrome registra i tasti, cattura testo dagli appunti e scatta schermate."] class step15_keylog_clip collection step16_browser_hijack["<b>Tecnica</b> – <b>T1185 Hijacking della Sessione del Browser</b><br/>L’estensione raccoglie cookie e token di sessione e può reindirizzare le schede attive a URL controllati dall’attaccante."] class step16_browser_hijack collection %% Connessioni – Flusso di Attacco step1_initial_access –>|porta a| step2_obfuscation step2_obfuscation –>|porta a| step3_guardrails step3_guardrails –>|porta a| step4_dead_drop step4_dead_drop –>|porta a| step5_cred_files step5_cred_files –>|porta a| step6_browser_creds step6_browser_creds –>|porta a| step7_private_keys step7_private_keys –>|porta a| step8_exfil_webhook step8_exfil_webhook –>|porta a| step9_persistence_rc step9_persistence_rc –>|porta a| step10_wmi_event step10_wmi_event –>|porta a| step11_ps_profile step11_ps_profile –>|porta a| step12_vnc step12_vnc –>|porta a| step13_multi_stage step13_multi_stage –>|porta a| step14_input_injection step14_input_injection –>|porta a| step15_keylog_clip step15_keylog_clip –>|porta a| step16_browser_hijack "

Flusso di Attacco

Rilevamenti

Esecuzione binaria NodeJS da posizione insolita (tramite cmdline)

Soc Prime Team
26 Marzo 2026

Possibile tentativo di comunicazioni di ricerca dominio IP (via dns)

Soc Prime Team
26 Marzo 2026

Possibili Punti di Persistenza [ASEPs – Software/NTUSER Hive] (tramite registry_event)

Soc Prime Team
26 Marzo 2026

Possibile tentativo di abuso di Publicnode Ethereum come canale C2 (tramite dns_query)

Soc Prime Team
26 Marzo 2026

IOC (DestinationIP) per rilevare: GlassWorm Nasconde un RAT all’interno di un’estensione Chrome dannosa

Regole AI Soc Prime
26 Marzo 2026

IOC (HashMd5) per rilevare: GlassWorm Nasconde un RAT all’interno di un’estensione Chrome dannosa

Regole AI Soc Prime
26 Marzo 2026

IOC (HashSha256) per rilevare: GlassWorm Nasconde un RAT all’interno di un’estensione Chrome dannosa

Regole AI Soc Prime
26 Marzo 2026

IOC (HashSha1) per rilevare: GlassWorm Nasconde un RAT all’interno di un’estensione Chrome dannosa

Regole AI Soc Prime
26 Marzo 2026

IOC (SourceIP) per rilevare: GlassWorm Nasconde un RAT all’interno di un’estensione Chrome dannosa

Regole AI Soc Prime
26 Marzo 2026

IOC (Email) per rilevare: GlassWorm Nasconde un RAT all’interno di un’estensione Chrome dannosa

Regole AI Soc Prime
26 Marzo 2026

Rilevazione del RAT GlassWorm ed Esfiltrazione Dati [Connessione di Rete Windows]

Regole AI Soc Prime
26 Marzo 2026

Rilevamento dell’esecuzione del binario di phishing Ledger/Trezor [Creazione Processo Windows]

Regole AI Soc Prime
26 Marzo 2026

Esecuzione della Simulazione

Prerequisito: Il Controllo Pre-volo di Telemetria e Baseline deve essere passato.

Razionale: 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 le TTP identificate e mirano a generare l’esatta telemetria prevista dalla logica di rilevamento.

  • Narrare l’Attacco e Comandi:
    Un attaccante ha ottenuto un binario maligno che finge di essere il client del portafoglio Ledger Live/Trezor. Il binario è chiamato Assaac.exe per imitare un eseguibile legittimo. Viene inserito nella directory %APPDATA% dell’utente, e un file JavaScript di compagnia (index.js) è posizionato in una sottocartella nascosta QtCvyfVWKH. L’attaccante quindi esegue il binario, causando a Windows di registrare un evento di creazione di processo con l’esatto nome dell’immagine e il percorso della riga di comando che la regola Sigma osserva.

    Passo dopo Passo:

    1. Crea la cartella nascosta e posiziona lo script malevolo.
    2. Copia l’eseguibile malevolo (Assaac.exe) nella AppData dell’utente.
    3. Avvia l’eseguibile, che legge index.js e inizia le routine di furto delle credenziali.
  • Script di Test di Regressione:

    # ------------------------------------------------------------
    # Setup file malevoli
    # ------------------------------------------------------------
    $appData = $env:APPDATA
    $folder  = Join-Path $appData "QtCvyfVWKH"
    $exePath = Join-Path $appData "Assaac.exe"
    $jsPath  = Join-Path $folder "index.js"
    
    # Assicurati che la cartella nascosta esista
    New-Item -ItemType Directory -Path $folder -Force | Out-Null
    # Nascondi la cartella (opzionale)
    (Get-Item $folder).Attributes += 'Hidden'
    
    # Distribuisci un eseguibile malevolo fittizio (per demo usiamo una copia di calc.exe)
    Copy-Item -Path "$env:SystemRootSystem32calc.exe" -Destination $exePath -Force
    
    # Distribuisci un payload JavaScript fittizio (il contenuto è irrilevante per il rilevamento)
    @"
    // segnaposto payload malevolo
    console.log('Furto di portafoglio Crypto eseguito');
    "@ | Set-Content -Path $jsPath -Encoding UTF8
    
    # ------------------------------------------------------------
    # Esegui il binario malevolo (questo dovrebbe attivare la regola Sigma)
    # ------------------------------------------------------------
    & $exePath "$jsPath"
    
    # ------------------------------------------------------------
    # Fine dello script – lasciano gli artefatti per la pulizia manuale
    # ------------------------------------------------------------
  • Comandi di Pulizia:

    # Termina il processo malevolo se ancora in esecuzione
    Get-Process -Name "Assaac" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Rimuovi i file creati e la cartella
    Remove-Item -Path $exePath -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $jsPath -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $folder -Recurse -Force -ErrorAction SilentlyContinue