Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Din punct de vedere istoric, majoritatea angajaților folosesc tastaturi și mouse-uri fără fir de la Logitech. Introducând încă o dată parolele, noi, specialiștii echipei Raccoon Security, ne-am întrebat: cât de greu este să ocolim mecanismele de securitate ale tastaturilor wireless? Studiul a relevat defecte arhitecturale și erori de software care permit accesul la datele de intrare. Sub tăietura este ceea ce am primit.

De ce Logitech?

În opinia noastră, dispozitivele de intrare Logitech sunt printre cele mai de înaltă calitate și cele mai convenabile. Majoritatea dispozitivelor pe care le avem se bazează pe soluția Logitech Unifying este un receptor dongle universal care vă permite să conectați până la 6 dispozitive. Toate dispozitivele compatibile cu tehnologia Logitech Unifying sunt marcate cu sigla tehnologiei Logitech Unifying. Ușor de folosit cerere Vă permite să gestionați conexiunea tastaturilor fără fir la computer. Procesul de conectare a tastaturii la dongle-ul receptor Logitech, precum și tehnologia în sine, sunt acoperite, de exemplu, aici.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Receptor dongle cu suport Logitech Unifying

Tastatura poate deveni o sursă de informații pentru atacatori. Logitech, ținând cont de posibila amenințare, a avut grijă de securitate - a folosit algoritmul de criptare AES128 în canalul radio al tastaturii fără fir. Primul gând pe care l-ar putea avea un atacator în această situație este să intercepteze informații cheie atunci când acestea sunt transmise pe un canal radio în timpul procedurii de legare. La urma urmei, dacă aveți o cheie, puteți intercepta semnalele radio ale tastaturii și le puteți decripta. Cu toate acestea, utilizatorul rareori (sau chiar niciodată) trebuie să unifice tastatura, iar un hacker cu un radio de scanare va trebui să aștepte mult timp. În plus, nu totul este atât de simplu cu procesul de interceptare în sine. În cel mai recent studiu din iunie 2019, expertul în securitate Markus Mengs a publicat online сообщение despre descoperirea unei vulnerabilități în firmware-ul vechi al dongle-urilor USB Logitech. Permite atacatorilor cu acces fizic la dispozitive să obțină chei de criptare a canalelor radio și să injecteze apăsări de taste (CVE-2019-13054).

Vom vorbi despre studiul nostru de securitate al dongle-ului Logitech bazat pe SoC NRF24 de la Nordic Semiconductor. Să începem, poate, cu canalul de radio în sine.

Cum „zboară” datele într-un canal radio

Pentru analiza timp-frecvență a semnalului radio, am folosit un receptor SDR bazat pe dispozitivul Blade-RF în modul analizor de spectru (puteți citi și despre aceasta aici).

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Dispozitiv SDR Blade-RF

De asemenea, am luat în considerare posibilitatea înregistrării în cuadratură a semnalului radio la o frecvență intermediară, care ar putea fi apoi analizată folosind tehnici de procesare digitală a semnalului.

Comisia de stat pentru frecvențele radio din Federația Rusă permis pentru utilizarea de dispozitive cu rază scurtă, intervalul de frecvență este 2400–2483,5 MHz. Aceasta este o gamă foarte „populată”, în care nu veți găsi nimic: Wi-Fi, Bluetooth, tot felul de telecomenzi, sisteme de securitate, detectoare wireless, șoareci cu tastaturi și alte dispozitive digitale wireless.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Spectrul benzii de 2,4 GHz

Mediul de interferență în gamă este destul de complex. În ciuda acestui fapt, Logitech a reușit să ofere o recepție fiabilă și stabilă prin utilizarea protocolului Enhanced ShockBurst în transceiver-ul NRF24 în combinație cu algoritmi de adaptare a frecvenței.

Canalele dintr-o bandă sunt plasate la poziții întregi MHz, așa cum este definit în specificații NRF24 Nordic Semiconductor - un total de 84 de canale în grila de frecvență. Numărul de canale de frecvență utilizate simultan de Logitech este, desigur, mai mic. Am identificat utilizarea a cel puțin patru. Din cauza lățimii de bandă limitate a analizorului de spectru de semnal utilizat, lista exactă a pozițiilor de frecvență utilizate nu a putut fi determinată, dar acest lucru nu a fost necesar. Informațiile de la tastatură către dongle-ul receptor sunt transmise în modul Burst (turnări scurte la transmițător) folosind modulația de frecvență în două poziții GFSK la o rată de simbol de 1 Mbaud:

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Semnal radio de la tastatură în reprezentarea timpului

Receptorul folosește principiul corelației recepției, astfel că pachetul transmis conține un preambul și o parte de adresă. Codarea rezistentă la zgomot nu este utilizată; corpul de date este criptat cu algoritmul AES128.

În general, interfața radio a tastaturii fără fir Logitech poate fi caracterizată ca fiind complet asincronă cu multiplexarea statistică și adaptarea frecvenței. Aceasta înseamnă că transmițătorul de la tastatură schimbă canalul pentru a transmite fiecare pachet nou. Receptorul nu știe dinainte nici timpul de transmisie, nici canalul de frecvență, dar se cunoaște doar lista acestora. Receptorul și transmițătorul se întâlnesc în canal datorită algoritmilor coordonați de ocolire a frecvenței și ascultare, precum și mecanismelor de confirmare îmbunătățite ShockBurst. Nu am investigat dacă lista de canale este statică. Probabil, modificarea sa se datorează algoritmului de adaptare a frecvenței. Ceva apropiat de metoda saltului de frecvență (reglarea pseudo-aleatoare a frecvenței de operare) poate fi văzut în utilizarea resursei de frecvență a gamei.

Astfel, în condiții de incertitudine timp-frecvență, pentru a asigura recepția garantată a tuturor semnalelor de la tastatură, un atacator va trebui să monitorizeze în mod constant întreaga grilă de frecvență de 84 de poziții, ceea ce necesită o perioadă semnificativă de timp. Aici devine clar de ce vulnerabilitatea de extragere a cheii USB (CVE-2019-13054) în surse poziționată ca abilitatea de a injecta apăsări de taste, mai degrabă decât de a obține accesul unui atacator la datele introduse de la tastatură. Evident, interfața radio a tastaturii wireless este destul de complexă și asigură o comunicare radio fiabilă între dispozitivele Logitech în condiții dificile de interferență în banda de 2,4 GHz.

O privire asupra problemei din interior

Pentru studiul nostru, am ales una dintre tastaturile noastre Logitech K330 existente și un dongle Logitech Unifying.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Logitech K330

Să aruncăm o privire în interiorul tastaturii. Un element interesant de studiat pe placă este cipul SoC NRF24 de la Nordic Semiconductor.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

SoC NRF24 pe placa de tastatură fără fir Logitech K330

Firmware-ul se află în memoria internă, mecanismele de citire și depanare sunt dezactivate. Din păcate, firmware-ul nu a fost publicat în surse deschise. Prin urmare, am decis să abordăm problema din cealaltă parte - să studiem conținutul intern al receptorului dongle Logitech.

„Lumea interioară” a receptorului dongle este destul de interesantă. Dongle-ul se dezasambla cu usurinta, poarta la bord eliberarea familiara NRF24 cu un controler USB incorporat si poate fi reprogramat atat din partea USB, cat si direct de la programator.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Dongle Logitech fără carcasă

Deoarece există un mecanism standard pentru actualizarea firmware-ului folosind Aplicații Firmware Update Tool (din care puteți extrage versiunea actualizată de firmware), nu este nevoie să căutați firmware-ul în interiorul dongle-ului.

Ce s-a făcut: firmware-ul RQR_012_005_00028.bin a fost extras din corpul aplicației Firmware Update Tool. Pentru a-i verifica integritatea, controlerul dongle a fost conectat cu un cablu la programatorul ChipProg-48:

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Cablu pentru conectarea dongle-ului Logitech la programatorul ChipProg 48

Pentru a controla integritatea firmware-ului, acesta a fost plasat cu succes în memoria controlerului și a funcționat corect, tastatura și mouse-ul au fost conectate la dongle prin Logitech Unifying. Este posibil să încărcați firmware modificat folosind mecanismul de actualizare standard, deoarece nu există mecanisme de protecție criptografică pentru firmware. În scopuri de cercetare, am folosit o conexiune fizică la programator, deoarece depanarea este mult mai rapidă în acest fel.

Cercetarea firmware-ului și atacul asupra intrărilor utilizatorului

Cipul NRF24 este proiectat pe baza nucleului de calcul Intel 8051 în arhitectura tradițională Harvard. Pentru miez, transceiver-ul acționează ca un dispozitiv periferic și este plasat în spațiul de adrese ca un set de registre. Documentația pentru cip și exemple de cod sursă pot fi găsite pe Internet, așa că dezasamblarea firmware-ului nu este dificilă. În timpul ingineriei inverse, am localizat funcțiile pentru primirea datelor de apăsare a tastei de pe canalul radio și convertirea acestora în format HID pentru transmiterea către gazdă prin interfața USB. Codul de injectare a fost plasat în adrese de memorie liberă, care includeau instrumente pentru interceptarea controlului, salvarea și restabilirea contextului de execuție original, precum și cod funcțional.

Pachetul de apăsare sau eliberare a unei taste primit de dongle de pe canalul radio este decriptat, convertit într-un raport HID standard și trimis către interfața USB ca de la o tastatură obișnuită. Ca parte a studiului, partea din raportul HID care ne interesează cel mai mult este partea din raportul HID care conține un octet de steaguri modificatori și o matrice de 6 octeți cu coduri de apăsare a tastei (pentru referință, informații despre HID aici).

Structura raportului 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;

Imediat înainte de a transmite structura HID către gazdă, codul injectat preia controlul, copiează 8 octeți de date HID native în memorie și îi trimite către canalul lateral radio în text clar. În cod arată așa:

//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<

Canalul lateral este organizat la o frecvență pe care o setăm cu anumite caracteristici ale vitezei de manipulare și structurii pachetelor.

Funcționarea transceiver-ului în cip NRF24 se bazează pe un grafic de stare în care protocolul Enhanced ShockBurst este integrat organic. Am descoperit că imediat înainte de transmiterea datelor HID către interfața USB gazdă, transceiver-ul era în starea IDLE. Acest lucru face posibilă reconfigurarea lui în siguranță pentru a funcționa într-un canal lateral. Codul injectat interceptează controlul, păstrează configurația originală a transceiver-ului în întregime și o comută la un nou mod de transmisie pe canalul lateral. Mecanismul de confirmare ShockBurst îmbunătățit este dezactivat în acest mod; datele HID sunt transmise în formă clară prin aer. Structura pachetului în canalul lateral este prezentată în figura de mai jos, diagramele de semnal au fost obținute după demodulare și înainte de restabilirea sincronizării ceasului de date. Valoarea adresei a fost aleasă pentru ușurința identificării vizuale a pachetului.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Semnal de rafală demodulat în canalul lateral

După ce pachetul este transmis către canalul lateral, codul injectat restabilește starea transceiver-ului. Acum este din nou gata să funcționeze normal în contextul firmware-ului original.

În domeniile frecvență și timp-frecvență, canalul lateral arată astfel:

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Reprezentarea spectrală și timp-frecvență a canalului lateral

Pentru a testa funcționarea cipului NRF24 cu firmware modificat, am asamblat un suport care includea un dongle Logitech cu firmware modificat, o tastatură wireless și un receptor asamblat pe baza unui modul chinezesc cu cip NRF24.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Circuit de interceptare a semnalului radio de la tastatură fără fir Logitech

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Modul bazat pe NRF24

Pe bancă, cu tastatura funcționând normal, după conectarea acesteia la dongle-ul Logitech, am observat transmiterea de date clare despre apăsările de taste în canalul radio lateral și transmiterea normală a datelor criptate în interfața radio principală. Astfel, am putut oferi interceptarea directă a intrărilor de la tastatură de către utilizator:

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Rezultatul interceptării introducerii de la tastatură

Codul injectat introduce ușoare întârzieri în funcționarea firmware-ului dongle-ului. Cu toate acestea, sunt prea mici pentru ca utilizatorul să le observe.

După cum vă puteți imagina, orice tastatură Logitech compatibilă cu tehnologia Unifying poate fi folosită pentru acest vector de atac. Deoarece atacul vizează receptorul Unifying inclus cu majoritatea tastaturilor Logitech, acesta este independent de modelul specific de tastatură.

Concluzie

Rezultatele studiului sugerează posibila utilizare a scenariului luat în considerare de către atacatori: dacă un hacker înlocuiește victima cu un receptor dongle pentru o tastatură fără fir Logitech, atunci va putea afla parolele pentru conturile victimei cu toate cele care urmează. consecințe. Nu uitați că este posibil să injectați apăsări de taste, ceea ce înseamnă că nu este dificil să executați cod arbitrar pe computerul victimei.

Ce se întâmplă dacă dintr-o dată un atacator poate modifica de la distanță firmware-ul oricărui dongle Logitech prin USB? Apoi, din dongle-uri apropiate, puteți crea o rețea de repetoare și puteți crește distanța de scurgere. Deși un atacator „bogat din punct de vedere financiar” va putea „asculta” intrarea de la tastatură și va apăsa tastele chiar și dintr-o clădire învecinată, echipamentele moderne de recepție radio cu sisteme extrem de selective, receptoare radio sensibile cu timpi scurti de acordare a frecvenței și antene foarte direcționale le vor permite pentru a „asculta” intrarea de la tastatură și apăsați tastele chiar și dintr-o clădire învecinată.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Echipamente radio profesionale

Deoarece canalul de transmisie de date wireless al tastaturii Logitech este destul de bine protejat, vectorul de atac găsit necesită acces fizic la receptor, ceea ce limitează foarte mult atacatorul. Singura opțiune de protecție în acest caz ar fi utilizarea mecanismelor de protecție criptografică pentru firmware-ul receptorului, de exemplu, verificarea semnăturii firmware-ului încărcat pe partea receptorului. Dar, din păcate, NRF24 nu acceptă acest lucru și este imposibil de implementat protecție în arhitectura actuală a dispozitivului. Așa că aveți grijă de dongle-urile dvs., deoarece opțiunea de atac descrisă necesită acces fizic la ele.

Aveți grijă de dongle-urile dvs.: studiu de siguranță pentru receptorul tastaturii Logitech

Raccoon Security este o echipă specială de experți de la Centrul de Cercetare și Dezvoltare Vulcan în domeniul securității informațiilor practice, criptografie, proiectare de circuite, inginerie inversă și creare de software la nivel scăzut.

Sursa: www.habr.com

Adauga un comentariu