| Vulnerabilità primarie dei telefonini, nel protocollo bluetooth dei telefonini sono stati riscontrati due gravi problemi:
1) Dati confidenziali possono essere sottratti da un qualsiasi malintenzionato, senza che il poprietario del telefonino bluetooth-attivo se ne possa accorgere. Questi dati vanno dall'intera rubrica, al calendario con tutti gli appuntamenti fino al codice IMEI del proprio telefonino (il codice tanto ricercato per le clonazioni illegali).
2) E' possibile guadagnare l'accesso “trusted” al dispositivo cellulare e accedere all'intera memoria del telefonino, prelevando foto, files e qualsiasi cosa fino a poter fare un intera copia di backup di tutto il sistema della vittima.
Ora sta a te decidere se tenere il tuo telefonino con il bluetooth attivo oppure decidere di spegnerlo. Nel seguito del documento tenterò di spiegare superficialmente il funzionamento di un dispositivo bluetooth e dei suoi possibili hack.
Background: il nome bluetooth come ormai tutti saprete deriva da un re vichingo danese famoso per la sua abilità nel far comunicare le persone. Come il famoso 802.11x il bluetooth è una specifica wireless che in questi anni ha mandato in pensione cavetterie varie. Fu Ericsson nel 1994 che ebbe per primo l'idea di una soluzione wireless per eliminare i cavi dal telefonino all' auricolare oppure nel computer per sincronizzare agenda e rubrica. Nel settembre 1998 si formò un alleanza chiamata Bluetooth Special Interest Group (SIG) e i membri fondatori furono: Nokia, IBM, Intel e Toshiba . Lo scopo di questa nuova tecnologia wireless era quello di creare uno standard aperto e universale; inoltre era necessario che supportasse sia la trasmissione dati che quella vocale, doveva essere a basso costo accessibile a tutti e di piccole dimensioni. Fu così che nell'estate del 1999 il SIG rilasciò la versione 1.0.
L'anno seguente al progetto si unirono al SIG altre quattro compagnie 3COM, Lucent Technologies, Microsoft e Motorola, fino a raggiungere oggi una communità di oltre 2000 compagnie membre del progetto.Come funziona: il bluetooth utilizza un segnale radio a basso consumo energetico, si posiziona sulla banda a 2,45Ghz (generalmente svincolata in tutti gli stati da licenze varie) e per evitare le interferenze con gli altri apparecchi è stato introdotto il FHSS (Frequency Hopping Spread Spectrum) il quale divide la banda spettrale in tanti canali e raggiunge un cambio di frequenza molto veloce, in un secondo cambia 1.600 volte, su 79 frequenze a intervalli di un 1mhz (parte da 2.402GHz e finisce a 2.480GHz).
Dato che opera alla stessa frequenza dello standard 802.11b e g , alcuni esperti sostengono che questo possa far sorgere alcuni problemi se due apparecchi fossero nella stessa area: io vi garantisco che non è così, sto scrivendo questo documento dal mio laptop 803lmi, utilizzando il wifi 802.11b di intel e il bluetooth integrato simultaneamente senza alcun tipo di problema o perdita di pacchetti. Vi sono tre tipi diversi di apparecchi Bluetooth e si differenziano tra di loro in base alla potenza di trasmissione:
1) Potenza di classe 1: dispositivi a lungo raggio circa 100 metri di copertura, una potenza di 100mW e un uscita massima di 20dBm
2) Potenza di classe 2: dispositivi a raggio normale circa 10 metri di copertura, sono i chip all'interno dei telefonini, hanno una potenza di 2,5 mW e escono a 4dBm.
3) Potenza di classe 3: hanno un raggio mediocre di circa 10 cm, la loro potenza è di 1mW e 0dBm.
Una rete Bluetooth si è soliti chiamarla Piconet. Una piconet è costituita da due o più periferiche che condividono un canale di comunicazione, composte da un dispositivo che funge da master e uno o più dispositivi chiamati slave. La frequenza di hopping è per tutti uguali in una piconet e viene data dal master. In una piconet è possibile avere un massimo di sette slave attivi, anche se lo standard bluetooth è in grado di disattivare dispositivi in eccesso se non necessari.
E' possibile tuttavia collegare assieme diverse piconet, e realizzare una rete molto più grande quella che il bluetooth chiama Scatternet. Un dispositivo Bluetooth possiede quattro tipi di indirizzi differenti: BD_ADDR, (Bluetooth Device Address) formato da un indirizzo unico di 48bit. AM_ADDR, (Active Member Address), formato da 3bit valido soltanto finchè il slave è attivo sul canale. PM_ADDR, (Parked Member Address) destinato ai dispositivi slave in “park mode” ovvero dispositivi che pur rimangono sincronizzati con la piconet, ma non partecipano al traffico di dati. AR_ADDR, (Access Request Address), altro indirizzo destinato ai dispositivi parked, utilizzato per mandare una richiesta di accesso, non è necessariamente univoco.
Un dispositivo bluetooth opera maggiormente in due soli diversi stati: Standby e Connection, lo stato di standby è anche lo stato di minor consumo di energia, non vi alcuna interazione con altri dispositivi bluetooth e inoltre gira al clock suo nativo. Nella stato di Connection vi è uno scambio di dati tra un master e uno slave, e la frequenza di clock nonchè la chiave di accesso vengono definite dal master.
Vi sono anche sette stati minori chiamati rispettivamente: page, page scan, inquiry, inquiry scan, master response, slave response e inquiry response. Quando il device non conosce alcuna informazione sul bluetooth remoto esegue rispettivamente lo stato di inquiry, che permette di fare uno scan e localizzare dispositivi raggiungibili dell'area circostante ottenendo informazioni quali indirizzo bluetooth e clock del dispositivo remoto. Subito dopo entra in funzione lo stato di inquiry response per ritrasmettere al dispositivo scoperto informazioni utili sul proprio conto quali BD_ADDR etc. Normalmente dopo lo stato di inquiry una volta ottenuto l'indirizzo del dispositivo remoto segue lo stato di paging il quale permette di effettuare a tutti gli effetti un tentativo per stabilire una connessione attiva: l'unità che stabilisce la connessione diviene così automaticamente il master.
Il dispositivo essendo progettato per equipaggiare apparecchiature portatili e non penalizzare sulla loro durata di batteria, può assumere quattro diversi stati per gestire il consumo elettrico: Active Mode, partecipa attivamente in piconet su un canale. Sniff Mode, il dispositivo per risparmiare energia ascolta nella piconet ma a una minor frequenza, costringendo il master a ridurre il numero dei canali da utilizzare durante la trasmissione. Hold Mode, ulteriore stato per risparmiare l'energia, è possibile utilizzare la modalità hold per fermare temporaneamente il trasferimento dei dati su in modo da riservare capacità per inquiry, page,scan o passare a lavorare in altra piconet. L'unità in modalità hold può anche entrare in uno stato a basso consumo di potenza pur conservando il proprio AM_ADDR e quando la richiesta perviene la trasmissione di dati viene ripresa immediatamente. Park Mode: modalità di massimo risparmio energetico dove il dispositivo rimane solo sincronizzato con la piconet, cede il suo AM_ADDR e gli vengono assegnati due nuovi indirizzi un park address (PM_ADDR) e un access request adress (AR_ADDR) il dispositivo occasionalmente ascolta il traffico del master che lo re-sincronizza (con l'utilizzo di speciali beacon channel) e sempre attraverso questi canali ascoltari i vari messaggi in broadcast.
Una volta stabilito il link ovvero il collegamento tra il dispositivo master e quello slave, ci sono due tipi diversi di servizi che possono essere utilizzati: Servizi di tipo Asincrono : vengono riferiti da Bluetooth con il termine ACL (Asynchronous Connection-Less). Appena viene creata una connessione il link acl entra in azione , il master può possedere un qualsiasi numero di link ACL , però può esistere solo un link ACL tra la connessione di due dispositivi. La scelta di quale slave deve ricevere o trasmettere è fatta dal master slot per slot con il passare del tempo. Uno slave può rispondere nello slot del master solo se il pacchetto è stato indirizzato realmente a lui e quindi decifrato. Tuttavia esiste anche la possibilità di inviare pacchetti in broadcast. Il Link ACL viene usato durante la trasmissione dati e sono in grado di utilizzare il multislot FEC e di default implementano il meccaniscmo ARQ.
Servizi di tipo Sincrono : vengono riferiti da Bluetooth con il termine SCO (Synchronous Connection-Oriented), questo collegamento è di tipo assimetrico tra master e slave, un master può inoltre realizzare fino a tre link SCO con 3 diversi slave in contemporanea e uno slave è in grado di realizzare fino a tre link SCO con lo stesso master oppure 2 link con master differenti. Anche se uno slave non è in grado di decifrare ilpacchetto potrà ritrasmettere una risposta al master nello slot ad esso destinato. Sono utilizzati per trasportare voce, e ogni link garantisce un troughput di 64 kbps bidirezionale. Non è implementato un meccanismo ARQ, quindi i pacchetti possono essere soggetti a errori.
Il bluetooth è in grado anche di gestire egregiamente il controllo degli errori durante la trasmissione suddividendo in tre categorie diverse la sensibilità della correzzione di eventuali errori: 1/3 rate FEC (Forward Error Correction) ogni singolo bit viene trasmesso tre volte per rindondanza. 2/3 rate FEC un generatore polimoniale è usato per codificare 10 bit a 15 bit di codice. Schema ARQ in grado di verificare automaticamente eventuali errori, e nel caso non ci fossero passare al prossimo pacchetto.
Tirando le somme, affinche avvenga una sincronizazzione bluetooth sono necessari tre informazioni :
1) Channel Hopping Sequence: di conseguenza il BD_ADDR del master da quale si ricava la frequenza di hopping.
2) Phase: dalla velocità di clock del master riusciamo a determinare la fase corretta di frequenza di hopping
3) Channel Access Code: il codice di accesso per il canale.
Attacchi verso i telefonini bluetooth: dopo esserci fati una vaga idea su come può funzionare un dispositivo bluetooth, (che caldamente vi consiglio di approfondire, cosa che per mancanza di tempo non ho potuto fare io stesso, magari in una prossima release), passiamo a descrivere gli attacchi contro i telefonini con il bluetooth attivato, invisibile a tutti e nascosto. Il bluetooth è caratterizzato da ben quattro livelli superiori del suo stack: 1) il livello link manager che si occupa della configurazione dei link sco o acl. 2) HCI (Host controlled interface) destinato a fornire un universale interfaccia di accesso al livello Baseband. 3) il livello chiamato L2CAP (Logical Link control and Adaption Layer) principalmente consente lo scambio di informazioni a livello di Quality of Service. 4) E per finire quello più interessante di tutti causa di molti bug sui telefoni il famoso RFCOMM, è un protocollo in grado di emulare le comuni porte seriali dei computer (RS232) molto utile perchè molte applicazioni esistenti sono già basate per essere utilizzate trammite seriale. In grado di reggere fino a un massimo di sessanta connessioni in contemporanea tra un master e uno slave.
E' basato sul sottosistema TS07.10 si tratta di un protocollo asimmetrico usato dai telefonini GSM per convogliare diversi flussi di dati in un unico cavetto seriale. Dotato di SDP (Service Discovery Protocol) che permette di scoprire i servizi attivi bluetooth disponibili sui dispositivi raggiungibili nell'area circostante. A questo punto sorge un grosso problema, questo protocollo RFCOMM è stato studiato appunto per evitare ai programmatori di telefonini di ricreare nuove applicazioni identiche, le quali al posto di funzionare con il seriale funzionassero con il bluetooth. Il problema maggiore è che alla realizzazione di queste applicazioni gli sviluppatori nokia e company pensarono di non implementare alcuna funzione di sicurezza inquanto per utilizzarli si presupponeva che il proprietario del telefonino lo attaccasse fisicamente a un cavo seriale collegato al computer e così sincronizzare il proprio telefono. Perciò quale garanzia di sicurezza se non che il proprietario fisicamente effettuasse questa operazione. Ora le cose sono un pò cambiate, attraverso l'aria un malintenzionato con un dispositivo bluetooth potrebbe collegarsi al proprio telefonino , e il telefonino vittima avvertendo un cavo seriale per mezzo del RFCOMM, non programmato a qualsiasi protezione, fornisce qualsiasi dato richiesto dal malintenzionato come se fosse il ver proprietario che gli attacca il cavo seriale.
Attacco di tipo SNARF: è il tipo di attacco che ho descritto nelle righe qua sopra, è possibile effettuarlo senza nemmeno che il proprietario del dispositivo se ne accorga, rubando informazioni private quali l'intera rubbrica telefonica con ogni dettaglio o immagine aggiuntiva associata ai propri contatti, il calendario con tutti gli appuntamenti personali, le varie busness card, le impostazioni del telefonino, change log, e il codice IMEI (International Mobile Equipment Identity) necessario per poter clonare un telefonino. Questo tipo di attacco è solo possibile se il dispositivo è settato visibile a tutti, oppure nascosto. Nel caso il bluetooth fosse nascosto questo rappresenterebbe un piccolo ostacolo per l'aggressore che si vede costretto a scannare l'intero rage di BD_ADDR tentandone uno per uno fino a trovare un dispositivo che risponda alla nostra richiesta inquiry.
Questo tipo scan a forza bruta è difficile da effettuare mentre si è in auto o si cammina in luoghi pubblici, ma mettiamo il caso se ci trovassimo in una sala di aspetto, oppure ancora meglio su un treno, dove ognuno rimane seduto al suo sedile per ore, un malintenzionato armato di dispositivo bluetooth potrebbe tentare tutto il range degli indirizzi bluetooth, applicando qualche drastico taglio, ad esempio eliminando i numeri iniziali dell'indirizzo che corrispondono soltanto al manufactore, otteniamo un range di circa 10.000 indirizzi, con una chiave bluetooth ci impieghiamo circa un ora a controllare tutto il range, ma mettiamo il caso di avere 1, 2 ,3 chiavi bluetooth, ad esempio il mio notebook è dotato di 4 porte usb, più il chip bluetooth integrato , siamo già a 5 possibili chiavi bluetooth in che scannano in parallelo tutto il range contemporaneamente, ma perchè no? Nello zainetto possiamo avere un hub usb da 10 chiavette, che scannano anche loro tutto il range di indirizzi, ecco ora quello che era possibile soltanto in un ora di duro lavoro, con 6 chiavette possiamo farlo in nemmeno 10 minuti e così via sempre diminuendo. Stanno anche spuntando i primi tool in grado di facilitare tali operazione di scan, ad esempio uno dei più famosi è Bluesniff ( http://bluesniff.shmoo.com/ ) che come promettono i creatori lo vedremo presto integrato nel noto scanner di reti wifi Airsnort, oppure altro tool molto usato è Btscanner arrivato da poco alla versione 1.0
( http://www.pentest.co.uk/ ) .
Ad aggravare il tutto è la possibilità di sfruttare delle backdoor presenti sui telefonini nokia, sony-ericsson e la maggior parte dei telefonini dotati di capacità Bluetooth. Infatti è possibile sfruttare un bug per ottenere un accesso “paired”. Tuttavia anche se questo bug non fosse presente nel telefono in questione sarebbe sufficente inviare una richiesta di accesso paired, sul display della vittima apparirebbe un messaggio del tipo “Vuoi connetterti ad Hacker?” uhm ovvio che l'hacker non si farà chiamare hacker, ma mettiamo il caso che si imposta il nome “niente”, sul display della vittima apparirebbe “Vuoi connetterti a niente?” SI / NO ? Magari la prima volta pigia NO, magari anche la seconda, ma quando glielo si invia una decina di volte premerà SI per far cessare questi assurdi messaggi. E il malintenzionato ha un accesso paired e con questo tipo di accesso può fare il bello e il cattivo tempo sul proprio dispositivo, infatti è in grado di effettuare costose chiamate, connettersi al proprio ISP di fiducia e navigare su internet per tutto il viaggio in treno utilizzando il tuo telefonino, se al posto del numero del suo ISP di fiducia inserisce il proprio numero del suo telefonino, potrebbe farsi fare uno squillo e ottenere il tuo numero di telefonino. Vi assicuro che se vi capita qualche bella ragazza magari seduta vicino a te in treno e le telefonate senza mai averla vista prima colpo lo fate =). E' possibile inoltre inviare messaggi sms , mms, fare copie backup totali del sistema, e probabilmente ascoltare anche le chiamate vocali che la ragazza fa al proprio moroso (la possibilità di ascoltare chiamate vocali non sono ancora riuscito a provarla e nemmeno trovare qualcuno che sia in grado di farlo.)
Un attacco che solo in italia è ancora mistero fitto, in america ma soprattutto in inghilterra già agli inizi del 2004 varie testate giornalistiche hanno riportato il problema. L'undici settembre su news.com appariva un articolo che avvisava che i seguenti modelli Sony Ericsson T610 and T68i e i modelli Ericsson T39, R520 e T68 erano vulnerabili a un attacco di tipo SNARF. La Sony-Ericcson come risposta a questo gravissimo problema ha suggerito solamente i prorpri utenti di impostare i loro dispositivi bluetooth come nascosti.. assolutamente inutile come abbiamo visto prima. Pochi giorni prima appariva un analogo articolo su diverse testate , ma questa volta si trattava di Nokia i seguenti modelli 6310, 6310i, 8910 e 8910i apparivano anche loro del tutto vulnerabili a questo tipo di attacco. Nello stesso articolo si legge come il 6310i è anche soggetto da un ulteriore bug che permetterebbe attraverso un attacco SNARF di mandarlo in crash continuo. Nokia stessa ha avvisato che se un malintenzionato avrebbe accesso fisico su un 7650 sarebbe possibile poi attraverso un attacco SNARF avere ulteriori grossi privilegi. Perquanto riguarda i recenti modelli Nokia e S.E. alla scrittura di questo documento non ho trovato nessuno che li abbia testati, ma con grossa probabilità anche loro sono soggetti a questo tipo di problema.
Concludo riportando una mania che sta dilagando per le città inglesi, si chiama Bluejacking e a mio avviso è una boiata immensa, ne parlano giornali e radio e sta contaggiando orde di ragazzini e in qualche caso anche adulti armati, del proprio cellulare bluetooth entrano in luoghi pubblici molto affolati, quali la metropolitana oppure centri commerciali, inviano anonimi messaggi a chiunque con il bluetooth acceso. Basta infatti digitare il messaggio da inviare come se fosse un nuovo contatto da aggiungere tra i numeri della rubrica e inviarlo come si invia un di un biglietto da visita digitale (scambio di contatti). Strano che in italia eden dei telefonini cellulari, ancora questa mania è esplosa. In inghilterra c'e' perfino un sito che raccoglie racconti e avventure di questi bluejacking, ( http://www.bluejackq.com/ ) dal numero di visite giornaliere incredibile. L'ignaro utente che vede apparire sul proprio telefonino un messaggio del tipo “Ciao , ti ho bucato il telefonino ora non sei più al sicuro” , potrebbe anche preocuparsi.
Magari ora qualcuno che spregiudicatamente andava in giro inutilmente con il bluetooth acceso, leggendo questo documento cambia idea , ah ricordo a tutti gli intenzionati per l'acquisto di una yaris blue, le vulnerabilità di cui abbiamo fin'ora parlato valgono anche sull'automobile. (ps: tanto sembra un uovo quell'auto non è una grossa perdita, in più è buggata) , ora c'e' da chiedersi soltanto, arriveranno i tempi dove gente munita di portatile aspetterà ai semafori l'arrivo di auto del genere per poterle bucare? Boh =) |