Falsi strumenti di sicurezza su GitHub: 2.000 macchine Windows con backdoor
Una campagna attiva da due anni, che in passato dava la caccia ai possessori di portafogli di criptovalute, ha rivolto l'attenzione a chi indaga sul malware. Secondo la ricerca pubblicata da Doctor Web (Dr.Web) il 5 novembre, più di 2.000 sistemi Windows sono stati compromessi tramite repository GitHub malevoli che si presentano come strumenti di sicurezza. Le esche non sono grossolane: includono un parser, un cleaner e un formatter per l'output dello scanner di rete Fscan, repository per l'automazione delle scansioni e i test di sicurezza, e utilità per l'elaborazione dei log.
Un'esca per chi dovrebbe saperlo
Il cambio di bersaglio è la parte notevole. Secondo Dr.Web i primi repository infetti sono comparsi circa due anni fa e ruotavano attorno a giochi blockchain, bot e strumenti di cheat, con il codice malevolo nascosto nei file di progetto di Visual Studio. L'ondata attuale mantiene la stessa meccanica di distribuzione ma cambia il confezionamento in qualcosa che un analista clonerebbe plausibilmente durante una giornata di lavoro. I repository contengono persino istruzioni per installare Visual Studio e clonare il progetto, il che abbassa la barriera per gli utenti meno esperti. L'articolo di BleepingComputer osserva che l'operazione va avanti da circa due anni.Dove si nasconde il codice
La logica malevola non sta nella parte del repository che un revisore leggerebbe normalmente. Nei file .csproj si trova in una routine PreBuildEvent che viene eseguita prima che il progetto venga compilato. Nei file .suo, che la maggior parte considera stato dell'editor sacrificabile, arriva come comando PowerShell. Nei sorgenti Go e Python, un campione si chiama FscanOutput_v2.2.py, il codice è spinto dietro lunghe sequenze di spazi bianchi, un vecchio trucco che secondo Dr.Web funziona ancora. Quella prima fase, rilevata come PowerShell.Packed.270, viene scritta in percorsi come C:\Users\Public\Pictures\t.ps1 e decifra un link di download per un archivio chiamato Quixo.7z, che si scompatta in C:\ProgramData\Windows.Microsoft.Photos.Microsoft.exe è un'applicazione Electron
L'archivio distribuisce Microsoft.exe, rilevato come Trojan.Loader.3261 e costruito su Electron. È modulare, versionato (1.4.5 al momento del rapporto) e si comporta come un prodotto mantenuto: scarica un secondo pacchetto cifrato, Nexara.7z, invia informazioni di sistema a un bot Telegram, stabilisce la persistenza, tenta l'escalation dei privilegi e disattiva Windows Defender, UAC, le notifiche, il Ripristino configurazione di sistema e il servizio Copia shadow dei volumi, aggiungendo esclusioni a Defender. Poi inietta le fasi successive in processi legittimi, tra cui RegAsm.exe, dwwin.exe e dwm.exe.Questa analisi mostra chiaramente che l'attacco rappresenta una minaccia seria anche per utenti esperti, compresi i professionisti della sicurezza informatica. - Dr.Web
Due modalità di evasione e un fallback
Il loader include diversi modi per sfuggire all'ispezione. Dr.Web descrive un percorso principale Mode3 e un fallback Mode2:- Spoofing di explorer.exe come processo padre del loader.
- Disattivazione di Smart App Control modificando il valore di registro VerifiedAndReputablePolicyState.
- Ricaricamento di ntdll.dll dal disco per rimuovere gli hook dei prodotti di sicurezza e uso di chiamate di sistema dirette tramite Halo's Gate.
- Patch in memoria di EtwEventWrite e AmsiScanBuffer per accecare l'event tracing e la scansione degli script per quel processo.
- Ripiego sulle esclusioni di Defender per regasm.exe e dwm.exe, quindi decifratura e iniezione dei moduli con PowerShell se il percorso principale fallisce.
Cosa raccolgono i payload
Le fasi finali sono una backdoor, un dirottatore degli appunti e un infostealer. Due copie di BackDoor.AsyncRAT.115 vengono iniettate su porte diverse, il che secondo Dr.Web consente a due operatori di controllare la stessa macchina contemporaneamente. Trojan.InjectNET.14 inserisce Trojan.Clipper.688 in regasm.exe per scambiare gli indirizzi dei portafogli crypto negli appunti, e invia screenshot e dettagli sull'host tramite Telegram. JS.Stealer.191 verifica la presenza di sandbox e macchine virtuali prima di raccogliere dati dei browser, profili XML di FileZilla, MobaXterm.ini, il wcx_ftp.ini di Total Commander, impostazioni VPN, file dei messenger, account di gioco e token Discord. I dati vengono compressi e inviati tramite lo stesso bot Telegram.Rimuovere la rete di sicurezza
Il loader tenta anche di disinstallare ESET, McAfee e Malwarebytes, e scrive domini di produttori antivirus nel file hosts per tagliare fuori questi prodotti dai loro server di aggiornamento. Cancella tutto in system32\drivers\etc tranne una breve lista bianca, cosa che secondo Dr.Web serve a impedire all'utente di creare e usare backup. Il codice inutilizzato nel campione indica un altro componente, un progetto Electron incompiuto chiamato WUDFHost.exe, che potrebbe creare un servizio per la persistenza e riscaricare Microsoft.exe se viene eliminato.Perché copiare e incollare strumenti è un problema di filiera
Niente di tutto questo richiede uno zero-day o un exploit ingegnoso. Richiede una persona con una scadenza, un motore di ricerca e un repository abbastanza simile a ciò che le serve. Gli strumenti di sicurezza sono particolarmente esposti perché molti sono piccoli, scritti da un solo autore e distribuiti come codice sorgente che ci si aspetta venga eseguito. Un parser per l'output di uno scanner è esattamente ciò che un analista scarica, sfoglia ed esegue. Lo stesso vale per qualsiasi binario ottenuto da un link: la provenienza conta più dell'apparenza di utilità del file. La nostra guida per verificare i download tramite Tor illustra le abitudini su checksum e firme che rendono più difficile questo tipo di sostituzione.Abitudini pratiche
Alcuni controlli avrebbero fermato questa catena in più punti:- Leggere gli hook di compilazione. Un PreBuildEvent, uno script postinstall o un passaggio del Makefile che richiama PowerShell è codice, non configurazione.
- Compilare gli strumenti da un commit fissato e confrontare quel commit con quello revisionato.
- Eseguire strumenti sconosciuti in una macchina virtuale usa e getta, senza condivisione degli appunti né mount dell'host.
- Trattare i file .suo, .user e gli altri stati dell'editor come contenuto eseguibile, perché in questa campagna lo erano.
- Diffidare dei repository che includono istruzioni di installazione per principianti; è una strategia di distribuzione, non una cortesia.










