I sistemi Linux sono nel mirino delle vulnerabilità Nimbuspwn, che danno agli attaccanti la possibilità di guadagnare privilegi di root e, quindi, prendere il pieno controllo delle macchine target al fine di distribuire malware o eseguire codice malevolo.
“Le vulnerabilità Nimbuspwn”, commenta Pierluigi Paganini, analista di cyber security e CEO Cybhorus, “sono estremamente insidiose in quanto consentono a un attaccante di compromettere gli endpoint Linux e condurre molteplici attività malevole”.
Infatti “Le vulnerabilità CVE-2022-29799 e CVE-2022-29800, conosciute come Nimbuspwn, sono relative al D-BUS dei sistemi operativi Linux based”, precisa Antonio Minnella, Security Researcher di Exprivia.
Scopriamo di cosa si tratta e come difendersi.
Indice degli argomenti
Cosa sono le falle Nimbuspwn
Le nuove vulnerabilità, che i ricercatori di Microsoft hanno tracciato tutte insieme come Nimbuspwn (CVE-2022-29799 e CVE-2022-29800), potrebbero aiutare gli attaccanti a scalare i privilegi sui sistemi Linux. L’obiettivo dei cyber criminali è quello di diffondere malware, dalle backdoor ai ransomware.
Infatti, i ricercatori di sicurezza le hanno scoperte in un networkd-dispatcher, componente che invia le modifiche dello status di connessione sulle macchine Linux. Dal report si evince che le falle sono in grado di “regalare” agli attaccanti privilegi di root su sistemi vulnerabili.
Quindi, continua Paganini, “possono essere sfruttate per eseguire codice con privilegi massimi sui dispositivi vulnerabili così come per impiantare un ransomware”.
I dettagli tecnici
“Il D-BUS, abbreviazione di Desktop-Bus”, spiega Minnella, “è un bus software che consente a processi residenti sullo stesso endpoint di comunicare attraverso lo scambio di messaggi. Il bus di sistema rappresenta una componente critica e delicata dei sistemi operativi e rappresenta un’occasione molto ghiotta agli occhi dei potenziali attaccanti in quanto i servizi coi quali interagisce spesso vengono eseguiti coi permessi di root. Nel 2019 era infatti già stato oggetto di una grave vulnerabilità che permetteva a malintenzionati di eseguire privilege escalation attaccando il servizio com.ubuntu.USBCreator presente su una delle più diffuse distribuzioni linux per ambienti desktop. Sfruttando la combinazione delle due vulnerabilità appena scoperte, un attaccante potrebbe riuscire ad eseguire codice arbitrario con i privilegi di root sulla macchina target.
L’attacco
“Vediamo nel dettaglio come lo sfruttamento in combinazione delle due vulnerabilità permetta di portare a termine l’attacco”, continua Minnella: “La prima, CVE-2022-29799, riguarda la mancata sanificazione degli argomenti utilizzati nell’invocazione del servizio networkd-dispatcher permettendo quindi di alterare il path dal quale viene caricata la lista degli script eseguibili coi permessi di root (CVE-2022- 29799). I ricercatori hanno analizzato il codice sorgente, opensource e disponibile su gitlab, dal quale è emerso che la funzione _run_hooks_for_state presente nell’implementazione del D-BUS è vulnerabile ad attacchi di tipo directory trasversal attack, un particolare attacco il cui exploit permette l’esecuzione di comandi al di fuori della working directory convenzionale (CWD). Ciò è dovuto alla mancata sanificazione degli argomenti passati nell’invocazione della funzione permettendo quindi di alterare il path dal quale viene caricata la lista degli script eseguibili coi permessi di root.
La seconda vulnerabilità
“CVE-2022-29800, sfrutta un bug di tipo TOCTOU (Time-of-check-time-of-use) causato da una race condition che ha origine quando un programma in esecuzione verifica una particolare caratteristica di un oggetto e successivamente intraprenda una qualche azione presupponendo che la caratteristica verificata in precedenza sia ancora valida, sottolinea Minnella: “Esempi di azioni di questo tipo possono essere la verifica dell’esistenza di un file all’interno di un certo path oppure la verifica che un dato file abbia degli specifici permessi. Ed è proprio questo tipo di controllo verrà aggirato per mandare in esecuzione istruzioni arbitrarie. Si tratta di un bug ricorrente e per il quale negli anni è stata proposta un’ampia varietà di tecniche per rilevare, mitigare, evitare e sfruttare queste vulnerabilità. Tuttavia, nonostante i notevoli sforzi, le vulnerabilità di TOCTOU rimangono irrisolte a causa della loro natura non deterministica e delle particolarità dei diversi filesystem sui quali vengono eseguiti i programmi vulnerabili”.
Il Proof of Concept
“Il PoC (Proof of Concept) fornito dai ricercatori”, illustra Minnella, “dimostra come l’attacco possa essere portato a termine con successo sfruttando le due vulnerabilità. Supponendo che l’attaccante disponga di un componente D-Bus dannoso in grado di inviare un segnale arbitrario, può eseguire i seguenti step:
Preparare sulla macchina target una directory “/tmp/nimbuspwn” e creare un
symlink “/tmp/nimbuspwn/poc.d” che punta a “/sbin”. La directory
“/sbin”, è strategica poichè contiene molti eseguibili di proprietà dell’utente root.
2. Per ogni nome di file eseguibile presente in “/sbin” di proprietà di root, aggiunge lo stesso nome di file nel percorso “/tmp/nimbuspwn” appena creato. Ad esempio, se “/sbin/vgs” è eseguibile e di proprietà di root, creare un file
eseguibile col medesimo nome in “/tmp/nimbuspwn/vgs” ma il cui contenuto
sarà sostituito col payload desiderato.
3. Inviare un segnale con OperationalState “../../../tmp/nimbuspwn/poc”.
Sfruttando la vulnerabilità di attraversamento della directory di default e puntando alla directory creata in precedenza.
4. L’handler del segnale di networkd-dispatcher si attiverà e creerà l'elenco degli script dalla directory “/etc/networkd-
dispatcher/../../../tmp/nimbuspwn/poc.d” , che è in realtà il collegamento simbolico creato dall’attaccante ( “/tmp/nimbuspwn/poc.d” ),
che punta a “/sbin”. Pertanto, verrà creato un elenco composto da molti nomi di file eseguibili di proprietà di root.
5. Modificando rapidamente il collegamento simbolico “/tmp/nimbuspwn/poc.d” in modo che punti a “/tmp/nimbuspwn”. Ciò abusa della vulnerabilità nota come race condition TOCTOU: il percorso dello script cambia senza che il dispatcher ne sia a conoscenza.
6. Il dispatcher inizia a eseguire i file che inizialmente erano in “/sbin” ma in realtà nella directory “/tmp/nimbuspwn”. Poiché il dispatcher è stato ingannato e crede che quei file siano realmente di proprietà dell’utente root, li esegue attraverso la funzione subprocess.Popen come root raggiungendo con successo l’obiettivo prefissato”.
“Nella dimostrazione, i ricercatori hanno appurato che l’operazione descritta al punto [2] è sufficiente eseguirla per tre file per garantirsi il risultato. Ovvero è sufficiente aggiungere i nomi di tre file presi dalla cartella “/sbin”, che abbiano i permessi di root leciti, alla cartella “/tmp/nimbuspwn” e sostituire il contenuto di ciascun file col payload voluto per vincere la TOCTOU race condition.
Per natura, le vulnerabilità come Nimbuspwn sono difficili da sanare e spesso restano esposte per un periodo di tempo prolungato poiché le soluzioni tradizionali per la detection e la remediation non sempre trovano facile applicazione.
Il pericolo di subire attacchi che comportino la privilege escalation perpetrata sfruttando il metodo appena descritto richiede degli interventi urgenti per mitigare i rischi legati all’esecuzione di codice da remoto (RCE), ma anche alla data exfiltration, alla creazione di deepfake e alla sempre più diffusa
distribuzione di ransomware”, conclude Minnella.
Come proteggersi
“La scoperta di falle come queste ci ricorda quanto numerose siano le opzioni a disposizione degli attaccanti per colpire un’ampia gamma di dispositivi”, mette in guardia Paganini, che sottolinea come “l’identificazione di queste vulnerabilità sia estremamente importante per innalzare il livello complessivo di sicurezza dei sistemi che usano i componenti vulnerabili”.
Infatti, conclude l’analista, “in questo caso ad individuare le vulnerabilità sono stati gli esperti di Microsoft. Tuttavia la conoscenza di queste falle da parte di organizzazioni criminali ed attori nation-state potrebbe portare ad attacchi con gravi conseguenze per le vittime“.
Da segnalare che Clayton Craft, lo sviluppatore che mantiene networkd-dispatcher, ha già adottato gli aggiornamenti necessari per risolvere le vulnerabilità Nimbuspwn.
Gli esperti di cyber security invitano gli utenti Linux a scaricare e installare le patch appena saranno disponibili per i sistemi operativi.