Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Istoric, majoritatea angajaților utilizează tastaturi și mouse-uri wireless de la Logitech. Odată din nou, introducând parolele noastre, noi – specialiștii echipei Raccoon Security – ne-am întrebat: cât de greu este să ocolim mecanismele de protecție ale tastaturilor wireless? Studiul efectuat a relevat deficiențe arhitecturale și erori software care permit accesul la datele introduse. În continuare – ce am descoperit.

De ce Logitech?

Considerăm că dispozitivele de introducere de la Logitech sunt printre cele mai calitative și confortabile. Cele mai multe dintre dispozitivele noastre se bazează pe soluția Logitech Unifying – este un receptor dongle universal care permite conectarea de până la 6 dispozitive. Toate dispozitivele compatibile cu tehnologia Logitech Unifying sunt marcate cu logo-ul corespunzător. Aplicația ușor de utilizat permite gestionarea conexiunii tastaturilor wireless la computer. Procesul de conectare a tastaturii la dongle-ul receptor Logitech, precum și tehnologia în sine, sunt detaliate, de exemplu, Dongle-ul receptor cu suport Logitech Unifying aici.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Tastatura poate deveni o sursă de informații pentru atacatori. Compania Logitech, având în vedere posibilele amenințări, s-a ocupat de securitate – a aplicat algoritmul de criptare AES128 în canalul radio al tastaturii wireless. Prima idee care poate apărea în mintea unui atacator în această situație este interceptarea informațiilor cheie în timpul transmisiei prin canalul radio în timpul procedurii de asociere. Deoarece, având cheia, se pot intercepta semnalele radio ale tastaturii și se pot decripta. Cu toate acestea, utilizatorului îi este foarte rar (sau chiar niciodată) necesar să asocieze tastatura prin procedura Unifying, iar hackerul cu un receptor radio scaner trebuie să aștepte mult timp. În plus, nu totul este atât de simplu în ceea ce privește procesul de interceptare. În cel mai recent studiu din iunie 2019, expertul în securitate Markus Mengs a publicat pe internet

un mesaj privind descoperirea unei vulnerabilități în versiunile mai vechi ale firmware-ului dongle-urilor USB Logitech. Aceasta permite atacatorilor cu acces fizic la dispozitive să obțină cheile de criptare ale canalului radio și să injecteze apăsările de taste (CVE-2019-13054). об обнаружении уязвимости в старых прошивках USB-донглов Logitech. Она позволяет злоумышленникам с физическим доступом к устройствам получать ключи шифрования радиоканала и инжектировать нажатия клавиш (CVE-2019-13054).

Vă vom povesti despre cercetarea noastră privind securitatea donglului Logitech bazat pe SoC NRF24 de la Nordic Semiconductor. Să începem, poate, cu canalul radio.

Cum „zboară” datele în canalul radio

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

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Dispozitivul SDR Blade-RF

Am examinat, de asemenea, posibilitatea de a înregistra cuadraturile semnalului radio la frecvența intermediară pentru a le analiza ulterior folosind metode de procesare digitală a semnalelor.

Comisia de stat pentru frecvențele radio din Federația Rusă este autorizată pentru utilizarea dispozitivelor cu rază mică de acțiune în banda de frecvență 2400–2483,5 MHz. Aceasta este o bandă foarte „aglomerată”, în care găsim tot felul de lucruri: Wi-Fi, Bluetooth, diverse telecomenzi, sisteme de securitate, detectoare fără fir, mouse-uri cu tastaturi și alte dispozitive digitale wireless.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Spectrul benzii de 2,4 GHz

Situatia Interferențelor din bandă este destul de complexă. Cu toate acestea, compania Logitech a reușit să asigure o recepție fiabilă și stabilă prin utilizarea protocolului Enhanced ShockBurst în transceiverul NRF24 împreună cu algoritmii de adaptare a frecvenței.

Canalele în bandă sunt plasate pe poziții de valori întregi MHz, așa cum este definit în specificații NRF24 Nordic Semiconductor – în total 84 de canale în rețeaua de frecvențe. 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 folosit, nu am reușit să determinăm lista exactă a pozițiilor de frecvență utilizate, dar nu a fost necesar. Informațiile de la tastatură către donglu receptor sunt transmise în modul Burst (întreruperi scurte ale transmisorului) folosind modularea frecvenței bifazice GFSK la o viteză simbolică de 1 Mbaud:

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Semnalul radio al tastaturii în reprezentarea temporală

Receiver-ul folosește principiul de recepție prin corelație, de aceea pachetul transmis include o preambulă și o parte de adresă. Codificarea rezistentă la interferențe nu este aplicată, corpul datelor fiind criptat cu algoritmul AES128.

În general, interfata radio a tastaturii wireless Logitech poate fi caracterizată ca fiind complet asincronă, cu compresie statistică și adaptare de frecvență. Aceasta înseamnă că transmitatorul tastaturii schimbă canalul pentru a trimite fiecare nou pachet. Receptorul nu știe dinainte nici timpul de transmitere, nici canalul de frecvență, ci doar lista acestora. Receptorul și transmitatorul se întâlnesc pe canal datorită algoritmilor conveniți de ocolire și ascultare a frecvențelor, precum și mecanismelor de confirmare Enhanced ShockBurst. Nu am investigat dacă lista canalelor este statică. Probabil, modificarea sa este determinată de algoritmul de adaptare a frecvenței. Ceva similar cu metoda PPRC (permutarea pseudorandomizată a frecvenței de lucru) se ghicește în utilizarea resursei de frecvențe a domeniului.

Astfel, în condiții de incertitudine în frecvență-timp, pentru a garanta recepția tuturor semnalelor de la tastatură, un atacator va avea nevoie să controleze în mod constant întreaga rețea de frecvențe dintr-un domeniu de 84 de poziții, ceea ce necesită resurse temporale semnificative. Aici devine clar de ce vulnerabilitatea de extragere a cheii prin USB (CVE-2019-13054) în surse este poziționată ca o posibilitate de injectare a apăsărilor de taste, și nu ca acces pentru atacator la datele introduse de la tastatură. Este evident că interfata radio a tastaturii wireless este organizată destul de complex și asigură o comunicare radio fiabilă între dispozitivele Logitech în condiții de mediu electrostatic complicat în banda de 2,4 GHz.

O privire asupra problemei din interior

Pentru studiu, am ales una dintre tastaturile noastre Logitech K330 și dongle-ul Logitech Unifying.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Logitech K330

Să privim în interiorul tastaturii. Un element interesant pentru studiu pe placa de circuit – cipul SoC NRF24 de la Nordic Semiconductor.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

SoC NRF24 pe placa tastaturii wireless Logitech K330

Firmware-ul este plasat în memoria internă, iar 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 dintr-o altă perspectivă – să studiem conținutul intern al dongle-ului receptor Logitech.

«Lumea interioară» a dongle-ului receptor este destul de interesantă. Dongle-ul se demontează ușor, are la bord cunoscutul NRF24 într-o variantă cu un controler USB încorporat și poate fi reprogamat atât prin USB, cât și direct cu un programator.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Dongle Logitech fără carcasă

Deoarece există un mecanism standard de actualizare a firmware-ului folosind aplicația Firmware Update Tool (din care se poate extrage versiunea actualizată a firmware-ului), nu este necesar să căutăm firmware-ul în interiorul dongle-ului.

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

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Cablu de conectare a 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 fiind conectate la dongle prin Logitech Unifying. Este posibilă încărcarea firmware-ului modificat prin mecanismul standard de actualizare, deoarece nu sunt prevăzute mecanisme de protecție criptografică a firmware-ului. În scopuri de cercetare, am folosit o conexiune fizică la programator, deoarece astfel desfășurarea de-ambalării este mult mai rapidă.

Cercetarea firmware-ului și atacul asupra introducerii utilizatorului

Chipul NRF24 este proiectat pe baza nucleului de calcul Intel 8051 într-o arhitectură harvardiană tradițională. Pentru nucleu, transceiverul acționează ca un dispozitiv periferic și este plasat în spațiul de adrese ca un set de registre. Documentația pentru chip și exemple de cod sursă pot fi găsite pe internet, astfel încât dizasembly-ul firmware-ului nu reprezintă o dificultate. În cadrul ingineriei inversate, am localizat funcțiile de obținere a datelor despre apăsarea tastelor din canalul radio și conversia acestora în format HID pentru a fi transmise gazdelor prin interfața USB. În adresele de memorie libere a fost plasat codul de injecție, care a inclus instrumente pentru interceptarea controlului, salvarea și restaurarea contextului original de execuție, precum și codul funcțional.

Pachetul de apăsare sau eliberare a tastei, primit prin dongle de la canalul radio, este decriptat, transformat într-un raport HID standard și trimis către interfața USB ca de la o tastatură obișnuită. În cadrul cercetării, partea din raportul HID care conține byte-ul de mărci modificatoare și un tablou de 6 byte cu codurile apăsatului tastelor reprezintă cel mai mare interes pentru noi. 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 transmiterea structurii HID către gazdă, codul injectat preia controlul, copiază în memorie 8 byte de date HID native și le trimite pe un canal radio secundar în formă deschisă. În cod, aceasta arată astfel:

//~~~~~~~~~ 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 secundar este organizat pe frecvența stabilită de noi, cu caracteristici specifice de viteză de manipulare și structură a pachetului.

Funcționarea transceiver-ului din cipul NRF24 se bazează pe graful stărilor, în care este integrat protocolul Enhanced ShockBurst. Am descoperit că, imediat înainte de transmiterea datelor HID către interfața USB a gazdei, transceiver-ul se afla în starea IDLE. Acest lucru permite reconfigurarea sa sigură pentru a funcționa pe canalul secundar. Codul injectat preia controlul, salvează configurația originală a transceiver-ului în întregime și îl transformă în noul mod de transmitere pe canalul secundar. Mecanismul de confirmare Enhanced ShockBurst este dezactivat în acest mod, iar datele HID sunt transmise în formă deschisă în eterul radio. Structura pachetului în canalul secundar este prezentată în figura de mai jos, epurele semnalului fiind obținute după demodulare și înainte de restaurarea sincronizării temporale a datelor. Valoarea adresei a fost aleasă pentru a facilita identificarea vizuală a pachetului.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Semnalul demodulat al pachetului Burst în canalul secundar

După finalizarea transmisiei pachetului pe canalul secundar, codul injectat restaurează starea transceiver-ului. Acum este din nou pregătit să funcționeze în modul normal în contextul firmware-ului original.

În domeniile de frecvență și frecvență-timp, canalul secundar arată astfel, așa cum este prezentat în figură:

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

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

Pentru a verifica funcționarea cipului NRF24 cu firmware-ul modificat, am creat un stand care include un dongle Logitech cu firmware modificat, o tastatură wireless și un receptor construit pe baza unui modul chinezesc cu cip NRF24.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Schema de interceptare a semnalului radio al tastaturii wireless Logitech

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Modul pe bază de NRF24

Pe stand, în condiții normale de funcționare a tastaturii, după conectarea acesteia la dongle-ul Logitech, am observat transmiterea datelor deschise despre apăsările de taste pe un canal radio secundar și transmiterea normală a datelor criptate pe interfața principală de radio. Astfel, am reușit să obținem interceptarea directă a inputului de la tastatură al utilizatorului:

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Rezultatul interceptării inputului de la tastatură

Codul injectat introduce întârzieri minime în funcționarea firmware-ului dongle-ului. Cu toate acestea, acestea sunt prea mici pentru a fi observate de utilizator.

După cum înțelegeți, pentru un astfel de vector de atac, se poate folosi orice tastatură Logitech compatibilă cu tehnologia Unifying. Deoarece atacul vizează receptorul Unifying, care vine la pachet cu majoritatea tastaturilor Logitech, acesta nu depinde de modelul specific al tastaturii.

Concluzie

Rezultatele obținute din cercetare sugerează o posibilă utilizare a scenariului analizat de către atacatori: dacă un hacker înlocuiește dongle-ul receptor pentru tastatura wireless Logitech a unei victime, atunci va putea să afle parolele conturilor victimei, cu toate consecințele care decurg. Nu trebuie uitat că este de asemenea posibil să se injecteze apăsări de taste, ceea ce înseamnă că executarea de cod arbitrar pe computerul victimei nu reprezintă o dificultate.

Și dacă, dintr-o dată, un atacator poate modifica de la distanță firmware-ul oricărui dongle Logitech prin USB? Atunci, din dongle-uri aflate în apropiere, se poate construi o rețea de retransmițători și se poate crește distanța de scurgere a informațiilor. Deși un atacator „financiar” ar putea folosi echipamente moderne de recepție radio cu sisteme de selecție înaltă, receptoare radio sensibile cu timpi mici de reconversie a frecvenței și antene direcționate îngust pentru a „asculta” inputul de la tastatură și apăsările de taste, chiar și dintr-o clădire vecină.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Echipamente profesionale pentru recepția radio

Deoarece canalul de transmitere wireless pentru tastaturile Logitech este destul de bine protejat, vectorul de atac descoperit necesită acces fizic la receptor, ceea ce limitează semnificativ atacatorul. Singura opțiune de protecție în acest caz ar putea fi utilizarea mecanismelor de protecție criptografică pentru firmware-ul receptorului, de exemplu, verificarea semnăturii firmware-ului încărcat pe partea receptorului. Din păcate, NRF24 nu suportă această funcționalitate, iar în cadrul arhitecturii actuale a dispozitivului, implementarea protecției nu este posibilă. Așadar, aveți grijă de dongle-urile voastre, deoarece opțiunea de atac descrisă necesită acces fizic la ele.

Aveți grijă de dongle-urile dvs.: cercetare privind securitatea receptorului tastaturilor Logitech

Raccoon Security este o echipă specială de experți de la NTС "Vulkan" în domeniul securității informaționale practice, criptografiei, proiectării circuitelor, ingineriei inverse și dezvoltării de software la nivel de bază.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster