Backdoor trovata in bilanciatori di carico HAProxy trojanizzati

Backdoor trovata in bilanciatori di carico HAProxy trojanizzati

Una backdoor chiamata ted è stata trovata compilata in bilanciatori di carico HAProxy trojanizzati, che intercettavano il traffico web e servivano pagine alterate.

I ricercatori di sicurezza hanno documentato una backdoor Linux precedentemente sconosciuta chiamata ted che è stata compilata direttamente in bilanciatori di carico HAProxy trojanizzati presso due organizzazioni sudcoreane. HAProxy è un programma open source ampiamente utilizzato che distribuisce il traffico web in arrivo tra più server, e le versioni modificate intercettavano tale traffico e servivano pagine alterate a visitatori selezionati. Rapid7 Labs ha attribuito il toolkit con media fiducia ad attori sponsorizzati dallo stato nordcoreano e ha collocato le due vittime nei settori automobilistico e dei media della Corea del Sud. L'impianto non è una vulnerabilità di HAProxy stesso: la sua installazione richiede che un attaccante abbia già diritti di esecuzione di codice sull'host e la capacità di sostituire il binario in esecuzione, che è il file eseguibile compilato.

La backdoor nasconde il traffico di comando e controllo, le comunicazioni tra l'attaccante e l'impianto, dal monitoraggio normale. Quando HAProxy riceve una richiesta per uno specifico percorso di immagine, il filtro entra in modalità di controllo remoto. L'impianto quindi riduce i contatori di connessioni live di HAProxy, il che rimuove quella connessione dalle statistiche del bilanciatore di carico, scrive il corpo del comando in una named pipe, un file speciale usato per passare dati tra programmi, sotto /tmp, e azzera il canale di richiesta così che nulla venga inoltrato a un server di backend. Il comando si ferma al bilanciatore di carico, mentre l'output ritorna sul socket grezzo con un'intestazione HTTP/1.0 200 OK standard. Poiché la risposta sembra una normale risposta web, lo scambio si confonde con il traffico normale. Attraverso questo canale un operatore può fare beacon, caricare e scaricare file, eseguire comandi shell e sostituire la configurazione dell'impianto.

Solo le richieste che superano quattro controlli ricevono una pagina modificata. La richiesta deve includere un'intestazione User-Agent, che è il testo che un browser invia per identificarsi, e deve corrispondere a una regola in cui sia l'URL richiesto che il referer, la pagina che ha collegato alla richiesta, corrispondono a modelli specifici. La consegna dipende quindi da una whitelist di indirizzi client controllati esattamente e di nuovo a livello di blocco /24 (un gruppo di 256 indirizzi IP), oppure da una chiave operatore inserita nell'intestazione Accept-Language, che normalmente dice al server quale lingua preferisce il visitatore. Questa chiave sovrascrive completamente il filtro degli indirizzi. In uscita, l'impianto riscrive il tipo di contenuto e la lunghezza del contenuto, forza lo stato della risposta a 200 e rimuove l'intestazione Accept-Ranges così che un client non possa richiedere intervalli di byte e notare che la dimensione della pagina è cambiata.

Rapid7 ha dichiarato che le sue prove non erano sufficienti per stabilire una cronologia o determinare come gli attaccanti siano entrati inizialmente. La sua ipotesi che siano entrati attraverso un portale Groupware esposto, una classe di software di collaborazione aziendale coreano, si basa su precedenti ricerche ENKI che hanno documentato Kimsuky che comprometteva un fornitore di groupware attraverso una vulnerabilità del server di posta. Lo stager, il componente che installa l'impianto, si distribuisce solo dove HAProxy o cron è già in esecuzione, e verifica di avere root, l'account amministratore con privilegi più elevati, prima di rilasciare qualsiasi cosa. Sovrascrive il binario legittimo crond, il servizio di sistema che esegue attività pianificate, e dà alla sostituzione il timestamp di creazione di /usr/bin/ssh. Rimuove quindi le parole chiave tmp, wget, cron e crond dalla history di bash di root e da sei log di sistema, inclusi auth.log e audit/audit.log. Un sshd trojanizzato, il servizio secure shell che gestisce gli accessi remoti, crittografa le password in chiaro catturate e le scrive in un percorso fisso. Rapid7 ha trovato lo stesso codice in binari trojanizzati agetty, atd e polkitd. Un trojan di accesso remoto associato che Rapid7 chiama curlRAT fa beacon ogni 12 ore per impostazione predefinita e passa a un intervallo di 30 secondi quando l'operatore imposta un flag. Si interrompe a meno che non trovi un file marcatore che mostra che l'host è virtualizzato. curlRAT è distinto da CurlBack RAT, una famiglia separata con quel nome attribuita al gruppo SideCopy legato al Pakistan.

Il rapporto elenca sei domini, diversi percorsi di file e due hash SHA-256 come indicatori di compromissione. I domini sono img.monderhouse[.]space, img.smartnords[.]site, img.darklights[.]store, img.responsive.pstatic[.]autos, img.socialteams[.]store e img.worksongo[.]store. The Hacker News ha confermato il 4 settembre che nessuno dei sei domini risolve, restituendo NXDOMAIN, la risposta DNS che significa che il nome non esiste, sia per i record A che NS tramite Google Public DNS. Ciò significa che sono utili per rivedere i log storici piuttosto che per bloccare il traffico live. Parte dell'attribuzione si basa su un elenco di quei domini sotto APT37 in maltrail, un progetto di rilevamento open source. Il file maltrail a cui Rapid7 si collega ha smesso di risolvere dopo che una ristrutturazione del repository ad agosto ha spostato i dati trail statici del progetto altrove, ma The Hacker News ha confermato il 4 settembre che tutti e sei sono presenti nella nuova posizione, ciascuno etichettato come infrastruttura APT37. Il file sorgente APT37 di maltrail attribuisce quelle voci a due post su X del luglio 2025 e non fa riferimento a Rapid7. Altri sei domini si trovano nelle stesse due voci maltrail ma non nell'elenco di Rapid7: primgs[.]lol, admin.primgs[.]lol, grip-cdns[.]space, show.grip-cdns[.]space, cleanos[.]online e app.cleanos[.]online. Rapid7 non ha detto se sono la stessa infrastruttura. Il tag ThreatFox che Rapid7 nomina come seconda fonte per gli stessi domini registra cinque avvistamenti, tutti con timestamp del 2 luglio 2025. Uno dei due post X citati da maltrail è stato pubblicato tre ore prima quello stesso giorno.

Il passaggio sull'attribuzione attinge a tre distinti cluster nordcoreani: APT37 per l'elenco dei domini, Lazarus per il modello di consegna e Kimsuky per l'ipotesi di accesso iniziale. La valutazione del 2023 di Mandiant sulla struttura informatica nordcoreana ha registrato strumenti condivisi e targeting sovrapposto tra questi cluster, e Mandiant ha affermato che ciò renderebbe più difficile un'attribuzione precisa. Rapid7 ha confrontato il modello di consegna con la campagna Operation SyncHole, in cui i visitatori di siti di media online sudcoreani venivano filtrati da uno script lato server e reindirizzati. I ricercatori di Kaspersky Sojun Ryu e Vasily Berdnikov hanno valutato con media fiducia che la pagina reindirizzata potrebbe aver eseguito uno script dannoso contro una vulnerabilità in Cross EX, un helper del browser sudcoreano. Il rapporto SyncHole di Kaspersky ha identificato almeno sei vittime nei settori software, IT, finanziario, produzione di semiconduttori e telecomunicazioni. Entrambe le vittime nel nuovo caso eseguivano HAProxy 2.8.12, rilasciato l'8 novembre 2024. L'impianto legge le strutture interne di HAProxy a offset fissi per quella versione, e Rapid7 non dice se esistono altre build 2.8. La versione corrente su quel ramo è la 2.8.28, del 27 agosto 2026, sedici point release dopo. Il tracker di HAProxy elenca 529 bug noti che colpiscono la 2.8.12 e che sono già corretti nel ramo, inclusi uno critico e sedici maggiori. L'aggiornamento non pulisce un host su cui l'impianto è già presente, perché gli attaccanti sostituiscono il binario piuttosto che sfruttare una vulnerabilità in esso. Rapid7 ha raccomandato correlazione di rete indipendente, analisi comportamentale della memoria e controlli di integrità dei binari. Il rapporto non pubblica regole di rilevamento per quest'ultimo controllo, e un HAProxy ricompilato riporta la stessa stringa di versione di una build pulita. Lo sviluppo arriva mentre AhnLab e ENKI WhiteHat hanno documentato una simile campagna di watering-hole a luglio, in cui operatori sponsorizzati dallo stato hanno abusato di siti web coreani compromessi per attaccare il client di firma AnySign4PC.

Per i proprietari di siti web e i team IT che gestiscono i propri reverse proxy, il messaggio è che una macchina può sembrare sana mentre serve pagine modificate a utenti selezionati. Per i team che gestiscono i propri bilanciatori di carico, AEU-I fornisce consulenza IT e infrastrutturale incentrata sulla sicurezza che può supportare revisioni indipendenti di tali sistemi.

Come Proteggerti

  1. Chiedi al tuo provider di hosting di confermare che il tuo server web e qualsiasi software di instradamento del traffico come HAProxy non siano stati alterati senza autorizzazione.
  2. Mantieni aggiornato tutto il software del server, ma ricorda che l'aggiornamento da solo non rimuove una backdoor esistente; se sospetti un'intrusione, reinstalla il componente interessato da una fonte attendibile.
  3. Usa uno strumento di monitoraggio dell'integrità dei file che ti avvisi quando file di sistema importanti come crond o sshd cambiano inaspettatamente.
  4. Controlla i log del tuo server web per richieste a percorsi di immagini insoliti o richieste ripetute con impostazioni di lingua strane.
  5. Limita l'accesso amministrativo ai tuoi server e richiedi una forte autenticazione multifattoriale per chiunque possa installare o sostituire software.

I Termini Spiegati

  • HAProxy Software open source che distribuisce il traffico web in arrivo tra più server.
  • Load balancer Un server o programma che distribuisce le richieste internet in arrivo su più computer in modo che nessuno sia sovraccaricato.
  • Backdoor Un modo nascosto per un attaccante di controllare un computer o programma senza passare dal login normale.
  • Command-and-control Il canale di comunicazione che un attaccante usa per inviare istruzioni al malware.
  • Trojanized binary Un file di programma normalmente fidato che è stato modificato per includere codice malevolo.
  • Indicators of compromise Indizi come nomi di file, indirizzi di rete o hash che aiutano a identificare una violazione della sicurezza.
  • Root L'account amministratore di livello più alto su un sistema Linux o Unix.
  • User-Agent Un testo che un browser web invia per identificarsi a un sito web.

Servizi AEU correlati