Benvenuto su Hackerpunk — Hacking News Live 24h, la fonte in tempo reale per tutte le news di cybersecurity, cybercrime e Deep AI. Aggiorniamo costantemente le nostre notizie 24 ore su 24 con report tecnici, indagini digitali e analisi sugli attacchi più recenti.
L’architettura Bluetooth Bluetooth BT è uno standard tecnico di trasmissione dati per reti personali senza fili chiamate WPAN Wireless Personal Area Network. Si basa sulla comunicazione a bassa potenza 2,4 - 2,448 GHz utilizzando lo spettro di diffusione con un salto di frequenza a 1600 hop/s che permette di avere una misura di sicurezza aggiuntiva. E’ stato sviluppato nel 1994 da Ericsson coop., in seguito formalizzata dalla Bluetooth Special Interest Group (SIG) di cui fanno parte anche Sony, IBM, Intel, Toshiba e Nokia che oltre essere proprietari del marchio gestiscono anche il programma di qualificazione il cosiddetto Bluetooth SIG, un processo di certificazione richiesto per qualsiasi prodotto che utilizza questa tecnologia. La specifica minima per la portata del Bluetooth è 10 m, ma questo limite non vieta i produttori di implementare specifiche diverse nei propri dispositivi, in effetti questa caratteristica di avere una “progettazione libera” come vedremo è la causa principale di molte delle vulnerabilità di BLE. Ogni dispositivo compatibile con la tecnologia Bluetooth è dotato di un chip a basso consumo energetico che definisce una Classe di copertura di rete e in base ad uno dei tre livelli della classe ne estende o meno la portata. La connessione tra dispositivi Bluetooth inoltre stabilisce dei ruoli d’azione, creando nello stesso tempo una rete molto piccola che prende anche il nome di Piconet. La Piconet è composta di un dispositivo principale avente un ruolo Master (maestro) e uno o più dispositivi periferici aventi ruoli Slave (schiavi). Il dispositivo principale (master) è quello al quale dovrà essere collegata la periferica (slave). Una Piconet può contare di un solo dispositivo master e fino a sette slave, un master invece può collegarsi a un dispositivo slave per volta. Le fasi che accompagnano una connessione tra due dispositivi Bluetooth sono principalmente cinque e offrono di base un certo grado di sicurezza.
La fase di Sincronizzazione Paging avviene attraverso la scelta del master al quale lo slave vuole sincronizzarsi, in questa fase viene sincronizzato il clock e la frequenza con il punto di accesso. Subito dopo si stabilisce un legame con la periferica scelta dal master e incomincia la fase enumerativa sui servizi offerti, per lo scopo è utilizzato un profilo specifico SDP Service Discovery Protocol. Terminata anche quest’ultima fase, il master è finalmente in grado di cercare un canale di comunicazione con la periferica utilizzando il protocollo L2CAP. In base all’esigenza del servizio si potrebbe optare su un canale supplementare e funzionante su L2CAP, noto come RFCOMM, utile per fornire una porta seriale virtuale, alcune applicazioni sono state progettate per connettersi a una porta standard indipendentemente dall’hardware usato, è il caso delle applicazioni di navigazione GPS. A partire dalle nuove versioni è stato implementato un meccanismo di sicurezza aggiuntivo chiamato Pairing (accoppiamento), il quale permette di limitare l’accesso ai soli utilizzatori autenticati, questo per garantire un certo livello superiore di protezione sulla piconet. Il pairing avviene solo una volta tra gli stessi dispositivi e si svolge attraverso l’inserimento di un codice segreto PIN sul display (se presente). La periferica slave invia una richiesta di pairing al dispositivo master il quale richiederà l’intervento manuale dell’utente per inserire il codice sul proprio display, se quest’ultimo viene inserito correttamente avverrà l’associazione che in gergo tecnico vuol dire stabilire una chiave lunga e duratura, utile per le connessioni future con lo stesso dispositivo. In modalità sicura (secure mode) il codice PIN sarà trasmesso in modalità cifrata con l’aiuto della generazione di una seconda chiave detta anche chiave pubblica (crittografia simmetrica). Ad avvenuto Pairing tra master e slave, il master sarà libero di utilizzare il canale stabilito, di seguito si mostra un processo di pairing tra due dispositivi master/slave: Il profilo GATT acronimo di Generic Attribute Profile. Le specifiche del profilo hanno permesso l’inserimento del chip all’interno di dispositivi dalle dimensioni ridotte sfruttando oltretutto una crittografia per le chiavi a 128 bit, permettendo il rilevamento e l’enumerazione sui dispositivi dotati di BLE. In seguito uscirono la versione 4.1, 4.2 e in particolare l’ultima v. 5.0 che continua a specializzarsi nei dispositivi ioT acronimo di Internet of things. In questo scenario è permesso fare una netta divisione dell’evoluzione tecnologica dello stack Bluetooth, partendo dal Bluetooth Classic BR/EDR fino alla versione 3.0 e Bluetooth LE dalla v. 4.0 fino alle successive e attuali, questa distinzione sarà utile per comprendere le varie vulnerabilità e gli attacchi che ne derivano. Bluetooth BR si è dedicato a dispositivi quali: smartphone, cuffie, auricolari, elettrodomestici, autovetture, ma il trampolino di lancio è avvenuto sui con l’introduzione di BLE, grazie al Low Energy il Bluetooth è entrato nelle nostre case con prodotti indossabili di dimensioni notevolmente ridotte come: telecomandi, bracciali, occhiali, tazze, dispositivi medici, lampadine e molto altro, si è sviluppato all’interno di tecnologie mediche, industriali e militari come i cardiofrequenzimetri, termometri, apparecchiature per protesi, pacemaker, dispositivi per l’esercito e dispositivi industriali. Alcuni dispositivi ioT sono di scarso interesse in tema di sicurezza e privacy, ma altri mettono seriamente in discussione queste realtà. Se prendessimo come riferimento alcuni dispositivi Bluetooth come: serrature e lucchetti, allarmi domestici, sensori di sicurezza biometrica per le attività bancarie, token, keypass o altri dispositivi di tracciamento della posizione, ne potremmo dedurre un potenziale rischio reale sulla sicurezza delineato dai principali standard della cyber security. BLE, grazie anche alle modifiche apportate sullo stack e con l’integrazione del profilo GATT, ha riesaminato la struttura dei servizi e i protocolli con i quali i dispositivi si scambiano i dati. La modalità di esposizione di tali informazioni tecniche da parte della periferica slave può essere intesa in maniera similare a ciò che avviene su un classico server. La specifica è definita dal protocollo ATT acronimo di Attribute Protocol che si trova al livello sottostante del profilo GATT, fondamentalmente sono presenti due ruoli in questo protocollo il server e client. Il server è il dispositivo che espone i dati e accetta i comandi in arrivo da un dispositivo principale, invia risposte, notifiche e indicazioni, il client è il dispositivo che s’interfaccia con il server allo scopo di leggere tali dati esposti, invia comandi e richieste e riceve notifiche e indicazioni. I dati che il server espone sono chiamati Attributi. Un attributo è composto di alcuni elementi essenziali:
L’attaccante innanzitutto si vorrebbe assicurare del fatto che il saturimetro non dovrà rispondere più all’applicazione android dello smartphone vittima, per far ciò utilizzerà uno smartphone hacker nr 1 impostato con un delay minore di scansione, all’incirca ogni 100 msec rispetto al delay dello smartphone vittima di 5 sec. Questa situazione si tradurrà in questo modo: all’accensione del dispositivo saturimetro lo smartphone hacker nr 1 avrà una probabilità maggiore di rilevare i pacchetti di adversiting inviati dal saturimetro rispetto alla probabilità dello smartphone vittima.
Illustrazione 1: configurazione scansione BLE Una volta che lo smartphone hacker nr 1 rileverà il saturimetro, si maschererà simultaneamente da fittizi dispositivi master, inviando senza interruzioni nuove richieste di scansione/associazione fino a saturare le limitate risorse del dispositivo slave in modo simile ad un attacco Dos, cercando di bloccare la rilevazione da parte di altri dispositivi regolari e già associati che in questo caso corrisponde a quello del dispositivo vittima che si vorrà connettere per il suo utilizzo.
Illustrazione 2: saturazione risorse slave A questo punto l’attaccante introdurrà un secondo smartphone hacker nr 2 mascherato da dispositivo saturimetro che si posizionerà nel raggio di copertura dello smartphone vittima e invierà annunci di scansione, per l’appunto l’attaccante avrà preventivamente clonato i parametri MAC/Name reali del saturimetro attraverso per esempio l’applicazione NRF Nordic connect. Lo smartphone vittima eseguirà la scansione ricevendo la risposta dallo slave mascherato e effettuerà una richiesta di connessione, poiché lo smartphone hacker 2 non ha memorizzato la chiave LTK durante il legittimo processo di pairing causerà l’errore 0x06 (pin o chiave mancante) permettendo una comunicazione non cifrata con il dispositivo vittima.
Illustrazione 3: induzione codice errore 0x06A questo punto smartphone vittima e smartphone hacker nr 2 potranno comunicare in chiaro in modalità non sicura. Il telefono vittima invierà una richiesta di lettura sull’attributo “OXYGEN” per esempio, questo attributo sul telefono hacker 2 sarà già stato preventivamente configurato dall’attaccante per ricevere un semplice permesso di lettura dall’esterno in modo da rispondere alla richiesta di lettura con un valore fittizio. La parte più insidiosa dell’attacco è che le operazioni fin qui descritte avvengono silenziosamente e la vittima non ha assolutamente un modo di comprendere quello che sta accadendo, in effetti l’attacco non ripristina il valore della chiave LTK memorizzata nel telefono della vittima, che in un momento successivo gli permetterebbe di collegarsi correttamente in modalità sicura al saturimetro reale. La simulazione termina con la variante Man in the Middle introducendo nuovamente lo smartphone hacker nr 1
Una volta che lo smartphone hacker nr 1 rimarrà attivo per saturare le risorse del dispositivo slave e il dispostivo hacker 2 attraverso la clonazione dei parametri MAC/name del saturimetro reale, sarà collegato abusivamente in chiaro allo smartphone vittima, l’attaccante attraverso i due smartphone avrà la possibilità da una parte di mantenere occupato il dispositivo slave e dall’altra creare valori creati ad hoc sulla funzione fittizia “OXYGEN” esposta alla quale il dispositivo vittima vorrà accedere. Autore: ing. Curzi Fernando L. CyberSecurity Analyst | CEH | eJPT | eCCPT +
- Rilevamento (Inquiry),
- Sincronizzazione (Paging),
- Enumerazione dei servizi (Enumeration),
- Creazione canale di comunicazione,
- Accoppiamento/Autenticazione (Pairing),
- Trasmissione dati.
| File Transfer Profile (FTP) | profilo di trasferimento di file |
| Generic Access Profile (GAP) | profilo d'accesso generico |
| Generic Object Exchange Profile (GOEP) | profilo di scambio di oggetti; |
| Hardcopy Cable Replacement Profile (HCRP) | profilo di sostituzione di hardcopy |
| Hands-Free Profile (HFP) | profilo mani libere |
| Human Interface Device Profile (HID) | profilo d'interfaccia uomo-terminale |
| Handset Profile (HSP) | profilo dell'auricolare |
| Intercom Profile (IP) | profilo d'intercom (walkie-talkie) |
| LAN Access Profile (LAP) | profilo d'accesso alla rete |
| Object Push Profile (OPP) | profilo d’invio dei file |
| Generic Attribute Profile (GATT) | profilo di gestione attributi in Ble |
| Object Exchange profile (OBEX) | Profilo di scambio dati |
| Personal Area Networking Profile (PAN) | profilo di rete personale[1]. |
| File Transfer Profile (FTP) | profilo di trasferimento di file |
| Generic Access Profile (GAP) | profilo d'accesso generico |
| Generic Object Exchange Profile (GOEP) | profilo di scambio di oggetti; |
- UUID (Universally Unique Identifier): È un valore a sedici bit o 128 bit che indica il tipo di attributo, se il valore è del tipo 0x2A1C indica che l’attributo è adottato dal SIG e permette di avere un dato da 16 bit, il che incide notevolmente nelle prestazioni, se il valore è del tipo F5A1347E-237D-4B8Y-DG3V-22H0FG7YD650, indica che l’attributo è personalizzato dalla casa produttrice del dispositivo.
- Handle: È un valore a 16 bit del tipo: 0xFFFF e indica l’indirizzo fisico per recuperare l’attributo nell’organigramma strutturale del server durante una connessione tra client e server,
- Proprietà e Descrittori: Le proprietà Indicano i permessi di scrittura, lettura, notifica per uno specifico attributo, differenti sono i descrittori utilizzati invece per contenere informazioni correlate all’attributo.
- Uno o più servizi d’inclusione Si tratta di servizi primari o secondari richiamati dal server che estendono le funzionalità del dispositivo;
- Una o più caratteristiche Definite da: proprietà, valori e descrittori.
- 0x2901 = Descrizione leggibile dall’utente (e.s Livello batteria)
- 0x2902 = Descrizione tecnica integrata non leggibile dall’utente.
- FASE 1: Il dispositivo invia una pairing request all’altro dispositivo, i due si scambiano funzionalità tecniche, requisiti di autenticazione, dimensioni massime della chiave di collegamento, in questa fase i dati non sono ancora crittografati.
- FASE 2: i dispositivi generano e si scambiano la chiave temporanea (TK), utilizzando LE Legacy Pairing, da questo punto in poi i dispositivi si scambieranno alcuni valori di conferma e valori di rand per verificare che entrambi stiano utilizzando la stessa chiave (TK). Una volta che questa circostanza è stata determinata, sarà utilizzata la chiave (TK) abbinata ai valori di rand per generare la chiave (STK).
- FASE 3: Questa è una fase facoltativa ed è utilizzata solo se i requisiti di legame sono stati scambiati nella prima fase, in particolare sono scambiate alcune chiavi specifiche per la trasmissione di dati.
- Livello 1: Nessuna sicurezza;
- Livello 2 : Il gestore centralizzato della sicurezza non gestisce la sicurezza a livello di dispositivo ma si limita a gestire autenticazione, configurazione ad autorizzazione a livello di servizio.
- Livello 3: Oltre la sicurezza a livello di servizio, prevede anche sicurezza a livello di dispositivo, autenticazione e crittografia basata su chiave segreta.
- Bias: Bluetooth Impersonation Attack - CVE-2020-101357;
- Blurtooth: CTKD attack – CVE-2020-158028;
- Blesa: Bluetooth Low Energy Spoofing Attack -CVE-2020-97709
- L’autenticazione è opzionale anziché obbligatoria;
- L’autenticazione potrebbe essere elusa e aggirata;
Presentazione di un attacco MITM BIAS/Android
In sede preliminare è doveroso esporre i principali 4 difetti di progettazione del Bluetooth Low Energy:- Non esistono meccanismi per specificare il protocollo di associazione (pairing)
- Non esistono meccanismi per ottenere il protocollo di associazione negoziato;
- Il sistema operativo Android gestisce male gli errori derivanti dall’associazione, l’applicazione non può partecipare al processo di associazione perché la chiamata createBond() è asincrona e non interviene nel pairing fino al completamento finale.
- Le applicazioni Android non sono in grado di rimuovere le connessioni sospette;
Simulazione: Attacco Man in the Middle BLE
Si supponga che un attaccante si trovi nel raggio di copertura tra due dispositivi già regolarmente associati tramite il processo di pairing con le relative chiavi LTK, si prenda come esempio pratico gli stessi dispositivi citati in precedenza, ovvero smartphone android con sua applicazione e saturimetro digitale che invia i valori di ossigeno e pressione sanguigna all’applicazione.
L’attaccante innanzitutto si vorrebbe assicurare del fatto che il saturimetro non dovrà rispondere più all’applicazione android dello smartphone vittima, per far ciò utilizzerà uno smartphone hacker nr 1 impostato con un delay minore di scansione, all’incirca ogni 100 msec rispetto al delay dello smartphone vittima di 5 sec. Questa situazione si tradurrà in questo modo: all’accensione del dispositivo saturimetro lo smartphone hacker nr 1 avrà una probabilità maggiore di rilevare i pacchetti di adversiting inviati dal saturimetro rispetto alla probabilità dello smartphone vittima.
Illustrazione 1: configurazione scansione BLE Una volta che lo smartphone hacker nr 1 rileverà il saturimetro, si maschererà simultaneamente da fittizi dispositivi master, inviando senza interruzioni nuove richieste di scansione/associazione fino a saturare le limitate risorse del dispositivo slave in modo simile ad un attacco Dos, cercando di bloccare la rilevazione da parte di altri dispositivi regolari e già associati che in questo caso corrisponde a quello del dispositivo vittima che si vorrà connettere per il suo utilizzo.
Illustrazione 2: saturazione risorse slave A questo punto l’attaccante introdurrà un secondo smartphone hacker nr 2 mascherato da dispositivo saturimetro che si posizionerà nel raggio di copertura dello smartphone vittima e invierà annunci di scansione, per l’appunto l’attaccante avrà preventivamente clonato i parametri MAC/Name reali del saturimetro attraverso per esempio l’applicazione NRF Nordic connect. Lo smartphone vittima eseguirà la scansione ricevendo la risposta dallo slave mascherato e effettuerà una richiesta di connessione, poiché lo smartphone hacker 2 non ha memorizzato la chiave LTK durante il legittimo processo di pairing causerà l’errore 0x06 (pin o chiave mancante) permettendo una comunicazione non cifrata con il dispositivo vittima.
Illustrazione 3: induzione codice errore 0x06A questo punto smartphone vittima e smartphone hacker nr 2 potranno comunicare in chiaro in modalità non sicura. Il telefono vittima invierà una richiesta di lettura sull’attributo “OXYGEN” per esempio, questo attributo sul telefono hacker 2 sarà già stato preventivamente configurato dall’attaccante per ricevere un semplice permesso di lettura dall’esterno in modo da rispondere alla richiesta di lettura con un valore fittizio. La parte più insidiosa dell’attacco è che le operazioni fin qui descritte avvengono silenziosamente e la vittima non ha assolutamente un modo di comprendere quello che sta accadendo, in effetti l’attacco non ripristina il valore della chiave LTK memorizzata nel telefono della vittima, che in un momento successivo gli permetterebbe di collegarsi correttamente in modalità sicura al saturimetro reale. La simulazione termina con la variante Man in the Middle introducendo nuovamente lo smartphone hacker nr 1
Una volta che lo smartphone hacker nr 1 rimarrà attivo per saturare le risorse del dispositivo slave e il dispostivo hacker 2 attraverso la clonazione dei parametri MAC/name del saturimetro reale, sarà collegato abusivamente in chiaro allo smartphone vittima, l’attaccante attraverso i due smartphone avrà la possibilità da una parte di mantenere occupato il dispositivo slave e dall’altra creare valori creati ad hoc sulla funzione fittizia “OXYGEN” esposta alla quale il dispositivo vittima vorrà accedere. Autore: ing. Curzi Fernando L. CyberSecurity Analyst | CEH | eJPT | eCCPT +


