
Historie, plej multaj dungitoj uzas sendratajn klavarojn kaj musojn de Logitech. Denove, enmetante niajn pasvortojn, ni - la specialistoj de la teamo Raccoon Security - demandis al ni mem: kiom malfacile estas preteriri la protektajn mekanismojn de sendrataj klavaroj? La farita esplorado rivelis arkitekturajn difektojn kaj programarajn erarojn, kiuj permesas aliron al la enmetitaj datumoj. Sub la tranĉo - kion ni ricevis.
Kial Logitech?
Laŭ nia opinio, la enigaj aparatoj de Logitech estas inter la plej bonkvalitaj kaj plej oportunaj. La plej multaj el la aparatoj, kiujn ni havas, baziĝas sur la solvo de Logitech. – estas universala ricevilo, kiu permesas al vi konekti ĝis 6 aparatojn. Ĉiuj aparatoj kongruaj kun la teknologio Logitech Unifying estas markitaj per la koncerna emblemo. Facile uzebla permesas al vi administri la konekton de sendrataj klavaroj al via komputilo. La procezo de konekto de klavaro al Logitech-adaptilo, same kiel la teknologio mem, estas detale kovritaj, ekzemple, .

Logitech Unifying Dongle Ricevilo
La klavaro povas fariĝi fonto de informoj por entrudiĝintoj. Logitech, konsiderante la eblan minacon, zorgis pri sekureco - ĝi uzis la ĉifradan algoritmon AES128 en la radiokanalo de la sendrata klavaro. La unua penso, kiu povas veni al entrudiĝinto en ĉi tiu situacio, estas la interkapto de ŝlosilaj informoj kiam ili estas transdonitaj tra la radiokanalo dum la pariĝa proceduro. Fine, se vi havas la ŝlosilon, vi povas interkapti la radiosignalojn de la klavaro kaj deĉifri ilin. Tamen, la uzanto tre malofte (aŭ eĉ neniam) devas pariĝi la klavaron kun la Unifying-proceduro, kaj hakisto kun skana radioricevilo devos atendi longe. Krome, ne ĉio estas tiel simpla kun la interkapta procezo mem. En la plej nova studo en junio 2019, sekureca spertulo Marcus Mengs publikigis interrete... pri la malkovro de vundebleco en malnova firmvaro de Logitech USB-adaptiloj. Ĝi permesas al atakantoj kun fizika aliro al la aparatoj akiri ĉifroŝlosilojn de radiokanaloj kaj injekti klavopremojn (CVE-2019-13054).
Ni rakontos al vi pri nia esplorado pri la sekureco de la Logitech-adaptilo bazita sur la NRF24 SoC de Nordic Semiconductor. Ni komencu per la radiokanalo mem.
Kiel datumoj "flugas" en radiokanalo
Por frekvenc-tempa analizo de la radiosignalo, ni uzis SDR-ricevilon bazitan sur la aparato Blade-RF en spektra analizilo (vi ankaŭ povas legi pri tio ĉi tie) ).

SDR Klingo-RF Aparato
Ni ankaŭ konsideris la eblecon registri la kvadraturojn de la radiosignalo ĉe la meza frekvenco, por poste analizi ilin per ciferecaj signal-prilaboraj teknikoj.
Ŝtata Komisiono pri Radiofrekvencoj en la Rusia Federacio por uzo per mallongdistancaj aparatoj, la frekvenca gamo estas 2400–2483,5 MHz. Ĉi tiu estas tre "populata" gamo, en kiu oni povas trovi ĉion: Wi-Fi, Bluetooth, ĉiuspecajn teleregilojn, sekursistemojn, sendratajn detektilojn, musojn kun klavaroj kaj aliajn sendratajn ciferecajn aparatojn.

Spektro de la 2,4 GHz-bendo
La interfera medio en la distanco estas sufiĉe kompleksa. Tamen, malgraŭ tio, Logitech sukcesis provizi fidindan kaj stabilan ricevon uzante la protokolon Enhanced ShockBurst en la NRF24-ricevilo kombine kun frekvenc-adaptigaj algoritmoj.
La kanaloj en la intervalo estas metitaj ĉe entjeraj MHz-pozicioj kiel difinite en NRF24 Nordic Semiconductor – nur 84 kanaloj en la frekvenca krado. La nombro de samtempe uzataj frekvencaj kanaloj fare de Logitech estas, kompreneble, malpli. Ni trovis almenaŭ kvar uzatajn. Pro la limigita bendlarĝo de la aplikata signala spektra analizilo, ne eblis determini la precizan liston de uzataj frekvencaj pozicioj, sed ne necesis fari tion. Informoj de la klavaro al la adaptilo-ricevilo estas transdonitaj en Eksploda reĝimo (mallonga ŝaltado de la sendilo) uzante du-pozician frekvencan moduladon GFSK je simbola rapido de 1 Mbaŭdo:

Klavara radiosignalo en temporeprezentado
La ricevilo uzas la korelacian principon de ricevo, do la sendita pakaĵeto enhavas preambulon kaj adresan parton. Bruorezista kodado ne estas uzata, la datenkorpo estas ĉifrita per la algoritmo AES128.
Ĝenerale, la radiointerfaco de la sendrata klavaro Logitech povas esti karakterizita kiel plene nesinkrona kun statistika multipleksado kaj frekvenca adaptado. Tio signifas, ke la klavardissendilo ŝanĝas la kanalon por sendi ĉiun novan pakaĵeton. La ricevilo ne scias la dissendotempon aŭ la frekvencan kanalon anticipe, sed nur ilian liston. La ricevilo kaj sendilo renkontiĝas en la kanalo danke al kunordigitaj algoritmoj por preteriri kaj aŭskulti frekvencojn, same kiel al konfirmaj mekanismoj de Enhanced ShockBurst. Ni ne esploris ĉu la kanallisto estas statika. Probable, ĝia ŝanĝo ŝuldiĝas al la frekvenca adapta algoritmo. Io simila al la frekvenca saltado (pseŭdohazarda frekvenca saltado) estas divenata en la uzo de la frekvenca rimedo de la gamo.
Tiel, en kondiĉoj de frekvenc-tempa necerteco, por garantii la ricevon de ĉiuj klavarsignaloj, atakanto devos konstante monitori la tutan frekvencan kradon de la 84-pozicia gamo, kio postulas signifajn tempo-elspezojn. Ĉi tie klariĝas kial la vundebleco pri eltiro de USB-ŝlosilo (CVE-2019-13054) estas poziciigita kiel ebleco enmeti klavopremojn, kaj ne por akiri aliron fare de entrudulo al la datumoj enigitaj de la klavaro. Estas evidente, ke la radiointerfaco de la sendrata klavaro estas sufiĉe kompleksa kaj provizas fidindan radiokomunikadon inter Logitech-aparatoj en malfacilaj interferkondiĉoj en la 2,4 GHz-frekvenco.
Rigardo al la problemo de interne
Por nia esplorado, ni elektis unu el niaj ekzistantaj klavaroj Logitech K330 kaj Logitech Unifying-adaptilon.

Logitech K330
Ni rigardu la internon de la klavaro. Interesa elemento por ekzameni sur la tabulo estas la SoC NRF24-ĉipo de Nordic Semiconductor.

NRF24 SoC sur Logitech K330 Sendrata Klavarplato
La firmvaro troviĝas en la interna memoro, la legado kaj sencimigo estas malŝaltitaj. Bedaŭrinde, la firmvaro ne estas publikigita en malfermaj fontoj. Tial ni decidis alproksimiĝi al la problemo el alia perspektivo - studi la internan enhavon de la Logitech-adaptilo-ricevilo.
La "interna mondo" de la ricevilo estas sufiĉe interesa. La adaptilo estas facile malmuntebla, portas la konatan NRF24 en la eldono kun enkonstruita USB-regilo kaj povas esti reprogramita kaj de la USB-flanko kaj rekte fare de la programisto.

Logitech-adaptilo sen enfermaĵo
Ĉar ekzistas norma mekanismo por ĝisdatigi la firmvaron uzante (el kiu vi povas eltiri la ĝisdatigitan version de la firmvaro), ne necesas serĉi la firmvaron ene de la adaptilo.
Kio estis farita: la firmvaro RQR_012_005_00028.bin estis eltirita el la korpo de la aplikaĵo Firmware Update Tool. Por kontroli ĝian integrecon, la adaptilo estis konektita per rubanda kablo. :

Kablo por konekti Logitech-adaptilon al ChipProg 48-programilo
Por kontroli la integrecon de la firmvaro, ĝi estis sukcese metita en la memoron de la regilo kaj funkciis ĝuste, la klavaro kaj muso estis konektitaj al la adaptilo per Logitech Unifying. Eblas alŝuti modifitan firmvaron uzante la norman ĝisdatigan mekanismon, ĉar ne ekzistas kriptografiaj firmvaraj protektaj mekanismoj. Por la celoj de la studo, ni uzis fizikan konekton al la programilo, ĉar tio multe plirapidigas la sencimigon.
Firmvara Esplorado kaj Uzanto-Eniga Atako
La ĉipo NRF24 estas desegnita surbaze de la komputila kerno Intel 8051 en la tradicia Harvard-arkitekturo. Por la kerno, la ricevilo agas kiel periferia aparato kaj estas metita en la adresspacon kiel aro da registroj. La dokumentado por la ĉipo kaj ekzemploj de fonttekstoj troveblas en la Interreto, do malmunti la firmvaron ne estas malfacile. Dum inversa inĝenierado, ni lokalizis la funkciojn de ricevado de klavopremaj datumoj de la radiokanalo kaj konvertado de ili al la HID-formato por transdono al la gastiganto per la USB-interfaco. Injekta kodo estis metita en liberajn memoradresojn, kiuj inkluzivis ilojn por interkapti kontrolon, konservi kaj restarigi la originalan plenumkuntekston, same kiel funkcian kodon.
La klavoprema aŭ klavoliberiga pakaĵo ricevita de la adaptilo de la radiokanalo estas malĉifrita, konvertita en norman HID-raporton kaj sendita al la USB-interfaco kvazaŭ de normala klavaro. En la kunteksto de la studo, la parto de la HID-raporto, kiu plej interesas nin, estas tiu, kiu enhavas la modifilan flagbajton kaj la 6-bajtan aron kun klavopremaj kodoj (por referenco, vidu informojn pri HID). ).
Strukturo de HID-raporto:
// 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;Ĵus antaŭ ol la HID-strukturo estas transdonita al la gastiganto, la injektita kodo prenas kontrolon, kopias 8 bajtojn da denaskaj HID-datumoj en la memoron, kaj sendas ilin al la flanka radiokanalo en klarteksto. En la kodo, ĝi aspektas jene:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<La flanka kanalo estas organizita je frekvenco, kiun ni difinis, kun certaj karakterizaĵoj de manipula rapido kaj pakaĵostrukturo.
Funkciado de la ricevilo en la ĉipo baziĝas sur statografo, kiu organike integras la protokolon Enhanced ShockBurst. Ni malkovris, ke tuj antaŭ la transdono de HID-datumoj al la gastiga USB-interfaco, la ricevilo estis en la IDLE-stato. Ĉi tio ebligas sekure rekonfiguri ĝin por operacio en la flanka kanalo. La injektita kodo kaptas la kontrolon, plene konservas la originalan agordon de la ricevilo, kaj ŝaltas ĝin al nova transdona reĝimo sur la flanka kanalo. La konfirma mekanismo Enhanced ShockBurst estas malŝaltita en ĉi tiu reĝimo, kaj HID-datumoj estas transdonataj en klara teksto tra la aero. La strukturo de la pakaĵo en la flanka kanalo estas montrita en la suba figuro, la signaldiagramoj estis akiritaj post demodulacio kaj antaŭ restarigo de la datenhorloĝa sinkronigado. La adresvaloro estis elektita por facileco de vida identigo de la pakaĵo.

Demodulita Eksploda pakaĵsignalo en la flanka kanalo
Post kiam la pakaĵeto estas transdonita al la flanka kanalo, la injektita kodo restarigas la staton de la sendilo. Nun ĝi pretas funkcii en la normala reĝimo denove en la kunteksto de la originala firmvaro.
En la frekvencaj kaj tempo-frekvencaj domajnoj, la flanka kanalo aspektas kiel tiu montrita en la figuro:

Spektra kaj temp-frekvenca reprezentado de la flanka kanalo
Por testi la funkciadon de la peceto NRF24 kun modifita firmvaro, ni kunmetis standon, kiu inkluzivis Logitech-adaptilon kun modifita firmvaro, sendratan klavaron kaj ricevilon kunmetitan surbaze de ĉina modulo kun peceto NRF24.

Logitech Sendrata Klavaro Radio Signala Interkapta Skemo

NRF24-bazita modulo
Sur la stando, dum normala klavarfunkciado post konekto al la Logitech-adaptilo, ni observis la dissendon de malfermaj datumoj pri klavopremoj en la flanka radiokanalo kaj normalan dissendon de ĉifritaj datumoj en la ĉefa radiointerfaco. Tiel, ni sukcesis certigi rektan interkapton de la klavar-enigo de la uzanto:

Rezulto de klavarinterkapto
La injektita kodo enkondukas malgrandajn prokrastojn en la funkciado de la firmvaro de la adaptilo. Tamen, ili estas tro malgrandaj por ke la uzanto rimarku ilin.
Kiel vi povas vidi, ajna Logitech-klavaro kongrua kun Unifying-teknologio povas esti uzata por ĉi tiu atakvektoro. Ĉar la atako celas la Unifying-ricevilon, kiu venas kun plej multaj Logitech-klavaroj, ĝi ne dependas de la specifa klavarmodelo.
konkludo
La rezultoj de la studo instigas la ideon pri ebla uzo de la konsiderata scenaro fare de atakantoj: se hakisto anstataŭigas la adaptilon de la viktimo per sendrata Logitech-klavaro, li povos ekscii la pasvortojn al la kontoj de la viktimo kun ĉiuj sekvaj konsekvencoj. Indas memori, ke eblas ankaŭ enmeti klavopremojn, kio signifas, ke plenumi arbitran kodon sur la komputilo de la viktimo ne estas malfacile.
Sed kio se atakanto povus malproksime modifi la firmvaron de iu ajn Logitech-adaptilo per USB? Tiam reto de ripetiloj povus esti kreita el proksime lokitaj adaptiloj kaj la lika distanco povus esti pliigita. Kvankam "finance sekura" atakanto povas uzi modernan radioricevan ekipaĵon kun tre selektemaj sistemoj, sentemajn radioricevilojn kun mallonga frekvenca agorda tempo kaj mallarĝradiajn antenojn por "aŭskulti" klavarajn enigojn kaj premi klavojn eĉ de najbara konstruaĵo.

Profesia ekipaĵo por radioricevado
Ĉar la sendrata datumtransiga kanalo de la Logitech-klavaro estas sufiĉe bone protektita, la trovita atakvektoro postulas fizikan aliron al la ricevilo, kio multe limigas la atakanton. La sola eblo por protekto en ĉi tiu kazo povus esti la uzo de kriptografiaj protektaj mekanismoj por la firmvaro de la ricevilo, ekzemple, konfirmo de la subskribo de la ŝargita firmvaro ĉe la flanko de la ricevilo. Sed, bedaŭrinde, NRF24 ne subtenas tion kaj estas neeble efektivigi protekton ene de la nuna arkitekturo de la aparato. Do zorgu pri viaj adaptiloj, ĉar la priskribita atakeblo postulas fizikan aliron al ili.

Raccoon Security estas speciala teamo de fakuloj de la Scienca kaj Teknika Centro Vulcan en la kampo de praktika informa sekureco, kriptografio, cirkvitdezajno, inversa inĝenierado kaj kreado de malaltnivela programaro.
fonto: www.habr.com
