Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Storicamente, la maggior parte dei dipendenti utilizza tastiere e mouse wireless Logitech. Inserendo ancora una volta le nostre password, noi specialisti del team Raccoon Security ci siamo chiesti: quanto è difficile aggirare i meccanismi di sicurezza delle tastiere wireless? Lo studio ha rivelato difetti architetturali ed errori software che consentono l'accesso ai dati di input. Sotto il taglio c'è quello che abbiamo ottenuto.

Perché Logitech?

A nostro avviso, i dispositivi di input Logitech sono tra quelli di massima qualità e più convenienti. La maggior parte dei dispositivi di cui disponiamo si basano sulla soluzione Logitech Unifying è un ricevitore dongle universale che permette di connettere fino a 6 dispositivi. Tutti i dispositivi compatibili con la tecnologia Logitech Unifying sono contrassegnati dal logo della tecnologia Logitech Unifying. Facile da usare applicazione Consente di gestire la connessione delle tastiere wireless al computer. Il processo di connessione della tastiera al dongle del ricevitore Logitech, nonché la tecnologia stessa, vengono trattati, ad esempio, qui.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Ricevitore dongle con supporto Logitech Unifying

La tastiera può diventare una fonte di informazioni per gli aggressori. Logitech, tenendo conto della possibile minaccia, si è occupata della sicurezza: ha utilizzato l'algoritmo di crittografia AES128 nel canale radio della tastiera wireless. Il primo pensiero che potrebbe avere un utente malintenzionato in questa situazione è quello di intercettare le informazioni chiave quando vengono trasmesse su un canale radio durante la procedura di associazione. Dopotutto, se hai una chiave, puoi intercettare i segnali radio della tastiera e decrittografarli. Tuttavia, l'utente raramente (o addirittura mai) dovrà unificare la tastiera e un hacker con una radio a scansione dovrà attendere a lungo. Inoltre, non tutto è così semplice con il processo di intercettazione stesso. Nell’ultimo studio del giugno 2019, l’esperto di sicurezza Markus Mengs ha pubblicato online сообщение sulla scoperta di una vulnerabilità nel vecchio firmware dei dongle USB Logitech. Consente agli aggressori con accesso fisico ai dispositivi di ottenere chiavi di crittografia del canale radio e inserire sequenze di tasti (CVE-2019-13054).

Parleremo del nostro studio sulla sicurezza del dongle Logitech basato sul SoC NRF24 di Nordic Semiconductor. Cominciamo, forse, con il canale radio stesso.

Come i dati “volano” in un canale radio

Per l'analisi tempo-frequenza del segnale radio abbiamo utilizzato un ricevitore SDR basato sul dispositivo Blade-RF in modalità analizzatore di spettro (puoi leggere anche questo qui).

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Dispositivo SDR Blade-RF

Abbiamo inoltre considerato la possibilità di registrare quadrature del segnale radio a frequenza intermedia, che potrebbero poi essere analizzate mediante tecniche di elaborazione digitale del segnale.

Commissione statale sulle frequenze radio nella Federazione Russa consentito per l'utilizzo con dispositivi a corto raggio, la gamma di frequenza è 2400–2483,5 MHz. Si tratta di una gamma molto “popolata”, nella quale non troverete nulla: Wi-Fi, Bluetooth, telecomandi di ogni genere, sistemi di sicurezza, rilevatori wireless, mouse con tastiera e altri dispositivi digitali wireless.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Spettro della banda 2,4 GHz

L'ambiente di interferenza nella gamma è piuttosto complesso. Nonostante ciò, Logitech è riuscita a fornire una ricezione affidabile e stabile attraverso l'uso del protocollo Enhanced ShockBurst nel ricetrasmettitore NRF24 in combinazione con algoritmi di adattamento della frequenza.

I canali in una banda vengono posizionati in posizioni MHz intere come definito in specificazione NRF24 Nordic Semiconductor: un totale di 84 canali nella griglia di frequenza. Il numero di canali di frequenza utilizzati contemporaneamente da Logitech è ovviamente inferiore. Ne abbiamo individuato l'utilizzo almeno quattro. A causa della larghezza di banda limitata dell'analizzatore di spettro del segnale utilizzato, non è stato possibile determinare l'esatto elenco delle posizioni di frequenza utilizzate, ma ciò non era necessario. Le informazioni dalla tastiera al dongle del ricevitore vengono trasmesse in modalità Burst (brevi accensioni del trasmettitore) utilizzando la modulazione di frequenza a due posizioni GFSK con una velocità di simbolo di 1 Mbaud:

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Segnale radio della tastiera nella rappresentazione del tempo

Il ricevitore utilizza il principio di correlazione della ricezione, quindi il pacchetto trasmesso contiene un preambolo e una parte di indirizzo. Non viene utilizzata alcuna codifica resistente al rumore; il corpo dei dati viene crittografato con l'algoritmo AES128.

In generale, l'interfaccia radio della tastiera wireless Logitech può essere caratterizzata come completamente asincrona con multiplexing statistico e adattamento della frequenza. Ciò significa che il trasmettitore della tastiera cambia canale per trasmettere ogni nuovo pacchetto. Il ricevitore non conosce in anticipo né l'ora di trasmissione né il canale di frequenza, ma è noto solo il loro elenco. Il ricevitore e il trasmettitore si incontrano nel canale grazie al bypass di frequenza coordinato e agli algoritmi di ascolto, nonché ai meccanismi di riconoscimento Enhanced ShockBurst. Non abbiamo verificato se l'elenco dei canali è statico. Probabilmente, il suo cambiamento è dovuto all'algoritmo di adattamento della frequenza. Qualcosa di simile al metodo del salto di frequenza (sintonizzazione pseudo-casuale della frequenza operativa) può essere visto nell'uso della risorsa di frequenza della gamma.

Pertanto, in condizioni di incertezza tempo-frequenza, per garantire la ricezione di tutti i segnali della tastiera, un utente malintenzionato dovrà monitorare costantemente l’intera griglia di frequenza di 84 posizioni, il che richiede una notevole quantità di tempo. Qui diventa chiaro il motivo della vulnerabilità relativa all'estrazione della chiave USB (CVE-2019-13054) nelle fonti posizionato come la capacità di iniettare sequenze di tasti, piuttosto che ottenere l'accesso di un utente malintenzionato ai dati immessi dalla tastiera. Ovviamente l'interfaccia radio della tastiera wireless è piuttosto complessa e fornisce una comunicazione radio affidabile tra i dispositivi Logitech in condizioni di interferenza difficili nella banda dei 2,4 GHz.

Uno sguardo al problema dall'interno

Per il nostro studio, abbiamo scelto una delle nostre tastiere Logitech K330 esistenti e un dongle Logitech Unifying.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Logitech K330

Diamo un'occhiata all'interno della tastiera. Un elemento interessante da studiare sulla scheda è il chip SoC NRF24 di Nordic Semiconductor.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

SoC NRF24 sulla tastiera wireless Logitech K330

Il firmware si trova nella memoria interna, i meccanismi di lettura e debug sono disabilitati. Sfortunatamente, il firmware non è stato pubblicato in open source. Pertanto, abbiamo deciso di affrontare il problema dall'altro lato: studiare il contenuto interno del ricevitore dongle Logitech.

Il “mondo interiore” del ricevitore dongle è piuttosto interessante. Il dongle è facilmente smontabile, porta a bordo la familiare versione NRF24 con controller USB integrato ed è riprogrammabile sia dal lato USB che direttamente dal programmatore.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Chiavetta Logitech senza custodia

Poiché esiste un meccanismo standard per l'aggiornamento del firmware utilizzando Applicazioni dello strumento di aggiornamento firmware (da cui è possibile estrarre la versione firmware aggiornata), non è necessario cercare il firmware all'interno della chiavetta.

Cosa è stato fatto: il firmware RQR_012_005_00028.bin è stato estratto dal corpo dell'applicazione Firmware Update Tool. Per verificarne l'integrità, il controller del dongle è stato collegato con un cavo al programmatore ChipProg-48:

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Cavo per collegare il dongle Logitech al programmatore ChipProg 48

Per controllare l'integrità del firmware, è stato inserito con successo nella memoria del controller e ha funzionato correttamente, la tastiera e il mouse sono stati collegati al dongle tramite Logitech Unifying. È possibile caricare firmware modificato utilizzando il meccanismo di aggiornamento standard, poiché non esistono meccanismi di protezione crittografica per il firmware. Per scopi di ricerca abbiamo utilizzato una connessione fisica al programmatore, poiché in questo modo il debugging è molto più veloce.

Ricerca del firmware e attacco all'input dell'utente

Il chip NRF24 è progettato sulla base del core di calcolo Intel 8051 nella tradizionale architettura di Harvard. Per il core, il ricetrasmettitore funge da dispositivo periferico ed è inserito nello spazio degli indirizzi come un insieme di registri. La documentazione per il chip e gli esempi di codice sorgente possono essere trovati su Internet, quindi smontare il firmware non è difficile. Durante il reverse engineering, abbiamo localizzato le funzioni per ricevere i dati di battitura dal canale radio e convertirli in formato HID per la trasmissione all'host tramite l'interfaccia USB. Il codice di iniezione è stato inserito in indirizzi di memoria liberi, che includevano strumenti per intercettare il controllo, salvare e ripristinare il contesto di esecuzione originale, nonché codice funzionale.

Il pacchetto di pressione o rilascio di un tasto ricevuto dal dongle dal canale radio viene decrittografato, convertito in un rapporto HID standard e inviato all'interfaccia USB come da una normale tastiera. Nell'ambito dello studio, la parte del rapporto HID che ci interessa maggiormente è la parte del rapporto HID contenente un byte di flag di modifica e un array di 6 byte con codici di battitura (per riferimento, informazioni su HID qui).

Struttura del rapporto HID:

// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
    uint8_t Modifiers;
    uint8_t Reserved;
    uint8_t KeyCode[6];
}HidKbdReport_t;

Immediatamente prima di trasmettere la struttura HID all'host, il codice iniettato prende il controllo, copia 8 byte di dati HID nativi in ​​memoria e li invia al canale lato radio in chiaro. Nel codice appare così:

//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState();                  // save transceiver state
RfInitForTransmition(TransmitRfAddress);        // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE();                 // Toggle radio CE signal to start transmission
RestoreRfState();               // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<

Il canale laterale è organizzato ad una frequenza da noi impostata con determinate caratteristiche della velocità di manipolazione e della struttura del pacchetto.

Funzionamento del ricetrasmettitore nel chip NRF24 si basa su un grafico di stato in cui è integrato organicamente il protocollo Enhanced ShockBurst. Abbiamo riscontrato che immediatamente prima di trasmettere i dati HID all'interfaccia USB host, il ricetrasmettitore era nello stato IDLE. Ciò rende possibile riconfigurarlo in sicurezza per funzionare in un canale laterale. Il codice iniettato intercetta il controllo, preserva integralmente la configurazione originale del ricetrasmettitore e lo commuta in una nuova modalità di trasmissione sul canale laterale. Il meccanismo di conferma Enhanced ShockBurst è disabilitato in questa modalità; i dati HID vengono trasmessi in forma chiara via etere. La struttura del pacchetto nel canale laterale è mostrata nella figura seguente, i diagrammi dei segnali sono stati ottenuti dopo la demodulazione e prima del ripristino della sincronizzazione del clock dei dati. Il valore dell'indirizzo è stato scelto per facilitare l'identificazione visiva del pacco.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Segnale Burst Demodulato nel Canale Laterale

Dopo che il pacchetto è stato trasmesso al canale laterale, il codice inserito ripristina lo stato del ricetrasmettitore. Ora è di nuovo pronto per funzionare normalmente nel contesto del firmware originale.

Nei domini frequenza e tempo-frequenza, il canale laterale si presenta così:

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Rappresentazione spettrale e tempo-frequenza del canale laterale

Per testare il funzionamento del chip NRF24 con firmware modificato, abbiamo assemblato un supporto che includeva un dongle Logitech con firmware modificato, una tastiera wireless e un ricevitore assemblati sulla base di un modulo cinese con un chip NRF24.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Circuito di intercettazione del segnale radio della tastiera wireless Logitech

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Modulo basato su NRF24

Al banco, con la tastiera funzionante normalmente, dopo averla collegata al dongle Logitech, abbiamo osservato la trasmissione di dati chiari relativi alla pressione dei tasti nel canale radio laterale e la normale trasmissione di dati crittografati nell'interfaccia radio principale. Pertanto, siamo stati in grado di fornire l'intercettazione diretta dell'input da tastiera dell'utente:

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Il risultato dell'intercettazione dell'input da tastiera

Il codice iniettato introduce lievi ritardi nel funzionamento del firmware del dongle. Tuttavia, sono troppo piccoli perché l'utente possa notarli.

Come puoi immaginare, qualsiasi tastiera Logitech compatibile con la tecnologia Unifying può essere utilizzata per questo vettore di attacco. Poiché l'attacco prende di mira il ricevitore Unifying incluso nella maggior parte delle tastiere Logitech, è indipendente dal modello di tastiera specifico.

conclusione

I risultati dello studio suggeriscono il possibile utilizzo dello scenario considerato da parte degli aggressori: se un hacker sostituisce la vittima con un ricevitore dongle per una tastiera wireless Logitech, sarà in grado di scoprire le password degli account della vittima con tutte le conseguenze conseguenze. Non dimenticare che è anche possibile iniettare tasti, il che significa che non è difficile eseguire codice arbitrario sul computer della vittima.

Cosa succederebbe se all'improvviso un utente malintenzionato potesse modificare da remoto il firmware di qualsiasi dongle Logitech tramite USB? Quindi, da dongle ravvicinati, è possibile creare una rete di ripetitori e aumentare la distanza di dispersione. Anche se un aggressore “finanziariamente ricco” sarà in grado di “ascoltare” gli input della tastiera e premere i tasti anche da un edificio vicino, moderni impianti di ricezione radio con sistemi altamente selettivi, ricevitori radio sensibili con brevi tempi di sintonizzazione delle frequenze e antenne altamente direzionali gli consentiranno per “ascoltare” l'input da tastiera e premere i tasti anche da un edificio vicino.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Apparecchiature radio professionali

Poiché il canale di trasmissione dati wireless della tastiera Logitech è abbastanza ben protetto, il vettore di attacco trovato richiede l'accesso fisico al ricevitore, il che limita notevolmente l'aggressore. L'unica opzione di protezione in questo caso sarebbe quella di utilizzare meccanismi di protezione crittografica per il firmware del ricevitore, ad esempio controllando la firma del firmware caricato sul lato ricevitore. Ma sfortunatamente NRF24 non lo supporta ed è impossibile implementare la protezione nell’attuale architettura del dispositivo. Quindi prenditi cura dei tuoi dongle, perché l'opzione di attacco descritta richiede l'accesso fisico ad essi.

Prenditi cura dei tuoi dongle: studio sulla sicurezza del ricevitore della tastiera Logitech

Raccoon Security è un team speciale di esperti del Centro di ricerca e sviluppo di Vulcano nel campo della sicurezza pratica delle informazioni, della crittografia, della progettazione di circuiti, del reverse engineering e della creazione di software di basso livello.

Fonte: habr.com

Aggiungi un commento