Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Sa kasaysayan, karamihan sa mga empleyado ay gumagamit ng mga wireless na keyboard at mice mula sa Logitech. Sa muling pagpasok ng aming mga password, kami, ang mga espesyalista ng pangkat ng Raccoon Security, ay nagtanong sa aming sarili: gaano kahirap i-bypass ang mga mekanismo ng seguridad ng mga wireless na keyboard? Ang pag-aaral ay nagsiwalat ng mga depekto sa arkitektura at mga error sa software na nagbibigay-daan sa pag-access sa data ng pag-input. Sa ibaba ng hiwa ay kung ano ang nakuha namin.

Bakit Logitech?

Sa aming opinyon, ang Logitech input device ay kabilang sa pinakamataas na kalidad at pinaka-maginhawa. Karamihan sa mga device na mayroon kami ay batay sa solusyon ng Logitech unifying ay isang universal dongle receiver na nagbibigay-daan sa iyong kumonekta ng hanggang 6 na device. Lahat ng device na tugma sa teknolohiya ng Logitech Unifying ay minarkahan ng logo ng teknolohiyang Logitech Unifying. Madaling gamitin application Binibigyang-daan kang pamahalaan ang koneksyon ng mga wireless na keyboard sa iyong computer. Ang proseso ng pagkonekta sa keyboard sa Logitech receiver dongle, pati na rin ang teknolohiya mismo, ay sakop, halimbawa, dito.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Dongle receiver na may suporta sa Logitech Unifying

Ang keyboard ay maaaring maging mapagkukunan ng impormasyon para sa mga umaatake. Ang Logitech, na isinasaalang-alang ang posibleng banta, ay nag-ingat sa seguridad - ginamit ang algorithm ng pag-encrypt ng AES128 sa channel ng radyo ng wireless na keyboard. Ang unang pag-iisip na maaaring magkaroon ng isang umaatake sa sitwasyong ito ay upang harangin ang pangunahing impormasyon kapag ipinadala ito sa isang channel ng radyo sa panahon ng proseso ng pagbubuklod. Pagkatapos ng lahat, kung mayroon kang susi, maaari mong harangin ang mga signal ng radyo ng keyboard at i-decrypt ang mga ito. Gayunpaman, ang gumagamit ay bihirang (o kahit na hindi kailanman) kailangang pag-isahin ang keyboard, at ang isang hacker na may scanning radio ay kailangang maghintay ng mahabang panahon. Bilang karagdagan, hindi lahat ay napakasimple sa proseso ng pagharang mismo. Sa pinakahuling pag-aaral noong Hunyo 2019, ang eksperto sa seguridad na si Markus Mengs ay nag-publish online mensahe tungkol sa pagtuklas ng isang kahinaan sa lumang firmware ng Logitech USB dongle. Nagbibigay-daan ito sa mga attacker na may pisikal na access sa mga device na makakuha ng mga radio channel encryption key at mag-inject ng mga keystroke (CVE-2019-13054).

Pag-uusapan natin ang tungkol sa aming pag-aaral sa seguridad ng Logitech dongle batay sa NRF24 SoC mula sa Nordic Semiconductor. Magsimula tayo, marahil, sa mismong channel ng radyo.

Paano "lumilipad" ang data sa isang channel ng radyo

Para sa time-frequency analysis ng radio signal, gumamit kami ng SDR receiver batay sa Blade-RF device sa spectrum analyzer mode (maaari mo ring basahin ang tungkol dito dito).

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

SDR Blade-RF Device

Isinasaalang-alang din namin ang posibilidad ng pag-record ng mga quadrature ng signal ng radyo sa isang intermediate frequency, na pagkatapos ay masuri gamit ang mga digital signal processing techniques.

Komisyon ng Estado sa Mga Dalas ng Radyo sa Russian Federation pinapayagan para sa paggamit ng mga short-range na device, ang frequency range ay 2400–2483,5 MHz. Isa itong napaka-"populated" na hanay, kung saan wala kang makikitang anuman: Wi-Fi, Bluetooth, lahat ng uri ng remote control, security system, wireless detector, mice na may mga keyboard at iba pang wireless digital device.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Spectrum ng 2,4 GHz band

Ang kapaligiran ng interference sa hanay ay medyo kumplikado. Sa kabila nito, nakapagbigay ang Logitech ng maaasahan at matatag na pagtanggap sa pamamagitan ng paggamit ng Enhanced ShockBurst protocol sa NRF24 transceiver kasama ng mga frequency adaptation algorithm.

Ang mga channel sa isang banda ay inilalagay sa mga posisyon ng integer MHz gaya ng tinukoy sa mga pagtutukoy NRF24 Nordic Semiconductor - kabuuang 84 na channel sa frequency grid. Ang bilang ng mga sabay-sabay na ginamit na frequency channel ng Logitech ay, siyempre, mas kaunti. Natukoy namin ang paggamit ng hindi bababa sa apat. Dahil sa limitadong bandwidth ng signal spectrum analyzer na ginamit, hindi matukoy ang eksaktong listahan ng mga frequency position na ginamit, ngunit hindi ito kinakailangan. Ang impormasyon mula sa keyboard papunta sa receiver dongle ay ipinapadala sa Burst mode (maikling pagliko sa transmitter) gamit ang two-position frequency modulation na GFSK sa isang symbol rate na 1 Mbaud:

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Ang signal ng radyo sa keyboard sa representasyon ng oras

Ginagamit ng receiver ang prinsipyo ng ugnayan ng pagtanggap, kaya ang ipinadala na packet ay naglalaman ng isang paunang salita at isang bahagi ng address. Hindi ginagamit ang noise-resistant coding; ang data body ay naka-encrypt gamit ang AES128 algorithm.

Sa pangkalahatan, ang radio interface ng Logitech wireless keyboard ay maaaring ilarawan bilang ganap na asynchronous sa statistical multiplexing at frequency adaptation. Nangangahulugan ito na inililipat ng transmitter ng keyboard ang channel upang ipadala ang bawat bagong packet. Hindi alam ng receiver ang oras ng paghahatid o ang frequency channel, ngunit ang kanilang listahan lamang ang alam. Ang receiver at transmitter ay nagtatagpo sa channel salamat sa coordinated frequency bypass at listening algorithm, pati na rin ang Enhanced ShockBurst acknowledgement mechanisms. Hindi namin sinisiyasat kung static ang listahan ng channel. Malamang, ang pagbabago nito ay dahil sa frequency adaptation algorithm. Isang bagay na malapit sa paraan ng frequency hopping (pseudo-random na pag-tune ng operating frequency) ay makikita sa paggamit ng frequency resource ng range.

Kaya, sa ilalim ng mga kondisyon ng kawalan ng katiyakan sa dalas ng oras, upang matiyak ang garantisadong pagtanggap ng lahat ng mga signal ng keyboard, ang isang umaatake ay kailangang patuloy na subaybayan ang buong frequency grid ng 84 na mga posisyon, na nangangailangan ng malaking tagal ng oras. Dito nagiging malinaw kung bakit ang kahinaan sa pagkuha ng USB key (CVE-2019-13054) sa mga pinagmumulan nakaposisyon bilang kakayahang mag-inject ng mga keystroke, sa halip na makakuha ng access ng attacker sa data na ipinasok mula sa keyboard. Malinaw, ang interface ng radyo ng wireless na keyboard ay medyo kumplikado at nagbibigay ng maaasahang komunikasyon sa radyo sa pagitan ng mga Logitech device sa mahirap na mga kondisyon ng interference sa 2,4 GHz band.

Isang pagtingin sa problema mula sa loob

Para sa aming pag-aaral, pinili namin ang isa sa aming mga kasalukuyang Logitech K330 na keyboard at isang Logitech Unifying dongle.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Logitech K330

Tingnan natin ang loob ng keyboard. Ang isang kawili-wiling elemento sa board upang pag-aralan ay ang SoC NRF24 chip mula sa Nordic Semiconductor.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

SoC NRF24 sa Logitech K330 wireless keyboard board

Ang firmware ay matatagpuan sa panloob na memorya, ang mga mekanismo ng pagbabasa at pag-debug ay hindi pinagana. Sa kasamaang palad, ang firmware ay hindi nai-publish sa mga open source. Samakatuwid, nagpasya kaming lapitan ang problema mula sa kabilang panig - upang pag-aralan ang mga panloob na nilalaman ng Logitech dongle receiver.

Ang "panloob na mundo" ng tatanggap ng dongle ay medyo kawili-wili. Ang dongle ay madaling i-disassemble, nagdadala ng pamilyar na NRF24 release na may built-in na USB controller at maaaring i-reprogram pareho mula sa USB side at direkta mula sa programmer.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Logitech dongle na walang pabahay

Dahil mayroong isang karaniwang mekanismo para sa pag-update ng firmware gamit Mga application ng Firmware Update Tool (kung saan maaari mong i-extract ang na-update na bersyon ng firmware), hindi na kailangang hanapin ang firmware sa loob ng dongle.

Ano ang ginawa: ang firmware na RQR_012_005_00028.bin ay kinuha mula sa katawan ng application ng Firmware Update Tool. Upang suriin ang integridad nito, ang dongle controller ay konektado sa isang cable sa ChipProg-48 programmer:

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Cable para sa pagkonekta ng Logitech dongle sa ChipProg 48 programmer

Upang makontrol ang integridad ng firmware, matagumpay itong nailagay sa memorya ng controller at gumana nang tama, ang keyboard at mouse ay konektado sa dongle sa pamamagitan ng Logitech Unifying. Posibleng mag-upload ng binagong firmware gamit ang karaniwang mekanismo ng pag-update, dahil walang mga mekanismo ng proteksyon ng cryptographic para sa firmware. Para sa mga layunin ng pananaliksik, gumamit kami ng pisikal na koneksyon sa programmer, dahil mas mabilis ang pag-debug sa ganitong paraan.

Pananaliksik at pag-atake ng firmware sa input ng user

Ang NRF24 chip ay idinisenyo batay sa Intel 8051 computing core sa tradisyonal na arkitektura ng Harvard. Para sa core, ang transceiver ay gumaganap bilang isang peripheral device at inilalagay sa address space bilang isang set ng mga rehistro. Ang dokumentasyon para sa mga halimbawa ng chip at source code ay matatagpuan sa Internet, kaya hindi mahirap i-disassemble ang firmware. Sa panahon ng reverse engineering, na-localize namin ang mga function para sa pagtanggap ng keystroke data mula sa radio channel at pag-convert nito sa HID format para sa paghahatid sa host sa pamamagitan ng USB interface. Ang code ng iniksyon ay inilagay sa mga libreng address ng memorya, na kasama ang mga tool para sa pagharang ng kontrol, pag-save at pagpapanumbalik ng orihinal na konteksto ng pagpapatupad, pati na rin ang functional code.

Ang pakete ng pagpindot o paglabas ng isang key na natanggap ng dongle mula sa channel ng radyo ay na-decrypt, na-convert sa isang karaniwang ulat ng HID at ipinadala sa USB interface bilang mula sa isang regular na keyboard. Bilang bahagi ng pag-aaral, ang bahagi ng ulat ng HID na pinaka-interesado sa amin ay ang bahagi ng ulat ng HID na naglalaman ng isang byte ng mga flag ng modifier at isang hanay ng 6 na byte na may mga keystroke code (para sa sanggunian, impormasyon tungkol sa HID dito).

Istruktura ng ulat ng 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;

Kaagad bago ipadala ang istraktura ng HID sa host, kinokontrol ng injected code, kinokopya ang 8 bytes ng native HID data sa memorya at ipinapadala ito sa channel sa gilid ng radyo sa malinaw na teksto. Sa code ay ganito ang hitsura:

//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<

Ang side channel ay nakaayos sa dalas na itinakda namin na may ilang partikular na katangian ng bilis ng pagmamanipula at istraktura ng packet.

Ang operasyon ng transceiver sa chip NRF24 ay batay sa isang state graph kung saan ang Enhanced ShockBurst protocol ay organikong isinama. Nalaman namin na kaagad bago magpadala ng HID data sa host USB interface, nasa IDLE state ang transceiver. Ginagawa nitong posible na ligtas itong i-configure upang gumana sa isang side channel. Ang injected code ay humarang sa kontrol, pinapanatili ang orihinal na transceiver configuration nang buo at inililipat ito sa isang bagong transmission mode sa side channel. Ang mekanismo ng pagkumpirma ng Enhanced ShockBurst ay hindi pinagana sa mode na ito ay ipinadala sa malinaw na anyo sa hangin. Ang istraktura ng packet sa side channel ay ipinapakita sa figure sa ibaba, ang mga signal diagram ay nakuha pagkatapos ng demodulation at bago ang pagpapanumbalik ng data clock synchronization. Ang halaga ng address ay pinili para sa kadalian ng visual na pagkakakilanlan ng pakete.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Demodulated Burst Burst Signal sa Side Channel

Matapos maipadala ang packet sa side channel, ibinabalik ng injected code ang estado ng transceiver. Ngayon ay handa na itong gumana nang normal sa konteksto ng orihinal na firmware.

Sa mga domain ng frequency at time-frequency, ganito ang hitsura ng side channel:

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Spectral at time-frequency na representasyon ng side channel

Upang subukan ang pagpapatakbo ng NRF24 chip na may binagong firmware, nag-assemble kami ng stand na may kasamang Logitech dongle na may binagong firmware, isang wireless na keyboard at isang receiver na binuo batay sa isang Chinese module na may NRF24 chip.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Logitech wireless keyboard radio signal interception circuit

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

NRF24 na nakabatay sa module

Sa bench, na normal na gumagana ang keyboard, pagkatapos ikonekta ito sa Logitech dongle, naobserbahan namin ang pagpapadala ng malinaw na data tungkol sa mga keystroke sa side radio channel at ang normal na pagpapadala ng naka-encrypt na data sa pangunahing interface ng radyo. Kaya, nakapagbigay kami ng direktang interception ng input ng keyboard ng user:

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Ang resulta ng pagharang sa input ng keyboard

Ang injected code ay nagpapakilala ng bahagyang pagkaantala sa pagpapatakbo ng dongle firmware. Gayunpaman, masyadong maliit ang mga ito para mapansin ng user.

Gaya ng maiisip mo, maaaring gamitin ang anumang Logitech na keyboard na katugma sa teknolohiyang Unifying para sa attack vector na ito. Dahil tina-target ng pag-atake ang Unifying receiver na kasama ng karamihan sa mga keyboard ng Logitech, ito ay independyente sa partikular na modelo ng keyboard.

Konklusyon

Ang mga resulta ng pag-aaral ay nagmumungkahi ng posibleng paggamit ng isinasaalang-alang na senaryo ng mga umaatake: kung ang isang hacker ay papalitan ang biktima ng isang dongle receiver para sa isang Logitech wireless keyboard, pagkatapos ay magagawa niyang malaman ang mga password sa mga account ng biktima kasama ang lahat ng kasunod kahihinatnan. Huwag kalimutan na posible ring mag-inject ng mga keystroke, na nangangahulugang hindi mahirap mag-execute ng arbitrary code sa computer ng biktima.

Paano kung biglang mababago ng isang attacker ang firmware ng anumang Logitech dongle sa pamamagitan ng USB? Pagkatapos, mula sa malapit na pagitan ng mga dongle, maaari kang lumikha ng isang network ng mga repeater at dagdagan ang distansya ng pagtagas. Bagama't ang isang "mayaman sa pananalapi" na umaatake ay magagawang "makinig" sa input ng keyboard at pindutin ang mga key kahit na mula sa isang kalapit na gusali, ang modernong kagamitan sa pagtanggap ng radyo na may lubos na mapiling mga sistema, mga sensitibong radio receiver na may maikling frequency tuning time at mataas na direksyon ng antenna ay magbibigay-daan sa kanila. upang "makinig" sa input ng keyboard at pindutin ang mga key kahit na mula sa kalapit na gusali.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Propesyonal na kagamitan sa radyo

Dahil ang wireless data transmission channel ng Logitech keyboard ay lubos na protektado, ang natagpuang attack vector ay nangangailangan ng pisikal na access sa receiver, na lubos na naglilimita sa umaatake. Ang tanging pagpipilian sa proteksyon sa kasong ito ay ang paggamit ng mga mekanismo ng proteksyon ng cryptographic para sa firmware ng receiver, halimbawa, pagsuri sa lagda ng na-load na firmware sa gilid ng receiver. Ngunit, sa kasamaang-palad, hindi ito sinusuportahan ng NRF24 at imposibleng ipatupad ang proteksyon sa loob ng kasalukuyang arkitektura ng device. Kaya ingatan ang iyong mga dongle, dahil ang inilarawang opsyon sa pag-atake ay nangangailangan ng pisikal na pag-access sa kanila.

Alagaan ang iyong mga dongle: Pag-aaral sa kaligtasan ng receiver ng keyboard ng Logitech

Ang Raccoon Security ay isang espesyal na pangkat ng mga eksperto mula sa Vulcan Research and Development Center sa larangan ng praktikal na seguridad ng impormasyon, cryptography, disenyo ng circuit, reverse engineering at mababang antas ng paggawa ng software.

Pinagmulan: www.habr.com

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster