TAGS CLOUD
Incrementa dimensioniDecrementa dimensioni
Scacco matto a cellulari e periferiche Bluetooth
Ecco come i malintenzionati sfruttano i “difetti” di questo tipo di comuncazione per accedere a telefonini e altri dispositivi senza autorizzazione
(pagina 1 di 2)
Dalle stampanti ai telefonini, dal PC il palyer multimediali, fino ad arrivare a fotocamere, navigatori GPS e cuffie, ormai su tutti i dispositivi elettronici è presente un’interfaccia Bluetooth che ci permette di farli comunicare tra di loto per scambiare dati. Come ogni altro protocollo, anche questo, è soggetto a problemi di sicurezza che possono mettere in pericolo i nostri dati e la nostra privacy. Allora, se è vero che la miglior difesa è l’attacco, scopriamo quali sono le tecniche di hacking più diffuse che consentono ai male intenzionati di sfruttare le vulnerabilità di questo complesso sistema e quali sono le periferiche più a rischio per poter porre rimedio ad un attacco prima che sia troppo tardi. Ma prima di andare avanti, vediamo cos’è e come funziona questo particolare sistema di comunicazione.
L’origine del nome
Una curiosità che in tanti non conoscono
Sembra sia stato inspirato dal Re Aroldo I che riuscì ad unificare il regno di Danimarca. Il soprannome del Re era Dente Blu e fu preso come riferimento metaforico dai creatori del protocollo Bluetooth il cui obiettivo era unire tra loro periferiche differenti mediante un sistema universale. Anche il logo del Bluetooth non è casuale, si tratta infatti di due simboli runici che indicano rispettivamente la H e la B, ovvero le iniziali del nome del Re: Harald Blatand.
Bluetooth. Sei proprio Sicuro di conoscerlo?
Si tratta di una specifica sviluppata sul finire degli Anni ‘90 per consentire lo scambio di dati tra periferiche differenti utilizzando un canale senza fili. Tramite Bluetooth è possibile creare una WPAN (Wireless Personal Area Network) a corto raggio, normalmente 10/20 metri, resa sicura dall’utilizzo della crittografia. La possibilità di interconnettere periferiche molto diverse tra loro, come cellulari, stampanti, computer, fotocamere, etc, ha contribuito notevolmente a diffondere questo tipo di interfaccia che ora è parte integrante di tutte le periferiche che consentono la memorizzazione di dati digitali. Lo standard Bluetooth è stato oggetto di numerose revisioni nel corso degli anni, la prima versione fu ovviamente la 1.0 che però soffriva di numerosi problemi, infatti era difficile, se non impossibile, mettere in comunicazione dispositivi prodotti da società differenti. Ben presto la versione 1.0 venne rimpiazzata dalla 1.0B che risolveva i problemi di interoperabilità, ma comunque non garantiva alcun grado di riservatezza sui dati inviati tra due dispositivi. Successivamente lo standard venne irrobustito e arricchito di funzionalità: attualmente la versione 2.0 consente di utilizzare la crittografia forte per la cifratura dei dati tramite l’algoritmo SAFER+, è stata aumentata la banda che ora può arrivare fino a 3Mbit, e sono state introdotte varie migliorie per gestire la qualità del servizio e per migliorare l’efficienza delle trasmissioni. Oltretutto, è stato possibile diminuire ulteriormente la potenza del segnale inviato, riducendo, quindi, il consumo senza compromettere il range coperto dai vari dispositivi. Tuttavia, nonostante lo standard sia maturo e collaudato, molte implementazioni non sono molto curate, e questo come spesso accade per altri protocolli, ha portato all’introduzione di vulnerabilità più o meno gravi nei vari dispositivi. Nel corso dell’articolo studieremo le falle attualmente conosciute e poi proveremo ad attaccare una periferica Bluetooth. Fatta questa necessaria premessa, passiamo all’analisi del primo tipo di attacco, noto con il nome BlueSnarf.
Toothing. Di cosa si tratta?
Invio di messaggi anonimi ad altri cellulari
Il toothing ha fatto la sua prima apparizione nel 2004 come bufala partita dal direttore del magazine di videogame Edge. Tuttavia, a differenza di molte altre trovate di questo tipo, il toothing prese vita rapidamente e oggi è possibile trovare varie comunità, anche in Italia. Ma in cosa consiste? Semplicemente nello scambio di messaggini tramite Bluetooth, principalmente all’interno dello stesso ambiente (PUB, discoteca, ristoranti...), che hanno come fine quello di conoscere nuove persone. Come farlo? È davvero semplice: basta creare in rubrica una voce nella quale il nome del nuovo contatto deve contenere il messaggio da inviare, poi si invia questo contatto tramite Bluetooth ad un altro cellulare presente nelle vicinanze in attesa di una risposta.
Attacchi di tipo BlueSnarf
Questo tipo di attacco è apparso per la prima volta nel 2003 ed ha interessato un notevole numero di produttori di telefoni cellulari, tra cui Nokia ed Ericsson. Per portare a termine un attacco di tipo BlueSnarf è necessario connettersi all’OBEX Push Profile (OPP), che è stato sviluppato per scambiare agevolmente biglietti da visita elettronici tra varie periferiche. Nella definizione dell’OPP non era prevista alcuna autenticazione, e questo di per se non è il problema principale, perché se l’implementazione è corretta non si incorre in alcuna vulnerabilità. Purtroppo, sappiamo che la realtà e gli standard spesso differiscono tra loro, e questo è il caso delle varie implementazioni di OPP ad opera dei produttori. Il risultato di tali errori progettuali è la possibilità di richiedere al dispositivo l’invio di file il cui nome è noto a priori (senza che il proprietario si accorga di nulla), una situazione che si presenta spesso: basti pensare al nome del file di rubrica che generalmente è sempre lo stesso per ogni modello di cellulare.
BlueSnarf++, quello evoluto
Si tratta di un attacco in tutto e per tutto simile al BlueSnarf, la “sola” differenza è che mentre con questo possiamo leggere i dati dal file system, con BlueSnarf++ possiamo scriverli o, peggio, rimuoverli. Questo attacco fu scoperto a distanza di poco tempo dal BlueSnarf e risulta particolarmente pericoloso poiché non è necessaria alcuna autenticazione sulla periferica remota.
BlueBug permette il controllo remoto
Ancora una volta ci troviamo di fronte ad un bug che non è dovuto a mancanze nella stesura dello standard, ma ad implementazioni errate. Una periferica Bluetooth è sostanzialmente un emulatore wireless di terminale RS232 (la comune porta seriale tanto per intenderci), e come avviene per molte periferiche seriali, ad esempio con i vecchi modem, è possibile comunicare tramite i comandi AT. Chi ha mai configurato un demone PPP (Point to Point Protocoll, quello per le connessioni a Internet) o ha provato a collegarsi al proprio modem sa di cosa stiamo parlando: si tratta di una serie di comandi che permettono di pilotare la periferica, nel caso di un cellulare è quindi possibile far partire una chiamata, l’invio di un SMS o anche avviare una connessione a Internet. La pericolosità del BlueBug è dunque notevole perché si può prendere il controllo completo della periferica remota, ma fortunatamente le implementazioni vulnerabili sono davvero pochissime.
BlueJacking: accesso non consentito al cellulare
Prima che inizi lo scambio di risorse tra client Bluetooth è necessario completare una fase di handshaking (pairing), una sorta di identificazione reciproca dove, tra le altre cose, un terminale Bluetooth, ad esempio il telefonino, invia all’altro il proprio nome. Lo standard ha fissato la lunghezza massima del nome delle periferiche a 248 caratteri che se sfruttati attentamente possono consentire di ottenere accesso completo al terminale remoto. Il procedimento è semplice: si imposta il nome del proprio dispositivo con un messaggio che, si spera, verrà accettato dall’utente. Poi si fa una richiesta di connessione al client remoto e se l’utente accetta, completando quindi la fase di pairing dei dispositivi, è possibile accedere in tutta comodità ai dati presenti sull’altro client. Questo è il classico esempio di attacco basato su Social Engineering, e spesso risulta più efficace di molti exploit basati su difetti tecnologici.
Attacco al Bluetooth
Dopo aver descritto i vari attacchi è giunto il momento di provarne uno. In questo caso specifico proveremo infatti ad “iniettare” un messaggio audio all’interno di un paio di cuffie Bluetooth. Ovviamente, è necessario disporre di una chiavetta Bluetooth o di un PC/notebook con integrata un’interfaccia di questo tipo, e un paio di cuffie Bluetooth, magari con microfono integrato. Questo attacco è interessante perché, in maniera analoga, è possibile ascoltare le conversazioni captate da un microfono/auricolare Bluetooth. Ma passiamo all’azione. Per prima cosa abbiamo bisogno delle Bluez Utils che dovrebbero essere già presenti su tutte le distribuzioni desktop, in caso contrario dovremo effettuarne l’installazione tramite il packet manager della nostra distribuzione dopo essere diventati root con su o sudo -s. In particolare, per Debian GNU/Linux, Ubuntu e derivate il comando è apt-get install bluez-utils, yum install bluez-utils per Fedora e derivate e emerge bluez-utils per Gentoo. Fatto ciò, abbiamo ancora bisogno di installare Carwhisperer, un programma sviluppato per “iniettare” l’audio all’interno dei carkits Bluetooth, perciò scarichiamolo sul PC da http://trifinite.org/trifinite_stuff_carwhisperer. html e compiliamolo:
tar -xzf carwhisperer-0.1.tar.gz
cd carwhisperer-0.1
make
sudo make install

Questo genere di attacco funziona perché di default il PIN di una periferica Bluetooth (auricolari, GPS, microfoni, stampanti...) è composto di soli 4 caratteri che nella maggior parte dei casi sono: 0000 oppure 1234. La prima cosa da fare è scegliere il messaggio audio che si vuole inviare e convertirlo. A scopo dimostrativo, abbiamo utilizzato il celebre pezzo del film Terminator 2, dove il Terminator, prima di sparare al T-1000, dice: “Hasta la vista baby!”, ma potete usare quello che ritenete più consono. Una volta trovato il file adatto, che dovrà essere in formato .wav, bisogna convertirlo, quindi apriamo la console ed eseguiamo quanto segue:
sox -t wav -r 44100 -c 2 -t raw -r 8000
-c 1 -s -w message.raw
Il file message.raw sarà quello che inietteremo nelle cuffie. Carwhisperer include anche un piccolissimo database di carkits con alcuni PIN predefiniti, è possibile quindi che le vostre cuffie, auricolari, etc siano già supportati, in caso contrario niente paura, per prima cosa accendiamo il dispositivo e scopriamone il MAC address eseguendo:
sudo hcitool scan
Scanning ...
00:15:9E:00:46:33 DM05-SINK
Abbiamo utilizzato hcitool, una delle tante utility presenti nella suite BlueZ Utils che prova ad identificare i dispositivi Bluetooth che si trovano nel range coperto dalla nostra chiavetta Bluetooth. Il risultato sarà una lista di periferiche, se raggiungibili. A sinistra troveremo il MAC address e a destra il rispettivo nome. Per verificare che il client Bluetooth sia attivo, possiamo fare un ping:
sudo l2ping 00:15:9E:00:46:33
4 bytes from 00:15:9E:00:46:33 id 0 time 42.26ms
4 bytes from 00:15:9E:00:46:33 id 1 time 47.40ms
2 sent, 2 received, 0% loss
Se il client risponde possiamo passare alla fase successiva, ovvero l’inserimento del PIN di default nello script /usr/bin/cw_pin.pl di Carwshisperer, quindi apriamolo
sudo vi /usr/bin/cw_pin.pl
Ed inseriamo i primi 3 byte del MAC address nello switch dei PIN:
SWITCH: for ($bdaddr) {
/00:15:9E/ && do { $pin=”8888”; last;}; #
Il pin del nostro dispositivo
/00:02:EE/ && do { $pin=”5475”; last;}; # Nokia
Se, invece, il PIN del vostro dispositivo è 0000 allora non ci sarà bisogno di aggiungere alcuna riga perché verrà provato automaticamente dal programma. A questo punto, siamo pronti a per iniettare l’audio e non solo, quindi, da console eseguiamo il comando seguente:
sudo carwhisperer 0 message.raw audio.raw
00:15:9E:00:46:33 1
Nel terminale, se tutto va bene, vedremo qualcosa di simile a quanto visibile nella prima immagine sottostante. Se il collegamento avviene con successo sentiremo il nostro messaggio nelle cuffie. Ma le buone notizie non finiscono qui: vi siete chiesti cos’è il file audio.raw? Quel file contiene l’audio intercettato dalla periferica Bluetooth, significa che se invece di utilizzare un paio di cuffie stiamo utilizzando un headset o un auricolare, allora nel file audio.raw troveremo l’audio catturato dal microfono. Non male se consideriamo che molti auricolari per cellulari supportano anche il pairing multiplo, che in parole povere significa che è possibile, senza grandi sforzi come abbiamo appena visto,ascoltare la telefonata di qualcuno che sta utilizzando un auricolare Bluetooth. Ma come facciamo a scoprire se un dispositivo supporta il pairing multiplo? In linea di massima anche questo è abbastanza semplice: per prima cosa proviamo a pingare l’auricolare per vedere se risponde anche dopo aver fatto il pairing con il telefono cellulare, in caso positivo possiamo provare a stabilire una connessione tramite rfcomm (ancora BlueZ Utils):
rfcomm connect 1 00:15:9E:00:46:33 1
Se ci viene richiesto il PIN come visibile nella seconda immagine di seguito presente, allora la periferica supporta il pairing multiplo e quindi saremo in grado di ascoltare ogni telefonata per intero. In caso contrario soltanto un dispositivo potrà associarsi all’auricolare e, quindi, a meno di non avere uno sniffer hardware (o meglio, il relativo software dal momento che uno sniffer hardware è spesso una normale chiavetta Bluetooth programmabile) non saremo in grado di intercettare il traffico.

Carwshisperer si è connesso alla periferica e sta iniettando l’audio

La schermata per la richiesta del PIN

RedFang ha identificato il dispositivo Bluetooth nascosto


In cosa consiste il pairing
L’autenticazione dei dispositivi Bluetooth
Il pairing è la fase più delicata di una connessione tra dispositivi Bluetooth. In pratica i due client, ad esempio due PC o due telefonini, un PC e un telefonino e così via, generano una chiave segreta, tramite il PIN inserito dagli utenti, che utilizzeranno durante tutta la sessione per lo scambio dei dati, ed è anche il solo modo per mettere in comunicazione due dispositivi. Esiste però un attacco, scoperto da Shaked e Wool, che consente di ricostruire il PIN semplicemente ascoltando il traffico al momento del pairing tra i dispositivi, si tratta di un’eventualità remota allo stato attuale a causa dei costi elevati di uno sniffer hardware e del relativo software, ma comunque possibile e che quindi va tenuta in considerazione.
Redfang. Attacco alle periferiche non visibili
Tutti gli attacchi visti finora sono possibili soltanto quando un dispositivo è in modalità visibile, tuttavia, il Bluetooth consente di impostare una periferica anche in modalità invisibile, ed in questo caso non verrà identificata dal comando hcitool scan. Cosa è possibile fare in queste situazioni? L’unica alternativa percorribile è quella di effettuare la scansione di tutti i MAC address e fare una richiesta read_remote_name() per ottenere il nome del dispositivo. Il problema è che un MAC address è lungo 48bit che si traducono in 2^48 richieste da parte dello scanner, decisamente troppe. Sappiamo però che i primi 3 byte sono gli stessi per ogni produttore, una delle particolarità dei MAC address è infatti proprio quella di essere univoci per ogni periferica del mondo. Conoscendo gli slot assegnati ad ogni produttore è possibile ottimizzare lo scan riducendo notevolmente i tempi. Per fortuna, questo lavoro è svolto egregiamente da Redfang (www.net-security.org/software.php?id=519), un piccolo programma che consente di trovare un dispositivo Bluetooth anche se posto in modalità invisibile. Vediamo come funziona. Scarichiamo il file redfang.2.5.tar.gz e salviamolo in una directory temporanea. A questo punto, scompattiamolo e compiliamolo:
tar -xzf redfang.2.5.tar.gz
cd redfang-2.5
make
All’interno di Redfang è già stata inclusa una piccola lista di ID, nel caso non fosse presente il nostro device potremo identificarne il produttore semplicemente greppando i primi tre byte del relativo MAC address dal file oui.txt dopo averlo prelevato da http://standards.ieee. org/regauth/oui/oui.txt:
bzcat oui.txt.bz2 | grep 00-18-8D
00-18-8D (hex) Nokia Danmark A/S
A questo punto, se vogliamo effettuare uno scan per un determinato produttore (Nokia in questo caso), non dobbiamo far altro che avviare Redfang in questo modo:
sudo ./fang -r 00188D000000-00188DFFFFFF
L’opzione -r specifica il range di MAC address su cui fare lo scan. I tempi di attesa sono comunque lunghi, ma il risultato è garantito, se è presente un dispositivo in zona. mettiamoci al riparo Un dispositivo nascosto non è invulnerabile agli attacchi, semplicemente non risponde alle richieste di discovery, ma se viene fatta una richiesta esplicita allora anche questo svela la sua presenza. Questo comportamento è necessario perché se così non fosse, non sarebbe possibile effettuare il pairing tra dispositivi attivi in modalità invisibile. Mettersi al riparo dagli attacchi al sistema Bluetooth non è semplicissimo vista la carenza di strumenti di protezione: il consiglio è quello di mantenere il dispositivo spento fin quando è possibile, utilizzare sempre firmware aggiornati e, se ciò non fosse fattibile ,consigliamo almeno di utilizzarlo in modalità invisibile. Infine, per evitare di essere attaccati da dispositivi sconosciuti tramite BlueJacking è sufficiente rifiutare le richieste di connessione delle quali non conosciamo la provenienza.
Cellulari vulnerabili
Alcuni modelli Nokia e Sony Ericsson
L’attacco più pericoloso è sicuramente il BlueSnarf assieme al BlueSnarf++. Per fortuna i modelli di cellulari che sono noti per essere vulnerabili non sono moltissimi, eccone una breve lista: Ericsson T68, Sony Ericsson R520m, T68i, T610/Z1010, Nokia 6310, 6310i, 7650, 8910 e 8910i. Se il vostro cellulare è tra questi, tenete sempre spento il Bluetooth quando non è strettamente necessario utilizzarlo, specie se vi trovate in locali affollati.
Pagina 1/2
Lascia un commento
Tag: bluetooth, cellulare, Toothing, BlueSnarf, Redfang, pairing
Condividi