Malware NuGet: scoperto Tracer.Fody.NLog che ruba password dei wallet

di Redazione
0 commenti

Il Socket Threat Research Team ha portato alla luce una minaccia persistente e sofisticata che si annida nel cuore dell’ecosistema di sviluppo .NET, identificando un pacchetto malware NuGet malevolo denominato Tracer.Fody.NLog. Questa libreria fraudolenta è stata progettata meticolosamente per imitare la legittima e popolare libreria Tracer.Fody, con l’obiettivo specifico di sottrarre dati sensibili relativi ai wallet di criptovaluta Stratis. L’attacco rappresenta un caso da manuale di compromissione della supply chain software, sfruttando tecniche avanzate di ingegneria sociale e offuscamento del codice per ingannare gli sviluppatori. Pubblicato sotto l’alias ingannevole csnemess, che differisce di una sola lettera dal maintainer reale csnemes, il pacchetto è rimasto attivo e indisturbato nel repository ufficiale NuGet fin dal 2020, accumulando circa 2000 download totali.

image 522
L’analisi di Socket AI Scanner segnala il pacchetto principale, , come malware noto, mentre il pacchetto inferiore, il legittimo , non mostra indicatori di danno e mantiene una solida sicurezza della catena di fornitura e altre valutazioni.
Tracer.Fody.NLogTracer.Fody

La pericolosità di questo malware NuGet risiede nella sua capacità di operare nell’ombra, estraendo file JSON dei wallet e le relative password direttamente dalla directory predefinita di Stratis. Una volta acquisiti, i dati vengono esfiltrati verso un server di comando e controllo gestito dall’attore della minaccia, localizzato all’indirizzo IP 176.113.82.163:4444. Mentre il Socket AI Scanner ha correttamente identificato Tracer.Fody.NLog come malware noto, la libreria originale Tracer.Fody rimane sicura e priva di indicatori malevoli. Questo incidente sottolinea una vulnerabilità critica nella catena di approvvigionamento del software moderno, dove la fiducia implicita nei repository pubblici viene sfruttata da attaccanti che utilizzano homoglyphs e caratteri cirillici per rendere il codice malevolo indistinguibile da quello legittimo agli occhi di un osservatore umano o di ispezioni superficiali.

image 519
Schermata del confronto tra il codice legittimo e quello offuscato con caratteri cirillici

Tecniche di typosquatting e impersonificazione avanzata

L’efficacia di questo attacco si basa su una combinazione letale di typosquatting e impersonificazione visiva. Il Socket Threat Research Team ha evidenziato come il nome Tracer.Fody.NLog sia stato scelto per imitare la convenzione di denominazione standard Tracer.*.Fody utilizzata dai pacchetti legittimi, inducendo gli sviluppatori a selezionare la dipendenza errata durante la fase di configurazione del progetto. La variazione minima nel nome dell’autore, da csnemes a csnemess, sfrutta la naturale propensione umana a ignorare piccoli errori di battitura o discrepanze visive. Tuttavia, la tecnica più insidiosa impiegata è l’uso di homoglyphs, ovvero l’incorporazione di caratteri Unicode cirillici che visivamente sono identici alle lettere latine ma vengono interpretati diversamente dal computer.

image 520
La panoramica sull’intelligenza artificiale di Google 
Tracer.Fody.NLogdescrive il pacchetto come uno standard 
Tracer.Fody
NLogintegrazione che integra il tracciamento automatico dei metodi e la registrazione ottimizzata, rafforzando l’aspetto di un adattatore di registrazione legittimo.

Gli attaccanti hanno sostituito lettere latine comuni con le loro controparti cirilliche all’interno degli attributi dell’assembly e nei nomi dei tipi. Esempi concreti di questa manipolazione includono l’uso della Т cirillica al posto della T maiuscola latina, della а al posto della a minuscola, della с per la c minuscola e della о per la o minuscola. Di conseguenza, stringhe che appaiono come Tracer.Fody o Guard nel codice sorgente sono in realtà scritte come Тrасer.Fоdy e Guаrd. Questa strategia di offuscamento serve a eludere i filtri testuali e rende estremamente difficile il rilevamento automatico, permettendo al pacchetto di apparire legittimo nei metadati NuGet o nelle liste delle dipendenze. Persino gli strumenti di intelligenza artificiale, come le panoramiche generate da Google AI, possono fallire nel distinguere queste sfumature, rappresentando erroneamente i pacchetti malevoli come benigni. Pertanto, è fondamentale che gli sviluppatori verifichino manualmente i dettagli dei pacchetti, controllando l’handle del maintainer, le descrizioni e i conteggi dei download, evitando una fiducia cieca nei suggerimenti dell’autocompletamento o dell’AI.

Analisi tecnica del payload e meccanismo di esfiltrazione

Il cuore del comportamento malevolo è nascosto all’interno del file Tracer.Fody.dll, che contiene un hook strategico nel metodo Guard.NotNull<T>. Questo metodo è uno standard nell’ambiente .NET per eseguire controlli null sugli oggetti, rendendolo un vettore ideale per un’infezione silenziosa poiché viene richiamato frequentemente nel normale flusso di esecuzione delle applicazioni. Il payload si attiva specificamente quando il metodo incontra un oggetto che contiene una proprietà denominata WalletPassword. Utilizzando la reflection, il malware estrae il valore di questa proprietà dall’input, trasformando un controllo di routine in un meccanismo di furto di credenziali.

Per garantire la stabilità dell’applicazione ospite e mantenere la furtività, il codice verifica un flag interno alreadyChecked per evitare esecuzioni multiple dello stesso attacco. Se il flag non è impostato, viene avviato un task in background tramite Task.Run, isolando l’attività malevola dal thread principale. Questo processo localizza i file target nel percorso %APPDATA%\StratisNode\stratis\StratisMain, cercando specificamente file con estensione .wallet.json. Il malware legge ciascun file trovato e tronca il contenuto JSON fino alla stringa blockLocator per creare un frammento di metadati gestibile. Successivamente, esfiltra questo frammento come chiave e la password intercettata come valore inviando una richiesta HTTP GET all’indirizzo hxxp://176.113.82.163:4444/KV/addentry. Un aspetto cruciale per la sopravvivenza del malware è la gestione degli errori: tutte le eccezioni generate durante questo processo vengono catturate e soppresse, impedendo la generazione di log di errore o crash che potrebbero allertare l’utente o lo sviluppatore.

Il profilo dell’attore e i precedenti storici

L’analisi dell’infrastruttura e delle tattiche suggerisce che l’attore dietro a questo malware NuGet non sia alla sua prima operazione. Nel dicembre 2023, è emerso un incidente quasi identico che coinvolgeva il pacchetto Cleary.AsyncExtensions, il quale impersonava il noto sviluppatore Stephen Cleary (alias stevencleary). Anche in quel caso, il pacchetto malevolo mirava a estrarre mnemonic e passphrase dai wallet Stratis, inviando i dati rubati allo stesso indirizzo IP 176.113.82.163:4444. L’infrastruttura di rete condivisa punta inequivocabilmente a MT Finance LLC, un’entità localizzata a Mosca, Russia, gestita dall’Autonomous System (AS) 48347.

image 521
Malware NuGet: scoperto Tracer.Fody.NLog che ruba password dei wallet 10

L’host Windows associato a questo IP, identificato come WIN-FTDPCG4548K, espone attivamente un servizio RDP (Remote Desktop Protocol), suggerendo la possibilità di un accesso remoto per la gestione della campagna. La persistenza di questa minaccia è allarmante: il fatto che Tracer.Fody.NLog sia rimasto attivo per cinque anni senza essere rimosso, nonostante la natura evidente del suo comportamento una volta analizzato, evidenzia le lacune nei processi di revisione dei repository pubblici. La longevità dell’attacco ha permesso l’accumulo di migliaia di download, mettendo a rischio un numero significativo di sviluppatori e utenti finali. L’attore ha dimostrato un pattern consistente nel prendere di mira maintainer noti dell’ecosistema .NET, espandendo le proprie operazioni dal tracing alle estensioni async, e si teme che futuri obiettivi possano includere framework di logging, validatori di argomenti e Weaver IL.

Evoluzione della minaccia e strategie di difesa

La minaccia rappresentata da questo malware NuGet sta evolvendo rapidamente oltre i confini dei wallet Stratis, con indicazioni che gli attaccanti potrebbero presto prendere di mira altri wallet blockchain, credenziali cloud e segreti di autenticazione. Il lungo “dwell time” (tempo di permanenza) di questi pacchetti nella supply chain dimostra un radicamento profondo che richiede strumenti di difesa proattivi. Socket prevede un aumento nella sofisticazione di questi attacchi, rendendo insufficienti i controlli manuali. È imperativo adottare strumenti come la Socket GitHub App, che scansiona le Pull Request alla ricerca di dipendenze malevole, o la Socket CLI, capace di impedire comportamenti sospetti durante l’installazione, negando l’accesso alla rete o al filesystem.

Leggi report Socket

Per mitigare i rischi, gli sviluppatori devono mappare gli Indicatori di Compromissione (IOC) identificati, come l’IP 176.113.82.163 e le URL associate. Le tecniche utilizzate dall’attore, mappate sul framework MITRE ATT&CK, includono il masquerading (T1036), l’impersonificazione (T1656) e l’esfiltrazione verso server di comando e controllo (T1041). Le organizzazioni devono implementare audit regolari sugli accessi ai file sensibili come .wallet.json e monitorare il traffico di rete in uscita verso destinazioni inattese, in particolare verso la Russia. Inoltre, l’adozione di policy rigorose per l’approvazione delle dipendenze e l’uso di wallet hardware per la gestione delle criptovalute sono passaggi essenziali per ridurre la superficie di attacco e proteggere gli asset digitali da infezioni silenziose che sfruttano la fiducia nella comunità open source.

Cos’è il malware NuGet Tracer.Fody.NLog?

È un pacchetto malevolo scoperto dal Socket Threat Research Team che imita la libreria legittima Tracer.Fody. Utilizza tecniche di typosquatting per ingannare gli sviluppatori e contiene codice progettato per rubare password e dati dai wallet di criptovaluta Stratis.

Come funziona la tecnica degli homoglyphs usata nel malware?

Gli attaccanti sostituiscono lettere latine con caratteri Unicode cirillici visivamente identici (come “Т” al posto di “T” o “а” al posto di “a”). Questo offusca il codice malevolo, rendendo i nomi dei metodi e degli attributi apparentemente legittimi ma diversi per il compilatore, eludendo i controlli di sicurezza.

Quali dati vengono rubati da Tracer.Fody.NLog?

Il malware cerca file wallet.json nella directory %APPDATA%\StratisNode. Estrae frammenti dei file JSON e le password dei wallet quando vengono processate dal metodo compromesso Guard.NotNull, inviando tutto a un server in Russia.

Come posso proteggermi da pacchetti NuGet malevoli come questo?

È fondamentale verificare manualmente i dettagli dei pacchetti (maintainer, download, descrizione), diffidare dei suggerimenti AI non verificati, utilizzare strumenti di scansione come Socket per rilevare comportamenti anomali nelle dipendenze e monitorare il traffico di rete verso IP sospetti.