Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Storicamente, la maggior parte dei dipendenti utilizza tastiere e mouse wireless della Logitech. Ancora una volta, inserendo le nostre password, noi – specialisti del team Raccoon Security – ci siamo posti la domanda: quanto è difficile superare i meccanismi di sicurezza delle tastiere wireless? La ricerca condotta ha rivelato difetti architettonici e bug software che consentono l'accesso ai dati immessi. Dopo il salto – cosa abbiamo scoperto.

Perché Logitech?

A nostro avviso, i dispositivi di input della Logitech sono tra i più di qualità e comodi. La maggior parte dei dispositivi in nostro possesso si basa sulla soluzione Logitech Unifying – è un ricevitore dongle universale che consente di collegare fino a 6 dispositivi. Tutti i dispositivi compatibili con la tecnologia Logitech Unifying sono contrassegnati con il relativo logo. Semplice da usare un'app consente di gestire la connessione delle tastiere wireless al computer. Il processo di collegamento della tastiera al ricevitore dongle Logitech, così come la tecnologia stessa, è trattato, ad esempio, qui.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Ricevitore dongle con supporto per Logitech Unifying

La tastiera può diventare una fonte di informazioni per i malintenzionati. Considerando la possibile minaccia, Logitech ha prestato attenzione alla sicurezza applicando un algoritmo di crittografia AES128 nel canale radio della tastiera wireless. Il primo pensiero che può venire in mente a un malintenzionato in questa situazione è l'intercettazione delle informazioni sensibili durante la loro trasmissione nel canale radio durante la procedura di associazione. Infatti, con la chiave è possibile intercettare i segnali radio della tastiera e decifrarli. Tuttavia, all'utente capita molto raramente (o persino mai) di associare la tastiera con la procedura Unifying, e un hacker con un ricevitore radio in scansione dovrà aspettare a lungo. Inoltre, non è tutto così semplice nemmeno con il processo di intercettazione. Nell'ultima ricerca condotta a giugno 2019, l'esperto di sicurezza Markus Mengs ha pubblicato online messaggio la scoperta di una vulnerabilità in vecchie versioni del firmware dei dongle USB Logitech. Essa consente a malintenzionati con accesso fisico ai dispositivi di ottenere le chiavi di crittografia del canale radio e iniettare i tasti premuti (CVE-2019-13054).

Parleremo della nostra ricerca sulla sicurezza del dongle Logitech basato su SoC NRF24 di Nordic Semiconductor. Iniziamo, forse, con il canale radio.

Come «volano» i dati nel canale radio

Per l'analisi temporale-frequenziale del segnale radio abbiamo utilizzato un ricevitore SDR basato sul dispositivo Blade-RF in modalità analizzatore di spettro (di questo si può anche leggere qui).

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Dispositivo SDR Blade-RF

Abbiamo anche esaminato la possibilità di registrare le quadrature del segnale radio su frequenza intermedia, per poi analizzarle con l'uso di metodi di elaborazione digitale dei segnali.

Dalla Commissione statale per le frequenze radio nella Federazione Russa è consentito per l'uso da parte di dispositivi a corto raggio nella gamma di frequenze 2400–2483,5 MHz. Questa è una gamma molto «densamente popolata», in cui si possono trovare Wi-Fi, Bluetooth, vari telecomandi, sistemi di allerta, sensori wireless, mouse e tastiere e altri dispositivi digitali wireless.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Spettro della banda 2,4 GHz

Il contesto delle interferenze nella banda è piuttosto complesso. Ma nonostante ciò, l'azienda Logitech è riuscita a garantire una ricezione affidabile e stabile utilizzando il protocollo Enhanced ShockBurst nel trasmettitore NRF24 in combinazione con algoritmi di adattamento della frequenza.

I canali nella banda sono collocati in posizioni a valori interi di MHz, come definito in specifica NRF24 Nordic Semiconductor – in totale 84 canali nella griglia di frequenze. Il numero di canali di frequenza utilizzati simultaneamente da Logitech è ovviamente inferiore. Abbiamo identificato l'uso di almeno quattro. A causa della larghezza di banda limitata dell'analizzatore di spettro utilizzato, non è stato possibile determinare l'elenco esatto delle posizioni di frequenza utilizzate, ma non c'era bisogno di farlo. Le informazioni dalla tastiera al ricevitore dongle vengono trasmesse in modalità Burst (con brevi accensioni del trasmettitore) utilizzando la modulazione di frequenza a due posizioni GFSK a una velocità simbolica di 1 Mbaud:

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Segnale radio della tastiera in rappresentazione temporale

Il ricevitore utilizza il principio di ricezione basato sulla correlazione, quindi il pacchetto trasmesso include un preambolo e una parte indirizzata. La codifica resistente alle interferenze non viene applicata, il corpo dei dati è crittografato con l'algoritmo AES128.

In generale, l'interfaccia radio della tastiera wireless Logitech può essere caratterizzata come completamente asincrona con compressione statistica e adattamento alla frequenza. Ciò significa che il trasmettitore della tastiera cambia canale per trasmettere ogni nuovo pacchetto. Al ricevitore non sono noti in anticipo né il tempo di trasmissione né il canale di frequenza, ma è noto solo l'elenco di questi. Il ricevitore e il trasmettitore si incontrano sul canale grazie a algoritmi concordati di scansione e ascolto delle frequenze, nonché a meccanismi di conferma Enhanced ShockBurst. Non abbiamo indagato se l'elenco dei canali sia statico. Probabilmente, la sua modifica è dovuta a un algoritmo di adattamento della frequenza. Qualcosa di simile al metodo PPRC (ripristino pseudocasuale della frequenza di lavoro) si intuisce nell'uso delle risorse di frequenza della banda.

Pertanto, in condizioni di incertezza tempo-frequenza, per garantire la ricezione di tutti i segnali della tastiera, un malintenzionato avrà bisogno di monitorare costantemente tutta la griglia delle frequenze della banda composta da 84 posizioni, il che richiede significativi investimenti temporali. Qui diventa chiaro perché la vulnerabilità di estrazione della chiave tramite USB (CVE-2019-13054) nelle fonti è posizionata come una possibilità di iniezione dei tasti premuti, piuttosto che di accesso ai dati inseriti dalla tastiera da parte di un malintenzionato. È ovvio che l'interfaccia radio della tastiera wireless è abbastanza complessa e garantisce una comunicazione radio affidabile tra i dispositivi Logitech in condizioni di interferenza complicata nella banda a 2,4 GHz.

Uno sguardo al problema dall'interno

Per l'indagine abbiamo scelto una delle tastiere Logitech K330 che abbiamo a disposizione e il dongle Logitech Unifying.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Logitech K330

Diamo un'occhiata all'interno della tastiera. Un elemento interessante per l'indagine sulla scheda è il chip SoC NRF24 della Nordic Semiconductor.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

SoC NRF24 sulla scheda della tastiera wireless Logitech K330

Il firmware è memorizzato nella memoria interna, i meccanismi di lettura e debugging sono disattivati. Sfortunatamente, il firmware non è stato pubblicato in fonti aperte. Pertanto, abbiamo deciso di affrontare il problema da un'altra prospettiva: studiare il contenuto interno del dongle ricevitore Logitech.

Il «mondo interno» del dongle è strutturato in modo abbastanza interessante. Il dongle è facilmente smontabile, monta il noto NRF24 in versione con controller USB integrato e può essere riprogrammato sia tramite USB che direttamente con il programmatore.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Dongle Logitech senza scocca

Poiché esiste un meccanismo standard per l'aggiornamento del firmware utilizzando l'applicazione Firmware Update Tool (dalla quale è possibile estrarre la versione aggiornata del firmware), non è necessario cercare il firmware all'interno del dongle.

Cosa è stato fatto: dal corpo dell'applicazione Firmware Update Tool è stato estratto il firmware RQR_012_005_00028.bin. Per verificare la sua integrità, il controller del dongle è stato collegato tramite un cavo a nastro al programmatore ChipProg-48:

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Cavo di collegamento del dongle Logitech al programmatore ChipProg 48

Per controllare l'integrità del firmware, esso è stato correttamente posizionato nella memoria del controller e ha funzionato correttamente, la tastiera e il mouse sono stati collegati al dongle tramite Logitech Unifying. È possibile caricare un firmware modificato utilizzando il meccanismo standard di aggiornamento, in quanto non sono previsti meccanismi di protezione crittografica del firmware. A scopo di ricerca, abbiamo utilizzato un collegamento fisico al programmatore, poiché in questo modo è possibile effettuare il debug molto più rapidamente.

Analisi del firmware e attacco all'input dell'utente

Il chip NRF24 è progettato sulla base del core computazionale Intel 8051 in una tradizionale architettura Harvard. Per il nucleo, il trasmettitore funge da dispositivo periferico e viene posizionato nello spazio di indirizzamento come un insieme di registri. La documentazione sul chip e esempi di codice sorgente possono essere trovati online, quindi la disassemblaggio del firmware non rappresenta una difficoltà. Durante il reverse engineering, abbiamo localizzato le funzioni per ottenere dati sulle pressioni dei tasti dal canale radio e trasformarli nel formato HID per la trasmissione all'host tramite interfaccia USB. In indirizzi di memoria liberi è stato inserito il codice di iniezione, che ha incluso strumenti di intercettazione del controllo, salvataggio e ripristino del contesto originale di esecuzione, oltre a codice funzionale.

Il pacchetto di pressione o rilascio di un tasto ricevuto tramite il dongle dal canale radio viene decifrato, trasformato in un rapporto HID standard e inviato all'interfaccia USB come se fosse una normale tastiera. Nell'ambito della ricerca, la parte del rapporto HID che ci interessa di più è quella che contiene il byte dei flag-modificatori e un array di 6 byte con i codici delle pressioni dei tasti (per riferimento, le 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 della trasmissione della struttura HID all'host, il codice iniettato ottiene il controllo, copia in memoria 8 byte di dati HID nativi e li invia a un canale radio secondario in chiaro. In codice questo 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 secondario è organizzato sulla frequenza che abbiamo stabilito con determinate caratteristiche di velocità di manipolazione e struttura del pacchetto.

Operazione del trasmettitore nel chip NRF24 è basata su un grafo di stati, nel quale è organicamente integrato il protocollo Enhanced ShockBurst. Abbiamo scoperto che immediatamente prima della trasmissione dei dati HID nell'interfaccia USB dell'host, il trasmettitore si trovava nello stato IDLE. Ciò consente una sua riconfigurazione sicura per operare nel canale secondario. Il codice iniettato intercetta il controllo, conserva l'originale configurazione del trasmettitore nella sua totalità e lo porta in una nuova modalità di trasmissione sul canale secondario. Il meccanismo di conferma dell'Enhanced ShockBurst in questa modalità è disattivato, i dati HID vengono trasmessi in chiaro nell'etere radio. La struttura del pacchetto nel canale secondario è rappresentata nella figura sottostante, dove le epurazioni del segnale sono state ottenute dopo la demodulazione e prima del ripristino della sincronizzazione temporale dei dati. Il valore dell'indirizzo è scelto per facilitare l'identificazione visiva del pacchetto.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Segnale demodulato del pacchetto Burst nel canale secondario

Dopo il completamento della trasmissione del pacchetto nel canale secondario, il codice iniettato ripristina lo stato del trasmettitore. Ora è di nuovo pronto a funzionare in modalità normale nel contesto del firmware originale.

Nelle aree di frequenza e frequenza-tempo, il canale secondario appare come mostrato nell'immagine:

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Rappresentazione spettrale e frequenza-tempo del canale secondario

Per verificare il funzionamento del chip NRF24 con il firmware modificato, abbiamo assemblato un banco di prova, che include un dongle Logitech con firmware modificato, una tastiera wireless e un ricevitore basato su un modulo cinese con chip NRF24.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Schema di intercettazione del segnale radio della tastiera wireless Logitech

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Modulo basato su NRF24

Nel banco di prova, durante il normale funzionamento della tastiera dopo la connessione al dongle Logitech, abbiamo osservato la trasmissione di dati aperti sulle digitazioni nel canale radio secondario e la normale trasmissione di dati crittografati nell'interfaccia radio principale. In questo modo, siamo riusciti a garantire l'intercettazione diretta dell'input della tastiera dell'utente:

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Risultato dell'intercettazione dell'input della tastiera

Il codice iniettato introduce piccole latenze nel funzionamento del firmware del dongle. Tuttavia, sono troppo piccole perché l'utente possa accorgersene.

Come si può comprendere, per tale vettore di attacco si può utilizzare qualsiasi tastiera Logitech compatibile con la tecnologia Unifying. Poiché l'attacco è indirizzato al ricevitore Unifying, che è incluso nella maggior parte delle tastiere Logitech, non dipende dal modello specifico della tastiera.

Conclusione

I risultati ottenuti dallo studio spingono a pensare a un possibile utilizzo dello scenario da parte di malintenzionati: se un hacker sostituisce il dongle ricevitore della tastiera wireless Logitech della vittima, può scoprire le password degli account della vittima con tutte le conseguenze del caso. Non bisogna dimenticare che è possibile anche iniettare le pressioni dei tasti, il che significa che eseguire codice arbitrario sul computer della vittima non rappresenta difficoltà.

E se, all'improvviso, un malintenzionato fosse in grado di modificare da remoto il firmware di qualsiasi dongle Logitech tramite USB? Allora, dongle situati nelle vicinanze potrebbero essere utilizzati per creare una rete di ripetitori e aumentare la distanza di fuga dei dati. Anche se un malintenzionato "finanziariamente supportato" potrebbe usare mezzi moderni di ricezione radio con sistemi a elevata selettività, ricevitori radio sensibili con brevi tempi di ripristino della frequenza e antenne direzionali per "ascoltare" l'input della tastiera e premere i tasti anche da un edificio vicino.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Attrezzatura professionale per la ricezione radio

Poiché il canale di trasmissione dati senza fili della tastiera Logitech è abbastanza ben protetto, il vettore d'attacco trovato richiede l'accesso fisico al ricevitore, il che limita fortemente l'attaccante. L'unica opzione di protezione in questo caso potrebbe essere l'uso di meccanismi di protezione crittografica per il firmware del ricevitore, ad esempio la verifica della firma del firmware caricato sul lato del ricevitore. Purtroppo, però, il NRF24 non supporta questo e non è possibile implementare una protezione nell'architettura attuale del dispositivo. Quindi fate attenzione ai vostri dongle, poiché l'attacco descritto richiede accesso fisico a essi.

Fate attenzione ai vostri dongle: studio sulla sicurezza del ricevitore delle tastiere Logitech

Raccoon Security è un team speciale di esperti del NTC ‘Vulkan’ nel campo della sicurezza informatica pratica, crittografia, progettazione di circuiti, reverse engineering e creazione di software a basso livello.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster