Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Ajalooliselt on enamik töötajaid kasutanud Logitech`i juhtmevabu klaviatuure ja hiiri. Tõstes oma paroole, küsisime - Raccoon Security meeskonna spetsialistid - kui keeruline on mööda minna juhtmevabade klaviatuuride kaitsemehhanismidest? Meie uuring tuvastas arhitektuurilisi puudujääke ja tarkvaravigu, mis võimaldavad pääseda sisestatud andmetele. Allpool on, mida me saavutasime.

Miks Logitech?

Meie arvates on Logitech`i sisendseadmed ühed kvaliteetseimad ja mugavamad. Enamiku meie seadmetest põhinevad Logitech lahendustel. Unifying on universaalne dongle, mis võimaldab ühenduda kuni 6 seadmega. Kõik Logitech Unifying tehnoloogiaga ühilduvad seadmed on varustatud vastava logoga. Lihtne kasutada rakendus võimaldab hallata juhtmevabade klaviatuuride ühendust arvutiga. Klaviatuuri ühendamise protsess Logitech`i dongle`ile ja kogu tehnoloogia on näiteks sisukalt kajastatud siin.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Logitech Unifying toega dongle

Klaviatuur võib saada teabeallikaks pahatahtlikele. Logitech on arvestanud võimalike ohtudega ja rakendanud AES128 šifri radioribal juhtmevabas klaviatuuris. Esimene mõte, mis võib pahatahtlikku isikut sellises olukorras külastada, on võtmeinfo pealtkuulamine raadiokanali kaudu sidumise protsessi ajal. Sest võtme olemasolul on võimalik pealt kuulata klaviatuuri raadiolainesignaale ja neid dekrüpteerida. Kuid kasutajal on väga harva (või isegi kunagi) vajadust Unifying-ühendamise protseduuri järele, ja häkker, kellel on skaneeriv raadiovastuvõtja, peab kaua ootama. Samuti ei ole pealtkuulamise protsess endaga nii lihtne. Viimases 2019. aasta juuni uuringus avaldas turbeekspert Markus Mengs veebis teate Logitech`i USB-donglite vanade püsivigade tuvastamisest. See võimaldab pahatahtlikel isikutel, kellel on füüsiline juurdepääs seadmetele, saada radioriba šifrit võtmeid ja süstida klahvivajutusi (CVE-2019-13054).

Räägime meie Logitech dongli turvalisuse uuringust, mis põhineb Nordic Semiconductori NRF24 SoC-l. Alustame tõenäoliselt kõigepealt raadiosidega.

Kuidas andmed raadiosides liiguvad

Raadiosignaalide sagedusaja analüüsimiseks kasutasime Blade-RF seadme baasil SDR vastuvõtjat spektrianalüsaatorina (sellest saab ka rohkem lugeda) siin).

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

SDR seade Blade-RF

Vaatasime ka võimalust salvestada raadiosignaali kvadratuurvahemikus, et seejärel neid analüüsida digitaalsete signaalitöötluse meetoditega.

Venemaa riiklik raadiosageduste komitee on lubatud kasutamiseks väikese raadiusega seadmetel sagedusvahemikus 2400–2483,5 MHz. See on väga 'rahvarohke' vahemik, kus leidub igasuguseid seadmeid: Wi-Fi, Bluetooth, erinevad kaugjuhtimispuldid, turvasüsteemid, traadita andurid, hiired koos klaviatuuridega ja muud traadita digitaalsed seadmed.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

2,4 GHz sagedusala spekter

Häirekeskkond seda sagedusvahemikus on üsna keeruline. Kuid sellegipoolest on Logitech suutnud tagada usaldusväärse ja stabiilse vastuvõtu, kasutades NRF24 transiiveris Enhanced ShockBurst protokolli koos sageduse kohandamise algoritmidega.

Vahemiku kanalid on paigutatud täisarvu MHz positsioonides, nagu on määratletud spetsiifikatsioon NRF24 Nordic Semiconductor – kokku 84 kanalit sagedusvõrgus. Logitech'i samal ajal kasutatavate sageduskanalite arv on loomulikult väiksem. Me tuvastasime vähemalt nelja kanali kasutamise. Kuna analüsaatori ulatus on piiratud, ei õnnestunud täpset nimekirja kasutatavast sageduspositsioonidest koostada, kuid see polnud ka vajalik. Informatsioon klaviatuurist dongli vastuvõtjasse edastatakse Burst režiimis (lühikeste saatja aktiveerimistega) kahepositsioonilise sageduse modulaatoriga GFSK sümbolikiirusel 1 Mbaud:

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Klaviatuuri raadiosignaal ajaliselt

Vastuvõtja kasutab vastuvõtu korrelatsioonilist printsiipi, seega sisaldab edastatud pakett preambule ja aadressiosa. Häirekindlat kodeerimist ei kohaldata, andmekeha krüpteeritakse AES128 algoritmiga.

Üldiselt võib Logitech'i traadita klaviatuuri raadioside iseloomustada kui täielikult asünkroonset, koos statistilise tihendamise ja sageduse kohandamisega. See tähendab, et klaviatuuri saatja vahetab kanalit iga uue paketi edastamiseks. Vastuvõtjale pole ette teada ei edastuse aega ega sageduskanalit, vaid ainult nende nimekiri. Vastuvõtja ja edastaja kohtuvad kanalites kooskõlastatud sageduste jälgimise ja ümbersuunamise algoritmide ning Enhanced ShockBurst'i kinnituste mehhanismide abil. Me ei uurinud, kas kanalite nimekiri on staatiline. Tõenäoliselt on selle muutmine seotud sageduse kohandamise algoritmiga. Midagi, mis sarnaneb PPRCH meetodile (pseudojuhuslik sageduse ümberkorraldamine), on aimatav sagedusressursi kasutamises.

Seega, sagedusaja määramatuse tingimustes, et tagada kõigi klaviatuurisignaalide vastuvõtt, peab ründaja pidevalt kontrollima kogu 84 positsioonist koosnevat sagedusvõrku, mis nõuab märkimisväärseid ajakulusid. Siit saab aru, miks USB kaudu võtme ekstraktsiooni haavatavus (CVE-2019-13054) allikates positsioneeritakse klahvivajutuste süstimise võimalusena, mitte ründaja juurde pääsemise võimalusena klaviatuurilt sisestatud andmetele. On selge, et traadita klaviatuuri raadioside on üsna keeruline ja tagab usaldusväärse raadioside Logitech'i seadmete vahel 2,4 GHz sagedusalas keeruliste segamistingimuste korral.

Probleemile sissevaade

Uuringuks valisime ühe meie olemasolevatest klaviatuuridest Logitech K330 ja Logitech Unifying dongli.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Logitech K330

Vaadakem klaviatuuri sisse. Uurimisobjektina on huvitav elemendi mitteproportsionaalne SoC NRF24 kiip Nordic Semiconductorilt.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

SoC NRF24 Logitech K330 traadita klaviatuuri plaadil

Puhversüsteem on paigutatud sisemisse mällu, lugemise ja tõrkeotsingu mehhanismid on välja lülitatud. Kahjuks ei ole puhversüsteem avatud allikates avaldatud. Seetõttu otsustasime probleemile läheneda teiselt poolt – uurida Logitech'i dongli vastuvõtja sisemust.

«Sisemine maailm» dongle-vastuvõtja on ehitatud üsna huvitavalt. Dongle on kergesti demonteeritav, sellel on meie tuttav NRF24 koos sisseehitatud USB-kontrolleriga ja seda saab ümber programmeerida nii USB kaudu kui ka otse programmeerija kaudu.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Logitech dongle ilma korpuseta

Kuna olemas on ametlik tööriist tarkvara värskendamiseks, tarkvara Firmware Update Tool (millest saab tõmmata uuendatud versiooni tarkvarast), ei ole dongli sees tarkvara otsimine vajalik.

Tehtud: tarkvara Firmware Update Tool kehast on välja tõmmatud tarkvara RQR_012_005_00028.bin. Selle terviklikkuse kontrollimiseks on dongli kontrolleri ühendatud ChipProg-48 programmeerijaga. Logitech dongle ühendamise kaabel ChipProg 48 programmeerijaga:

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Tarkvara terviklikkuse kontrollimiseks on see õnnestunult paigutatud kontrolleri mällu ja töötab õigesti, klaviatuur ja hiir on dongle'iga ühendatud Logitech Unifying kaudu. Muudetud tarkvara üleslaadimine on võimalik ametliku värskendamise mehhanismi kaudu, kuna tarkvara krüptograafilise kaitse mehhanisme ei ole ette nähtud. Meie uurimistegevuse käigus kasutasime füüsilist ühendust programmeerijaga, kuna see võimaldab kiiremat silumist.

Tarkvara uurimine ja kasutaja sisendi rünnak

NRF24 kiip on projekteeritud Intel 8051 arvutusjao põhjal traditsioonilises Harvardi arhitektuuris. Kiibi jaoks toimib transiiver periferiaalsete seadmena ja see on paigutatud aadressiruumi kui registrite kogum. Kiibi dokumentatsiooni ja näidiseid algkoodist saab leida Internetist, seega ei esinda tugikoodide disassambleerimine raskusi. Tagasipööramise käigus lokaliseerisime funktsioonid, mis saadavad klahvivajutuste andmeid raadiokanalist ja muundavad need HID formaati USB liidese kaudu edastamiseks hostile. Vaba mälusektorites paigutati süstimise kood, mis sisaldas juhtimisvõtu tööriistu, algse täitmise konteksti salvestamise ja taastamise, samuti funktsionaalset koodi.

NRF24 kiip on projekteeritud Intel 8051 arvutusjao põhjal traditsioonilises Harvardi arhitektuuris. Kiibi jaoks toimib transiiver periferiaalsete seadmena ja see on paigutatud aadressiruumi kui registrite kogum. Kiibi dokumentatsiooni ja näidiseid algkoodist saab leida Internetist, seega ei esinda tugikoodide disassambleerimine raskusi. Tagasipööramise käigus lokaliseerisime funktsioonid, mis saadavad klahvivajutuste andmeid raadiokanalist ja muundavad need HID formaati USB liidese kaudu edastamiseks hostile. Vaba mälusektorites paigutati süstimise kood, mis sisaldas juhtimisvõtu tööriistu, algse täitmise konteksti salvestamise ja taastamise, samuti funktsionaalset koodi.

Raadiokanali abil vastuvõetud dongli nuppude vajutamise või vabastamise paketid dekodeeritakse, muudetakse standardseks HID-aruandeks ja suunatakse USB-liidesele nagu tavalisest klaviatuurist. Uuringu raames on meie jaoks kõige huvitavam osa HID-aruandest, mis sisaldab modifikaatoriflagide baitide ja 6 baiti klahvivajutuskoodide massiivi teavet (HID kohta). siin).

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;

HID-struktuuri edastamise eel injectitud kood saab kontrolli, kopeerib mällu 8 baiti natiivseid HID-andmeid ja saadab need avatud kujul külgkanalisse. Koodis näeb see välja järgmiselt:

//~~~~~~~~~ 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 korraldatakse meie poolt määratud sagedusel, omades kindlaid manipuleerimiskiirus ja paketi struktuuri omadusi.

Transiiveri töö kiibil NRF24 toimib olekute grafiku alusel, kuhu on harmooniliselt sisse kirjutatud protokoll Enhanced ShockBurst. Oleme välja selgitanud, et HID-andmete edastamise eel USB-hostis oli transiiver IDLE olekus. See võimaldab selle ohutut ümberkonfigureerimist külgkanali toimimiseks. Injectitud kood haarab juhtimise, salvestab transiiveri algse konfiguratsiooni täielikult ja viib selle uude edastusrežiimi külgkanalisse. Enhanced ShockBurst-i kinnituste mehhanism on sellel režiimil välja lülitatud; HID-andmed edastatakse avatud kujul raadioeetrisse. Paketi struktuur külgkanalis on esitatud alloleval joonisel, signaali epüürid on saadud demoduleerimise järel ja enne andmete taktsünkrooni taastamist. Aadressi väärtus on valitud paketi visuaalse tuvastamise mugavuse tagamiseks.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Demoduleeritud signaal Burst-paketist külgkanalis

Pärast paketi edastamise lõppu külgkanalisse taastab injectitud kood transiiveri oleku. Nüüd on see jälle valmis töötama tavarežiimis originaalse sulamiga.

Sagedus- ja sagedusaegade valdkondades näeb külgkanal välja nagu joonisel on näidatud:

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Spektriline ja sagedusaegade esitus külgkanalist

NRF24 kiibi muudetud püsivara töö kontrollimiseks koostasime stendi, kuhu kuulus Logitech dongle muudetud püsivaraga, traadita klaviatuur ja vastuvõtja, mis on kokku pandud Hiina mooduli baasil NRF24 kiibiga.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Logitechi traadita klaviatuuri raadiolainetoodangu kaaperdamise skeem

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

NRF24 baasil moodul

Stendil, mille normaalne töö seondus klaviatuuri ühendamisega Logitech donglega, täheldasime avatud andmete edastamist klahvivajutuste kohta külgkanalis ja tavapärast krüpteeritud andmete edastamist põhiraadioliideses. Seeläbi suutsime saavutada otsese kasutajate klaviatuuri sisendi purunemise:

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Klahvivajutuste purunemise tulemus

Sissejuhatatud kood tekitab dongle'i püsivara töö ajal kerge viivituse. Siiski on need liiga väikesed, et kasutaja neid märkaks.

Kuidas aru saada, et sellise rünnakusihiga saab kasutada mis tahes Logitech klaviatuuri, mis on ühilduv Unifying tehnoloogiaga. Kuna rünnak on suunatud Unifying vastuvõtjale, mis kuulub enamikku Logitech klaviatuuride komplekti, ei sõltu see konkreetsest klaviatuurimudelist.

Kokkuvõte

Uuringu tulemused annavad mõista, et rünnakustsenaariumi võivad kasutada pahatahtlikud: kui häkker asendab ohvril Logitech traadita klaviatuuri dongli vastuvõtja, saab ta teada ohvri konto paroole, millel on kõik tagajärjed. Ei tasu unustada, et klahvivajutuste sissejuhatamine on samuti võimalik, mis tähendab, et ohvri arvutis suvalise koodi täitmine ei ole keeruline.

Ja mis juhtub, kui pahatahtlik isik saab kaugelt muuta ükskõik millise Logitech dongli püsivara läbi USB? Siis saab lähedalasuvaid dongleid kasutada signaalide edastamiseks ja lekke vahemaad suurendada. Kuigi „finantsiliselt kindel“ pahatahtlik isik suudab tänapäevaste kõrge selektiivsusega raadiovastaanootega, tundlikud raadiovastuvõtjad väikese sageduse muutmise ajaga ja kitsaste suunatud antennidega „kuulata“ klaviatuuri sisendit ja klahvivajutusi isegi naaberruumi.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Professionaalne raadiovastuvõtu seadmed

Kuna Logitech-i klaviatuuri traadita andmeedastuskanal on piisavalt hästi kaitstud, nõuab leitud rünnakuvektor füüsilist ligipääsu vastuvõtjale, mis tugevalt piirab ründajat. Ainsaks kaitsevahendiks sellises olukorras võiks olla krüptograafia mehhanismide kasutamine vastuvõtja püsivara flashimiseks, näiteks allkirja kontrollimine vastuvõtja poolel alla laaditaval püsivaral. Kuid kahjuks NRF24 seda ei toeta ja hetke seadme arhitektuuris pole kaitse rakendamine võimalik. Nii et hoidke oma dongleid hoolega, kuna kirjeldatud rünnakuvariant nõuab füüsilist ligipääsu neile.

Kaitsege oma dongle'id: Logitech klaviatuuride vastupidavuse uurimine

Raccoon Security – NTK "Vulkan" spetsiaalne ekspertide meeskond praktilise infotehnoloogia, krüptograafia, skeemitehnika, tagasiviimise ja madala taseme tarkvara loomise alal.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster