Sono circa 460mila le istanze PHP esposte e potenzialmente vulnerabili alla falla sfruttata da un gruppo ransomware conosciuto come TellYouThePass.
Un gruppo di criminali informatici noto come TellYouThePass sta sfruttando una vulnerabilità critica del linguaggio PHP per portare avanti attacchi ransomware di tipo Living-Off-The-Land, ossia che abusano di strumenti di rete legittimi. Il rischio è elevato in quanto, analogamente a Java, PHP è ampiamente utilizzato nello sviluppo di pagine web dinamiche e applicazioni web, quindi le falle che lo riguardano coinvolgono una potenziale superficie di attacco molto ampia. Per comprendere la scala di rischio, basti pensare a quanto accaduto con Log4j.
La vulnerabilità in questione è monitorata con la sigla CVE-2024-4577, ha un punteggio CVSS di 9.8 e potrebbe portare all'esecuzione di codice da remoto (RCE) sui sistemi vulnerabili. Consente agli attaccanti di aggirare le difese contro lo sfruttamento di un’altra vulnerabilità PHP-CGI scoperta in precedenza (CVE-2012-1823) e che interessava tutte le versioni di PHP installate sul sistema operativo Windows.
Più in dettaglio, si tratta di una falla di argument-injection dovuta a errori nella conversione di codifica dei caratteri in PHP, in particolare in relazione alla funzionalità "Best Fit" sui sistemi Windows. Secondo un'analisi della falla condotta da Beagle Security, i rischi sono significativi in quanto può potenzialmente permettere agli attaccanti di eseguire codice arbitrario su server vulnerabili.
Gli esperti spiegano che le configurazioni a rischio sono almeno due: quando PHP è eseguito in modalità CGI (Common Gateway Interface), che è uno scenario abbastanza comune. Inoltre, "anche se PHP non è configurato in modalità CGI, è sufficiente la semplice esposizione dell’eseguibile PHP nella directory CGI”, che è la configurazione predefinita in XAMPP, il popolare pacchetto di stack server Web Apache. Il punteggio CVSS elevato è dato dal fatto che la falla non è difficile da sfruttare, come dimostrato dai ricercatori di watchTowr che hanno pubblicato sulla loro pagina GitHub uno script di exploit proof-of-concept (PoC) in data 7 giugno.
Il 7 giugno la Shadowserver Foundation ha avvertito che più IP tentavano di sfruttare la falla in oggetto su macchine connesse a Internet. Il 10 giugno al Censys risultavano circa 460mila istanze PHP esposte e potenzialmente vulnerabili. Lo stesso giorno i ricercatori di Imperva diffondevano la notizia che l’8 giugno il gruppo ransomware TellYouThePass aveva già cercato di sfruttare la vulnerabilità per eseguire codice PHP arbitrario sul sistema target. Più nel dettaglio, il gruppo stava "sfruttando il codice per utilizzare la funzione 'system' allo scopo di eseguire un file di applicazione HTML ospitato su un server web controllato dall'attaccante tramite il binario mshta.exe". Mshta.exe è un binario nativo di Windows in grado di eseguire payload remoti.
Mappa delle istanze PHP potenzialmente vulnerabili rilevate dal Censys il 9 giugno 2024
Per completezza, il gruppo TellYouThePass è attivo dal 2019 e prende di mira le sue vittime proprio sfruttando vulnerabilità note, per lo più relative ai linguaggi di sviluppo web open source. Questi threat actor hanno cavalcato, fra le altre, anche l’onda di Apache Log4j. Gli esperti di Imperva hanno analizzato nel dettaglio l’attacco. Per l'infezione iniziale viene usato un file HTA che contiene un VBScript dannoso, al cui interno è presente una lunga stringa con codifica base64 che, una volta decodificata, rivela i byte di un file binario che vengono caricati in memoria durante il runtime.
Un'ulteriore analisi dell'eseguibile rivela che il ransomware è una variante .NET che, al momento dell'esecuzione iniziale, invia una richiesta HTTP al server di Comando e Controllo contenente dettagli sulla macchina infetta. I ricercatori specificano che, per eludere la detection, il callback è mascherato come richiesta per recuperare risorse CSS.
Una volta eseguito, il ransomware sviluppa la tipica kill chain: enumera le directory, termina i processi, genera chiavi di cifratura e cripta i file all'interno di ciascuna directory, che viene enumerata con un'estensione di file predefinita. L’attacco si conclude con la pubblicazione di un messaggio che fornisce alle vittime le informazioni su quanto accaduto e la richiesta di riscatto.
Il campione di applicazione HTML (HTA) dannosa
La vulnerabilità che è in fase di sfruttamento è stata chiusa, quindi per risolvere il problema è sufficiente aggiornare PHP a una delle versioni 8.1.29, 8.2.20 e 8.3.8. Esistono poi delle misure di mitigazione: disattivare l'esecuzione di PHP con la modalità CGI abilitata, migrare a un'architettura più sicura come Mod-PHP, FastCGI o PHP-FPM.
A titolo preventivo, per rafforzare in linea generale le difese contro questo tipo di attacchi, gli esperti di Impreva consigliano poi di mantenere una visibilità completa e sempre aggiornata di tutti gli asset, chiudere tempestivamente qualsiasi vulnerabilità che li riguardi, e fare uso di firewall Web oltre che di una protezione cyber di ultima generazione.