Dopo aver introdotto l'architettura Bluetooth, siamo
ora in grado di analizzare molte delle tecniche di attacco e difesa contro dispositivi che
utilizzano questo standard di comunicazione senza fili.
Dal 2003, anno della pubblicazione da parte di alcuni ricercatori (Martin Herfurt, Adam Laurie, Bruce Potter ed
altri) delle prime vulnerabilità, sono stati scoperti numerosi problemi sia nelle funzionalità
di discovery tra dispositivi che nei servizi offerti dai singoli apparecchi; queste mancanze nei casi più gravi
possono addirittura permette la sottrazione di informazioni personali ed il controllo completo dei dispositivi
elettronici. I costruttori minimizzano ma è ormai evidente come molti degli stack Bluetooth, presenti in
commercio anche in Italia, soffrono di questi problemi.
In questo articolo vedremo attacchi di tipo Bluejacking, la forzatura del Discovery mode, vulnerabilità come
BlueSnarf e BlueSnarf++, BlueBug e Blooover e analizzeremo un possibile attacco con il software Blooover 2.
Iniziamo con il Bluejacking, il sistema per ottenere il riconoscimento del dispositivo.
Bluejacking
Bluetooth cerca di rendere le interazioni tra dispositivi quanto più semplice per l'utente. Durante il discovery
di altri apparecchi, per esempio quando vogliamo associare un telefono con il nostro computer, viene scambiato il
nome identificativo dei device.
Questa caratteristica, che semplifica l'utilizzo, è intrinsecamente pericolosa. Il nome del
dispositivo è infatti un campo di testo che può contenere una stringa maggiore o uguale di 248 caratteri;
utilizzando questa stringa è possibile scambiare messaggi tra dispositivi.
Sebbene questa caratteristica è spesso usata per conoscere e socializzare con nuove persone dotate anch'essi di
apparecchi Bluetooth (toothing), abbinata a tecniche di social engineering può compromettere una delle
fasi più delicate: quella del pairing tra dispositivi.
L'utente inesperto ricevendo un messaggio di questo tipo: "Problemi alla rete, digita 1234 per associare il
telefono alla cella" potrebbe essere tratto in inganno, facendo diventare trusted un dispositivo sconosciuto che
quindi acquisirebbe tutti i privilegi necessari a compromettere i dati e le comunicazioni.
Non dobbiamo stupirci se attacchi così semplici spesso sono i più efficaci: le tecniche di phishing, in ambito web,
sfruttano la stessa inesperienza degli utenti. La popolarità di questo tipo di abuso ha dato luogo allo sviluppo
di una serie di software appositi (Freejack, Meeting, Bluejack, ecc.) usati spesso dai più giovani nei locali di
divertimento.
Figura 1. Bluejack: software di Bluejacking
"Discovery mode" abuse
Su molti dei dispositivi in commercio è possibile selezionare la modalità di funzionamento
Bluetooth: acceso (visibile), acceso (nascosto) e spento.
Selezionando l'opzione nascosto, il dispositivo non fa nient'altro che scartare tutte le
richieste di inquiry, inviate in "broadcast" da altri dispositivi che vogliono conoscere la presenza di soggetti
con cui comunicare. A differenza di quanto si crede però non vengono in alcun modo disabilitati i servizi ma
solamente rifiutate le richieste che giungono all'SDP; in questo modo, per alcuni apparecchi, è comunque
possibile interrogare direttamente il singolo dispositivo che risponderà alle richieste normalmente.
Nascondere un dispositivo non deve quindi essere considerato come un meccanismo di protezione infallibile.
@Stake, nota società di sicurezza informatica acquisita
recentemente da Symantec, ha pubblicato uno strumento software in grado di scoprire eventuali dispositivi
nascosti.
Il funzionamento di questo software, chiamato Redfang, è basato su un meccanismo di brute-forcing. I primi 24 bit di un indirizzo Bluetooth sono
fissi e dipendenti dal costruttore; i successivi 24 identificano invece univocamente il dispositivo. Scegliendo
un particolare produttore, risulta computazionalmente possibile tentare di indovinare gli ultimi bit effettuando
continue richieste.
Nella figura 1 è possibile vedere una normale scansione, eseguita da linea di comando, in un sistema Linux. È
interessante notare come l'unico dispositivo rilevato (quindi visibile) sia quello con indirizzo Bluetooth pari a
00:0A:95:2F:10:D1.
Figura 2. Scansione normale da sistema Linux
Nelle medesime condizioni della scansione precedente, vediamo come lanciando opportunamente lo strumento redfang
sia possibile rilevare un dispositivo nascosto, che durante una prima scansione non era stato individuato (Figura
2).
Figura 3. Scansione con Redfang da sistema Linux
BlueSnarf e BlueSnarf++
Per realizzare questo tipo di attacco un aggressore non deve fare nient'altro che collegarsi al servizio
OBEX Push usato spesso per scambiarsi biglietti da visita elettronici. In alcuni cellulari questa
funzionalità è implementata in maniera errata e permette, oltre alla ricezione di file, anche l'OBEX Get ovvero
la richiesta di file.
In questo modo, conoscendo la presenza di qualche oggetto presente sul dispositivo è possibile scaricarlo senza
autenticazione; l'assenza di autenticazione è una caratteristica intrinseca del servizio OBEX che, se è però
implementato correttamente, non deve permettere il download di file. La necessità di conoscere il path di un
oggetto sul dispositivo remoto non è comunque un problema: moltissimi apparecchi memorizzano le informazioni su
file di testo la cui disposizione è nota e dipendente dal sistema.
Per esempio, i prodotti Ericsson e SonyEricsson di prima generazione salvano la rubrica
telefonica in telecom/pb.vcf oppure il calendario in telecom/calc.vcs, così come molti altri telefonini. Se uno
di questi dispositivi è bacato, l'attacco è presto fatto utilizzando qualsiasi client OBEX (obexftp per Linux,
obex-commander per Windows). I dispositivi afflitti da questa vulnerabilità non sono affatto pochi: Ericsson T68,
Sony Ericsson T68m, T68i, T610, Z1010, Z600, R520m, Nokia 6310, 7650, 8910 e molti altri.
In seguito i ricercatori hanno individuato una vulnerabilità molto simile che è stata chiamata
BlueSnarf++ in quanto oltre al download di file permette un accesso completo al
filesystem dei dispositivi vittima. Su questi apparecchi risulta possibile vedere i file presenti ma
anche eliminarli, senza dover effettuare alcun pairing tra dispositivi.
BlueBug e Blooover
Bluebug è il nome di una vulnerabilità presente in alcuni cellulari che permette un pieno accesso ai comandi AT del dispositivo. I comandi AT definiscono
un set di comandi che permettono di ottenere il controllo completo del dispositivo: invio di
chiamate, invio, lettura e cancellazione di SMS, modifica dei parametri di configurazione del telefono, ecc.
Ancora una volta il problema è legato ad un'implementazione errata dello stack Bluetooth in cui esistono dei
servizi sul canale RFCOMM non pubblicati e non annunciati tramite SDP, ma che posso essere comunque usati. Spesso
questi canali di comunicazione sono abilitati dal costruttore per eventuali test sui prototipi ma poi non vengono
rimossi in fase di produzione. Collegandosi ad uno di questi canali è quindi possibile impartire qualsiasi
comando al dispositivo remoto, scaricare dati e compiere altre azioni illecite.
Per mostrare tale vulnerabilità utilizzeremo un comodissimo software sviluppato dal team di trifinite che permette di fare dei semplici security auditing, in maniera da
scoprire se anche i nostri apparecchi sono affetti da tali bachi.
Il software in questione è chiamato BloooverII e nella sua ultima release permette di
provare molte le vulnerabilità mostrate (BlueSnarf, BlueBug ma anche HELOMoto e Malformed Objects) in maniera veloce tramite
una semplice interfaccia utente. Il software è disponibile per tutte le piattaforme che supportano Java Micro
Edition (MIDP 2.0) e le Bluetooth API (JSR-82); per questa caratteristica si presta perfettamente ad essere
installato su dispositivi cellulari di ultima generazione.
Come consigliano gli sviluppatori, si raccomanda un uso responsabile ed accorto in quanto
l'utilizzo e l'esecuzione di attacchi su dispositivi altrui è severamente vietato dalla legge e punita con
sanzioni penali.
Dall'interfaccia principale che viene mostrata all'utente, dopo il lancio dell'applicazione è
possibile effettuare una scansione (Figura 4) per rilevare tutti i dispositivi presenti (selezionando Find
Devices) oppure impostare alcune opzioni (selezionando Settings) relative ai diversi attacchi
(Figure 5).
Figura 4. Blooover II: scansione dei dispositivi Bluetooth
Una volta terminata la scansione, selezionando i dispositivi presenti è possibile decidere il
tipo di attacco da lanciare semplicemente cliccando sul nome della vulnerabilità oppure ottenere maggiori
informazioni sul dispositivo remoto (Figura 5).
Figura 5. Blooover II: selezione della vulnerabilità da eseguire
BlueSmack
BlueSmack è un tipico attacco DOS (Denial of Service) che permette di far diventare instabile un
sistema operativo sino a fargli generare delle eccezioni critiche. Questo tipo di attacco è la rivisitazione del
classico Ping of Death che affligge Windows 95, in ambiente Bluetooth. Come nel caso del Ping of Death, si
incrementa oltre misura la dimensione di un pacchetto echo request (L2CAP ping) che verrà poi spedito verso il
dispositivo vittima.
Alcuni apparecchi, oltre ad un certa dimensione del pacchetto, ricevono il dato ma generano degli
errori che fanno bloccare completamente il sistema operativo; è il caso di alcuni modelli di Compaq IPAQ
con sistema operativo Windows Mobile in cui se il numero dei byte del pacchetto ricevuto è superiore a 600
mostrano un messaggio di errore con un conseguente blocco del sistema.
Un ulteriore problema: i worm.
Come se non bastasse, ultimamente abbiamo assistito ai primi casi di
worm che utilizzano proprio la tecnologia Bluetooth per propagarsi.
È il caso di Inqtana.A, un worm proof-of-concept
sviluppato in Java che utilizza la tecnologia Bluetooth dei sistemi Mac OS X 10.4 (Tiger) per propagarsi; sebbene
il termine proof-of-concept indichi che si tratti solamente di un "prototipo" è altrettanto chiaro che è la
dimostrazione tangibile dei rischi a cui dovremo abituarci in futuro.
Questo particolare worm utilizza le funzionalità OBEX per trasferirsi su tutti i dispositivi
visibili ed, una volta che l'utente accetta esplicitamente il trasferimento, copia se stesso sul dispositivo
remoto in maniera da auto-eseguirsi al successivo riavvio del sistema.
Dato il consenso crescente che questa tecnologia sta riscuotendo da parte del grande pubblico, non è difficile
ipotizzare la possibilità che questi worm si propaghino in maniera indipendente dall'utente, magari sfruttando
nuove vulnerabilità che verranno scoperte negli stack Bluetooth.
Terminiamo qui la nostra panoramica sui principali problemi di sicurezza della tecnologia Bluetooth. In attesa di
un maggior impegno e sinergia tra il consorzio Bluetooth e le case produttrici, l'utente può adottare alcune
semplici precauzioni che è bene ricordare:
-
Scegliere codici PIN non banali e lunghi (dove consentito dagli apparecchi)
-
Evitare il pairing tra dispositivi Bluetooth in ambienti affollati o poco sicuri; un semplice errore
nell'associare dispositivi untrusted potrebbe compromettere i propri dati -
Utilizzare il dispositivo in modalità nascosta per allungare i tempi di un'eventuale aggressione
-
Scegliere dispositivi ritenuti sicuri dall'intera comunità di esperti che operano in questo settore.
Attraverso le mailing list pubbliche o i forum è possibile trovare eventuali advisory relative a dispositivi
bacati.
Per i lettori che volessero approfondire ulteriormente l'argomento segnalo i seguenti siti internet:
http://www.betaversion.net/btdsd/: database dei
dispositivi, con segnalate alcune vulnerabilità.
http://bluetooth.interfree.it/: ulteriori dettagli
tecnici sulla tecnologia Bluetooth.
http://www.niksula.hut.fi/~jiitv/bluesec.html: documento
approfondito sulla sicurezza Bluetooth.
http://ftp.vub.ac.be/~sijansse/2e
lic/BT/Tools/Tools.html: un ottimo punto di riferimento per conoscere tutti gli strumenti software legati
alla sicurezza Bluetooth)
http://www.thebunker.net/security/bluetooth.htm: tecniche
di attacco e dispositivi vulnerabili
http://trifinite.org/trifinite_org.html:
Home page del team Trifinite, specializzato in sicurezza Bluetooth
http://openobex.triq.net/: Home page di OpenOBEX,
un'implementazione open source del protocollo di scambio file OBEX
e consiglio di approfondire l'uso della tecnologia Bluetooth in ambiente Linux, poichè solo attraverso il sistema
BlueZ è possibile sperimentare pienamente ogni singolo elemento
dell'architettura.