SOC Prime Bias: Critico

12 Jun 2026 18:47 UTC

Solana FakeFix: 25 pacchetti npm e PyPI dannosi si spacciano per versioni stabili

Author Photo
SOC Prime Team linkedin icon Segui
Solana FakeFix: 25 pacchetti npm e PyPI dannosi si spacciano per versioni stabili
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riepilogo

Una campagna di pacchetti dannosi sta prendendo di mira gli sviluppatori Solana attraverso librerie npm e PyPI con typosquatting promosse come correzioni di build stabile. Il malware abusa dell’esecuzione del ciclo di vita del pacchetto e degli hook al momento dell’importazione per rubare segreti del portafoglio, credenziali cloud e chiavi SSH da ambienti infetti. Alcuni esemplari si espandono oltre il furto agendo come veri e propri backdoor tramite comando e controllo basato su Telegram o distribuendo caricamenti focalizzati su Windows costruiti attorno a Deno.

Indagine

I ricercatori di JFrog Security hanno scoperto due operazioni separate ma correlate. La prima, monitorata come Solana FakeFix, usava pacchetti stile SDK contraffatti per raccogliere segreti sensibili da sviluppatori e sistemi di costruzione. La seconda usava pacchetti npm a tema CMS per caricare eseguibili Windows. La loro analisi ha mostrato che il codice dannoso veniva spesso aggiunto a librerie altrimenti funzionali, aiutando i pacchetti a sembrare legittimi mentre recuperavano silenziosamente payload di secondo stadio in modo dinamico tramite Deno.

Mitigazione

Le organizzazioni dovrebbero rimuovere tutti i pacchetti interessati dalle workstation degli sviluppatori, dalle pipeline CI/CD e dalle cache dei pacchetti interni. Qualsiasi credenziale potenzialmente esposta dovrebbe essere ruotata immediatamente, incluse chiavi del portafoglio Solana, chiavi SSH, credenziali AWS e token GitHub. I team di sicurezza dovrebbero anche controllare gli host per metodi di persistenza come chiavi di esecuzione del Registro, attività pianificate e modifiche ai profili shell.

Risposta

I difensori dovrebbero disinstallare i pacchetti dannosi identificati e rivedere i file di lock delle dipendenze per librerie non autorizzate o inaspettate. Tutti i segreti esposti dovrebbero essere ruotati immediatamente e qualsiasi criptovaluta archiviata in portafogli potenzialmente compromessi dovrebbe essere trasferita a nuovi indirizzi fidati. I runner CI e i sistemi degli sviluppatori dovrebbero quindi essere ricostruiti da immagini pulite per garantire che non rimangano backdoor nascoste o meccanismi di persistenza.

"graph TB %% Class Definitions Section classDef technique fill:#99ccff classDef persistence fill:#ff99cc classDef command_control fill:#cc99ff classDef exfiltration fill:#ffcc99 classDef credential_access fill:#ffff99 %% Initial Access and Execution Phase attack_supply_chain["<b>Tecnica</b> – <b>T1195.001 Compromissione della Catena di Fornitura: <br/>Compromissione delle Dipendenze del Software e Strumenti di Sviluppo</b><br/><b>Descrizione</b>: Uso di typosquatting e spam su problemi GitHub per attirare sviluppatori a installare pacchetti npm e PyPI dannosi che impersonano legittime SDK di Solana.<br/><b>Obiettivi</b>: @solana-labs/web3.js e strumenti simili."] class attack_supply_chain technique attack_user_exec_copy["<b>Tecnica</b> – <b>T1204.004 Esecuzione Utente: Copia e Incolla Malevola</b><br/><b>Descrizione</b>: Gli sviluppatori eseguono comandi suggeriti dagli attaccanti tramite problemi GitHub o istruzioni dei pacchetti."] class attack_user_exec_copy technique attack_user_exec_lib["<b>Tecnica</b> – <b>T1204.005 Esecuzione Utente: Libreria Malintenzionata</b><br/><b>Descrizione</b>: Gli sviluppatori importano librerie malevoli nei loro progetti."] class attack_user_exec_lib technique op_exec_trigger(("AND")) class op_exec_trigger technique attack_event_trigger["<b>Tecnica</b> – <b>T1546.016 Esecuzione Attivata da Evento: Pacchetti Installer</b><br/><b>Descrizione</b>: Esecuzione di codice controllato dall’attaccante tramite script del ciclo di vita postinstall di npm o importazioni in __init__.py di PyPI."] class attack_event_trigger technique attack_drive_by["<b>Tecnica</b> – <b>T1189 Compromissione da Drive-by</b><br/><b>Descrizione</b>: Scaricamento di payload secondari come eseguibili Windows o loader basati su Deno."] class attack_drive_by technique %% Persistence Phase persist_active_setup["<b>Tecnica</b> – <b>T1547.014 Esecuzione Automatizzata all’Avvio o Accesso: Configurazione Attiva</b><br/><b>Descrizione</b>: Creazione di chiavi del Registro di Esecuzione per lanciare payload malevoli."] class persist_active_setup persistence persist_windows_service["<b>Tecnica</b> – <b>T1543.003 Creare o Modificare Processo di Sistema: Servizio Windows</b><br/><b>Descrizione</b>: Stabilire persistenza creando Servizi Windows."] class persist_windows_service persistence payload_deno["<b>Malware</b> – <b>Campagna CMS Basata su Deno</b><br/><b>Descrizione</b>: Payload JavaScript malevolo in esecuzione in modalità senza testa tramite conhost.exe."] class payload_deno technique %% Command and Control Phase c2_web_service["<b>Tecnica</b> – <b>T1102.003 Servizio Web: Comunicazione Unidirezionale</b><br/><b>Descrizione</b>: Uso di token bot Telegram per ricevere comandi e esfiltrare dati."] class c2_web_service command_control c2_dynamic_res["<b>Tecnica</b> – <b>T1568 Risoluzione Dinamica</b><br/><b>Descrizione</b>: Utilizzo di metodi dinamici per comunicare con l’infrastruttura C2."] class c2_dynamic_res command_control %% Credential Access and Exfiltration Phase cred_files["<b>Tecnica</b> – <b>T1552.001 Credenziali Non Sicure: Credenziali Nei File</b><br/><b>Descrizione</b>: Scansione del filesystem locale per file JSON del portafoglio Solana id.json, chiavi SSH id_rsa, credenziali AWS e file .env."] class cred_files credential_access exfil_c2["<b>Tecnica</b> – <b>T1041 Esfiltrazione Via Canale C2</b><br/><b>Descrizione</b>: Invio di dati sensibili rubati tramite l’API di Telegram."] class exfil_c2 exfiltration %% Connections attack_supply_chain –>|si traduce in| op_exec_trigger op_exec_trigger –>|richiede| attack_user_exec_copy op_exec_trigger –>|richiede| attack_user_exec_lib attack_user_exec_copy –>|attiva| attack_event_trigger attack_user_exec_lib –>|attiva| attack_event_trigger attack_event_trigger –>|scarica tramite| attack_drive_by attack_drive_by –>|installa| payload_deno payload_deno –>|stabilisce| persist_active_setup payload_deno –>|stabilisce| persist_windows_service persist_active_setup –>|comunica tramite| c2_web_service persist_windows_service –>|comunica tramite| c2_web_service c2_web_service –>|utilizza| c2_dynamic_res payload_deno –>|esegue accesso credenziali| cred_files cred_files –>|dati inviati tramite| exfil_c2 exfil_c2 –>|utilizza| c2_web_service "

Flusso di Attacco

Esecuzione di Simulazione

Prerequisito: Il Controllo Preliminare di Telemetria e 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 narrazione DEVONO riflettere direttamente i TTP identificati e mirano a generare l’esatta telemetria prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a una diagnosi errata.

  • Narrazione e Comandi dell’Attacco: L’attaccante ha ottenuto l’accesso iniziale e intende mantenere un appoggio. Decidono di usare un payload basato su Deno. Per nascondere l’esecuzione del terminale, usano il --headless flag per conhost.exe. Eseguono un comando che modifica la chiave di registro HKCUSoftwareMicrosoftWindowsCurrentVersionRun aggiungendo un valore denominato DenoUpdater che esegue conhost.exe --headless deno.exe [malicious_script]. Questo assicurerà che il payload venga eseguito silenziosamente in background al login dell’utente.

  • Script di Test di Regressione:

    # Simulazione di persistenza basata su Deno tramite chiave di Registro
    $RegistryPath = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    $Name = "DenoUpdater"
    $Value = "C:WindowsSystem32conhost.exe --headless C:UsersPublicdeno.exe malicious_payload.js"
    
    Write-Host "[*] Simulando meccanismo di persistenza..."
    New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -PropertyType String -Force
    Write-Host "[+] Chiave di registro creata. Controlla SIEM per avviso."
  • Comandi di Pulizia:

    # Pulisci la persistenza simulata
    $RegistryPath = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    $Name = "DenoUpdater"
    
    if (Get-ItemProperty -Path $RegistryPath -Name $Name -ErrorAction SilentlyContinue) {
        Remove-ItemProperty -Path $RegistryPath -Name $Name -Force
        Write-Host "[+] Pulizia completata. Chiave di registro rimossa."
    } else {
        Write-Host "[-] Pulizia fallita: Chiave di registro non trovata."
    }