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
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
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
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ă
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
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)
O privire asupra problemei din interior
Pentru studiul nostru, am ales una dintre tastaturile noastre Logitech K330 existente și un dongle Logitech Unifying.
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.
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.
Dongle Logitech fără carcasă
Deoarece există un mecanism standard pentru actualizarea firmware-ului folosind
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
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
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
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:
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.
Circuit de interceptare a semnalului radio de la tastatură fără fir 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:
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ă.
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.
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