Stòricamente, a maiò parte di l'impiegati utilizanu tastiere wireless è mouse da Logitech. Intruducendu una volta di più i nostri password, noi, i specialisti di a squadra di Raccoon Security, ci dumandemu: quantu hè difficiule di aggirari i miccanismi di sicurezza di i tastieri wireless? U studiu hà revelatu difetti architetturali è errori di software chì permettenu l'accessu à e dati di input. Sottu u cut hè ciò chì avemu avutu.
Perchè Logitech?
In u nostru parè, i dispositi di input Logitech sò trà a più alta qualità è più convenienti. A maiò parte di i dispositi chì avemu sò basati nantu à a suluzione Logitech
Ricevitore Dongle cù supportu Logitech Unifying
U teclatu pò diventà una fonte d'infurmazioni per l'attaccanti. Logitech, tenendu in contu a pussibuli minaccia, hà pigliatu cura di a sicurità - hà utilizatu l'algoritmu di criptografia AES128 in u canali radio di u teclatu wireless. U primu pensamentu chì un attaccu puderia avè in questa situazione hè di intercepte l'infurmazioni chjave quandu hè trasmessa nantu à un canali radio durante a prucedura di ubligatoriu. Dopu tuttu, sè vo avete una chjave, pudete intercepte i signali di radiu di u teclatu è discifralli. Tuttavia, l'utilizatore raramente (o ancu mai) hà da unificà u teclatu, è un pirate cù una radiu di scanning duverà aspittà assai tempu. Inoltre, micca tuttu hè cusì simplice cù u prucessu d'intercepzione stessu. In l'ultimu studiu in ghjugnu 2019, l'espertu di sicurezza Markus Mengs hà publicatu in linea
Parleremu di u nostru studiu di sicurità di u dongle Logitech basatu annantu à u NRF24 SoC da Nordic Semiconductor. Cuminciamu, forse, cù u canali radio stessu.
Cumu i dati "volanu" in un canali radio
Per l'analisi di u tempu-frequenza di u segnu radio, avemu usatu un ricevitore SDR basatu annantu à u dispositivu Blade-RF in modu di analizatore di spettru (pudete ancu leghje nantu à questu.
Dispositivo SDR Blade-RF
Avemu ancu cunsideratu a pussibilità di registrà quadrature di u signale radio à una freccia intermedia, chì puderia esse analizatu cù tecniche di trasfurmazioni di signali digitale.
Cummissione statale di frequenze radio in a Federazione Russa
Spettru di a banda 2,4 GHz
L'ambiente di interferenza in a gamma hè abbastanza cumplessu. Malgradu questu, Logitech hà sappiutu furnisce una ricezione affidabile è stabile per mezu di l'usu di u protocolu Enhanced ShockBurst in u transceiver NRF24 in combinazione cù algoritmi di adattazione di frequenza.
I canali in una banda sò posti in pusizioni integer MHz cum'è definitu in
Segnale radio da tastiera in rapprisintazioni di u tempu
U receptore usa u principiu di correlazione di a ricezione, cusì u pacchettu trasmessu cuntene un preambulu è una parte di indirizzu. A codificazione resistente à u rumore ùn hè micca utilizata; u corpu di dati hè criptatu cù l'algoritmu AES128.
In generale, l'interfaccia radio di u teclatu wireless Logitech pò esse carattarizatu cum'è completamente asincrona cù multiplexing statisticu è adattazione di frequenza. Questu significa chì u trasmettitore di u teclatu cambia u canali per trasmette ogni novu pacchettu. U ricevitore ùn cunnosce in anticipu nè u tempu di trasmissione nè u canali di freccia, ma solu a so lista hè cunnisciuta. U ricevitore è u trasmettitore si scontranu in u canali grazie à l'algoritmi di bypass di frequenza coordinata è di ascolta, è ancu à i meccanismi di ricunniscenza ShockBurst Enhanced. Ùn avemu micca investigatu se a lista di canali hè statica. Probabilmente, u so cambiamentu hè dovutu à l'algoritmu di adattazione di frequenza. Qualcosa vicinu à u metudu di salto di freccia (sintonizazione pseudo-aleatoriu di a freccia operativa) pò esse vistu in l'usu di a risorsa di freccia di a gamma.
Cusì, in cundizioni di incertezza tempu-frequenza, per assicurà a ricezione garantita di tutti i signali di u teclatu, un attaccu hà bisognu di monitorà constantemente tutta a reta di freccia di 84 pusizioni, chì esige una quantità significativa di tempu. Quì diventa chjaru perchè a vulnerabilità di estrazione di chjave USB (CVE-2019-13054)
Un sguardu à u prublema da l'internu
Per u nostru studiu, avemu sceltu unu di i nostri tastieri Logitech K330 esistenti è un dongle Logitech Unifying.
Logitech K330
Fighjemu un ochju in u teclatu. Un elementu interessante nantu à u bordu per studià hè u chip SoC NRF24 da Nordic Semiconductor.
SoC NRF24 nantu à a tastiera senza fili Logitech K330
U firmware hè situatu in a memoria interna, i meccanismi di lettura è di debugging sò disattivati. Sfortunatamente, u firmware ùn hè micca publicatu in fonti aperti. Dunque, avemu decisu di avvicinà u prublema da l'altra parte - per studià u cuntenutu internu di u receptore dongle Logitech.
U "mondu internu" di u receptore dongle hè abbastanza interessante. U dongle hè facilmente disassemblatu, porta à bordu a liberazione familiar NRF24 cun un controller USB integratu è pò esse riprogrammatu sia da u latu USB sia direttamente da u programatore.
Dongle Logitech senza alloghju
Siccomu ci hè un mecanismu standard per aghjurnà u firmware utilizendu
Ciò chì hè statu fattu: u firmware RQR_012_005_00028.bin hè stata estratta da u corpu di l'applicazione Firmware Update Tool. Per verificà a so integrità, u controller di dongle era cunnessu cù un cable
Cable per cunnette u dongle Logitech à u programatore ChipProg 48
Per cuntrullà l'integrità di u firmware, hè stata pusata bè in a memoria di u controller è hà travagliatu bè, u teclatu è u mouse sò stati cunnessi à u dongle via Logitech Unifying. Hè pussibule cullà u firmware mudificatu cù u mecanismu di l'aghjurnamentu standard, postu chì ùn ci sò micca miccanismi di prutezzione criptografica per u firmware. Per scopi di ricerca, avemu usatu una cunnessione fisica à u programatore, postu chì a debugging hè assai più veloce in questu modu.
Ricerca di firmware è attaccu à l'input di l'utilizatori
U chip NRF24 hè cuncepitu basatu annantu à u core di computing Intel 8051 in l'architettura tradiziunale di Harvard. Per u core, u transceiver agisce cum'è un dispositivu perifericu è hè situatu in u spaziu di indirizzu cum'è un settore di registri. A documentazione per u chip è l'esempii di codice fonte pò esse truvata in Internet, cusì disassemble u firmware ùn hè micca difficiule. Durante l'ingenieria inversa, avemu localizatu e funzioni per riceve dati di tastu da u canali radio è cunvertisce in u formatu HID per a trasmissione à l'ospitu per via di l'interfaccia USB. U codice di l'iniezione hè stata posta in l'indirizzi di memoria libera, chì includenu strumenti per intercepte u cuntrollu, salvà è restaurà u cuntestu d'esekzione originale, è ancu u codice funziunale.
U pacchettu di pressu o di liberazione di una chjave ricevuta da u dongle da u canali radio hè decriptatu, cunvertitu in un rapportu HID standard è mandatu à l'interfaccia USB cum'è da un teclatu regulare. Comu parte di u studiu, a parte di u rapportu HID chì hè di più interessu per noi hè a parte di u rapportu HID chì cuntene un byte di bandieri modificatori è un array di 6 bytes cù codici di tastu (per riferimentu, infurmazione nantu à HID).
Struttura di rapportu 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 trasmette a struttura HID à l'ospiti, u codice injected piglia u cuntrollu, copia 8 bytes di dati HID nativi in memoria è l'invia à u canali di u latu di a radiu in testu chjaru. In u codice si vede cusì:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<
U canali laterale hè urganizatu à una frequenza chì avemu stabilitu cù certe caratteristiche di a velocità di manipulazione è a struttura di pacchetti.
Funzionamentu di u transceiver in u chip
Segnale Burst Burst Demodulatu in u Canale Laterale
Dopu chì u pacchettu hè trasmessu à u canali laterale, u codice injected restaurà u statu di u transceiver. Avà hè di novu prontu à travaglià nurmalmente in u cuntestu di u firmware originale.
In i duminii di frequenza è frequenza di u tempu, u canali laterale pare cusì:
Rappresentazione spettrale è di frequenza di u tempu di u canale laterale
Per pruvà l'operazione di u chip NRF24 cù firmware mudificatu, avemu assemblatu un stand chì includeva un dongle Logitech cù firmware mudificatu, un teclatu wireless è un receptore assemblatu nantu à a basa di un modulu cinese cù u chip NRF24.
Circuitu d'intercettazione di signali radio di u tastieru wireless Logitech
Modulu basatu NRF24
Nantu à u bancu, cù u teclatu chì opera nurmale, dopu avè cunnessu à u dongle Logitech, avemu osservatu a trasmissione di dati chjaru nantu à i tasti in u canali radio laterale è a trasmissione normale di dati criptati in l'interfaccia di radiu principale. Cusì, pudemu furnisce l'intercepzione diretta di l'input di u teclatu di l'utilizatori:
U risultatu di l'interceptazione di l'input di u teclatu
U codice injected introduce un liggeru ritardu in u funziunamentu di u firmware dongle. Tuttavia, sò troppu chjuchi per l'utilizatore per nutà.
Comu pudete imagine, qualsiasi teclatu Logitech chì hè cumpatibile cù a tecnulugia Unifying pò esse usatu per questu vettore d'attaccu. Siccomu l'attaccu mira à u receptore Unifying inclusu cù a maiò parte di i tastieri Logitech, hè indipendente da u mudellu di teclatu specificu.
cunchiusioni
I risultati di u studiu suggerenu l'utilizazione pussibule di u scenariu cunsideratu da l'attaccanti: se un pirate pirate rimpiazza a vittima cù un receptore dongle per un teclatu wireless Logitech, allora serà capace di scopre e password à i cunti di a vittima cù tutte e conseguenze. cunsequenze. Ùn vi scurdate chì hè ancu pussibule inject keystrokes, chì significa chì ùn hè micca difficiule di eseguisce codice arbitrariu in l'urdinatore di a vittima.
E se di colpu un attaccu pò mudificà remotamente u firmware di qualsiasi dongle Logitech via USB? Allora, da i dongles vicinu, pudete creà una reta di ripetitori è cresce a distanza di fuga. Ancu se un attaccante "riccu finanziariu" puderà "ascoltà" l'input di u teclatu è pressu i tasti ancu da un edifiziu vicinu, l'equipaggiu di ricezione radio mudernu cù sistemi altamente selettivi, ricevitori radio sensibili cù tempi di sintonizazione di frequenze brevi è antenne altamente direzzione li permettenu. per "ascoltà" l'input di u teclatu è appughjà i tasti ancu da un edifiziu vicinu.
Equipamentu radio prufessiunale
Siccomu u canali di trasmissione di dati in wireless di u teclatu Logitech hè abbastanza bè prutettu, u vettore d'attaccu trovu esige un accessu fisicu à u receptore, chì limita assai l'attaccante. L'unica opzione di prutezzione in questu casu seria di utilizà miccanismi di prutezzione criptografica per u firmware di u receptore, per esempiu, cuntrollà a firma di u firmware caricatu nantu à u latu di u receptore. Ma, sfurtunatamenti, NRF24 ùn sustene micca questu è hè impussibile implementà a prutezzione in l'architettura di u dispusitivu attuale. Allora pigliate cura di i vostri dongles, perchè l'opzione di attaccu descritta richiede un accessu fisicu à elli.
Raccoon Security hè una squadra speciale di esperti da u Vulcan Research and Development Center in u campu di a sicurità di l'infurmazioni pratiche, a criptografia, u disignu di circuiti, l'ingegneria inversa è a creazione di software di pocu livellu.
Source: www.habr.com