Negli ultimi anni la sicurezza dell’interfaccia UEFI (Unified Extensible Firmware Interface) è stato un argomento molto dibattuto, ma a causa di varie limitazioni, fino a poco tempo fa, i malware per UEFI sono stati piuttosto rari. Dopo aver scoperto il primo rootkit UEFI, noto come LoJax, abbiamo deciso di costruire un sistema che ci consentisse di esplorare il vasto ambiente UEFI in modo efficiente e individuare in modo affidabile le minacce UEFI emergenti.

Usando la telemetria raccolta dallo scanner UEFI di ESET come punto di partenza, abbiamo ideato una routine di elaborazione personalizzata per eseguibili UEFI che sfrutta l’apprendimento automatico per rilevare eventuali anomalie tra i campioni in arrivo. Questo sistema, oltre a garantire ottime capacità nell’identificazione di eseguibili UEFI sospetti, offre un monitoraggio in tempo reale dell’ambiente UEFI e si è scoperto che riduce il lavoro dei nostri analisti fino al 90 percento.

A caccia di minacce UEFI utilizzando la nostra routine di elaborazione, abbiamo scoperto numerosi componenti UEFI interessanti, che possono essere suddivisi in due categorie: backdoor del firmware UEFI e moduli di persistenza a livello di sistema operativo. La più importante delle nostre scoperte è la cosiddetta backdoor ASUS, una backdoor del firmware UEFI trovata in diversi modelli di laptop ASUS e rimossa da ASUS in seguito alla nostra notifica.

Un metodo di apprendimento automatico per esplorare l’ambiente UEFI

Che cos’è UEFI?

UEFI è una specifica che definisce l’interfaccia esistente tra il sistema operativo e il firmware del dispositivo. Definisce un insieme di servizi standardizzati, chiamati “servizi di avvio” e “servizi di runtime”, che sono le API principali disponibili nel firmware UEFI. UEFI è il successore dell’interfaccia del firmware legacy BIOS (Basic Input / Output System), introdotta per affrontare i limiti tecnici del BIOS.

Il firmware UEFI risiede nella memoria flash SPI, che è un chip saldato sulla scheda madre del sistema. Pertanto, reinstallare il sistema operativo o sostituire il disco rigido non influisce sul codice del firmware. Il firmware UEFI è molto modulare: di solito contiene dozzine, se non centinaia, di diversi eseguibili / driver.

Figura 1. Modalità di archiviazione / driver degli eseguibili UEFI in un PC

UEFI come vettore di attacco

Esistono diversi modi per modificare il firmware, compromettendo la sicurezza del computer interessato.

La prima e più comune opzione è la modifica del firmware da parte del fornitore del computer per abilitare la diagnostica o l’assistenza remota, che, se implementata in modo errato, può fungere da backdoor. Un’altra opzione è il flashing dannoso tramite manomissione manuale, quando l’attaccante ha accesso fisico al dispositivo interessato. La terza opzione: attacchi remoti che utilizzano malware in grado di modificare il firmware.

Questa terza opzione è stata documentata nella nostra ricerca su LoJax, il primo rootkit UEFI rilevato in the wild. In una campagna rivolta alle organizzazioni governative nei Balcani e nell’Europa centrale e orientale, il gruppo Sednit APT ha implementato con successo un modulo UEFI dannoso sul sistema di una vittima. Questo modulo è in grado di eliminare ed eseguire malware su disco durante il processo di avvio, un metodo di persistenza particolarmente invasivo che non solo sopravvivrà a una reinstallazione del sistema operativo, ma anche a una sostituzione del disco rigido.

Un metodo di apprendimento automatico per esplorare l’ambiente UEFI

Trovare un malware come LoJax è raro: ci sono milioni di eseguibili UEFI in the wild e solo una piccola parte di essi è dannosa. Negli ultimi due anni abbiamo recuperato oltre 2,5 milioni di eseguibili UEFI unici (su un totale di sei miliardi). Dal momento che non è possibile analizzarli manualmente, abbiamo dovuto elaborare un sistema automatizzato per ridurre il numero di campioni che richiedono l’intervento umano. Per risolvere questo problema, abbiamo deciso di creare un sistema su misura in grado di evidenziare campioni anomali trovando caratteristiche insolite negli eseguibili UEFI.

Nella nostra ricerca, abbiamo esaminato e confrontato molteplici approcci a ogni parte del processo – dall’estrazione delle caratteristiche, l’incorporamento del testo, l’incorporamento di dati multidimensionali e l’archiviazione efficiente dei campioni creando un algoritmo in grado di generare un punteggio finale – il tutto considerando prestazioni e reale capacità temporali delle tecniche scelte. Una volta stabilito un metodo efficiente di revisione del codice binario UEFI in arrivo, abbiamo impostato un sistema per assegnare punteggi di somiglianza nell’intervallo da zero a uno agli eseguibili in arrivo, confrontandoli con quelli già analizzati in precedenza. I file con il punteggio di somiglianza più basso vengono quindi esaminati con la massima priorità da un analista.

Per verificare il sistema, lo abbiamo testato su eseguibili UEFI noti sospetti e dannosi che non erano precedentemente inclusi nel nostro set di dati, in particolare il driver UEFI LoJax. Il sistema ha concluso con successo che il driver LoJax era molto diverso da tutto ciò che avevamo visto prima, assegnandogli un punteggio di somiglianza di 0.

Il successo ottenuto con questo test ci dà la certezza che se emergesse un’altra minaccia UEFI simile, saremmo in grado di identificarlo come una anomalia, analizzarlo prontamente e creare una risposta secondo necessità. Inoltre, il nostro approccio basato su ML può ridurre il carico di lavoro dei nostri analisti fino al 90% (se dovessero analizzare ogni campione in arrivo). Infine, grazie al fatto che ogni nuovo eseguibile UEFI in arrivo viene aggiunto al set di dati, elaborato, indicizzato e preso in considerazione per i prossimi campioni in arrivo, la nostra soluzione offre un monitoraggio in tempo reale dell’ambiente UEFI.

A caccia di componenti UEFI indesiderati

Dopo aver provato la nostra routine di elaborazione su campioni dannosi noti, era tempo di iniziare a cercare moduli UEFI indesiderati in the wild. I componenti interessanti che abbiamo trovato possono essere raggruppati in due categorie: backdoor del firmware UEFI e moduli di persistenza a livello di sistema operativo.

Backdoor del firmware UEFI

Quindi quali sono le backdoor del firmware UEFI? Nella maggior parte delle configurazioni del firmware UEFI, sono disponibili opzioni per proteggere con password il sistema da accessi non autorizzati durante le prime fasi del processo di avvio. Le opzioni più comuni consentono di impostare password per proteggere l’accesso alla configurazione del firmware UEFI, per impedire l’avvio del sistema e l’accesso al disco. Le backdoor del firmware UEFI sono meccanismi che consentono di bypassare queste protezioni senza conoscere la password impostata dall’utente.

Sebbene tali backdoor del firmware UEFI siano molto comuni, utilizzate principalmente come meccanismo di ripristino nel caso in cui il proprietario del computer dimentichi la password, presentano una serie di implicazioni per la sicurezza. Oltre a consentire ai criminali con accesso fisico al computer interessato di aggirare vari meccanismi di sicurezza, creano anche un falso senso di sicurezza negli utenti che non ne sono consapevoli e possono ritenere che i loro computer non siano avviabili da chiunque non ne conosca la password.

La maggior parte delle backdoor del firmware UEFI che abbiamo analizzato erano la cosiddetta backdoor ASUS. La nostra ricerca ha confermato che almeno sei modelli di laptop ASUS sono stati distribuiti con la backdoor presente; il numero, tuttavia, è probabilmente molto più elevato (il controllo manuale della presenza in ogni modello di laptop ASUS non rientrava nell’ambito della nostra ricerca). A seguito della nostra segnalazione, ASUS ha rimosso la backdoor e rilasciato gli aggiornamenti del firmware il 14 Giugno 2019.

Moduli di persistenza a livello di sistema operativo

Il resto dei nostri risultati interessavano i moduli di persistenza a livello di sistema operativo – componenti del firmware responsabili dell’installazione del software a livello di sistema operativo. Con questi moduli di persistenza, il principale problema di sicurezza è che – a causa della natura complicata della distribuzione degli aggiornamenti del firmware – un computer fornito con un componente firmware vulnerabile lo rimarrà molto probabilmente per tutta la sua vita. Per questo motivo, riteniamo che la persistenza del firmware debba essere evitata il più possibile e limitata ai casi in cui è strettamente necessario, come nel caso delle soluzioni antifurto.

L’articolo Trovare dei componenti UEFI indesiderati tra milioni di campioni analizzati è come cercare un ago in un pagliaio proviene da ESET Italia security blog.

Fonte: https://blog.eset.it/2019/10/trovare-dei-componenti-uefi-indesiderati-tra-milioni-di-campioni-analizzati-e-come-cercare-un-ago-in-un-pagliaio/