
Framework di sperimentazione Bluetooth per chip Broadcom e Cypress.
I chip Broadcom sono utilizzati in circa un miliardo di dispositivi, come tutti gli iPhone, i MacBook, la serie Samsung Galaxy S, i vecchi Google Nexus, i vecchi Thinkpad, i Raspberry Pi, vari dispositivi IoT e altro ancora. Nel 2016, Cypress ha acquisito la divisione IoT di Broadcom. Da allora, le varianti del firmware sono leggermente divergite, poiché Broadcom ha mantenuto clienti non IoT come Apple e Samsung. Tuttavia, l'interazione del firmware e il meccanismo di aggiornamento sono rimasti gli stessi. Abbiamo eseguito il reverse engineering di come i sistemi operativi applicano patch a questo firmware e interagiscono con esso. Sulla base di ciò abbiamo sviluppato un framework di sperimentazione Bluetooth, in grado di applicare patch al firmware. Ciò consente varie funzionalità che altrimenti sarebbero possibili solo con un'implementazione radio definita da software full-stack, come l'iniezione e il monitoraggio dei pacchetti sul livello di collegamento.
InternalBlue non è stato utilizzato solo per la nostra ricerca presso il Secure Mobile Networking Lab (SEEMOO). Inoltre, i prototipi di attacco KNOB e BIAS sono stati implementati utilizzando i messaggi LMP di InternalBlue e anche gli attacchi SweynTooth hanno sperimentato InternalBlue per creare messaggi LCP. Nota che, a differenza di strumenti come btlejack o Ubertooth, InternalBlue non mira a eseguire attacchi Machine-in-the-Middle. Tuttavia, il dispositivo che esegue InternalBlue può inviare pacchetti arbitrari e iniettarli in connessioni esistenti. Durante il monitoraggio, tutti i pacchetti ricevuti dal dispositivo che esegue InternalBlue vengono catturati e non c'è perdita di pacchetti. InternalBlue non ha alcun problema con l'analisi di connessioni crittografate o Bluetooth Classico. Se hai richieste di funzionalità specifiche per la tua ricerca sulla sicurezza, non esitare ad aprire un ticket.
Oltre alla ricerca sulla sicurezza, InternalBlue apre anche possibilità per ulteriori analisi come statistiche e miglioramenti delle prestazioni del Bluetooth Low Energy. Qualsiasi cosa che possa essere migliorata all'interno di uno stack Bluetooth può essere testata direttamente su dispositivi commerciali.
La nostra recente ricerca include Frankenstein, che emula il firmware inclusa la commutazione dei thread e l'input del modem virtuale. Il firmware emulato può essere collegato a un host Linux. Pertanto, l'approccio è full-stack. Lo abbiamo usato principalmente per il fuzzing e abbiamo trovato vulnerabilità che includono risposte dell'host da innescare. Frankenstein si trova in un repository separato, ma dipende da InternalBlue per acquisire snapshot di stato, ecc., su un dispositivo fisico.
Inoltre, abbiamo appena pubblicato Polypyus. Consente il diffing binario esclusivamente su binari, indipendentemente da IDA e Ghidra. Tuttavia, si integra in quel flusso di lavoro identificando buoni punti di partenza per ulteriori analisi. Lo abbiamo già provato su diversi firmware Wi-Fi e Bluetooth Broadcom.
Cerchi le nostre misurazioni del generatore di numeri casuali effettuate durante l'analisi di CVE-2020-6616? Puoi trovarle qui.
Ci sono anche alcuni hook più dinamici per HCI con Frida su iOS e Android. Lo abbiamo usato per studiare il comportamento degli avvisi nell'interfaccia utente in seguito ad attacchi MitM. Probabilmente utile anche per molti altri esperimenti, però.
A causa di Spectra 👻🌈, i comandi di scrittura e lettura della RAM sono disabilitati dopo l'inizializzazione del driver. Le soluzioni alternative sono descritte nelle rispettive istruzioni per Android e iOS, per gli altri dispositivi seguiranno bypass se necessario.
Copyright 2018-2021 The InternalBlue Team
Con la presente si concede gratuitamente, a chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), di trattare il Software senza restrizioni, inclusi, senza limitazione, i diritti di usare, copiare, modificare, fondere, pubblicare, distribuire, concedere in sottolicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:
L'avviso di copyright di cui sopra e questo avviso di permesso devono essere inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI, A TITOLO NON LIMITATIVO, LE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E ASSENZA DI VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNI O ALTRE RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, ILLECITO O ALTRO, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI CON IL SOFTWARE.