Issuu on Google+

UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze MM.FF.NN.

Corso di Laurea in Informatica

La tecnologia Bluetooth e le sue vulnerabilità

Corsi di: Reti di calcolatori e Progettazione Sistemi Distribuiti

A.A. 2007/08

Docente: Prof. Gianni Fenu Studenti: Alessio Maccioni Gabriele Lampis Stefania Cinus Tutor: Dott. Gary Steri

39155 (Ref.) 39897 41383


TIPOLOGIA DELLA TESI La tipologia della tesi proposta è di tipo compilativa.

DESCRIZIONE SINTETICA DEL PROGETTO Il desiderio di capire quali opportunità vengano offerte dalla tecnologia B. ci porta a scoprire, con l’opportuno approfondimento, quella che è stata la sua evoluzione dalla nascita ai giorni nostri, illustrando necessariamente quella che è la sua architettura strutturale. Questo cammino non può escludere l’analisi delle vulnerabilità tecnologia, soprattutto nel contesto che il largo utilizzo quotidiano oramai impone. Per approfondire quelli che erano i nostri obbiettivi, soprattutto nello sviluppo della parte che illustra i metodi adottati dagli aggressori per trafugare le informazioni e i dati personali, ci siamo avvalsi delle esperienze pubblicate su Internet perché consci di poter capire con chiarezza quelli che sono gli “svantaggi” che la tecnologia contiene.

2


INDICE

™ Generalità delle tecnologie Wireless

4

™ Bluetooth

4

™ Presentazione tecnologia

4

™ Trasmissione ƒ Servizi orientati alla connessione e senza connessione ƒ Duplex ƒ Sequenza di riconoscimento comandi

6 7 9 9

™ Collegamenti

11

™ Architettura ¾ Protocolli ƒ Protocolli di base ƒ Protocolli di sostituzione cavo ƒ Protocolli di trasmissione ¾ Profili ƒ Profili generali ƒ Profili della porta seriale ƒ Profili di telefonia ƒ Profili di rete ƒ Profili di scambio oggetti

12 12 12 14 14 16 16 17 17 18 18

™ Sicurezza ƒ Scenari applicativi e sicurezza ƒ Livelli di sicurezza per dispositivi e servizi ¾ Chiavi di sicurezza ¾ Attacchi alla sicurezza ƒ Attacchi all’autenticazione ƒ Attacchi alla cifratura ƒ Attacchi alla comunicazione ƒ Attacchi al canale

19 19 19 20 22 22 23 23 24

™ Vulnerabilità in Bluetooth ¾ Convalida impropria ¾ Esposizione impropria ¾ Casualità impropria ¾ Deallocazione impropria

25 25 26 27 27

™ Tecniche e software di attacco ¾ Bluetooth malware ƒ OSX/Inqtana.A ƒ I worm in bluetooth ƒ I worm bluetooth futuri

27 31 31 32 33

™ Il progetto BlueBag

34

™ Curiosità

36

™ Consigli e precauzioni

37

™ Bibliografia

37

3


™ GENERALITA’ DELLE TECNOLOGIE WIRELESS Uno dei vantaggi più evidenti di un mondo “senza fili” è rappresentato dalla telefonia mobile e in particolare dalle tecnologie GSM, UMTS, GPRS ma a costi non nulli. Da alcuni anni a questa parte si sono fatte largo nel panorama delle comunicazioni le tecnologie di connessione wireless personali con caratteristiche e funzionalità diverse da quelle della telefonia mobile. Le reti che hanno questo scopo prendono il nome di WPAN: Wireless Personal Area Network. Le principali caratteristiche delle reti WPAN sono il costo esiguo, data rate basso e raggio di azione limitato.

™ BLUETOOTH Il nome di questa tecnologia deriva da Harald Blàtand “Bluetooth”, Re della Danimarca agli inizi del X° secolo. Mentre i popoli nordici erano in guerra, egli riuscì a unificare la Danimarca e parte della Norvegia. Harald fu ucciso nel 986 a.C. durante una battaglia dal figlio. Così, per rendergli onore, la compagnia svedese di telefonia mobile Ericsson decise di intitolargli questa nuova tecnologia wireless, che nasce con l'obiettivo di semplificare l'interconnessione e lo scambio dati fra dispositivi mobili (notebook, palmari, cellulari, PDA ma anche player MP3 portatili e addirittura elettrodomestici B. compatibili), e quindi incentivarne l'utilizzo. Il logo che contraddistingue la tecnologia è ispirato a simboli runici riguardanti appunto la leggenda di Harald Bluetooth. Nel 1994 la Ericsson Mobile Communications lanciò una campagna di ricerca per studiare interfacce radio di basso costo e consumo, destinate a collegare i telefonini con il resto del mondo digitale. Poi, all'inizio del 1998, lo studio di fattibilità si allargò coinvolgendo un consorzio di aziende che ora vede, al fianco di Ericsson, alleati come Nokia, IBM, Toshiba e Intel, tutte unite dall'obiettivo di sviluppare uno standard per l'interconnessione via onde radio. Per garantire lo sviluppo e la libera circolazione di questa tecnologia in una vasta gamma di dispositivi, questi colossi hanno costituito uno speciale gruppo di interesse, il Bluetooth Special Interest Group. Il consorzio SIG ha anche creato diversi gruppi di lavoro incaricati di sviluppare la tecnologia in alcune aree chiave come la domotica (robotica in ambito domestico, interconness6ione fra elettrodomestici). Il gruppo ha ben presto acquisito nuovi partner aziendali di prestigio come Motorola, 3COM/Palm, Compaq, Axis Communication, Dell, Lucent Technologies e Qualcomm e oggi raggruppa la bellezza di oltre 2000 aziende. Il sito ufficiale dedicato al consorzio e alla sua tecnologia è http://www.bluetooth.com, dove tra l'altro si trovano informazioni tecniche, curiosità e aggiornamenti su B. e dintorni. Sviluppata inizialmente quindi come soluzione radio per consentire il collegamento fra laptop, cellulari e altri dispositivi portatili a casa e in ufficio, le sue potenzialità hanno in realtà orizzonti ben maggiori: il B. sta trovando applicazioni in tutti gli ambiti in cui è necessario trovare un'alternativa a basso costo (e a corto raggio d'azione) alle connessioni via cavo.

™ PRESENTAZIONE TECNOLOGIA Il Bluetooth (IEEE 802.15) come detto, è una tecnologia che permette la realizzazione di comunicazioni wireless (sia per dati che per voce) a corto raggio (10-100 metri), con un consumo basso di energia ad una velocità massima di 1 Mbps (nominale) tra qualsiasi tipo di dispositivo elettronico. Questa comunicazione avviene senza l’intervento manuale esplicito dell’utente; indipendentemente dal dispositivo abilitato B. individuato da un altro dispositivo dello stesso tipo, i 2 dispositivi si sincronizzano automaticamente, dando luogo ad un tipo di rete wireless istantanea. La tecnologia B. è specificatamente progettata per realizzare la comunicazione senza fili per apparecchi di piccole dimensioni. Questa tecnologia utilizza segnali di radiofrequenza (RF), per stabilire trasmissioni di voce e dati di tipo punto a punto e punto a molti punti, nel raggio di 10 metri. La tecnologia che supporta B. è definita in una specifica di 1500 pagine; tutti i dispositivi che incorporano la tecnologia devono essere conformi ai dettagli descritti nella specifica.

4


Gli elementi base di un sistema B. sono la RU (radio unit) e la BU (base unit).

La prima generazione di prodotti era rivolta principalmente al “traveling business people”. I criteri guida per il design dell’interfaccia radio dovevano però già da subito soddisfare certe esigenze applicative: il sistema doveva operare globalmente ossia in qualsiasi Paese, le connessioni dovevano sostenere simultaneamente voce e dati per applicazioni multimediali, il radio transceiver doveva essere piccolo e con bassi consumi di potenza. La prima generazione nasce per sostituire i vecchi standard senza fili (RF, IrDA). Le specifiche tecniche (dal core spec. v1.2 del 05/11/2003) erano: • Hardware-based radio system + software stack • 2.4 GHz (2400 – 2483.5 Mhz) ISM (Industrial Scientific and Medical radio band) • Modulazione GFSK (Gaussian Frequency Shift keying) • Frequency Hopping Spread Spectrum (1600 “salti” al secondo su 79 canali) • Bassa potenza (1 – 100 mW) • Range ridotto (10 – 100 m) • Data Rate 1 Mbps Il Bluetooth Special Interest Group (SIG) ha creato una nuova versione del B. che offre trasferimenti a velocità più alte utilizzando meno energia. Bluetooth EDR (Enhanced Data Rate) è significativamente più veloce del Bluetooth 1.2, offre trasferimenti dati fino a 3 Mbps. Le principali innovazioni tecniche (dal core spec. v2.0 del 04/11/2004) sono: • Piena compatibilità con le versioni precedenti • Modulazione 4/8 DPSK (in pratica 3 bit per simbolo) • Consumo inferiore dei dispositivi • Diminuzione del tasso di errore e conseguente maggiore affidabilità • Aumento del Data Rate a 2 e 3 Mbps Questa nuova versione utilizza lo stesso metodo per collegare i dispositivi e trasferire i pacchetti, ma presenta il vantaggio di poter immagazzinare più dati in ogni pacchetto. Questo incremento di velocità non significa che il B. richiede più energia, in effetti è il contrario. La prossima generazione di dispositivi B. dovrebbe funzionare per un tempo doppio rispetto a quelli attuali. Affinché 2 dispositivi possano comunicare tra loro, entrambi i dispositivi devono contenere una radio B.. Questa radio è di dimensioni estremamente ridotte (essa è incorporata in un chip, che contiene a sua volta un Link Controller, che stabilisce e gestisce le singole connessioni) e consuma una quantità di energia minima. In relazione alla potenza, i dispositivi B. vengono distinti in classi:

5


™ TRASMISSIONE La tecnologia B. per la trasmissione del segnale (sia per dati che per voce) utilizza le onde radio. Un’onda radio è un impulso di energia elettromagnetica ed è generata quando un trasmettitore oscilla ad una specifica frequenza. Quanto è più rapida l’oscillazione, tanto più elevata è la frequenza. Per amplificare e trasmettere il segnale radio a grandi distanze, viene utilizzata un’antenna e per ricevere un segnale radio, è necessario un ricevitore radio. Il ricevitore viene sintonizzato su una frequenza specifica per ricevere i segnali che oscillano a tale frequenza; se il ricevitore non viene sintonizzato, le onde radio passano oltre. Le trasmissioni RF sono diffuse su un vasto intervallo di frequenze che sono misurate in cicli al secondo (Hz). A differenza delle trasmissioni ad infrarossi, che si servono di onde luminose e richiedono la sistemazione dei dispositivi connessi lungo una linea visiva senza ostacoli, le onde radio non detengono necessità di questo tipo e possono attraversare gli oggetti solidi. Questo significa che un dispositivo radio B. può trasmettere segnali RF dall’interno di una ventiquattrore, o attraverso le pareti di un ufficio. La tabella seguente riporta i range di frequenze che B. utilizza nei vari paesi.

Le comunicazioni B. sia in Europa che negli USA si servono di una banda RF senza licenza nel campo di azione che si estende da 2,4 a 2,48 GHz.

Questa banda di frequenza ISM (Industrial Scientific and Medical) può essere utilizzata da chiunque, per qualsiasi finalità. Si tratta di un aspetto positivo perché può essere usata a costo zero e di un aspetto negativo perché lo spazio all’interno della banda è limitato ed esistono diversi altri tipi di dispositivi che si servono anch’essi di questa banda (telefoni cordless, baby monitor, telecomandi per aperture cancelli, ecc..). Questo aspetto può dar luogo a delle interferenze reciproche tra i vari dispositivi pena il rallentamento della trasmissione dei dati o l’impossibilità di utilizzo dei dispositivi stessi. L’interferenza può essere evitata utilizzando uno schema adattativo che ricerchi una parte dello spettro inutilizzata oppure può essere soppressa con una tecnica chiamata spread spectrum che protegge anche dal fading. Il B. si serve di una tecnica chiamata HOPPING di frequenza a largo spettro FHSS (Frequency Hopping Spread Spectrum), che offre il vantaggio di un’implementazione radio migliore dal punto di vista dei costi e del consumo di potenza. Il sistema divide la banda di frequenza in più hop channels. Durante una connessione il radio transceiver salta da un canale ad un altro in modo pseudo-casuale.

6


La larghezza di banda istantanea (del singolo hop) è in tal modo piccola, ma l’allargamento dello spettro è ottenuto sull’intera banda di frequenza; si ottengono così dei transceiver narrow band a basso costo e con massima immunità all’interferenza da rumore. Il risultato è che le trasmissioni B. non rimangono su una singola frequenza per un tempo sufficiente per essere colpite da interferenze. Nelle trasmissioni il segnale radio passa rapidamente tra 79 frequenze comprese tra 2,4 GHz e 2,48 GHz compiendo 1600 hps (salti di frequenza al secondo), ad intervalli di 1 MHz.

La sequenza dei salti è determinata dall’orologio di sistema di un’unità master di una rete che sincronizza i timer di tutte le unità slave ad essa connesse. Per assegnare i canali B. in modo imparziale, come detto, si utilizza uno schema FH/TDD (Frequency Hop/Time-Division Duplex) nel quale la frequenza varia con 1600 cambi al secondo e un tempo di rotazione pari a 625 µs.

ƒ

Servizi orientati alla connessione e senza connessione

I servizi fra i vari strati dello stack protocollare, che vedremo in seguito, possono avvenire in due modi differenti: •

Servizio orientato alla connessione in cui è necessario stabilire prima di tutto una connessione, utilizzarla e quindi rilasciarla. L’aspetto principale di una connessione è che funziona come un tubo che mette in diretta comunicazione il trasmettitore con il ricevitore ed è attiva per tutto il periodo di trasmissione. Generalmente questo tipo di servizio viene utilizzato per traffico voce, in quanto le comunicazioni devono avvenire in tempo reale anche se con qualche perdita. Servizio senza connessione in cui ogni messaggio trasporta, unitamente ai dati, anche l’indirizzo del destinatario. Questo tipo di servizio, utilizzato essenzialmente per il trasporto di dati presenta il problema della possibile perdita di dati, oppure a causa del ritardo della rete, gli stessi possono giungere a destinazione con un ordine differente da quello di trasmissione.

7


I servizi senza connessione utilizzano tecnologia definita a pacchetti. Con questa trasmissione, i dati sono suddivisi in piccoli blocchi o pacchetti prima di essere inviati. Ogni pacchetto può essere inviato in diversi percorsi a diverse frequenze; al termine della ricezione di tutti i pacchetti di un messaggio, questi vengono ricompilati nell’ordine originale. La trasmissione a pacchetti è un metodo efficace per trasmettere dati binari perché risolve sia il problema legato alle perdite dei pacchetti trasmessi, sia perché risolve i problemi legati al ritardo variabile e non prevedibile dovuto alla rete. Ogni pacchetto è costituito da tre parti fondamentali: •

• •

Access Code (72 bit): è utilizzato per distinguere le trasmissione nelle diverse piconet e come sincronismo. Ci sono tre tipi di Access Code: Channel Access Code (CAC) che identifica univocamente una piconet, Device Access Code (DAC) usato per il paging (richiesta e risposta di connessione), Inquiry Access Code (IAC) Header (54bit): contiene importanti informazioni di controllo per la comprensione del pacchetto quali: l’indirizzo dello slave e error check, tipo di pacchetto, bit per il controllo di flusso Payload (0-2745 bit): può contenere campi “voice”, “data” o entrambi

In ogni slot, un pacchetto può essere scambiato tra l’unità master e una delle unità slave. Ogni pacchetto ha una lunghezza in bit fissata e comunque sempre con una sequenza di 72 bit di access code che caratterizza l’identità dell’unità master e quindi del canale. Ogni unità slave, prima di ricevere il payload in ogni pacchetto confronta l’access code col proprio codice di piconet. Se i 2 non coincidono essa ignora il contenuto di pacchetto, altrimenti lo accetta. Oltre a questa proprietà, il codice di accesso è anche usato per la sincronizzazione e la compensazione di offset in frequenza. Dopo l’access code c’è il packet header. Esso contiene importanti informazioni di controllo, e andando per ordine si suddivide in: •

3-bit per l’indirizzo di ogni slave in stato attivo

4-bit per il tipo di pacchetto

1-bit per il controllo di flusso

1-bit per ARQ (Automatic Retrasmission Query)

1-bit per l’ordine dei pacchetti

8-bit per HEC (Header-Error-Check), meccanismo di controllo d’errore

Il successo o meno della consegna di un pacchetto è mostrato nell’header di quello di ritorno e precisamente nel bit di ARQ che mostra al trasmittente se il payload precedentemente inviato è stato ricevuto correttamente o no. Quindi dopo aver analizzato tale bit l’unità di trasmissione stabilisce se ritrasmettere o meno l’ultimo pacchetto dati. Siccome trascorre un tempo di soli 220 µs tra la ricezione dell’ultimo bit del payload e la trasmissione del successivo, l’algoritmo di CRC sul contenuto deve essere molto rapido, quasi in tempo reale. Infine c’è il payload che ha una lunghezza variabile da 0 a 2745 bit e si verifica che un solo pacchetto è sempre mandato su un singolo canale di salto.

8


ƒ

Duplex

Nei servizi orientati alla connessione, la comunicazione tra dispositivi avviene in due modalità differenti. Si parla di Full-Duplex in caso di trasmissione dei dati in 2 direzioni, simultaneamente. Half-Duplex quando, invece, i dati possono viaggiare in una direzione alla volta. Un telefono è un esempio di dispositivo full-duplex perché entrambi gli interlocutori possono parlare contemporaneamente; al contrario, un walkie-talkie è un dispositivo halfduplex perché uno dei 2 interlocutori deve smettere di parlare prima che l’altro possa iniziare. Nella specifica B. le trasmissioni full-duplex si servono di uno schema Time-Division Duplex (TDD). In questo schema ogni frequenza è suddivisa in slot temporali di 625ms ciascuno. TDD assegna slot temporali successivi per trasmissione e ricezione; le unità master trasmettono tramite slot numerati con numeri pari, mentre le unità slave rispondono tramite slot numerati con numeri dispari. Con questo movimento alternato in una singola frequenza, 2 trasmissioni differenti possono condividere la stessa frequenza e consentire la realizzazione di comunicazioni full-duplex.

ƒ

Sequenza di riconoscimento comandi

L’unità per il controllo della connessione opera in 2 stati fondamentali: Standby e Connection. Tutti i dispositivi B. non connessi, sono avviati automaticamente in modalità Standby, a basso consumo energetico. In tale stato è attivo il solo clock presente a bordo del modulo e non vi è interazione alcuna con i moduli presenti nell’area coperta dalla piconet. Nello stato di Connesso il modulo master e gli slave possono scambiare pacchetti. Quando un’unità riconosce un altro dispositivo in tale area, viene avviata una procedura di connessione. A questo punto, il primo dispositivo assume il ruolo di unità master, in quella che sta per diventare una sorta di rete miniaturizzata. Tra lo -

stato di Standby e quello di Connection vi sono altri 7 sottostati: PAGE PAGE SCAN INQUIRY INQUIRY SCAN MASTER RESPONSE SLAVE RESPONSE INQUIRY RESPONSE

La connessione tra 2 moduli B. avviene nel seguente modo: se non si conosce nulla del modulo remoto a cui connettersi, sono eseguite sia la procedura di inquiry che di page, mentre se si conosce a priori sia l’indirizzo sia i servizi che il modulo remoto è capace di offrire, allora è eseguita la sola procedura di inquiry. Questa abilita il modulo che è attualmente master a rilevare i moduli presenti nel range della piconet, identificare il loro indirizzo esclusivo B. e determinare le informazioni di clock di cui essi necessitano per gestire il frequency hopping. Completata la procedura di inquiry e noto l’univoco indirizzo B. che ogni modulo possiede, si può allora creare una connessione utilizzando la procedura di paging.

9


I risultati di una scansione sono: • • • •

A (Active): la connessione è attiva e può avvenire la trasmissione e la ricezione dati; tutte le unità slave sono sincronizzate con il master H (Hold): può svolgere operazioni di inquiry scan e page scan con basso consumo energetico S (Sniff): riduzione del carico di lavoro in modalità di ascolto della piconet con tasso di attesa programmabile P (Park): modalità di attesa rimanendo sincronizzato alla piconet

10


™ COLLEGAMENTI Quando 2 dispositivi B. stabiliscono una connessione, creano un tipo di rete personale definita PICONET. Ogni piconet può contenere fino ad otto dispositivi B. dove uno solo di essi funge da master, mentre gli altri sette fungono da slave. Ogni unità nella piconet utilizza l’identità del master e il clock per agganciarsi al canale di hopping.

Poiché diverse piconet hanno identità differenti, basate su diversi canali di passaggi di frequenza, più piconet possono condividere lo stesso spazio fisico, senza interferire reciprocamente. Un gruppo di piconet che condividono risorse e unità è detto SCATTERNET. Di conseguenza se vogliamo collegare più di otto dispositivi bisogna unire più piconet in maniera da formare una scatternet. La stessa area può essere coperta da molteplici piconet e poiché ogni piconet ha un differente master, la sequenza di hop per la portante che la contraddistingue sarà differente da tutte le altre; in aggiunta i pacchetti trasportati sui canali sono preceduti da diversi codici di accesso. Un’unità può agire come slave in una scatternet ma solo in una piconet come master, infatti 2 piconet con lo stesso master sarebbero sincronizzate sulla stessa sequenza di hop e dunque indistinguibili. All’aumentare delle piconet connesse la probabilità di collisione aumenta con la conseguente degradazione delle performance del sistema. In una singola scatternet è possibile includere fino a 10 piconet, oltre questo numero la rete si satura, poiché B. si serve solo in totale di 79 frequenze.

11


™ ARCHITETTURA

In un dispositivo B. la parte non-Bluetooth viene definita host mentre tutti i componenti sono combinati nel modulo. Le comunicazioni tra host e modulo sono gestite dal software Link Manager e dall’Host Controller del modulo. L’Host Controller è la parte di modulo che gestisce tutte le comunicazioni ed interazioni tra il modulo ed il dispositivo host. Esso interpreta i dati ricevuti dall’host e li dirige verso il componente o i componenti del modulo B.. Inoltre, interpreta i dati provenienti dal modulo e li invia verso la funzione adeguata nel dispositivo host. Il software Link Manager si occupa di impostazioni, autenticazione, configurazione dei collegamenti e di altre attività necessarie per stabilire un collegamento tra i dispostivi B.. In pratica, LM identifica la presenza di altri dispositivi che eseguono lo stesso software LM e comunica con questi tramite il Bluetooth Link Manager Protocol (LMP). Per eseguire queste operazioni, il LM deve impiegare i servizi forniti dall’hardware Link Controller che facilita l’invio e ricezione di dati, l’impostazione delle connessioni ed altre attività correlate. I messaggi inviati tra queste 2 unità prendono la forma di quelle che vengono definite Protocol Data Units (PDU). Esse rappresentano un linguaggio comune: qualsiasi dispositivo B. comprende e risponde immediatamente ad una PDU inviata da un altro dispositivo. La radio è un dispositivo che trasmette sulla banda RF 2,4 GHz utilizzando le tecnologie hopping di frequenza a largo spettro ed impiegando la tecnica FHSS (Frequency Hopping Spread Spectrum). La radio può funzionare in un raggio di 10 metri. Essa interfaccia direttamente con il Link Controller che a sua volta interfaccia con l’Host Controller che collega il modulo al dispositivo host.

¾ Protocolli

ƒ

Protocolli di base

I protocolli di base sono impiegati nel fornire funzioni di gestione per trasmissione e collegamenti, in qualsiasi applicazione. Baseband Consente la connessione RF fisica tra 2 o più unità B. che formano una piconet. Questo protocollo sincronizza anche le frequenze di trasmissione per il processo di hopping e per gli orologi dei singoli dispositivi di una piconet. Il protocollo Baseband fornisce 2 diversi tipi di collegamenti fisici: con un collegamento Syncronous Connection-Oriented (SCO), i pacchetti possono contenere una combinazione di audio e dati, o solo audio. La velocità di trasmissione voce sincrona bidirezionale sfrutta una codifica voce Continuous Variable Slope Delta Modulation (CVSD), permettendo un bit rate di 64 Kbps. Con un collegamento Asyncronous Connection-less (ACL), i pacchetti sono riservati esclusivamente alla trasmissione di dati in modalità asincrona. La velocità di trasmissione dati nella modalità asimmetrica sarà 723 Kbps 57,6 Kbps nell'altra direzione; nella modalità simmetrica invece, sarà pari a circa 434 Kbps

12


Link Manager Protocol (LMP) Immediatamente sopra il livello del protocollo Baseband, responsabile dell’inizializzazione tra dispositivi, si occupa dell’impostazione e controllo del collegamento tra 2 o più dispositivi B. Questo implica numerose questioni di sicurezza, come autenticazione e codifica, nonché controllo e negoziazioni di dimensioni dei pacchetti Baseband.

Logical Link Control and Adoption Protocol (L2CAP) L2CAP funziona in parallelo con LMP per trasferire I dati di livello superiore relative al livello Baseband. Ha capacità di multiplexing di diversi canali, cioè L2CAP riesce a distinguere a quale protocollo superiore si riferiscono i pacchetti. L2CAP è definito solo per connessioni ACL e non supporta connessioni SCO. La grande differenza tra L2CAP e LMP è che il primo fornisce servizi al livello superiore, cosa che il secondo non è in grado di fare. Service Discovery Protocol (SDP) Il protocollo SDP permette alle applicazioni di capire che servizi sono implementati in un dispositivo B. remoto. SDP fornisce informazioni sui servizi (e sui loro attributi) ma non l’accesso a questi. Questi servizi consentono a 2 dispositivi differenti di riconoscere e stabilire connessioni reciproche e forniscono le basi per ogni singolo profilo B.. SDP fornisce ad un dispositivo la possibilità di effettuare una query sulle informazioni, servizi e caratteristiche dell’altro dispositivo. Inoltre, consente di stabilire una connessione tra tali servizi.

13


ƒ

Protocolli di sostituzione cavo

RFCOMM E’ un protocollo che emula una connessione seriale RS-232 tra 2 dispositivi. In altri termini, si tratta del protocollo di sostituzione cavo. Consente di emulare i segnali RS-232 di dati e controllo, nella Baseband di B.; inoltre, fornisce abilità di trasmissione per servizi di livello superiore, che in caso contrario utilizzerebbero una connessione seriale come meccanismo di trasmissione. Protocolli di controllo telefonico Questi protocolli consentono ai dispositivi di gestire voce e dati, provenienti da dispositivi abilitati a B.. Affinché un dispositivo B. possa funzionare come telefono o modem, è necessario implementare uno dei 2 protocolli di controllo telefonico. Telephony Control Specification-Binary (TCS-BIN) Definisce il segnale di controllo di chiamata necessario per stabilire chiamate di voce e dati tra dispositivi. Esso definisce anche le procedure di gestione della mobilità, impiegate per gestire gruppi di dispositivi B.. AT Commando (ATC) Questi comandi sono utilizzati per controllare tutte le funzione che possono essere eseguite da un telefono o un modem dati, e sono comuni tra molti dispositivi e produttori. Questi comandi sono impiegati quando un profilo richiede che un dispositivo B. funga da telefono o modem, nel collegamento ad una linea terra o ad un sistema di telefonia cellulare.

ƒ

Protocolli di trasmissione

Oltre ai protocolli precedenti, nella serie di protocolli B. sono stati adottati numerosi protocolli stabiliti in altri settori. Questo permette alle applicazioni più vecchie di funzionare anche con la nuova tecnologia B. ed ai dispositivi di collegarsi a reti di comunicazione globali. Point to Point Protocol (PPP) Il protocollo Point to Point definisce le modalità di trasmissione dei dati IP in collegamenti seriali di tipo punto a punto. Questo protocollo viene generalmente impiegato in connessioni Internet di tipo dial-up, o in accessi ad un router di rete in una linea dedicata. Nel mondo B. il PPP viene eseguito con il protocollo RFCOMM, per stabilire connessioni di tipo p2p tra dispositivi. Il PPP si trova nei profili Accesso Lan, Dial-up Networking e Fax.

14


Transport Control Protocol (TCP) Il Transport Control Protocol comprende un servizio orientato alla connessione ed un servizio di trasferimento affidabile dei dati. Prevede una fase preventiva chiamata handshaking tra client e server permettendo loro di prepararsi per l’arrivo massiccio dei pacchetti. Dopo la fase precedente si dice che esiste una connessione TCP fra i socket dei 2 processi. La connessione è di tipo full-duplex perché i 2 processi possono inviare messaggi l’uno all’altro contemporaneamente. Il TCP garantisce il recapito di tutti i dati spediti senza errori e nell’ordine appropriato. C’è anche un altro meccanismo di controllo che è detto di congestione che garantisce il corretto funzionamento di Internet piuttosto che per un diretto vantaggio dei processi di comunicazione strozzando un processo quando la rete è congestionata. User Datagram Protocol (UDP) E’ senza connessione, quindi non c’è handshake prima che i 2 processi inizino a comunicare. Fornisce un servizio di trasferimento dati non affidabile, cioè quando un processo spedisce un messaggio attraverso un socket UDP, esso non garantisce che il messaggio raggiungerà il socket ricevente. Inoltre i messaggi che arrivano al socket ricevente possono non arrivare in ordine. Non comprende un controllo di congestione, così un processo che spedisce può pompare dati nel socket dell’UDP a qualsiasi velocità. Internet Protocol (IP) Il primo componente del protocollo della rete, che definisce l’indirizzamento dello strato di rete. L’IP identifica univocamente la nostra connessione in quel preciso momento, per renderci visibili e rintracciabili. Ogni IP è unico ed identifica un hostname, cioè il computer che sta usando la connessione per navigare, e viceversa ad ogni hostname in rete corrisponde un IP, anche se può cambiare ogni volta. L’IP può essere statico, se ci viene assegnato una volta per tutte quando apriamo il nostro account, oppure dinamico, cioè cambia ogni volta che ci colleghiamo alla rete. L’IP è un numero di 32 bit, rappresentato nella forma xxx.xxx.xxx.xxx, dove le xxx indicano la codifica dei quattro byte (gruppi di 1 byte, ovvero 8 bit) in numeri decimali, compresi tra 0 e 255. Si usa anche la forma xxx.xxx.xxx.xxx:yyyy per intendere un indirizzo IP su una certa porta (yyyy). OBEX IrOBEX è un protocollo di sessione sviluppato da Infrared Data Association (IrDA) per lo scambio di oggetti in modo semplice e spontaneo. Il protocollo OBEX fornisce le funzionalità base di http sia in modalità più leggera, che in modo indipendente dal meccanismo e dalle API di trasporto. Inoltre definisce completamente il protocollo di comunicazione tra dispositivi, e definisce anche il modello per la rappresentazione di oggetti ed operazioni. In definitiva i protocolli si possono raggruppare in 2 categorie: • •

Trasport protocols: sono i protocolli specifici B. essenziali per la comunicazione tra 2 o più dispositivi Middleware protocols: comprendono protocolli sviluppati per il B. e non; abilitano determinati servizi in base all’applicazione che si vuole usare per trasmissione dati.

15


¾ Profili Un profilo B. definisce le procedure ed i protocolli necessari per implementare una specifica applicazione o modello di utilizzo. Oltre ai protocolli di identificazione, ogni profilo definisce procedure e messaggi che devono essere usati per implementare una specifica applicazione. E’ stata realizzata una serie di specifiche per implementare le applicazioni.

ƒ

Profili generali

Chiamati generali perché sono essenziali per tutte le comunicazioni B.: GAP (Generic Access Profile) Definisce le modalità e le procedure comuni a tutti gli altri profili. In Pratica, GAP è la base su cui sono costruiti tutti gli altri profili. In generale, GAP è associato a tre tipi di voci: • • •

dizionario: raccolta di termini e delle relative definizioni, in modo che i produttori utilizzino la stessa terminologia connettività: operazioni che permettono ad un dispositivo di connettersi e di autenticarsi con altri dispositivi personalizzazione: elementi che identificano e personalizzano singoli dispositivi B.

Il GAP definisce il tipo di dispositivo ed i tipi di servizi supportati da tale dispositivo. Inoltre permette ai dispositivi di avere nomi semplici per gli utenti con una lunghezza massima di 248 byte, benché alcuni dispositivi, per limitazione di display, potrebbero non essere in grado di visualizzare il nome completo. Stabilisce inoltre che l’utente del dispositivo potrebbe immettere un numero di identificazione personale (PIN) da usare nella procedura di autenticazione. Questo profilo sfrutta: Obex, Rfcomm, Sdp, L2cap, Lmp, Baseband.

16


SDAP (Service Discovery Application Profile) Metodo per localizzare i servizi registrati in altri dispositivi, raccogliere informazioni su di essi e farne uso con l’utilizzo di SDP. Anche SDAP è progettato per essere incorporato virtualmente in qualsiasi dispositivo B.. Il dispositivo che inizializza il processo di scoperta del servizio è etichettato come dispositivo locale, invece quello che risponde è remoto. Tale processo assegna al locale il ruolo del client in un processo client/server, mentre il dispositivo remoto è incaricato di servire le informazioni su se stesso al dispositivo di inizializzazione. Questo profilo sfrutta: Sdp, L2cap, Lmp, Baseband.

ƒ

Profili della porta seriale

Essi definiscono le specifiche per le applicazioni che devono trasferire dati da un dispositivo all’altro. SPP (Serial Port Profile) Serve soprattutto per implementare il modello di utilizzo del desktop cordless. Definisce i ruoli di parità tra i dispositivi per la comunicazione seriale. In questo tipo di comunicazione la relazione master/slave non esiste e tutti i dispositivi sono uguali quando sono previste delle comunicazioni seriali. Si emula la porta seriale RS-232. Questo profilo sfrutta: Rfcomm, Sdp, L2cap, Lmp, Baseband. GOEP (General Object Exchange Profile) Definisce il modo in cui i dispositivi implementano i modelli di utilizzo che integrano una qualche forma di trasferimento dati, come per esempio i modelli di trasferimento file, dal sincronizzatore automatico ed altri modelli correlati. Questo profilo funziona su un modello client/server, piuttosto che su p2p. Il dispositivo che inizializza la connessione è definito come client, mentre l’altro dispositivo è identificato come server. Questo profilo sfrutta: Obex, Rfcomm, Sdp, L2cap, Lmp, Baseband.

ƒ

Profili di telefonia

Si basano sulle generali funzioni della telefonia. Integrano la trasmissione di segnali vocali ed è probabile che siano usati ampiamente nei dispositivi B. prodotti dalle società di telecomunicazioni. CTP (Cordless Telephony Profile) Per implementare il modello di utilizzo del telefono 3in1. Questo profilo consente di usare un ricevitore cordless per chiamare, tramite una stazione base vocale, la rete di telefonia fissa e di connettersi direttamente ad una rete di telefonia mobile. Questo profilo permette di implementare il servizio CLIP che consente a sua volta agli utenti di identificare il numero di telefono della parte chiamante prima di rispondere al telefono. INTP (Intercom Profile) Scritto per implementare il modello di utilizzo del telefono 3in1. Spiega come un ricevitore telefonico cordless può connettersi direttamente ad altri ricevitori come walkie-talkie. Questo profilo sfrutta: Sdp, L2cap, Lmp, Baseband. HSP (Headset Profile) Scritto per implementare il modello di utilizzo del kit di auricolari e consente la connessione wireless di un kit di auricolari ad un ricevitore telefonico, ad una stazione base o ad un pc. Questo profilo sfrutta: Rfcomm, Sdp, L2cap, Lmp, Baseband.

17


ƒ

Profili di rete

LAP (Lan Access Profile) Scritto per implementare il modello di utilizzo accesso LAN. In questo profilo, più terminali di dati utilizzano un punto di accesso LAN come connessione wireless ad una rete locale. Una volta connessi, i terminali di dati funzionano come se fossero connessi alla LAN tramite una tradizionale connessione di accesso remoto e possono accedere a tutti i servizi forniti dalla rete. Questo profilo sfrutta: Tcp, Udp, Ip, Ppp, L2cap, Rfcomm, Lmp, Baseband. DUNP (Dial-Up Networking Profile) Scritto per implementare la componente di accesso remoto del modello di utilizzo del bridge Internet. In questo profilo, un telefono cellulare o un modem cordless agiscono come modem per un pc, fornendo capacità di accesso remoto senza una concreta connessione dedicata. Questo profilo sfrutta: Ppp, Rfcomm, Sdp, L2cap, Lmp, Baseband.

ƒ

Profili di scambio oggetti

I tre profili si riferiscono alla trasmissione e ricezione di oggetti di dati, tipicamente sotto forma di file di computer. Tutti e 3 i profili integrano il Serial Port Profile, dato che i file dei computer sono tradizionalmente trasmessi tramite porta seriale del pc. FTP (File Trasfer Protocol) Serve per implementare diversi modelli di utilizzo del trasferimento file. Definisce come trasferire oggetti da un dispositivo all’altro. Qui non vi è il p2p ma la relazione client/server. Questo profilo sfrutta: Obex, Rfcomm, Sdp, L2cap, Lmp, Baseband. SP (Synchronization Profile) Scritto per implementare il modello di utilizzo del sincronizzatore automatico. Questo profilo fornisce una sincronizzazione da dispositivo a dispositivo del tipo di informazioni che si trovano tipicamente nel software PIM, compresi nominativi, indirizzi, numeri di telefono, ecc.. Il processo di sincronizzazione richiede che le informazioni siano trasferite ed elaborate da vari tipi di dispositivi che utilizzano un protocollo ed un formato di dati comune. Questo profilo sfrutta: Obex, Rfcomm, Sdp, L2cap, Lmp, Baseband. OPP (Object Push Profile) Scritto per implementare uno specifico sottoinsieme del modello di utilizzo trasferimento file, la semplice operazione di scambio di informazioni digitali tra 2 dispositivi. Questo profilo si riferisce alla capacità di inviare dati da un dispositivo ad un altro e di ricevere dati in senso contrario (scambio biglietti da visita). Questo profilo sfrutta: Obex, Rfcomm, Sdp, L2cap, Lmp, Baseband.

18


™ SICUREZZA Un sistema di telecomunicazione deve essere dotato di meccanismi di protezione dei dati, a qualunque livello esso operi; tale esigenza è resa ancora più stringente, nel caso di B., dalla sua natura di interfaccia wireless: un sistema di comunicazione senza fili è per definizione più sensibile agli attacchi rispetto a un impianto cablato a causa delle propagazioni di onde radio che, a vantaggio della comodità di utilizzo, devono essere in qualche misura isotrope, cioè rivolte a direzioni non precise.

ƒ

Scenari applicativi e sicurezza

La connessione B. può essere criptata a 128 bit per evitare che altri dispositivi intercettino i dati trasmessi. Le regole di sicurezza vengono di solito decise dal produttore del dispositivo o a livello di singola applicazione. Di solito esistono livelli standard a seconda dei profili ad esempio per utilizzare un auricolare sarà richiesta autenticazione e crittografia mentre per l’OPP (Object Push Profile) utilizzato per il trasferimento di oggetti, non sarà richiesto nessun livello di sicurezza. I cinque elementi che garantiscono la sicurezza sono: • • • • •

Bluetooth Device Address (BT_ADDR) 48 bit (es. 00:0A:D9:62:12:36) Chiave di cifratura (8-128 bit) Chiave di collegamento (Link Key, 128 bit) Numeri pseudo-casuali (128 bit) Vari algoritmi per la generazione delle chiavi (E0, E21, E22, ecc..)

Nella core specification sono definite tre modalità (security mode): • • •

Mode Mode Mode -

ƒ •

1 – NO SECURITY (nessuna sicurezza) 2 – Application/Service based (L2CAP) Security Procedure dopo un L2CAP_ConnectionReq Policy flessibili per le diverse applicazioni 3 – Link (Device) level security Security Procedure prima del link-setup Comunicazione solo tra dispositivi già associati

Livelli di sicurezza per dispositivi e servizi

Dispositivi – possono essere collegati come: o Trusted: permette di accedere a tutti i servizi. E’ necessario effettuare un pairing (autenticazione) cioè uno scambio di un codice condiviso in base al quale verrà autorizzata la connessione. Il dispositivo sarà associato e la procedura non dovrà essere ripetuta per le successive connessioni. I dispositivi trusted si possono collegare anche quando sono in modalità “invisibile”. o Untrusted: non esiste una relazione fissa, i dispositivi non possono collegarsi automaticamente. Si possono collegare solo i dispositivi “visibili”. Servizi – è possibile accedere ai servizi di: o Autenticazione e Cifratura: possono accedere solo i trusted devices specificamente autorizzati per il servizio o Autenticazione: possono accedere tutti i trusted o Open to All: tutti i devices possono accedere

19


¾ Chiavi di sicurezza La tecnologia B., come detto finora, permette comunicazioni di tipo peer-to-peer a dispositivi che risiedono in un’area limitata. Allo scopo di fornire protezione e confidenzialità ai dati, il sistema prevede misure di sicurezza sia a livello applicazione che a livello link. A livello link, la sicurezza è garantita per mezzo di quattro entità: • • •

un indirizzo pubblico, unico per ciascun dispositivo 2 chiavi segrete un numero casuale, differente per ogni nuova transazione

Nella figura sono indicate le loro lunghezze:

L’indirizzo B. di un dispositivo (BD_ADDR) è un indirizzo IEEE a 48 bit, unico per tutti i dispositivi. Le chiavi segrete sono derivate durante il processo di inizializzazione. Normalmente, l’encryption key tra 2 dispositivi è ottenuta dalla chiave di autenticazione, che coincide con la chiave associata al loro link, detta link key, con lunghezza 128 bit. In casi particolari, quando il dispositivo master della piconet vuole trasmettere contemporaneamente a più slave le stesse informazioni, allora l'encryption key è calcolata da una link key temporanea, detta master key, generata dal master e con la quale sono sostituite temporaneamente le link key già fissate tra il master e ogni slave. Per l’algoritmo di autenticazione, la lunghezza della chiave è di 128 bit, ma per quello di cifratura può variare da un minimo di un ottetto ad un massimo di 16 ottetti. La taglia della chiave di cifratura è configurabile per 2 motivi: in primo luogo, disponendo di un algoritmo la cui chiave di cifratura è variabile in lunghezza, è possibile superare le limitazioni imposte da alcuni stati sull’esportazione degli algoritmi di cifratura. La seconda ragione è legata alla possibilità di aggiornare facilmente nel tempo la lunghezza della chiave senza dover ridisegnare l’algoritmo di cifratura. La chiave di cifratura è totalmente differente dalla chiave di autenticazione. Ogni qualvolta la cifratura è attivata, una nuova chiave è generata. Perciò il tempo di vita della chiave di cifratura non necessariamente coincide con il tempo di vita della chiave di autenticazione. Ogni dispositivo B. possiede un generatore pseudo-casuale per la generazione dei numeri casuali necessari alle funzioni legate alla sicurezza. Idealmente un generatore di numeri casuali dovrebbe essere basato su un processo fisico intrinsecamente casuale, ma per ragioni pratiche è utilizzato un generatore pseudo-casuale. Tutti i numeri casuali utilizzati in B. hanno lunghezza 128 bit. Per quanto esposto, è necessario che i requisiti siano: • •

Non-repeating: è difficile che durante il tempo di vita di una autentication key, uno stesso numero venga generato più di una volta Randomly generated: è difficile predire il prossimo valore generato con una probabilità superiore a 1/2L se la chiave è di L bit

20


La sicurezza è garantita dall'esecuzione di vari passi che possiamo dividere in 3 fasi supponendo di avere 2 soli dispositivi che vogliono comunicare: • • •

Prima fase – i 2 dispositivi generano ciascuno una unit key. Questa chiave è generata da un dispositivo al momento della sua prima accensione ed è poi memorizzata in una propria memoria non volatile per essere utilizzata anche in futuro. Seconda fase – inizia con il primo handshake tra i 2 dispositivi. In essa avviene la generazione dell'initialization key, l'autenticazione dei dispositivi sulla base di questa chiave e lo scambio della link key da usare nelle iterazioni successive. Terza fase – è caratterizzata da ulteriori handshake che permettono ai 2 dispositivi di trasmettere successivamente solo informazioni cifrate. Le operazioni di questa fase sono l'autenticazione sulla base della chiave KAB e la generazione della encryption key usata per cifrare tutte le comunicazioni tra i 2 dispositivi.

Le link key utilizzate in B. sono numeri casuali a 128 bit. Queste chiavi sono condivise da 2 o più dispositivi e sono alla base della sicurezza delle loro transazioni. Sono utilizzate sia in fase di autenticazione che per la generazione dell’encryption key. E’ possibile dividere le link key in 2 classi: link key semipermanenti e link key temporanee. Una link key semipermanente, una volta generata, è memorizzata in una memoria non volatile e può essere utilizzata anche dopo che la corrente sessione è terminata, quindi anche in più fasi di autenticazione. Le link key temporanee, invece, hanno un tempo di vita che è limitato alla sessione in cui sono state generate. A seconda del tipo di applicazione, le link key possono essere: • • • •

unit key – KA combination key – KAB master key – Kmaster initialization key – Kinit

21


Una unit key – KA è generata da un dispositivo A quando è avviato per la prima volta. Una volta creata, è memorizzata in una memoria non volatile ed è modificata solo in casi eccezionali. Una combination key – KAB è ottenuta da informazioni prodotte da 2 unità, A e B. Questa chiave è generata per ogni coppia di dispositivi quando è necessaria maggiore sicurezza. L'uso di queste chiavi comporta un maggiore spreco di memoria in quanto ciascun dispositivo dovrà memorizzare una combination key per ogni sua connessione. Una initialization key – Kinit è usata come link key durante il processo di inizializzazione, quando non è stata ancora definita e scambiata una unit key o una combination key da usare come link key, oppure nel caso in cui una link key precedente è stata persa. Una tale chiave è necessaria quando 2 dispositivi entrano in contatto per la prima volta, in modo da garantire la protezione dei parametri fondamentali dell’inizializzazione. Una master key – Kmaster è usata quando il dispositivo master vuole trasmettere contemporaneamente a vari dispositivi. Una chiave di questo tipo sostituisce momentaneamente la link key della corrente sessione.

¾ Attacchi alla sicurezza ƒ

Attacchi all’autenticazione

Per mezzo dell'autenticazione, 2 dispositivi possono verificare che entrambi condividono una stessa link key. Se la link key è una initialization key, allora l'unica informazione segreta usata nella sua generazione è il PIN. Questo codice normalmente è un parola chiave di 4 numeri decimali. Quindi sono possibili solo 10.000 valori diversi e un attacco di forza bruta è realizzabile a tutti gli effetti. In seguito vedremo ad esempio che alcuni dispositivi come auricolari o kit vivavoce, hanno il codice PIN preimpostato, quindi conosciuto a priori. Diversi problemi possono sorgere se i dispositivi hanno una limitata capacità di memoria. Infatti, in una tale situazione, il dispositivo con limitata capacità usa la propria unit key come link key. In questo scenario, se un dispositivo A comunica prima con un dispositivo B e poi con un altro C, e in entrambi i casi è usata come link key la unit key di A, allora i tre dispositivi usano la stessa chiave e possono impersonare uno qualunque dei tre ed intercettare la comunicazione tra gli altri 2.

22


ƒ

Attacchi alla cifratura

Per riuscire a decifrare correttamente una comunicazione tra 2 dispositivi, un attaccante deve per prima cosa conoscere la chiave usata per la cifratura, la cui lunghezza può variare da 8 a 128 bit, in base al grado di sicurezza richiesto. In genere, la lunghezza minima della chiave è stabilita dallo strato applicazione allo scopo di evitare che l'uso di una chiave troppo corta possa pregiudicare la sicurezza delle informazioni trasmesse. Una volta che l'attaccante è entrato in possesso della chiave di cifratura non può automaticamente decifrare una trasmissione, deve infatti riuscire a sincronizzarsi con il clock del master. Dal momento che la sola informazione segreta su cui è calcolata la chiave di cifratura è la link key poichè i numeri casuali sono sempre trasmessi in chiaro sul canale, la conoscenza della link key e l'intercettazione di tutte le trasmissioni durante la fase di autenticazione sono sufficienti per decifrare le informazioni scambiate dai dispositivi. Un altro tipo di attacco sfrutta la debolezza introdotta da codici PIN troppi corti. In genere la lunghezza dei PIN utilizzati è di 4 numeri decimali. Da qui, se un attaccante inizia ad intercettare le comunicazioni dal primo handshake, potrebbe con un attacco di forza bruta sul PIN, riuscire a dedurre tutti i parametri utilizzati per la generazione della chiave di inizializzazione Kinit.

ƒ

Attacchi alla comunicazione

Un primo attacco che si può compiere alla comunicazione è legato alla possibilità di riuscire a impersonare un altro dispositivo. Il frame di un pacchetto B. può essere modificato in tre parti: • • •

i 3 bit del member address il bit di acknoledgement gli 8 bit dell'error check per l'header

Modificando questi 3 campi di un pacchetto un attaccante può inviare un pacchetto ad un altro dispositivo impersonandone un terzo. Altri comuni attacchi includono la possibilità di compiere intercettazioni e la modifica di bit. Con uno scanner, se la chiamata non è cifrata l'attaccante può ascoltare tutta la trasmissione tra 2 dispositivi. Con la modifica di bit invece un attaccante non entra in possesso di alcuna informazione trasmessa da un altro dispositivo, ma è grado di impedire ad esso qualunque trasmissione di informazione. Un altro possibile attacco in B. è un attacco di replay in cui un dispositivo attaccante registra una conversazione tra 2 dispositivi in un certo istante e la ritrasmette successivamente impersonando chi l'ha trasmessa.

23


Per esempio, se le informazioni trasmesse sono da un PDA chiamato A ad un router wireless chiamato B di una banca e riguardano una transazione bancaria, un attaccante potrebbe prendere una copia bit a bit dell'informazione inviata da A a B e rinviarla alla banca multiple volte portando quest'ultima a eseguire più volte la stessa operazione. Per un attacco di questo tipo, l'attaccante deve essere però in grado di riuscire a registrare le informazioni trasmesse da A su tutti e 79 i canali utilizzati in B.. In realtà un attacco di questo tipo è tutt'altro che semplice. Per prima cosa le apparecchiature che permettono di monitorare contemporaneamente 79 canali sono poco diffuse, inoltre anche se l'attaccante disponesse di una registrazione parallela di tutti i canali, gli resterebbe comunque il gravoso compito di stabilire in ogni slot su quale canale è avvenuta la trasmissione delle informazioni della transizione.

ƒ

Attacchi al canale

Sebbene un attacco ad uno schema di comunicazione basato su salti di frequenza sia estremamente difficile, in B. è possibile trovare a tale riguardo punti deboli. Le parti fondamentali di uno schema di comunicazione basato sui salti di frequenza sono: • • •

il clock la capacità di trasmissione di un dispositivo in ogni direzione il sistema di trasmissione radio

Ogni dispositivo B. possiede un clock a 28 bit che non è mai né spento né modificato. La frequenza del clock è di 3.200 tick per secondo, cioè un tick si verifica ogni 312 msec che corrisponde ad un clock rate di 3.2 KHz. Un attaccante usando un laser a bassa energia (LEL) o impulsi elettromagnetici (EMP) può disturbare il clock del dispositivo rendendo impossibile sia la trasmissione che la ricezione di informazioni. Entrambi gli attacchi sono estremamente rari e i rischi ad essi legati sono abbastanza limitati. I dispositivi che operano in reti wireless sono capaci di trasmettere informazioni in ogni direzione. Le potenzialità offerte da una propagazione in ogni direzione sono anche un punto di debolezza dei sistemi che le utilizzano. Infatti, se da un lato permettono ad un dispositivo di trasmettere in modo semplice informazioni ad altri dispositivi, dall'altro presentano lo svantaggio di estendere anche il campo d'azione di un attaccante. Come si sa le onde radio si propagano oltre le porte, le pareti, le finestre degli edifici e danno di conseguenza la possibilità ad un attaccante di intercettare trasmissioni, acquisire informazioni sulla rete rimanendo a debita distanza anche per molto tempo. Contromisure per questo tipo di attacco si basano sull'imporre limitazioni alla potenza di trasmissione dei dispositivi oppure a porre limiti fisici tra la rete e un potenziale attaccante. Interferenze agli schemi di gestione della potenza di trasmissione possono compromettere il funzionamento del modulo per la selezione della frequenza usata (Frequency Selection Module), con conseguente interessamento di tutte le funzioni della piconet. I dispositivi in stato connesso possono modificare la potenza di trasmissione nella piconet per un certo link e chiedere al dispositivo all'altro capo del collegamento di modificare la propria potenza di trasmissione in base alla qualità del link di comunicazione. Se un attaccante è in grado di danneggiare o disturbare il sistema di gestione della potenza di uno qualunque dei dispositivi, allora può porre la piconet in uno stato di caos. Senza la corretta potenza il FSM non può operare correttamente e il sistema di salto della frequenza è ostacolato o degradato nelle sue funzioni.

24


™ VULNERABILITA’ IN BLUETOOTH Per valutare il grado di sicurezza offerto dalle reti B. è possibile utilizzare a tale scopo la tecnica VERDICT (Validation Exposure Randomness Deallocation Improper Conditions Taxonomy) con la quale è possibile scoprire le vulnerabilità presenti in un sistema e quindi risolverle nella progettazione dei dispositivi. Questa tecnica valuta un sistema, analizzandone quattro caratteristiche fondamentali: • • • •

convalida esposizione casualità deallocazione

La convalida di un codice garantisce che nessuna operazione in un sistema possa portare ad un buffer overflow. A tale scopo vanno controllate tutte le condizioni critiche ed i particolari input che si possono ricevere. L'esposizione permette ad un sistema la rivelazione dei dispositivi presenti in una rete. Un'esposizione impropria può essere sfruttata da un attaccante per agire impropriamente in una rete da una opportuna distanza di sicurezza. La casualità è un’altra importante caratteristica per i computer e per i protocolli di sicurezza, in quanto numeri casuali sono spesso utilizzati nella generazione di chiavi e sono parte integrante di molti schemi di sicurezza. Per tale motivo, i numeri casuali dovrebbero essere sempre generati da semi sufficientemente casuali. La deallocazione è un aspetto importante della sicurezza. Un sistema deve essere sempre in grado di deallocare le risorse impegnate in precedenti utilizzi.

¾ Convalida impropria La maggior parte delle vulnerabilità presenti sia in reti tradizionali che wireless è causata dalla presenza di convalida impropria. Vediamo in dettaglio a tale riguardo le vulnerabilità presenti in B.: •

Convalida degli indirizzi dei dispositivi: un dispositivo B. è identificato univocamente da un indirizzo a 48 bit. Il suo formato è simile a quello degli indirizzi IEEE 802.3 ed a quelli usati nelle reti Ethernet. Se un utente è in grado di modificare l'indirizzo B. di un proprio dispositivo, allora è possibile avere in una piconet 2 dispositivi con uno stesso indirizzo e quindi un attacco simile all'IP spoofing Stati invalidi (Link Control): per il link control di un dispositivo B. sono previsti 9 stati dei quali 2 sono stati principali: standby e connection; 7 sono sottostati: page, page scan, inquiry, inquiry scan, master response, slave response, inquiry response. Per rappresentarli è sufficiente 1 bit per i due stati principali e 3 bit per gli altri sette. Chi progetta sistemi B. deve garantire che l'ottavo possibile stato, non associato ad alcun effettivo stato, non sia mai raggiunto e se è raggiunto per una qualche ragione, allora deve essere prevista anche una transizione in uno stato sicuro. Infatti, se ciò non accadesse, allora sarebbe possibile per un attaccante condurre il sistema in uno stato di instabilità sfruttandone i comportamenti errati

25


Stati invalidi (Modalità di cifratura): se un dispositivo slave ha ricevuto una master key, allora ci sono 3 possibili combinazioni per la cifratura. In questo caso tutte le unità usano una stessa link key, la master key stessa. E' possibile rappresentare i 3 stati con 2 bit anche se è possibile rappresentarne un quarto. Il quarto stato non dovrebbe mai essere raggiunto, perché in esso tutto il traffico broadcast è cifrato prima della trasmissione ma quello point-to-point è inviato sul link in chiaro.

Chiavi di cifratura: secondo la specifica B. il dispositivo master di una piconet non può usare differenti chiavi di cifratura per messaggi broadcast e unicast. Il master può indicare a vari dispositivi slave di usare una comune link key e quindi indirettamente di usare una comune chiave di cifratura. Questo può rendere possibile l'ascolto delle trasmissioni di tutti i dispositivi.

¾ Esposizione impropria Nel protocollo B. sono presenti 2 esposizioni improprie: la prima riguarda la non segretezza della link key, la seconda la possibilità per un dispositivo di passare dal ruolo di master a quello di slave di una piconet. • •

Non-segretezza della link key: attacchi all’autenticazione. Switching Master-Slave: è legata alla capacità di un dispositivo di compiere lo switching (MS switching) dal ruolo di master al ruolo di slave. Ci sono 3 situazioni in cui è necessaria una tale operazione: la prima si ha quando un'unità compie il paging sul dispositivo master di un'esistente piconet perché vuole entrare a fare parte di tale rete. Per definizione l'unità che esegue l'operazione di paging è il master di una particolare

26


piconet, composta dallo stesso dispositivo e dal master coinvolto. La seconda situazione si ha quando un dispositivo vuole creare una nuova piconet di cui esso è master e il corrente master sia suo slave. Questo caso comporta per il master di una piconet un doppio ruolo: master della sua piconet e slave di un'altra. La terza situazione riguarda la possibilità per un dispositivo slave di riuscire a prendere il controllo completo di un'esistente piconet. Una tale operazione comporta per tutti gli slave il passaggio alla nuova piconet, quindi notevole spreco di tempo nella sicronizzazione di tutti gli slave. La vulnerabilità introdotta dall'operazione di switching è legata al blocco della cifratura di qualunque trasmissione ogni qualvolta un MS switching è avviato. Ciò significa che se dei dispositivi stanno ancora trasmettendo al master della piconet mentre un dispositivo attaccante si presenta come un dispositivo che vuole prendere possesso della corrente piconet, questo sarà in grado di ascoltare tutto il traffico sulla rete per tutto il tempo richiesto dal master per trasferire le informazioni di sincronizzazione.

¾ Casualità impropria Come già detto, in B. l'unica richiesta per i numeri casuali è che essi siano non-repeating e randomly generated. A tale scopo i progettisti hardware dovrebbero garantire che i semi utilizzati nella generazione di numeri casuali siano sufficientemente casuali. Una vulnerabilità legata ai numeri casuali è dovuta al trasferimento in chiaro di numeri casuali usati nella generazione di chiavi e in procedure di autenticazione.

¾ Deallocazione impropria La deallocazione impropria di risorse utilizzate in precedenza può agevolare un attaccante in successivi attacchi. Consideriamo il caso dell'autenticazione dopo la cifratura. Il comando HCI Authentication Requested è usato per tentare di autenticare un dispositivo remoto associato con uno specificato Connection Handle. Un Connection Handle è un identificatore a 12 bit che è usato per indirizzare unicamente una connessione dati/voce da un dispositivo B. ad un altro. Un Connection Handle può essere immaginato come un identificatore che identifica un canale che connette 2 dispositivi B.. Purtroppo o il master o lo slave potrebbero non pubblicizzare tale comando con un Connection Handle corrispondente ad un link cifrato. Nel caso di fallimento nell'autenticazione, l'Host Controller o il Link Manager potrebbero non eliminare automaticamente il link con un'operazione di Disconnect. Da qui un attaccante potrebbe non autenticarsi dopo un attacco di spoofing su un link cifrato ed essere agevolato nell'attacco.

™ TECNICHE E SOFTWARE DI ATTACCO Premesso che il B. inteso come standard è sicuro, i problemi sono a livello applicativo e di implementazione. A seguire analizzeremo tre tipologie di attacchi: • • •

Attacchi contro il protocollo (gravità: media) – aggressione agli elementi deboli del protocollo: E22, Spoofing, BlueDump, DoS. Attacchi contro le funzionalità di discovery (gravità: medio-bassa) – identificazione dei dispositivi, abuso delle informazioni di discovery: Bluejacking, Discovery Mode Abuse, Blueprinting. Attacchi contro i servizi offerti dai dispositivi (gravità: alta) – abuso dei servizi, prelievo delle informazioni, controllo completo: BlueSnarf, HELOMoto, Bluebug, BlueBump, BlueSmack, CarWhisperer.

27


Attacco brute force del PIN (a E22) Abbiamo parlato prima della chiave di inizializzazione e dell’uso del codice PIN. Questo elemento è il “segreto condiviso” dell’algoritmo. Ci sono dispositivi che hanno un PIN preimpostato come auricolari, antenne GPS, kit vivavoce, e in genere questo PIN è di 4-5 caratteri numerici. Basta attuare un brute force e in poco tempo si ottiene il pairing con il device (spesso poi sono 0000, 1234, 1111, 9999 o si trovano su Internet a secondo del prodotto). Attacco 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 (rivisitazione del classico Ping of Death che affligge Windows 95 in ambiente B.). Si incrementa oltremisura la dimensione di un pacchetto echo request (L2CAP ping) che verrà poi spedito al device vittima. Alcuni device oltre ad un certa dimensione del pacchetto (Compaq IPAQ con pacchetti più grandi di 600 byte ad esempio), ricevono il dato ma generano degli errori che fanno bloccare completamente il sistema operativo. Attacco Bluejacking Per semplificare il pairing tra device, viene scambiato l'identificativo del device, una stringa lunga max 248 caratteri. Il bluejacking consiste nell'usare questa stringa per comunicare, senza voler realmente associare i device, tipo un device che si chiama “Piacere, sono quello con la maglietta blu e i capelli corti, mi chiamo Marco!”. Altra forma di bluejacking è quella di inviare una vCard con, al posto del nome del contatto, un messaggio. Moltissimi device accettano le vCard senza chiedere conferma, mostrano sul display nome e cognome del contatto ricevuto (in realtà il nostro messaggio) e chiedono di aggiungerlo alla rubrica. Molto in voga, sopratutto tra i ragazzi, per divertirsi un po' in posti affollati (metro, sale d'attesa o altro). Mettiamo che la stringa identificativa del mio device sia: “Promozione TIM: digita 1234 e, connettendoti alla rete, riceverai 5 euro di ricarica omaggio dopo il messaggio di conferma”. A questo punto provo ad associarmi ad un device, iniziando la procedura di pairing. Nel device vittima apparirà la richiesta di un pin per connettersi con “Promozione TIM: digita 1234 ecc ecc”. Se qualcuno cade nel tranello, digiterà 1234, lo ridigito anche io sul mio device, completando la procedura di pairing e ottenendo accesso trusted al device della vittima, potendo accedere senza ulteriori controlli a molti servizi. Tecnica di social engineering, come il phishing per i siti web: non sfrutta una reale vulnerabilità del protocollo. La popolarità di questo tipo di attacco ha dato luogo allo sviluppo di una serie di software appositi come Freejack, Meeting, BlueJack. Di seguito viene mostrato quest’ultimo:

28


Attacco Discovery mode abuse Il B. ha tre stadi: acceso, spento, invisibile. Quando un device è acceso risponde alle richieste di inquiry inviate in broadcast da altri device, comunicando la sua presenza. Quando invece è invisibile, non risponde, ma rimane comunque attivo. Ogni device è identificato dal BT_ADDR (48 bit suddivisi in 6 ottetti 00:A0:12:43:1F:52), dove i primi 3 sono fissi e dipendenti dal costruttore, gli altri 3 sono variabili a secondo del dispositivo: praticamente il MAC address del chip B.. Posso, interrogando in maniera diretta un BT_ADDR, vedere se c'è un device attivo che risponde alla richiesta. Posso fare lo scanning di un certo range di BT_ADDR per conoscere i device attivi in quel range. Con più dongle B. a disposizione, posso anche lavorare in parallelo, assegno ad ognuno un intervallo del range e controllare in meno tempo. Software utili: RedFang, BTScanner, Bluesniff. Di seguito viene mostrata una scansione attraverso linux:

E ora una scansione tramite il software RedFang:

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. Attacco Blueprinting Questo metodo è usato per avere informazioni tecniche sul dispositivo in maniera remota. La risposta ottenuta ad una richiesta SDP di inquiry per i servizi disponibili via RFCOMM si compone di 24 bit: 11 bit di Service Class, 5 bit di Major device class e 6 bit di Minor device class. I significati dei valori sono standard e si possono trovare su Internet all’indirizzo https://www.bluetooth.org/foundry/assignnumb/document/baseband. Ad esempio 0x140680: indica 'Rendering and Object Transfer' con una MajorClass 'Imaging' e MinorClass 'Printer'. Su http://www.betaversion.net/btdsd/ c'è un database con la lista di molti device, con i servizi a disposizione e le eventuali vulnerabilità riscontrate, con chiave BT_ADDR (univoco per ogni chip B.).

29


Attacco BlueSnarf In alcuni device, l'OBEX Push non è protetto da autenticazione. In alcuni device, informazioni specifiche vengono salvate in file di testo predefiniti, come ad esempio la rubrica (telecom/pb.vcf) o il calendario (telecom/calc.vcs). Quando si verificano entrambe le precedenti condizioni su uno stesso device, è possibile tentare con successo un attacco di tipo BlueSnarf e prelevare dati “molto” sensibili dal device vittima senza che questi se ne accorga minimamente. I cellulari vulnerabili sono: Nokia 6310, 6310i, 8910, 8910i; Ericsson R520m, T39m, T68, Sony Ericcson T68i, T610, Z1010. Attacco BlueSnarf++ Derivato dal BlueSnarf, questo attacco è ancora più aggressivo: ottiene infatti l'accesso in lettura/scrittura dell'intero file system del device. In alcuni device, invece di implementare un semplice OBEX Push daemon, è stato realizzato un vero OBEX ftp server a cui ci si può connettere con la stessa security dell'OBEX Push, ovvero nessuna! Tramite comandi come ls, get, put e rm si può fare il bello e il cattivo tempo nel filesystem device vittima. Attacco HELOMoto Alcuni Motorola (V-Series) hanno un'incorretta implementazione della gestione dei device trusted. L’attacco si sviluppa in tre fasi: • Si inizia con il device attaccante che tenta una connessione OBEX Push (ad esempio mandando una vCard) per la quale non viene richiesta nessuna autenticazione • Viene interrotto il trasferimento ma il device attaccante ora risulta tra i trusted device di quello vittima • Posso quindi connettermi ad un servizio headset (auricolare, in genere il servizio RFCOMM 7) senza richiesta di scambio di chiavi, e da li usare tutto il set di comandi AT del device Device vulnerabili: Motorola v80, v5xxx, v6xxx, E398. Attacco BlueBug Su alcuni device, per i soliti errori di implementazione dello stack B., quando viene fatta una richiesta dei servizi RFCOMM disponibili non viene mostrato il servizio AT che però è ugualmente accessibile, e sempre senza nessun pairing o altro controllo di sicurezza. Con la guida dei comandi AT del device sottomano (scaricata dal sito del produttore), a questo punto si ha pieno controllo (leggere-ricevere-spedire sms, leggere-modificare-cancellare elementi della rubrica, impostare deviazioni di chiamate, ottenere il numero della sim, ottenere l'IMEI, connettermi ad Internet sfruttando la connessione) del device vittima. Non sono pochi i cellulari vulnerabili: Nokia 6310, 6310i, 8910, 8910i, Sony Ericcson T68i, T610, Z1010. Attacco Blooover Il software in questione è chiamato BloooverII (http://trifinite.org/trifinite_stuff_bloooverii.html) e nella sua ultima release permette di provare molte tra 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 per rilevare tutti i dispositivi presenti (selezionando Find Devices) oppure impostare alcune opzioni (selezionando Settings) relative ai diversi attacchi.

30


Attacco Car Whisperer Quante macchine ci sono oggi Bluetooth-enabled? E' interessante sapere che spesso i PIN per fare il pairing sono fissi e dipendono dal produttore dell'auto. Come tutti i chip B., anche quelli di queste macchine hanno i primi 3 ottetti del BT_ADDR impostati sul codice del produttore. Con queste informazioni e avendo a disposizione una macchina “blu”, posso effettuare con successo un pairing e connettermi al servizio RFCOMM sul canale 1 e aprire una connessione di tipo SCO (per traffico voce) con un auricolare in mio possesso. A questo punto posso sentire/parlare nella macchina vittima.

¾ Bluetooth Malware Al di là delle singole vulnerabilità del protocollo e dei bug nelle implementazioni sviluppate dai produttori di dispositivi, esiste un altro pericolo per tutti gli apparecchi con interfacce B.: i malware. Con il termine malware, contrazione delle parole malicious e software, si identifica tutto il software creato appositamente per arrecare danno negli elaboratori su cui viene eseguito. Il codice maligno può quindi servire ad un aggressore per rubare informazioni riservate o per danneggiare completamente il sistema. Se per i tradizionali personal computer siamo abituati a convivere con il pericolo di infezione da parte di worm, virus, trojan horse, nel caso dei dispositivi portatili è una minaccia reale ancora poco considerata sebbene ritenuta dagli esperti la prossima sfida nel campo della sicurezza informatica. L'evoluzione degli strumenti portatili e la loro conseguente diffusione sono un primo importante fattore da considerare per stimare realmente il rischio di propagazione di questi software dannosi. Gli smartphone acquistabili oggi permettono l'invio e la ricezione di SMS, MMS, e-mail, la navigazione su Internet, l'ascolto di file MP3, la visione di filmati, la sincronizzazione con i computer fissi ed altre funzionalità avanzate che rendono questi strumenti i più a rischio di infezione. Ma i malware B. non attaccano solo i cellulari: il noto worm Inqtana.A ha ben dimostrato come la diffusione di codice virale e l'utilizzo di una nota vulnerabilità nella tecnologia B. su OS X 10.4 (Tiger) possano essere sfruttati per realizzare attacchi diffusi ben più gravi.

ƒ

OSX/Inqtana.A

Inqtana.A è un worm B. proof-of-concept realizzato in Java, che attacca sistemi Apple OS X 10.4 (Tiger) senza l'aggiornamento di sicurezza relativo alla vulnerabilità CAN-2005-1333. Per un errore di implementazione dello stack B. nei sistemi OS X vulnerabili risulta possibile effettuare un attacco di tipo directory traversal tramite una particolare richiesta al servizio Object Exchange (OBEX); in questo modo un aggressore può leggere file arbitrari sul dispositivo remoto.

31


Il worm Inqtana sfrutta questa vulnerabilità del sistema operativo per copiarsi all'interno di una particolare directory del file system, consentendo l'esecuzione automatica del worm stesso durante i successivi avvii del sistema. In dettaglio il worm copia tre file, in specifiche posizioni: w0rm-support.tgz che contiene la classe e le componenti che costituiscono il worm stesso, com.openbundle.plist e com.pwned.plist che rappresentano file di configurazione utili per l'avvio automatico del codice, allo startup del sistema operativo. Come per la totalità dei worm attuali, l'utente deve esplicitamente accettare la ricezione dei file. Una volta che il sistema viene riavviato, l'esecuzione del worm comporta la ricerca continuativa di dispositivi B. visibili e l'eventuale invio del codice dannoso. Kevin Finisterre, noto esperto di mobile security, ha dimostrato come una piccola modifica su Inqtana possa essere sfruttata per arrivare a compromettere addirittura un'intera rete interna aziendale. L'idea di Kevin è quella di utilizzare la propagazione e l'esecuzione di Inqtana per lanciare un exploit che permetta l'instaurazione di una connessione sul canale RFCOMM dando luogo ad un accesso completo al sistema (tty over rfcomm). Dall'esterno un aggressore potrebbe quindi tentare di infettare dei sistemi vulnerabili all'interno, magari grazie ad un'antenna direzionale, ed accedere all'infrastruttura aziendale tramite il singolo client compromesso.

ƒ

I worm in bluetooth

Come accennato, i worm B. attuali realizzano il trasferimento del codice virale tramite il semplice invio di file sul canale OBEX Push. Questo particolare servizio, disponibile in gran parte dei profili delle specifiche B., permette il trasferimento di file in maniera non autenticata. In un sistema Linux, opportunamente configurato con Bluez e con un'interfaccia B. compatibile, possiamo visualizzare il record relativo al servizio OBEX Push di un particolare dispositivo tramite il comando: ~ $ sdptool browse <bt address> ottenendo il seguente output: – Service Name: OBEX Object Push Service RecHandle: 0x1000b Service Class ID List: "OBEX Object Push" (0x1105) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 9 "OBEX" (0x0008) Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "OBEX Object Push" (0x1105) Version: 0x0100 – Anche per chi non conosce approfonditamente la tecnologia è facile comprendere il significato di servizi e canali della tecnologia B. in quanto, attraverso una diretta analogia, è possibile paragonare i servizi esposti dai dispositivi B. con quelli normalmente presenti nei server di rete ed associati ad una specifica porta TCP/IP; il particolare servizio OBEX Push può essere quindi associato a diversi canali, a seconda del particolare dispositivo analizzato.

32


Per chiarire le idee, questa funzionalità è quella che viene utilizzata nei dispositivi cellulari per lo scambio di immagini, filmati e biglietti da visita elettronici (vCard). Questo canale non autenticato è utile per il trasferimento di risorse quando non vogliamo effettuare il pairing tra 2 dispositivi; d'altra parte deve essere l'utente stesso ad accettare le connessioni ritenute sicure e a rifiutare quelle provenienti da soggetti sconosciuti. Sebbene può risultare difficile da credere, l'efficacia della propagazione tramite questa modalità di connessione è molto alta: i worm attuali utilizzano semplici tecniche di social engineering, sfruttando l'inconsapevolezza e la curiosità delle persone. B. worm molto semplici, come Cabir.A (2004, Symbian series 60), effettuano un'operazione di inquire alla ricerca di altri dispositivi B.; una volta trovata una potenziale vittima (un dispositivo quindi con B. acceso e visibile) effettuano ripetutamente la richiesta di invio del worm stesso verso quest'unico apparecchio. Worm più evoluti utilizzano delle modalità di propagazione più efficienti, effettuando l'invio verso tutti i dispositivi visibili presenti, come Cabir.H (2004, Symbian series 60), oppure utilizzando diversi canali di propagazione come Commwarrior.A (2005, Symbian series 60) disponibili dal particolare dispositivo (B. e MMS in questo caso specifico), o ancora arrivando ad infettare i file con estensione .SIS come Lasco.A (2005, Symbian series 60). Come detto, l’utente deve però accettare esplicitamente il trasferimento; nessun worm attualmente in-the-wild (BlueBug, HELOMoto, ecc..) sfrutta vulnerabilità dello stack protocollare B.. Per invogliare le potenziali vittime ad accettare codice malevolo si sfruttano semplicemente nomi particolari dei file e ripetuti tentativi di invio. In un classico scenario di propagazione, il cellulare infetto cercherà di inviare continuamente il worm obbligando i possessori dei dispositivi vittima ad un’azione di forza: spegnere l’interfaccia B., uscire dal range di trasmissione, oppure, come accade nella maggioranza delle volte, accettare di buon grado il file in maniera da poter usare il dispositivo senza continue segnalazioni sonore e/o visive che limitano l’usabilità dell’apparecchio. Nel caso di infezione è poi molto difficile accorgersi tempestivamente dell’avvenuta esecuzione del codice malevolo, in quanto gli unici effetti riscontrabili sono una diminuzione della durata della batteria dell’apparecchio e un consumo oneroso di risorse.

ƒ

I worm bluetooth futuri

Molti esperti concordano che le cose cambieranno e in peggio. Nel mondo del malware tradizionale stiamo assistendo ad un cambio del paradigma di attacco che ha portato i coder a concentrarsi su specifici target, con scopi spesso a fine di lucro; siamo passati quindi da infezioni massive che vanno ad inficiare sulla qualità dei servizi e delle connessioni a software che servono per rubare informazioni o creare botnet. Anche nel campo del malware per dispositivi portatili è altrettanto probabile che si inneschi un meccanismo evolutivo che porti alla diffusione di software malevolo esplicitamente sviluppato per creare attacchi mirati. Non parliamo quindi di semplice propagazione di worm ma di attacchi mirati verso determinati dispositivi vittima. Sfruttando i miglioramenti tecnologici dei nuovi dispositivi e l’evoluzione dei sistemi operativi mobile, i nuovi worm potrebbero adoperare tecniche di propagazione altrettanto evolute; da alcuni proof-on-concept sviluppati è ipotizzabile come i worm del futuro possano utilizzare vulnerabilità dello stack protocollare per agevolarne l’infezione. Nella definizione di queste nuove forme di malware evoluto è possibile ipotizzare l’uso di payload dinamici che consentano il deploy di codice virale differente a seconda del dispositivo che si sta infettando. In worm con queste caratteristiche possiamo identificare 2 componenti principali che abbiamo definito con il termine di envelope e payload. La prima componente è responsabile della ricerca dei dispositivi visibili e della propagazione dei diversi payload, a seconda dell’indirizzo B. o dell’identificativo dei dispositivi vittima. Il secondo elemento contiene invece il vero e proprio codice malevolo che può implementare diverse funzionalità (keylogger, sniffer, audio recorder) e che potrà utilizzare qualsiasi altro canale di trasmissione per far ritornare le informazioni rubate all’aggressore. Come è facilmente intuibile, in una situazione di questo tipo il rischio di aggressione è molto più alto poiché non è necessario che l’aggressore sia effettivamente nel range di trasmissione con la vittima, cosa che sino ad ora ha reso di fatto impossibile la sottrazione di informazioni.

33


Tra gli scenari ipotizzabili è possibile citare quello di un aggressore che infetti i dispositivi di alcuni dipendenti di un’azienda, con lo scopo di recuperare informazioni riservate dal palmare dell’amministratore delegato senza mai entrare in contatto radio con quel dispositivo. Dallo sviluppo di alcuni proof-of-concept realizzati con Java 2 Micro Edition (J2ME) e compatibile con moltissimi cellulari aderenti allo standard MIDP 2.0 e JSR82 (Java Bluetooth API) è possibile mostrare come queste future evoluzioni non siano solamente fantasie. Alcune simulazioni, realizzate utilizzando parte dei dati sperimentali raccolti sul campo, hanno dimostrato inoltre l’estrema velocità di propagazione di queste nuove forme virali. I worm B. attuali e le futuribili evoluzioni fanno presagire un futuro incerto rispetto alla sicurezza dei dispositivi mobili anche per la riscontrata disattenzione degli utenti, che sembrano non essere pienamente consapevoli dei possibili rischi a cui vanno incontro. Se da un lato l’aumento del numero di dispositivi dotati di connettività B. è in forte crescita, dall’altro la mancanza di standard generali sul software e sulle piattaforme limita fortemente la creazione di malware universale ed obbliga i coder a scrivere specifiche versioni per ogni tipologia di sistema. Per una volta quindi la mancanza di standard rappresenta un elemento di vantaggo per la sicurezza degli apparecchi portatili: problemi di compatibilità rendono tecnicamente difficile la creazione di codice malevolo che sia installabile ed eseguibile sulle diverse piattaforme. Ancora per qualche tempo i nostri dispositivi saranno quindi al sicuro da questo genere di worm, lasciando il tempo agli esperti di ricercare nuove soluzioni di difesa ed ai normali utenti di comprendere i possibili rischi intrinseci nell’uso di questi apparecchi.

™ IL PROGETTO BLUEBAG Comprendere la reale diffusione della tecnologia significa determinare il reale rischio di fronte ad un possibile attacco. Per una corretta valutazione è importante determinare il numero di dispositivi presenti, il range di trasmissione (ovvero la Classe del dispositivo) ma anche moltissimi altri fattori spesso difficili da determinare sperimentalmente: il tempo di esposizione, azioni e reazioni della vittima, limitazioni ambientali e/o tecnologiche, ecc.. Per acquisire queste informazioni utili a valutare il rischio di esposizione ai malware, è stato realizzato uno strumento ad hoc: la BlueBag. Utilizzando un sistema Linux all’interno di un normale trolley da viaggio, è stato costruito uno strumento versatile che ha permetto una considerevole portata radio, notevole autonomia e allo stesso tempo comodità nel trasporto. La BlueBag è basata su un sistema mini-ITX al fine di ridurre al minimo i consumi avendo comunque una discreta potenza computazionale; durante la progettazione del sistema sono state ampiamente considerate le problematiche di consumo e l’ottimizzazione delle prestazioni. A livello hardware, la BlueBag è composta dai seguenti componenti: • • • • • • • • • • • •

M/B Via EPIA mini-ITX PD6000E (fanless) 256 MB DDR400 DIMM EPIA MII PCI Backplate (4x porte USB 2.0 aggiuntive) Hub USB 2.0 alimentato iPod 20 GB 1,8” Hard Disk Drive 8 dongle DIKON Class-1 (Broadcom chipset) 1 dongle LINKSYS Class-1 (CSR chipset) Antenna NETGEAR omnidirezionale 5dBi Alimentatore PicoPSU Batteria al piombo (12V-26A) che consente un’autonomia di circa 8 ore Interruttore a chiave Cavetteria varia

34


L’hardware, acquistabile online e nei comuni negozi di elettronica, è facilmente reperibile ad una cifra che non supera i 600€. Il dongle LINKSYS è stato scelto appositamente per la facilità con cui è possibile sostituire l’antenna integrata con una esterna, consentendo quindi portate maggiori. A livello software, la BlueBag utilizza un sistema GNU/Linux Gentoo con kernel 2.6 e lo stack protocollare BlueZ, l’implementazione più nota e diffusa per Linux. Al di sopra di questo normale sistema Linux è stato predisposto un software Python, sviluppato appositamente, che gestisce la scansione e le altra attività per cui la BlueBag è stata pensata. Il software permette di gestire in multithread i dongle disponibili al fine di migliorare l’efficacia della scansione; la BlueBag utilizza il dongle modificato con l’antenna per rilevare dispositivi a distanza maggiore (intorno ai 150 m) per poi allocare dinamicamente i rimanenti dongle che si occupano della scansione dei singoli servizi. Per realizzare uno strumento versatile, senza dare troppo nell’occhio, è possibile configurare e monitorare la BlueBag attraverso un palmare o smartphone collegato alla borsa tramite una connessione TCP/IP over Bluetooth. In questo modo è possibile intervenire alla configurazione della scansione e delle analisi senza dover necessariamente aprire il trolley quando si è in giro. La BlueBag permette di svolgere diverse attività di scansione ed analisi: • • • •

Rilevamento dispositivi B. attivi e visibili – Tutti i dispositivi vengono catalogati all’interno di un database con un preciso riferimento sul luogo e sull’istante in cui sono stati identificati Scansione servizi dispositivo – Per ogni apparecchio viene effettuata una scansione dei servizi (sdptool browse, psm scan, rfcomm scan) oltre al reperimento di ulterior informazioni (identificativo, potenza del segnale) Rilevamento tipologia e modello dispositivo – Avviene in maniera automatica; per quest’ultimo viene utilizzata la tecnica del BluePrinting Realizzazione impronta digitale del dispositivo – Ogni dispositivo B. possiede determinate caratteristiche che, se considerate globalmente, rendono il dispositivo unico e identificabile: ogni apparecchio ha un indirizzo fisico univoco, una determinate casa produttrice (i primi 3 byte dell’indirizzo) e particolari servizi e canali abilitati

35


• •

Rilevamento dispositivi non-discoverable – Attività svolta tramite un brute-force sull’indirizzo fisico dell’interfaccia B., in maniera analoga da quanto svolto dal tool RedFang Misurazione tasso di successo rispetto al social-engineering – Attraverso questo task, la BlueBag ricerca tutti i dispositivi presenti nell’ambiente e cerca di effettuare il trasferimento di un file grazie al servizio OBEX-Push, valutandone il tasso di successo. Le caratteristiche del file usato durante il trasferimento, l’identificativo del dispositivo ed i tempi di ritrasmissione sono completamente configurabili; in questo modo è possible determinare empiricamente il numero di potenziali vittime da B. malware

Lo strumento realizzato è servito per determinare sul campo la reale diffusione della tecnologia in differenti contesti (aeroporti, stazioni, centri commerciali, banche, università), avendo a che fare con differenti tipologie di utilizzatori. In meno di 24h totali di scansione nella città di Milano, la BlueBag ha identificato 1405 dispositivi con una distribuzione del 93% per i telefoni cellulari, 3% notebook, 2% pda, 2% antenne GPS ed altro. Senza entrare nel dettaglio sulla validità statistica dei campioni è evidente come queste cifre supportino l’idea di un reale rischio per la propagazione di worm tramite questa tecnologia, considerando anche che la completa totalità dei dispositivi cellulari espone il servizio di trasferimento tipicamente usato dai malware. Dalle misurazioni effettuate tramite l’OBEX Pusher è stato inoltre possibile stimare il tasso medio di successo, valutando al 7.5% il numero delle persone che senza conoscere la sorgente ed il contenuto del trasferimento hanno accettato di buon grado un file potenzialmente dannoso. Infine, un altro dato interessante che è stato possibile recuperare è quello relativo al tempo medio di visibilità dei dispositivi, che può essere letto come il tempo utile ad un eventuale aggressore per portare a termine un attacco; parlando di worm è proprio durante questo intervallo di tempo che il malware deve trasferire se stesso, prima dell’uscita della vittima dal range di trasmissione. Questi valori si attestano intorno ai 12.3 secondi per il centro commerciale, 10.1 per il campus universitario, 23.1 per l’aeroporto e 14.4 per gli uffici generali di una banca: tempi ridotti ma decisamente sufficienti per portare a termine un attacco.

™ CURIOSITA’ Il sistema di connessione a breve distanza dei cellulare è sempre più usato per “agganciare” partner occasionali in bar o metropolitane. Dall’inglese “to tooth”, rosicchiare, la nuova moda impazza tra i giovani alla ricerca di partner occasionali; basta avere un cellulare B., una buona dose di coraggio e un pizzico di fortuna: il flirt è dietro l’angolo. Ormai presente su quasi tutti i nuovi cellulari e palmari, il B. permette di scovare altri terminali abilitati nelle vicinanze e contattarli. Treni e metropolitane sono il luogo ideale per il flirt wireless: il toother annoiato cerca utenti nei paraggi e quando ne trova uno, invia un messaggio di invito. “Toothing?” è la parola d’ordine per capire che aria tira e se dall’altra parte la risposta è positiva, ha inizio il balletto di messaggi, che in alcuni casi può concludersi con un focoso incontro. Nel Regno Unito i toother sono migliaia, che attraverso i blog si scambiano consigli e raccontano le proprie avventure. Spuntano come funghi le comunità di toother, in Francia come in Danimarca, in Olanda come negli Stati Uniti. In Italia, la prima comunità del toothing è raggiungibile all’indirizzo http://www.togatoga.it. Per il toothing, non è necessario stabilire una connessione tra 2 cellulari, può essere sufficiente inviare un messaggio anonimo sotto forma di biglietto da visita con la tecnica del Bluejacking. I biglietti da visita inviati con il Bluejacking sono ricevuti da tutti i dispositivi con B. attivo. Per evitare di essere disturbati, è possibile disattivare la connessione B. oppure mettere il telefonino in modalità “invisibile”. Per scambiarsi file, contatti, rubrica e note è invece necessario stabilire una connessione diretta tra i 2 terminali eseguendo il pairing, assegnare un nome al terminale, attivare la connessione B. e la modalità “visibile”.

36


Una volta accoppiati i 2 terminali, è possibile accedere da un cellulare ai dati personali (rubrica, note) memorizzati sull’altro cellulare. Un’operazione delicata per la privacy: il Bluesnarfing è proprio il furto dei dati memorizzati sul cellulare dopo il pairing. È stato Adam Laurie a scoprire alcuni problemi di sicurezza del B., e ad elencare i cellulari vulnerabili (Nokia 6310i e 8910i, Ericsson T39, R520 e T68, Sony Ericsson T68i, T610, T630 e Z600). Per non correre rischi con questi modelli, è sufficiente attivare la modalità “invisibile”.

™ CONSIGLI E PRECAUZIONI In attesa di un maggior impegno e sinergia tra il consorzio B. e le case produttrici, elenchiamo alcune semplici precauzioni che è bene ricordare e mettere in atto, utili x l’utente: • • • • • • • •

Garantire in qualche modo che gli utenti scelgano i propri PIN spesso a caso Aumentare la lunghezza dei PIN in modo da essere più sicuri evitandone la banalità Adottare metodi di sicurezza basati sui certificati Utilizzare il dispositivo in modalità nascosta per allungare i tempi di un’eventuale aggressione Effettuare l’operazione di pairing in ambienti protetti evitando quelli affollati e poco sicuri; un semplice errore nell’associare dispositivi untrusted potrebbe compromettere i propri dati Evitare l’utilizzo del B. per applicazioni critiche Sviluppare una migliore forma di copertura fisica per evitare agli estranei di intercettare segnali provenienti da dispositivi B. Scegliere dispositivi ritenuti sicuri dall’intera comunità di esperti che operano in questo settore: attraverso le mailing list pubblice o i forum è possibile trovare eventuali advisory relative a dispositivi buggati

™ BIBLIOGRAFIA Andrew S. Tanenbaum - Reti Di Calcolatori 4a Edizione – Pearson Nikos Mavrogiannopoulos - On Bluetooth Security - 2005 Sono stati consultati inoltre una serie di presentazioni e lucidi per approfondire l’argomento reperibili sul World Wide Web; un ringraziamento particolare a: Luca “ikki” Carrettoni, laureato in Ingegneria Informatica al Politecnico di Milano, esperto di sicurezza delle applicazioni, del mobile computing e della libertà digitale – Progetto BlueBag, Bluetooth Malware. Ing. Claudio “paper” Merloni, fondatore della Secure Network S.r.l. – Metodi ed obiettivi per l’implementazione di un sistema di protezione della privacy. Prof. Alfredo De Santis – Università degli studi di Salerno – Sistemi di elaborazione dell’informazione: Sicurezza su reti Prof. Gianpiero Di Blasi – Università di degli studi di Catania – Il Bluetooth Prof. Raffaele Bolla – Università di degli studi di Genova – Bluetooth Fabio Di Martino – Socio dell’ALEI – Università degli studi di Pescara – La diffusione del Bluetooth Marco Tullio Giordano – Università degli Studi di Milano – La tecnologia Bluetooth: origini del fenomeno e aspetti legali Prof. Daniele Pauletto – Tecnologia Bluetooth

37


tesi bluetoot