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
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
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
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
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
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)
Uno sguardo al problema dall'interno
Per il nostro studio, abbiamo scelto una delle nostre tastiere Logitech K330 esistenti e un dongle Logitech Unifying.
Logitech K330
Diamo un'occhiata all'interno della tastiera. Un elemento interessante da studiare sulla scheda è il chip SoC NRF24 di Nordic Semiconductor.
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.
Chiavetta Logitech senza custodia
Poiché esiste un meccanismo standard per l'aggiornamento del firmware utilizzando
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
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
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
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ì:
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.
Circuito di intercettazione del segnale radio della tastiera wireless 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:
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.
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.
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