Di: Victor de Paulo / Conrado Gouvêa / André “Dexter” Bereza
BadUSB è un attacco in grado di eseguire codice dannoso su un computer da un dispositivo USB infetto.
L'attacco
BadUSB è un attacco che mira a eseguire codice dannoso ospitato nel firmware di un dispositivo USB. Siamo normalmente abituati agli attacchi provenienti da dispositivi di archiviazione di massa come pen drive o HD esterni. Poiché BadUSB è ospitato nel firmware, l'attacco non richiede l'uso di dispositivi di archiviazione di massa e qualsiasi dispositivo è vulnerabile, persino tastiere, mouse, webcam e stampanti.
Obiettivo dell'attacco: computer host
Quando un dispositivo USB viene collegato a un computer, il sistema operativo del computer comunica con il dispositivo. Questa comunicazione avviene affinché il sistema operativo possa verificare, tra le altre operazioni, quale driver utilizzare per la comunicazione.
Il dispositivo USB con codice dannoso può eseguire comandi sul computer, indipendentemente dal fatto che sia Windows o Linux. Alla conferenza Black Hat, i ricercatori hanno dimostrato un dispositivo in grado di catturare la password dell'utente sulla schermata di blocco, in modo che il codice dannoso possa eseguire comandi con "sudo" (escalation dei privilegi). Nell'attacco, i ricercatori hanno installato un dispositivo Ethernet virtuale, inviando le password degli utenti attraverso la rete. Poiché si tratta di un attacco di escalation dei privilegi, le possibilità di attacco sono molteplici.
Un modo interessante per attaccare è tramite la simulazione della tastiera da qualsiasi dispositivo. Il dispositivo viene riconosciuto normalmente dal computer, ma a un certo punto un altro dispositivo USB viene simulato come tastiera e digita i comandi nel computer host.
Obiettivo dell'attacco: Dispositivo USB
L'altro estremo dell'attacco è l'inserimento di malware in dispositivi USB privi di malware. Un computer già infetto da malware può modificare il firmware di un dispositivo USB.
Fattori che ostacolano l'attacco
Una volta inserito un dispositivo infetto in un computer, ci sono alcuni modi per proteggersi. Quando parliamo del percorso inverso, ovvero la contaminazione dei dispositivi USB da parte di un computer infetto, esistono dei modi per rendere l'attacco più difficile da eseguire:
- Impedisci l'aggiornamento del firmware: un dispositivo con l'aggiornamento del firmware bloccato diventa difficile da attaccare. Il firmware installato dal produttore sarà protetto se l'avversario non riesce a modificarlo.
- Dettagli sul funzionamento del dispositivo: Supponiamo che un avversario riesca a modificare il firmware di una tastiera USB. L'attacco sarà meno efficace se l'avversario non sa che si tratta di una tastiera e non inserisce un firmware compatibile con quel dispositivo, cioè uno che faccia sì che il dispositivo continui a funzionare come tastiera.
- Oscurità del firmware: un produttore di dispositivi implementa il firmware in modo tale che solo lui ne sappia il funzionamento. L'offuscamento del firmware è un processo naturale e non richiede che il produttore lo faccia intenzionalmente. Tuttavia, un avversario motivato riuscirà a capire come funziona il firmware e questa difficoltà verrà superata.
- Motivazione dell'avversario: tutti gli attacchi USB sono complessi e richiedono un elevato livello di dedizione da parte dell'avversario. Pertanto, gli attacchi possono essere portati avanti solo da avversari motivati.
Soluzione
Purtroppo non esiste una soluzione univoca al problema. BadUSB è un difetto nello schema di aggiornamento del firmware di alcuni dispositivi USB e richiede l'intervento del produttore per risolvere il problema. La soluzione arriverà probabilmente solo con una nuova generazione di dispositivi e circuiti integrati dotati di meccanismi sicuri di aggiornamento del firmware. Esistono però dei modi per ridurre le probabilità di essere presi di mira da un attacco.
Possibili soluzioni e relativi limiti:
- Lista bianca dei dispositivi: i dispositivi USB non hanno sempre un numero di serie univoco.
- Blocco USB: sebbene risolva il problema, il blocco completo delle porte USB comporta seri problemi di usabilità ed è improbabile che il mercato utilizzi questa soluzione al problema.
- Scansiona il firmware del dispositivo per rilevare malware: il firmware di un dispositivo può essere letto solo se fornisce questa funzionalità. Un dispositivo infetto non fornirà l'analisi del firmware oppure nasconderà il malware.
- Firma del codice firmware (per l'aggiornamento): l'aggiornamento del firmware personalizzato non è più possibile. Sarà possibile aggiornare solo il firmware del produttore (ovvero il firmware firmato).
- Disattiva l'aggiornamento del firmware: dovrai fidarti del firmware di fabbrica, che non potrà mai essere modificato.
Altri problemi
I ricercatori che hanno scoperto il difetto non hanno rilasciato il codice che mostra come sfruttare la vulnerabilità. Sostengono che solo avversari altamente motivati saranno in grado di eseguire l'attacco e non vorrebbero che chiunque fosse in grado di eseguirlo.
Un altro gruppo di ricercatori ha scritto il codice con l'attacco e lo ha rilasciato su una piattaforma aperta (GitHub). Questo gruppo non è d'accordo con l'idea di nascondere il codice e lo ha diffuso per costringere i produttori a lavorare più velocemente per risolvere il problema.
https://srlabs.de/badusb/
https://www.blackhat.com/us-14/briefings.html#badusb-on-accessories-that-turn-evil
https://www.youtube.com/watch?v=nuruzFqMgIw[/ Vc_column_text] [vc_column_text]