È stata identificata una vulnerabilità nei firmware non firmati di numerose periferiche hardware, tra cui adattatori Wi-Fi, HUB USB, touchpad e fotocamere, che potrebbe consentire ad eventuali attaccanti remoti di compromettere milioni di sistemi Windows e Linux per esfiltrare dati riservati, interrompere processi in esecuzione e impiantare malware di ogni genere che non viene rilevato da alcun controllo di sicurezza.
Indice degli argomenti
Vulnerabilità nei firmware non firmati: i dettagli
È uso comune quando si parla di sicurezza informatica riferirsi ai sistemi operativi, utility e software applicativi, poco considerando che un sistema informativo è costituito anche da componenti e periferiche hardware, ognuna delle quali è tipicamente costituita da un proprio firmware contenuto in microcontrollori, memorie flash o caricato in modo dinamico nella fase di boot dal sistema operativo stesso.
Il firmware altro non è che quel codice a basso livello che regola il funzionamento del componente secondo i relativi requisiti di progetto.
Il problema analizzato dal team di ricerca Eclypsium risiede nel fatto che le periferiche non verificano solitamente che il firmware dei propri componenti sia correttamente firmato (con una coppia di chiavi pubblica e privata) prima di essere eseguito o aggiornato, perché i relativi componenti a loro volta non hanno modo di convalidarlo e considerarlo attendibile.
Altro aspetto importante emerso dalla ricerca è che i sistemi operativi Windows e Linux (fanno eccezione i sistemi Apple che eseguono la verifica della firma su tutti i file, indistintamente, prima che vengano caricati sul dispositivo), eseguendo questa verifica solo dopo che un pacchetto viene installato, possono essere esposti a possibili attacchi da remoto.
Sarebbe pertanto necessario prevedere per tutti i dispositivi una catena di verifica preventiva senza demandare questo controllo al sistema operativo dopo la loro installazione.
Lo scenario tipico di attacco
Secondo gli stessi ricercatori di sicurezza, uno scenario tipico potrebbe essere così schematizzato:
- un utente malintenzionato ottiene l’accesso a un dispositivo tramite malware consegnato via e-mail, un sito Web malevolo, tecniche di malvertising e scrivere il proprio firmware dannoso su un componente vulnerabile;
- se il componente non richiede la firma del firmware, il codice dell’attaccante contenuto nel firmware malevolo viene caricato ed eseguito dal componente;
- l’attaccante può a questo punto utilizzare le funzionalità e i privilegi del componente come testa di ponte per un ulteriore attacco. Ad esempio, un firmware dannoso:
- su una scheda di rete potrebbe consentire sniffing dati o attacchi man-in-the-middle;
- su un dispositivo PCI potrebbe abilitare attacchi DMA (Direct Memory Access) bypassando CPU e sistema operativo ed accedere al controllo completo del kernel;
- su di una telecamera potrebbe acquisire dati dell’ambiente circostante.
Una dimostrazione di attacco
Il progetto di ricerca ha eseguito come ulteriore prova un attacco al firmware non firmato di una scheda di rete NIC (Network Interface Card) documentando il processo in un video dimostrativo:
Le schede madri dei server dispongono solitamente di un controller di gestione integrato, denominato BMC. Questo controller può essere programmato in modo da configurare la condivisione della scheda di rete del server con un sistema host esterno. In tal modo, una singola connessione di rete fisica viene virtualmente sdoppiata e condivisa come se si avessero due connessioni separate, ciascuna con il proprio indirizzo MAC.
Con questa configurazione, gli analisti sono riusciti a compromettere una tipologia di chipset, usualmente alloggiato sulle schede di rete dei server di generazione corrente, che non esegue alcuna verifica di firma, caricando un proprio firmware.
Ciò ha permesso agli stessi come terzi intrusi, di ispezionare il traffico di pacchetti di rete BMC solitamente trasparente e non accessibile all’host senza alcuna segnalazione di anomalia, dimostrando la possibilità di dirottare questo traffico dati verso un server di comando e controllo remoto oppure di gestirlo attraverso un malware preinstallato.
Conclusioni
La vulnerabilità nei firmware non firmati non è di facile risoluzione. Infatti, come specificato dagli stessi ricercatori di sicurezza, non è possibile garantire una correzione in tal senso con un semplice aggiornamento (patch): il processo di verifica in questione dovrebbe essere un prerequisito da tenere in conto in fase di progettazione dei componenti, perché una volta che un componente viene messo in produzione con una vulnerabilità, questa sarà persistente su tutta la relativa linea di prodotti per l’intero ciclo di vita.
Allo stato dei fatti, dunque, l’unica soluzione al problema sembra essere:
- per gli utilizzatori, quella di ridurre il rischio di perdere privacy e dati prestando un’attenzione preventiva nei confronti delle tecniche di phishing, malvertising e di ingegneria sociale che possono essere portatori di malware per lo sfruttamento di queste vulnerabilità;
- per i fornitori ODM (Original Design Manufacturer), deputati alla progettazione e successiva vendita a terzi, quella di rimodulare l’implementazione dei propri componenti (prevedendo un processo di autenticazione) prima della messa in produzione ed approvvigionamento.