Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Storicamente, la maggior parte dei dipendenti utilizza tastiere e mouse wireless di Logitech. Invocando nuovamente le proprie credenziali, noi, esperti del team Raccoon Security, ci siamo chiesti: quanto è difficile eludere i meccanismi di protezione delle tastiere wireless? La ricerca condotta ha rivelato difetti architettonici e bug software che permettono di accedere ai dati inseriti. Di seguito, vi mostriamo i risultati ottenuti.

Perché Logitech?

A nostro avviso, i dispositivi di input di Logitech sono tra i più qualitativi e comodi. La maggior parte dei nostri dispositivi è basata 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 dal relativo logo. Facile da usare un'app consente di gestire il collegamento delle tastiere wireless al computer. Dettagliato il processo di connessione della tastiera al dongle ricevitore Logitech, così come la tecnologia stessa, è discussa, ad esempio, qui.

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Ricevitore dongle con supporto Logitech Unifying

La tastiera può diventare una fonte di informazioni per i malintenzionati. La Logitech, considerando la possibile minaccia, ha preso precauzioni per la sicurezza: ha applicato l'algoritmo di crittografia AES128 nel radiocanale della tastiera wireless. La prima cosa che potrebbe pensare un malintenzionato in una situazione del genere è di intercettare informazioni chiave mentre vengono trasmesse via radiocanale durante la procedura di accoppiamento. Infatti, con la chiave giusta, è possibile intercettare i segnali radio della tastiera e decifrarli. Tuttavia, l'utente raramente (o mai) deve accoppiare la tastiera utilizzando la procedura Unifying, e un hacker con un ricevitore radio dovrebbe aspettare a lungo. Inoltre, non è così semplice con il processo stesso di intercettazione. In un'ultima ricerca pubblicata a giugno 2019, l'esperto di sicurezza Markus Mengs ha rilevato messaggio una vulnerabilità nei vecchi firmware dei dongle USB Logitech. Essa consente ai malintenzionati con accesso fisico ai dispositivi di ottenere le chiavi di crittografia del radiocanale e iniettare le pressione dei tasti (CVE-2019-13054).

Parleremo della nostra ricerca sulla sicurezza del dongle Logitech basata 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 (puoi leggere anche di questo) qui).

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Dispositivo SDR Blade-RF

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

Commissione statale per le frequenze radio della Federazione Russa consentita per l'uso da parte di dispositivi a basso raggio nella gamma di frequenze 2400–2483,5 MHz. Questa è una gamma molto 'affollata', in cui si possono incontrare Wi-Fi, Bluetooth, vari telecomandi, sistemi di allerta, sensori wireless, mouse con tastiere e altri dispositivi digitali wireless.

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Spettro della gamma di frequenze 2,4 GHz

L'ambiente di interferenza nella gamma è piuttosto complesso. Tuttavia, Logitech è riuscita a garantire una ricezione affidabile e stabile utilizzando il protocollo Enhanced ShockBurst nel trasmettitore NRF24, abbinato ad algoritmi di adattamento della frequenza.

I canali nella gamma sono posizionati a valori interi in MHz, come definito in specifiche NRF24 Nordic Semiconductor – ci sono in totale 84 canali nella griglia di frequenze. Il numero di canali frequenziali utilizzati contemporaneamente da Logitech è ovviamente inferiore. Abbiamo riscontrato l'uso di almeno quattro. A causa della larghezza di banda limitata dell'analizzatore di spettro dei segnali utilizzato, non è stato possibile determinare un elenco preciso delle posizioni di frequenza utilizzate, ma questo non era necessario. Le informazioni dalla tastiera al dongle ricevitore vengono trasmesse in modalità Burst (accensioni brevi del trasmettitore) utilizzando la modulazione di frequenza GFSK a due posizioni con una velocità simbolica di 1 Mbod:

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Il segnale radio della tastiera in rappresentazione temporale

Il ricevitore utilizza il principio di correlazione nella ricezione, pertanto il pacchetto trasmesso include un'intestazione e una parte indirizzo. La codifica di protezione dai disturbi non è 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 della frequenza. Questo significa che il trasmettitore della tastiera cambia canale per ogni nuovo pacchetto trasmesso. Il ricevitore non conosce in anticipo né il tempo di trasmissione né il canale di frequenza, ma solo la loro lista. Il ricevitore e il trasmettitore si incontrano nel canale grazie ad algoritmi concordati di scansione e ascolto delle frequenze, oltre ai meccanismi di conferma Enhanced ShockBurst. Non abbiamo indagato se la lista dei canali sia statica. È probabile che la sua modifica sia dovuta all'algoritmo di adattamento della frequenza. Qualcosa di simile al metodo PRNG (ricostruzione pseudo-casuale della frequenza operativa) è indiziato nell'uso delle risorse di frequenza della gamma.

In questo modo, in un contesto di incertezza temporale e di frequenza, per garantire la ricezione di tutti i segnali della tastiera, un attaccante dovrebbe monitorare costantemente l'intera rete di frequenze dell'intervallo, composta da 84 posizioni, il che richiede un notevole dispendio di tempo. Qui si comprende perché la vulnerabilità di estrazione della chiave tramite USB (CVE-2019-13054) nelle fonti è posizionata come una possibilità di iniezione della pressione dei tasti, piuttosto che come accesso da parte dell'attaccante ai dati inseriti tramite tastiera. È evidente che l'interfaccia radio della tastiera senza fili è abbastanza complessa e garantisce una comunicazione radio affidabile tra i dispositivi Logitech in condizioni di interferenze complesse nella banda dei 2,4 GHz.

Uno sguardo al problema dall'interno

Per la nostra indagine, abbiamo scelto una delle tastiere Logitech K330 che abbiamo e il dongle Logitech Unifying.

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Logitech K330

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

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

SoC NRF24 sulla scheda della tastiera senza fili Logitech K330

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

Il 'mondo interno' del dongle ricevitore è abbastanza interessante. Il dongle è facilmente smontabile, presenta il noto NRF24 con un controller USB integrato e può essere riprogrammato sia tramite USB che direttamente tramite un programmatore.

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Dongle Logitech senza guscio

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

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

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Cavo di collegamento del dongle Logitech al programmatore ChipProg 48.

Per garantire l'integrità del firmware, è stato correttamente caricato nella memoria del controller e ha funzionato come previsto, mentre la tastiera e il mouse sono stati collegati al dongle tramite Logitech Unifying. È possibile caricare un firmware modificato utilizzando il meccanismo di aggiornamento standard, in quanto non sono previste misure di protezione crittografica per il firmware. A fini di ricerca, abbiamo utilizzato una connessione fisica al programmatore, poiché questo metodo consente un debug molto più rapido.

Analisi del firmware e attacco all'input dell'utente

Il chip NRF24 è progettato sulla base del nucleo computazionale Intel 8051 in un'architettura Harvard tradizionale. Per il nucleo, il ricevitore funge da dispositivo periferico ed è posizionato nello spazio degli indirizzi come un insieme di registri. La documentazione sul chip e esempi di codice sorgente possono essere trovati su Internet, quindi il disassemblaggio del firmware non rappresenta una difficoltà. Durante il reverse engineering, abbiamo localizzato le funzioni per acquisire i dati sulle pressioni dei tasti dal canale radio e convertirli nel formato HID per la trasmissione al host tramite interfaccia USB. Il codice di iniezione è stato posizionato negli indirizzi di memoria liberi, comprendendo strumenti per il monitoraggio del controllo, il salvataggio e il ripristino del contesto di esecuzione originale, oltre al codice funzionale.

Il dongle ricevuto dal canale radio per la pressione o il rilascio dei tasti viene decifrato, convertito in un report HID standard e inviato all'interfaccia USB come se fosse una normale tastiera. Per noi, nell'ambito della ricerca, è particolarmente interessante la parte del report HID che contiene il byte dei flag modificatori e un array di 6 byte con i codici di pressione dei tasti (per riferimento, informazioni su HID qui).

Struttura del report 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 al host, il codice iniettato prende il controllo, copia in memoria 8 byte di dati HID nativi e li invia su un canale radio secondario in chiaro. In codice, si presenta 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 alla frequenza stabilita da noi con determinate caratteristiche di velocità di manipolazione e struttura del pacchetto.

Funzionamento del transceiver nel chip NRF24 è basata su un grafo di stati, in cui è stato organicamente integrato il protocollo Enhanced ShockBurst. Abbiamo scoperto che immediatamente prima della trasmissione dei dati HID nell'interfaccia USB del host, il trasmettitore si trovava in stato di IDLE. Questo consente la sua riconfigurazione sicura per operare nel canale laterale. Il codice iniettato intercetta il controllo, conserva l'intera configurazione originale del trasmettitore e lo trasforma in una nuova modalità di trasmissione nel canale laterale. Il meccanismo di conferma Enhanced ShockBurst in questa modalità è disattivato, e i dati HID vengono trasmessi in chiaro nell'aria. La struttura del pacchetto nel canale laterale è presentata nell'immagine sottostante; i diagrammi del segnale sono stati ottenuti dopo demodulazione e prima del ripristino della sincronizzazione dei dati. Il valore dell'indirizzo è stato scelto per facilitare l'identificazione visiva del pacchetto.

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Segnale demodulato del pacchetto Burst nel canale laterale

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

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

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Rappresentazione spettrale e tempo-frequenza del canale laterale

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

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Schema di intercettazione del segnale radio della tastiera wireless Logitech

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Modulo basato su NRF24

Nel banco di prova, durante il funzionamento normale della tastiera dopo averla collegata al dongle Logitech, abbiamo osservato la trasmissione di dati aperti sulle pressioni dei tasti nel canale radio laterale e la normale trasmissione di dati crittografati nell'interfaccia radio principale. Pertanto, siamo riusciti a garantire l'intercettazione diretta dell'input della tastiera dell'utente:

Proteggi i tuoi dongle: ricerca sulla sicurezza dei 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 notarle.

Come sapete, per questo tipo di attacco è possibile utilizzare qualsiasi tastiera Logitech compatibile con la tecnologia Unifying. Poiché l'attacco è diretto verso il ricevitore Unifying, che è incluso nella maggior parte delle tastiere Logitech, non dipende da un modello specifico di tastiera.

Conclusione

I risultati dello studio suggeriscono un possibile utilizzo di questo scenario da parte di malintenzionati: se un hacker sostituisce il dongle ricevitore della tastiera wireless Logitech della vittima, potrebbe ottenere le password degli account della vittima, con tutte le conseguenze del caso. È importante ricordare che è possibile iniettare anche le pressioni dei tasti, il che significa che eseguire codice arbitrario sul computer della vittima non è affatto difficile.

E se un malintenzionato riuscisse a modificare a distanza il firmware di un dongle Logitech tramite USB? Allora, da dongle vicini, si potrebbe formare una rete di ripetitori e aumentare la distanza di fuga. Anche se un malintenzionato "finanziariamente benestante" potrebbe usare mezzi moderni di ricezione radio con sistemi ad alta selettività, ricevitori radio molto sensibili con brevi tempi di sintonizzazione e antenne direzionali per "ascoltare" gli input da tastiera e premere tasti anche da un edificio vicino.

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Attrezzatura professionale per ricezione radio

Poiché il canale di trasmissione dati wireless delle tastiere Logitech è sufficientemente protetto, il vettore d'attacco trovato richiede un accesso fisico al ricevitore, il che limita notevolmente 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 lato ricevitore. Ma, sfortunatamente, NRF24 non lo supporta e, nell'attuale architettura del dispositivo, è impossibile implementare una protezione. Quindi, prendete cura dei vostri dongle, poiché la variante di attacco descritta richiede accesso fisico a essi.

Proteggi i tuoi dongle: ricerca sulla sicurezza dei ricevitore delle tastiere Logitech

Raccoon Security è un team speciale di esperti del NTC 'Vulkan' nel campo della sicurezza informatica pratica, crittografia, design elettronico, 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