Dati casuali? Trovati 26 bug nei driver USB

3

Una delle tecniche adottate per testare bug è quella del “fuzzing“, ovvero l’uso di metodi che forniscano in input ad altri software dati invalidi, inaspettati o casuali.

Ed è quello che hanno fatto i ricercatori dello Swiss Federal Institute of Technology di Losanna quando hanno sviluppato USBFuzz. Il software infatti emula a livello software una chiavetta USB che genera dati randomici catturati dai driver USB in fase di input/output, e lavorando a livello di emulazione di dispositivo è facilmente portabile su diversi sistemi operativi, cosa che ha permesso di testare lo stack USB di diversi OS, nello specifico:

  • 9 versioni del kernel Linux (dalla 4.14.81 alla 4.20-rc2, la più recente ai tempi dei test)
  • FreeBSD 12
  • MacOS 10.15 Catalina
  • Windows (sia 8 che 10, con gli ultimi security updates)

E cosa è saltato fuori? Beh, ma 26 nuovi bug ovviamente, che possono essere in qualche modo sfruttati sia per bloccare i sistemi che per altri scopi. E’ stato trovato quindi un bug in FreeBSD, tre in MacOS (due dei quali bloccano o riavviano il sistema) e 4 in Windows 8/10 (entrambi che causano il famigerato B.S.O.D. – Blue Screen of Death).

Ed i rimanenti? Beh, tutti nel nostro amato OS purtroppo, anche se considerando che di sole versioni del kernel Linux ne son state testate più del doppio che della somma di tutti gli altri. Di questi 18, sedici sono bug nella memoria ad alto impatto sulla sicurezza in diversi sottosistemi (core, sound network), uno nell’host controller e l’ultimo nel drivere delle webcam USB.

Ai tempi però, i ricercatori hanno subito contattato il team kernel Linux, proponendo anche delle patch per “ridurre la pressione sugli sviluppatori del kernel”. E, di fatto, al momento 11 di quei bug sono già stati sistemati, e per gli altri 7 ci si aspetta delle patch nel prossimo futuro.

The remaining bugs fall into two classes: those still under embargo/being disclosed and those that were concurrently found and reported by other researchers

I rimanenti bug ricadono in due classi: quelli che sono ancora ignorati/in scoperta e quelli che sono già stati riconosciuti e riportati anche da altri ricercatori

Proprio ieri è stato annunciato dai ricercatori che il tool USBFuzz sarà rilasciato in open-source, nel repository di HexHive, a seguito del talk previsto per Usenix (si, al momento quella pagina non esiste).

Inoltre, se siete interessati a leggere l’intera ricerca che ha portato a USBFuzz potete tranquillamente scaricarvi il PDF reso disponibile.

Siete curiosi di testare la vostra distribuzione con questo nuovo tool?

Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l’HA e l’universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.