Nicola D'Agostino (.net) - Articoli, traduzioni, grafica, web

Attacco via Firewire

I rischi delle connessioni veloci e dell’accesso diretto alla memoria. Non solo su Windows.

di Nicola D’Agostino

All’inizio di marzo una testata australiana ha dato spazio ad un’insicurezza di Windows ed al ricercatore che l’ha scoperta. La tecnica divulgata si basa sulla lettura e scrittura di dati riservati tramite un collegamento Firewire ed a divulgarla è stato il neozelandese Adam Boileau. Vediamo meglio in cosa consiste e quali sono i rischi.

Accesso alla memoria

Logo Firewire - Courtesy of AppleLa tecnica è stata diffusa da Adam Boileau e prevede il collegamento di un portatile con Linux ad una macchina Windows in esecuzione, accedendo direttamente alla memoria di quest’ultimo per leggere e intervenendo su password o altri codici di accesso.

Anche se l’insicurezza è stata giocoforza accomunata a quella diffusa nello stesso periodo che permette di leggere i dati sulla memoria “volatile” anche dopo un riavvio, l’attacco via Firewire ha un’origine molto più vecchia. Boileau già due anni fa, alla manifestazione Ruxcon 2006 aveva tenuto una presentazione dal titolo “Hit By A Bus: Physical Access Attacks With Firewire” ed aveva avvertito Microsoft della vulnerabilità. Dopo che a Redmond hanno nicchiato per due anni, il ricercatore ha deciso di rendere disponibili gli strumenti creati per evidenziare la questione irrisolta.

Gli strumenti

Sul blog di Boileau si trovano i software usati come anche diverse spiegazioni. Tra queste il fatto che i tool sono efficaci su qualsiasi computer bersaglio con porta IEEE 1394 (il nome canonico di Firewire, talvolta chiamato anche iLink) e che l’accesso non è un bug ma una caratteristica propria del tipo di connettività in oggetto.

Nella pratica chi volesse provare deve collegare fisicamente un computer con sistema operativo GNU/Linux alla macchina target. A questo punto si può usare qualcuno degli strumenti scaricabili dal sito. Ad esempio winlockpwn è un’utility in PyThon che aggira la password di macchine Windows con lo schermo bloccato.
bioskbsnarf invece è un tool usato nella presentazione del 2006 da Boileau per scoprire la sua stessa password di BIOS. Il codice, sempre in PyThon, analizza un device tipo /dev/mem oppure un’immagine della memoria già acquisita via FireWire.
Quest’ultima operazione si può fare con “1394memimage”, uno degli strumenti inclusi in
pythonraw1394-1.0.tar.gz pacchetto compresso da 447kB che include anche romtool e altro ancora.
Il tutto è dato per funzionante su una Debian Sarge con controller OHCI 1394 e supporto per Firewire a livello di kernel.

Un vecchio baco… nella mela

Il “problema” di poter leggere e scrivere la memoria di un altro computer via Firewire/IEEE 1394 non è un bug ma una caratteristica voluta e nota e questa “vulnerabilità” esiste in tutti i sistemi operativi. L’implementazione corretta delle specifiche contempla il DMA (Direct Memory Access) e quindi vantaggi e svantaggi su varie piattaforme: Windows, Linux e… Mac OS X.

L’idea di sfruttare la connessione Firewire per accedere alla memoria di un altro computer ha origine proprio sui computer di Apple, che ha ideato questo tipo di connessione, poi trasformata in uno standard.
Nel 2002 alla manifestazione Mac Hack uno smanettone noto come “Quinn The Eskimo” si aggiudicò il premio come migliore hack mostrando alla platea un particolare salvaschermo che poteva “imporsi” su qualsiasi Macintosh collegato via Firewire.

FireStarter

FireStarter può generare una schermata con delle fiamme su una serie di Macintosh dell’epoca (ma il supporto si può espandere): nella pratica il software accede alla VRAM (la memoria video) riesce ad indovinare l’indirizzo giusto del buffer e ci scrive i dati, usandolo come terminale (grafico) remoto.

Basta anche un iPod

Il lavoro di Boileau su Windows si basa su quello di un tedesco, Max Dornseif, che nel 2004 e poi ancora nel 2005 in vari convegni ha mostrato una variante furba quanto alla moda della vulnerabilità: utilizzare un iPod.
All’epoca i player digitali di Apple usavano prevalentemente la FireWire e caricando sul dispositivo un OS Linux il piccolo mattoncino bianco poteva addirittura trasformarsi in un logger di tutto ciò che succedeva sullo schermo computer bersaglio salvandolo come video a 10fps. Il risultato delle dimostrazioni di Dornseif era che la domanda “ehi, posso collegare il mio iPod al tuo PC per ricaricarlo?” assumeva una luce nuova.

La soluzione

Come scritto Firewire/IEE 1934 ha bisogno del DMA perché a differenza di USB consente a più device di comunicare direttamente senza l’assistenza di una CPU che faccia da “arbitro”: si tratta di una caratteristica insita nello standard e l’unica soluzione generale e universale sarebbe quella di rivedere le specifiche.

schermata del meccanismo con cui via Firewire si accede direttamente alla memoria

Questo non vuol dire che il problema non sia risolvibile. Apple senza troppo rumore ha modificato il suo sistema operativo di modo che se si abilita la password sull’Open Firmware (di cui abbiamo parlato sul numero 135 di Hacker Journal) la Firewire non è più suscettibile ad attacchi.

A partire da Darwin v6.2/Mac OS X 10.2.2 (http://rentzsch.com/macosx/securingFirewire) è stato modificato il codice in IOFireWireFamily. Questo controlla se la password sull’Open Firmware è abilitata e in caso affermativo non è più possibile l’accesso diretto alla memoria via Firewire e FireStarter non funziona più. Per la cronaca la patch di Apple risale al novembre 2002, casualmente un paio di mesi dopo la presentazione del salvaschermo invasivo di Quinn.

E sugli altri computer? Beh, in attesa di una soluzione software c’è chi consiglia di tappare fisicamente le porte Firewire.

Il rischio effettivo

Oggettivamente la Firewire non è così diffusa al di fuori del mondo Apple e di alcuni computer di marca o quelli votati all’audio o video professionali, dove l’USB sinora si è mostrato spesso inadeguato. Se la porta non c’è il rischio è nullo.
A meno che il bersaglio non sia un portatile. C’è il rischio che l’attaccante infili una schedina di espansione Cardbus o Expresscard e visto che anche hanno il DMA…

Riabilitare l’insicurezza

In “Mac hacking: rimuovere le password su un Macintosh” abbiamo visto che le protezioni sul firmware dei computer Apple si possono azzerare. Come per resettare la password del BIOS bisogna però mettere mano all’interno del computer, in questo caso alterare la configurazione, ad esempio la quantità di memoria e poi resettare un paio di volte la PRAM. In altre parole: si può fare ma l’attaccante ha bisogno di accesso all’hardware e un po’ di tempo. A questo punto gli converrebbe quasi portar via il disco…

Una versione di questo articolo è stata pubblicata su "Hacker Journal" n. 153 del 12 giugno 2008