
Ajalooliselt on enamus töötajatest kasutanud Logitech'i traadita klaviatuure ja hiiri. Taaskord oma salasõnu sisestades küsisime – Raccoon Security meeskonna spetsialistid –, kui raske on traadita klaviatuuride kaitsemehhanisme ületada? Tehtud uuringud näitasid arhitektuurilisi puudusi ja tarkvaravigu, mis võimaldavad pääseda sisestatud andmetele. Allpool on, mida me avastasime.
Miks Logitech?
Meie arvates on Logitech'i sisestusseadmed üheks kõige kvaliteetsemaks ja mugavamaks. Enamus meie seadmetest põhinevad Logitech'i lahendusel. on universaalne donglid vastuvõtja, mis võimaldab ühendada kuni 6 seadet. Kõik Logitech Unifying tehnoloogiaga ühilduvad seadmed on varustatud vastava logoga. Lihtne kasutada pärsib traadita klaviatuuride ühendamist arvutiga. Klaviatuuri ühendamise protsess Logitech'i dongli vastuvõtjaga ja ise tehnoloogia kohta on detailsemalt kajastatud näiteks, .

Logitechi Unifying toega dongli vastuvõtja
Klaviatuur võib muutuda häkkerite teabeallikaks. Logitechi ettevõte on arvestanud võimaliku ohuga ja taganud turvalisuse — rakendanud AES128 krüpteerimisalgoritmi juhtmevabas klaviatuuris. Esimene mõte, mis võib häkkerit sellistes olukordades kummitama jääda, on võtmeinfo pealtkuulamine raadiosignaali kaudu sidumise protsessi käigus. Kui võtmed on olemas, on võimalik klaviatuuri raadiosignaale pealt kuulata ja neid dekrüpteerida. Siiski peab kasutaja väga harva (või isegi kunagi) siduma klaviatuuri Unifying-protseduuriga ning häkker peab püsima pikalt skaneeriva vastuvõtja juures. Lisaks ei ole ka häkkimise protsess ise nii lihtne. Juunis 2019. aasta viimasel uurimisel avaldas turbeekspert Markus Mengs võrku Logitechi vanade USB-donglite püsivara haavatavuse tuvastamisest. See võimaldab häkkeritel, kellel on füüsiline juurdepääs seadmetele, saada raadiosignaali krüpteerimisvõtmeid ja sisestada klahvivajutusi (CVE-2019-13054).
Räägime meie uurimisest Logitech'i SoC NRF24 põhjal põhineva dongli turvalisuse kohta. Alustame ehk raadiokanali enda tutvustamisest.
Kuidas andmed raadiokanalis liiguvad
Raadisignaali sagedusaja analüüsiks kasutasime SDR-vastuvõtjat Blade-RF seadme spektrianalüsaatori režiimis (selle kohta saab lugeda ka ).

SDR-seade Blade-RF
Uurisime ka võimalust salvestada raadi signaali kvadratuurkeskmiste sagedusel ning seejärel analüüsida neid digitaalsete signaalitöötluse meetoditega.
Venemaa riikliku raadiosageduste komisjon kõrge sageduse 2400–2483,5 MHz madala võimsusega seadmete kasutamiseks. See on väga „tihe“ sagedusala, kus võib leida ka kõike: Wi-Fi, Bluetooth, erinevad puldid, turvasüsteemid, traadita signalisatsioonid, hiired ja klaviatuurid ning muud traadita digitaalsed seadmed.

2,4 GHz sagedusala spekter
Kanalite olukord ulatuses on piisavalt keeruline. Kuid sellele vaatamata on ettevõte Logitech suutnud tagada usaldusväärse ja stabiilse vastuvõtu, kasutades protokolli Enhanced ShockBurst NRF24 transiiveris koos sagedusreguleerimise algoritmidega.
Kanalid on paigutatud täisarvuliste MHz asenditesse, nagu on määratletud NRF24 Nordic Semiconductor – kokku 84 kanalit sagedusvõrgus. Samuti kasutatavate Logitech sageduskanalite arv on loomulikult väiksem. Oleme tuvastanud, et kasutatakse vähemalt nelja. Piiratud vaatlustelje tõttu, milleks on kasutatud spektri analüsaatorit, ei õnnestunud täpset loetelu kasutatavates sageduspositsioonides koostada, kuid selleks polnud ka vajadust. Teave klaviatuurilt dongli vastuvõtjasse edastatakse Burst-režiimis (lühikeste edastaja aktiveerimistega) kahemõõtmelise sagedusmodulatsiooni GFSK abil simbolikiirusel 1 Mbaud:

Klaviatuuri raadiolaine ajaliselt
Vastuvõtja kasutab korrelatsiooniprintsiipi, seetõttu sisaldab edastatav pakett pealkirja ja aadressiosa. Hälbedest hooliv kodeerimine ei ole rakendatav, andmete sisu krüpteeritakse AES128 algoritmiga.
Üldiselt iseloomustab Logitech'i juhtmevaba klaviatuuri raadioside täielikult asünkroonsena, koos statistilise tihendamise ja sageduse kohandamisega. See tähendab, et klaviatuuri saatja vahetab kanali iga uue paketi edastamiseks. Vastuvõtjale ei ole ette teada ei edastamise aega ega sageduskanalit, ainult nende loetelu. Vastuvõtja ja saatja kohtuvad kanalites kooskõlastatud tihedus- ja sageduse kuulamisalgoritmide ning täiustatud kinnituste mehanismidega Enhanced ShockBurst. Me ei ole uurinud, kas kanalite loetelu on staatiline. Tõenäoliselt on selle muutmine tingitud sageduse kohandamise algoritmist. Midagi, mis on lähedane PPRCH-meetodile (pseudojuhuslik sageduse muutmine), on tuvastatav sagedusressursi kasutamisest.
Seega, sagedus-aja ebamugavuse tingimustes vajab ründaja, et tagada kõigi klaviatuurisignaalide vastuvõtmine, pidevat kontrolli 84 positsioonis asuva sageduste võrgu üle, mis nõuab märkimisväärseid ajakulusid. Selgub, miks USB kaudu võtit väljatõmbamise haavatavus (CVE-2019-13054) on probleem. positsioneeritakse klahvivajutuste süstimise võimalusena, mitte ründaja juurdepääsuna klaviatuuri sisestatud andmetele. Ilmselge on, et traadita klaviatuuri raadioühendus on piisavalt keeruline ning tagab usaldusväärse raadiokõne Logitech seadmete vahel keeruliste häiretingimuste korral 2,4 GHz sagedusalas.
Probleemile lähenemine seestpoolt
Uuringuks valisime ühe meie olemasolevatest klaviatuuridest Logitech K330 ja dongle Logitech Unifying.

Logitech K330
Jätkame klaviatuuri sisemuse uurimist. Huvi pakkuv element plaadil on SoC NRF24 kiip Nordic Semiconductorilt.

SoC NRF24 Logitech K330 traadita klaviatuuri plaadil
Püsivara on salvestatud sisemällu, lugemis- ja silumise mehhanismid on välja lülitatud. Kahjuks ei ole püsivara avalikes allikates saadaval. Seetõttu otsustasime probleemile läheneda teisiti – uurida Logitech dongli sisemust.
Dongli "sisemine maailm" on üsna huvitavalt korraldatud. Dongel on lihtne lahti võtta, see sisaldab tuttavat NRF24 versiooniga, millel on sisseehitatud USB-kontroller ja mida saab uuesti programmeerida nii USB kaudu kui ka otse programmeerijaga.

Logitechi dongel ilma korpuseta
Kuna on olemas tavapärane püsivara uuendamise mehhanism, kasutades (mille kaudu saab välja võtta uuendatud püsivara versiooni), ei ole püsivara otsimine donglist vajalik.
Teostatud: rakenduse Firmware Update Tool-st on välja võetud püsivara RQR_012_005_00028.bin. Selle terviklikkuse kontrollimiseks oli dongli kontroller ühendatud kaabli kaudu :

Logitechi dongli ühendamise kaabel programmeerijaga ChipProg 48
Silumise kontrollimiseks on püsivara edukalt laaditud kontrolleri mällu ja töötab õigesti, klaviatuur ja hiir on ühendatud dongle'iga läbi Logitech Unifying. On võimalik üles laadida muudetud püsivara standardse värskendusmehhanismi abil, kuna mingeid krüptograafilise kaitse mehhanisme püsivara jaoks ei ole ette nähtud. Uuringu eesmärkidel kasutasime füüsilist ühendust programmeerijaga, kuna see võimaldab tõrkeotsingut palju kiiremini läbi viia.
Püsivara uurimine ja rünnak kasutajasisestusele
NRF24 kiip on projekteeritud Intel 8051 protsessori tuumaga traditsioonilise Harvardi arhitektuuri alusel. Tuumaga suheldes toimib transiiver perifeerset seadmena ja asub aadressiruumi registrite komplekti kujul. Kiibi dokumentatsiooni ja näidistestide lähtekoodi leiate Internetist, mistõttu ei ole seadme värskenduse dešifreerimine keeruline. Tagasipööramise käigus lokaliseerisime klahvivajutuste andmete saamise funktsioonid raadiosageduskanalist ja nende konverteerimise HID-formaati, et edastada neid hostile USB-liidese kaudu. Vaba mäluaadressidesse paigutati süstimise kood, kuhu kuulusid juhtimise ülevõtmise, konteksti salvestamise ja taastamise tööriistad, ning funktsionaalne kood.
Raadiotee kaudu aktsepteeritud dongle'i stseenipaketid, mis sisaldavad klahvi vajutamise või vabastamise signaale, dekodeeritakse, muudetakse tavaliseks HID-raportiks ja suunatakse USB-liidesele nagu tavalise klaviatuuri puhul. Uuringu käigus on meie jaoks kõige huvitavam osa HID-raportist, mis sisaldab modifikaatorite lippude baite ja massiivi 6 baidi ulatuses klahvivajutuste koodidega (HID-iga seotud teabe jaoks) ).
HID-raporti struktuur:
// 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;Täpse HID-struktuuri saatmise eel, hõivab sisse süstitud kood kontrolli, kopeerib 8 baiti natiivset HID-andmestikku mällu ja saadab need kõrvalisele raadioteele lahtiselt. Koodis näeb see välja nii:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<Kõrvalkanal korraldatakse meie määratud sagedusel, millel on kindlad manipuleerimiskiirus ja paketistruktuuri omadused.
Transiiveri töö kiibil on graafiku olek, mille sees on harmooniliselt sisse kirjutatud Enhanced ShockBurst protokoll. Me avastasime, et vahetult enne HID-andmete edastamist hosti USB-liidesesse viibis vastuvõtja IDLE olekus. See võimaldab selle ohutut ümberkonfigureerimist tööks kõrvalkanalis. Süstitud kood haarab juhtimise, salvestab vastuvõtja originaalse konfiguratsiooni täielikult ja viib selle uude edastusrežiimi kõrvalkanalisse. Enhanced ShockBurst kinnituse mehhanism on sel moel välja lülitatud, HID-andmed edastatakse raadioside kaudu avatud kujul. Paketi struktuur kõrvalkanalis on esitatud alloleval joonisel, signaali epüürid on saadud demoduulimise ja enne andmete taktisünkrooni taastamist. Aadressi väärtus on valitud paketi visuaalse identifitseerimise mugavuse huvides.

Burst-paketi demoduuleeritud signaal kõrvalkanalis
Pärast paketi edastamise lõpetamist kõrvalkanalis taastab süstitud kood vastuvõtja oleku. Nüüd on see jälle valmis töötama tavarežiimis originaalse püsivara kontekstis.
Sageda ja sagedus-aegsete valdkondade puhul näeb kõrvalkanal välja selline nagu joonisel:

Spektraalne ja sagedus-aegne esitlus kõrvalkanalist
NRF24 kiibi muudetud tarkvara töö kontrollimiseks koostasime seadmestiku, kuhu kuulusid modifitseeritud tarkvaraga Logitech dongle, traadita klaviatuur ja vastuvõtja, mis põhines Hiina NRF24 kiibiga moodulil.

Logitechi traadita klaviatuuri raadiolainete pealtkuulamise skeem

NRF24-põhine moodul
Seadmestikus, kui klaviatuur töötab normaalselt pärast selle ühendamist Logitech donglega, nägime, et avatud klahvivajutuste andmed edastatakse kõrvalraadiokanalis ning krüpteeritud andmed peamisest raadiointerfatsioonist. Seega suutsime tagada kasutaja klaviatuurisisendi otse pealtkuulamise:

Klaviiatuuri sisendi pealtkuulamise tulemus
Süstimiseks sisestatud kood tekitab dongle'i tarkvara töös väikeseid viivitusi. Kuid need on liiga väikesed, et kasutaja neid märkaks.
Nagu mõistate, võib sellise rünnaku vektori jaoks kasutada mis tahes Logitech klaviatuuri, mis on ühilduv Unifying tehnoloogiaga. Kuna rünnak on suunatud Unifying vastuvõtjale, mis on enamiku Logitech klaviatuuride komplektis, ei sõltu see konkreetse klaviatuuri mudelist.
Kokkuvõte
Uuringu tulemused viivad mõttele, et küberkurjategijad võivad kaaluda käsitletud stsenaariumi kasutamist: kui häkker asendab ohvri Logitech juhtmevaba klaviatuuri dongli vastuvõtja, suudab ta saada ohvri kontode paroolid, millel on kõik kaasnevad tagajärjed. Ei tohi unustada, et ka klahvivajutuste süstimine on võimalik, seega ei ole ohvri arvutisse suvalise koodi käitamine keeruline.
Aga kui kurjategija suudab juhtmevaba Logitech dongle'i kaudu USB kaudu eemalt kindlustusi muuta? Sellisel juhul võib lähestikku asuvate donglite vahel luua ülekandevõrgu ja suurendada lekkimise kaugust. Kuigi «rahaülem» kurjategija, kellel on tänapäevased raadio vastuvõtmisvahendid, näiteks kõrge selektiivsusega süsteemid, tundlike raadio vastuvõtjatega, millel on lühike sageduse seadistamise aeg ja kitsas suunatud antennid, võivad «kuulata» klaviatuuri sisestust ja klahve vajutada isegi naaberhoonest.

Professionaalne raadiovastuvõtt
Kuna Logitech'i traadita klaviatuuri andmeside on piisavalt kaitstud, nõuab leitud rünnaku vektor füüsilist juurdepääsu vastuvõtjale, mis piirab ründajat oluliselt. Ainsaks kaitsevariantiks oleks antud juhul krüptograafiliste kaitsemehhanismide kasutamine vastuvõtja firmware'i väljatöötamisel, näiteks allkirja kontrollimine laaditava firmware'i puhul vastuvõtja poolel. Kuid kahjuks NRF24 seda ei toeta ja praeguses seadme arhitektuuris ei saa kaitset ellu viia. Seega hoidke oma dongle'id turvaliselt, kuna kirjeldatud rünnaku variant nõuab nendele füüsilist juurdepääsu.

Raccoon Security on spetsiaalne ekspertide meeskond NTC 'Vulkan' valdkonnas praktilise infotehnoloogia, krüptograafia, skeemitehnika, tagasipööramise ja madala taseme tarkvara loomise alal.
Allikas: habr.com
