Ajalooliselt kasutab enamik töötajaid Logitechi juhtmeta klaviatuure ja hiiri. Veel kord paroole sisestades küsisime endalt, Raccoon Security meeskonna spetsialistid: kui raske on juhtmevabade klaviatuuride turvamehhanismidest mööda hiilida? Uuring paljastas arhitektuurilisi vigu ja tarkvaravigu, mis võimaldavad juurdepääsu sisendandmetele. Lõike all on see, mis meil on.
Miks Logitech?
Meie arvates on Logitechi sisendseadmed ühed kvaliteetseimad ja mugavamad. Enamik meie käsutuses olevaid seadmeid põhinevad Logitechi lahendusel
Dongle vastuvõtja Logitech Unifying toega
Klaviatuur võib saada ründajatele teabeallikaks. Logitech, võttes arvesse võimalikku ohtu, hoolitses turvalisuse eest - kasutas juhtmevaba klaviatuuri raadiokanalis AES128 krüpteerimisalgoritmi. Esimene mõte, mis ründajal selles olukorras võib olla, on sidumisprotseduuri ajal raadiokanali kaudu edastatava võtmeteabe pealtkuulamine. Lõppude lõpuks, kui teil on võti, saate klaviatuuri raadiosignaale pealt kuulata ja need dekrüpteerida. Kasutajal tuleb aga harva (või isegi mitte kunagi) klaviatuuri ühtlustada ja skaneeriva raadioga häkker peab kaua ootama. Lisaks pole pealtkuulamisprotsessi enda puhul kõik nii lihtne. Viimases 2019. aasta juunis tehtud uuringus avaldas turbeekspert Markus Mengs veebis
Räägime oma Logitechi dongli turvauuringust, mis põhineb Nordic Semiconductori NRF24 SoC-l. Alustame ehk raadiokanalist endast.
Kuidas andmed raadiokanalis "lendavad".
Raadiosignaali aeg-sagedusanalüüsiks kasutasime spektranalüsaatori režiimis Blade-RF seadmel põhinevat SDR-vastuvõtjat (selle kohta saate ka lugeda
SDR Blade-RF seade
Samuti kaalusime võimalust salvestada raadiosignaali kvadratuure vahesagedusel, mida saaks seejärel digitaalse signaalitöötlustehnika abil analüüsida.
Vene Föderatsiooni raadiosageduste riiklik komisjon
2,4 GHz sagedusala spekter
Häirekeskkond vahemikus on üsna keeruline. Sellest hoolimata suutis Logitech pakkuda usaldusväärset ja stabiilset vastuvõttu, kasutades NRF24 transiiveris täiustatud ShockBurst protokolli koos sageduse kohandamise algoritmidega.
Riba kanalid paigutatakse täisarvu MHz positsioonidesse, nagu on määratletud punktis
Klaviatuuri raadiosignaal aja esituses
Vastuvõtja kasutab vastuvõtmise korrelatsiooniprintsiipi, seega sisaldab edastatav pakett preambuli ja aadressiosa. Mürakindlat kodeerimist ei kasutata, andmekeha on krüpteeritud AES128 algoritmiga.
Üldiselt võib Logitechi juhtmevaba klaviatuuri raadioliidest iseloomustada kui statistilise multipleksimise ja sageduse kohandamisega täiesti asünkroonset. See tähendab, et klaviatuuri saatja vahetab kanali iga uue paketi edastamiseks. Vastuvõtja ei tea ette ei edastusaega ega sageduskanalit, vaid teada on ainult nende nimekiri. Vastuvõtja ja saatja kohtuvad kanalis tänu koordineeritud sageduse möödaviigu ja kuulamisalgoritmidele ning täiustatud ShockBursti kinnitusmehhanismidele. Me ei ole uurinud, kas kanalite loend on staatiline. Tõenäoliselt on selle muutus tingitud sageduse kohandamise algoritmist. Vahemiku sagedusressursi kasutamises on näha midagi sagedushüplemise meetodile lähedast (töösageduse pseudojuhuslik häälestamine).
Seega peab ründaja aja-sageduse ebakindluse tingimustes kõigi klaviatuuri signaalide vastuvõtmise tagamiseks pidevalt jälgima kogu 84 positsioonist koosnevat sagedusvõrku, mis nõuab märkimisväärse ajakulu. Siin saab selgeks, miks USB-võtme ekstraheerimise haavatavus (CVE-2019-13054)
Pilk probleemile seestpoolt
Valisime oma uuringu jaoks ühe olemasolevatest Logitechi K330 klaviatuuridest ja Logitechi ühendava dongli.
Logitech K330
Heidame pilgu klaviatuuri sisemusse. Huvitav element, mida tahvlil uurida, on Nordic Semiconductori SoC NRF24 kiip.
SoC NRF24 Logitech K330 juhtmeta klaviatuuriplaadil
Püsivara asub sisemälus, lugemis- ja silumismehhanismid on keelatud. Kahjuks pole püsivara avatud allikates avaldatud. Seetõttu otsustasime läheneda probleemile teisest küljest – uurida Logitechi dongle-vastuvõtja sisemist sisu.
Dongle vastuvõtja "sisemaailm" on üsna huvitav. Dongle on kergesti lahti võetav, pardal on tuttav NRF24 väljalase koos sisseehitatud USB-kontrolleriga ning seda saab ümber programmeerida nii USB-küljelt kui ka otse programmeerijalt.
Logitechi dongle ilma korpuseta
Kuna püsivara värskendamiseks on olemas standardmehhanism
Mida tehti: püsivara RQR_012_005_00028.bin ekstraktiti püsivara värskendustööriista rakenduse kehast. Selle terviklikkuse kontrollimiseks ühendati dongle kontroller kaabliga
Kaabel Logitechi dongli ühendamiseks ChipProg 48 programmeerijaga
Püsivara terviklikkuse kontrollimiseks paigutati see edukalt kontrolleri mällu ja töötas õigesti, klaviatuur ja hiir ühendati Logitech Unifying kaudu dongliga. Muudetud püsivara on võimalik üles laadida standardse värskendusmehhanismi abil, kuna püsivara jaoks puuduvad krüptograafilised kaitsemehhanismid. Uurimise eesmärgil kasutasime füüsilist ühendust programmeerijaga, kuna nii on silumine palju kiirem.
Püsivara uurimine ja rünnak kasutaja sisendile
NRF24 kiip on konstrueeritud traditsioonilise Harvardi arhitektuuri Intel 8051 andmetöötlustuuma põhjal. Tuuma jaoks toimib transiiver välisseadmena ja paigutatakse aadressiruumi registrite komplektina. Kiibi ja lähtekoodi näidete dokumentatsiooni leiate Internetist, nii et püsivara lahtivõtmine pole keeruline. Pöördprojekteerimise käigus lokaliseerisime funktsioonid raadiokanalilt klahvivajutuste andmete vastuvõtmiseks ja nende HID-vormingusse teisendamiseks USB-liidese kaudu hostile edastamiseks. Süstimiskood paigutati vabadele mäluaadressidele, mis sisaldasid tööriistu juhtimise pealtkuulamiseks, algse täitmiskonteksti salvestamiseks ja taastamiseks, samuti funktsionaalset koodi.
Dongli poolt raadiokanalilt vastuvõetud võtme vajutamise või vabastamise pakett dekrüpteeritakse, teisendatakse standardseks HID-aruandeks ja saadetakse USB-liidesesse nagu tavaliselt klaviatuurilt. Uuringu osana pakub meile enim huvi HID-aruande osa HID-aruande osa, mis sisaldab modifikaatorilippude baiti ja 6-baidist massiivi koos klahvivajutuste koodidega (viide, teave HID-i kohta
HID aruande 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;
Vahetult enne HID-struktuuri hostile edastamist võtab sisestatud kood kontrolli enda kätte, kopeerib mällu 8 baiti natiivseid HID-andmeid ja saadab need kiirtekstina raadio külgkanalile. Koodis näeb see välja selline:
//~~~~~~~~~ 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ülgkanal on korraldatud sagedusel, mille me määrame manipuleerimiskiiruse ja paketistruktuuri teatud omadustega.
Transiiveri töö kiibis
Demoduleeritud sarivõtte signaal külgkanalis
Pärast paketi edastamist külgkanalile taastab sisestatud kood transiiveri oleku. Nüüd on see taas valmis algse püsivara kontekstis normaalselt töötama.
Sagedus- ja aeg-sageduspiirkonnas näeb külgkanal välja järgmine:
Külgkanali spektraalne ja aeg-sageduslik esitus
Modifitseeritud püsivaraga NRF24 kiibi töö testimiseks panime kokku aluse, mis sisaldas muudetud püsivaraga Logitechi donglit, juhtmevaba klaviatuuri ja Hiina mooduli baasil kokku pandud vastuvõtjat NRF24 kiibiga.
Logitechi juhtmevaba klaviatuuri raadiosignaali pealtkuulamise ahel
NRF24 põhinev moodul
Pingil, kui klaviatuur töötas normaalselt, jälgisime pärast selle ühendamist Logitechi dongliga selgete andmete edastamist klahvivajutuste kohta külgmises raadiokanalis ja krüpteeritud andmete tavalist edastamist raadio põhiliideses. Seega saime pakkuda kasutaja klaviatuurisisendi otsest pealtkuulamist:
Klaviatuurisisendi pealtkuulamise tulemus
Sisestatud kood põhjustab dongli püsivara töös väikeseid viivitusi. Need on aga liiga väikesed, et kasutaja neid märkaks.
Nagu võite ette kujutada, saab selle ründevektori jaoks kasutada mis tahes Logitechi klaviatuuri, mis ühildub Unifying-tehnoloogiaga. Kuna rünnak on suunatud enamiku Logitechi klaviatuuridega kaasas olevale Unifying-vastuvõtjale, ei sõltu see konkreetsest klaviatuurimudelist.
Järeldus
Uuringu tulemused viitavad vaadeldava stsenaariumi võimalikule kasutamisele ründajate poolt: kui häkker asendab ohvri Logitechi juhtmevaba klaviatuuri dongle-vastuvõtjaga, saab ta koos kõige järgnevaga teada ohvri kontode paroolid. tagajärjed. Ärge unustage, et on võimalik sisestada ka klahvivajutused, mis tähendab, et suvalise koodi käivitamine ohvri arvutis pole keeruline.
Mis siis, kui ründaja saab äkitselt USB kaudu mis tahes Logitechi dongli püsivara kaugjuhtimisega muuta? Seejärel saate tihedalt asetsevate donglite abil luua repiiterite võrgu ja suurendada lekkekaugust. Kuigi "rahaliselt jõukas" ründaja suudab klaviatuuri sisendit "kuulata" ja klahve vajutada isegi naaberhoonest, võimaldavad kaasaegsed raadiovastuvõtuseadmed, millel on väga selektiivsed süsteemid, tundlikud raadiovastuvõtjad lühikese sageduse häälestusajaga ja väga suunaga antennid. klaviatuuri sisendi "kuulamiseks" ja klahvide vajutamiseks isegi naaberhoonest.
Professionaalsed raadioseadmed
Kuna Logitechi klaviatuuri juhtmevaba andmeedastuskanal on üsna hästi kaitstud, nõuab leitud ründevektor füüsilist ligipääsu vastuvõtjale, mis piirab ründajat suuresti. Ainus kaitsevõimalus oleks sel juhul kasutada vastuvõtja püsivara jaoks krüptograafilisi kaitsemehhanisme, näiteks kontrollides vastuvõtja poolel laaditud püsivara allkirja. Kuid kahjuks NRF24 seda ei toeta ja praeguse seadme arhitektuuri raames on kaitset võimatu rakendada. Nii et hoolitsege oma donglite eest, sest kirjeldatud rünnakuvõimalus nõuab neile füüsilist juurdepääsu.
Raccoon Security on Vulcani uurimis- ja arenduskeskuse ekspertide meeskond praktilise infoturbe, krüptograafia, vooluringide disaini, pöördprojekteerimise ja madala taseme tarkvara loomise valdkonnas.
Allikas: www.habr.com