E mālama i kāu mau dongle: Logitech keyboard receiver safety study

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Ma ka mōʻaukala, hoʻohana ka hapa nui o nā limahana i nā kīwī uila a me nā ʻiole mai Logitech. Ke hoʻokomo hou nei i kā mākou mau ʻōlelo huna, ʻo mākou, nā loea o ka hui Raccoon Security, nīnau iā mākou iho: pehea ka paʻakikī o ka pale ʻana i nā ʻōnaehana palekana o nā kīwī uila? Ua hōʻike ʻia ka haʻawina i nā hemahema o ke kūkulu hale a me nā hewa polokalamu e hiki ai ke komo i ka ʻikepili hoʻokomo. Aia ma lalo o ka ʻoki i loaʻa iā mākou.

No ke aha ʻo Logitech?

I ko mākou manaʻo, aia nā mea hoʻokomo Logitech i waena o nā kiʻekiʻe kiʻekiʻe a maʻalahi. ʻO ka hapa nui o nā mea i loaʻa iā mākou e pili ana i ka hopena Logitech Unifying ʻO ia ka mea hoʻokipa dongle ākea e hiki ai iā ʻoe ke hoʻopili a hiki i 6 mau polokalamu. Hōʻailona ʻia nā mea hana a pau i kūpono me ka ʻenehana Logitech Unifying me ka logo ʻenehana Logitech Unifying. Maʻalahi e hoʻohana palapala noi ʻAe iā ʻoe e hoʻokele i ka hoʻopili ʻana o nā kī kī uʻi i kāu kamepiula. ʻO ke kaʻina hana o ka hoʻopili ʻana i ka keyboard i ka Logitech receiver dongle, a me ka ʻenehana ponoʻī, ua uhi ʻia, no ka laʻana, maanei.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

ʻO ka mea hoʻokipa Dongle me ke kākoʻo Logitech Unifying

Hiki i ka papa keyboard ke lilo i kumu ʻike no nā mea hoʻouka. ʻO Logitech, e noʻonoʻo ana i ka hiki ke hoʻoweliweli, mālama i ka palekana - hoʻohana i ka algorithm encryption AES128 i ka lekiō lekiō o ka kī uila. ʻO ka manaʻo mua i loaʻa i ka mea hoʻouka i kēia kūlana, ʻo ia ke aʻe i ka ʻike koʻikoʻi i ka wā e hoʻouna ʻia ai ma luna o kahi lekiō i ka wā o ke kaʻina hana paʻa. Ma hope o nā mea a pau, inā loaʻa iā ʻoe kahi kī, hiki iā ʻoe ke hoʻopaʻa i nā hōʻailona lekiō o ka keyboard a hoʻokaʻawale iā lākou. Eia nō naʻe, paʻakikī ka mea hoʻohana (a ʻaʻole ʻole) e hoʻohui i ka papa keyboard, a e kali lōʻihi ka mea hacker me kahi lekiō scanning. Eia hou,ʻaʻole i maʻalahi nā mea a pau me ke kaʻina hana interception pono'ī. Ma ka noiʻi hou loa ma Iune 2019, ua paʻi ka loea palekana ʻo Markus Mengs ma ka pūnaewele ka leka e pili ana i ka loaʻa ʻana o kahi palupalu i ka firmware kahiko o Logitech USB dongles. Hāʻawi ia i ka poʻe hoʻouka kaua me ke komo kino i nā polokalamu e kiʻi i nā kī hoʻopunipuni a me nā kī kī kī (CVE-2019-13054).

E kamaʻilio mākou e pili ana i kā mākou noiʻi palekana o ka Logitech dongle e pili ana i ka NRF24 SoC mai Nordic Semiconductor. E hoʻomaka kākou me ka lekiō ponoʻī.

Pehea ka "lele" o ka ʻikepili ma kahi lekiō

No ka loiloi manawa-frequency o ka hōʻailona lekiō, ua hoʻohana mākou i kahi mea hoʻokipa SDR e pili ana i ka hāmeʻa Blade-RF i ke ʻano spectrum analyzer mode (hiki iā ʻoe ke heluhelu e pili ana i kēia. maanei).

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Mea SDR Blade-RF

Ua noʻonoʻo pū mākou i ka hiki ke hoʻopaʻa i nā quadratures o ka hōʻailona lekiō ma kahi alapine waena, a laila hiki ke nānā ʻia me ka hoʻohana ʻana i nā ʻenehana hoʻoili hōʻailona kikohoʻe.

Komisina Moku'āina ma nā Radio Frequencies ma ka Russian Federation ʻae ʻia no ka hoʻohana ʻana i nā mea hoʻohana pōkole, ʻo 2400–2483,5 MHz ke alapine. He "populated" loa kēia, kahi āu e ʻike ʻole ai i kekahi mea: Wi-Fi, Bluetooth, nā ʻano mana mamao āpau, nā ʻōnaehana palekana, nā ʻike uila, nā ʻiole me nā kīwī a me nā mea uila uila ʻē aʻe.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Spectrum o ka hui 2,4 GHz

He paʻakikī loa ke kaiapuni keakea ma ka laulā. ʻOiai kēia, ua hiki iā Logitech ke hāʻawi i ka hoʻokipa hilinaʻi a paʻa ma o ka hoʻohana ʻana i ka protocol Enhanced ShockBurst i ka transceiver NRF24 i hui pū me nā algorithm adaptation frequency.

Hoʻonoho ʻia nā kaha i loko o kahi hui ma nā kūlana integer MHz e like me ka wehewehe ʻana ma hoakaka NRF24 Nordic Semiconductor - he 84 ka nui o nā kaha i loko o ka pahu alapine. ʻO ka helu o nā ala alapine i hoʻohana ʻia e Logitech, ʻoiaʻiʻo, ʻoi aku ka liʻiliʻi. Ua ʻike mākou i ka hoʻohana ʻana i ʻehā. Ma muli o ka palena bandwidth o ka hōʻailona spectrum analyser i hoʻohana ʻia, ʻaʻole hiki ke hoʻoholo i ka papa inoa pololei o nā kūlana alapine i hoʻohana ʻia, akā ʻaʻole pono kēia. Hoʻouna ʻia ka ʻike mai ke kīpē a i ka dongle loaʻa ma ke ʻano Burst (huli pōkole i ka transmitter) me ka hoʻohana ʻana i ʻelua mau kūlana frequency modulation GFSK ma kahi helu hōʻailona o 1 Mbaud:

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Hōʻailona lekiō keyboard i ka hōʻike manawa

Hoʻohana ka mea hoʻokipa i ka loina correlation o ka hoʻokipa ʻana, no laila aia i loko o ka ʻeke i hoʻouna ʻia kahi preamble a me kahi ʻāpana helu. ʻAʻole hoʻohana ʻia ka coding noise-resistant; ua hoʻopili ʻia ke kino ʻikepili me ka algorithm AES128.

Ma keʻano laulā, hiki ke ʻike ʻia ka lekiō lekiō o ka Logitech kīwī kīwī e like me ka asynchronous me ka helu helu multiplexing a me ka hoʻololi pinepine. 'O ia ho'i, ho'ololi ka mea ho'olele keyboard i ke kahawai e ho'ouna i kēlā me kēia pū'olo hou. ʻAʻole ʻike mua ka mea hoʻokipa i ka manawa hoʻouna a i ʻole ke ala alapine, akā ʻike ʻia kā lākou papa inoa. Hiki i ka mea hoʻokipa a me ka mea hoʻouna ke hui ma ke kahawai e hoʻomaikaʻi i ke alapine alapine i hoʻonohonoho ʻia a me nā algorithms hoʻolohe, a me nā mīkini hoʻomaikaʻi ShockBurst. ʻAʻole mākou i noiʻi inā paʻa paha ka papa inoa o ke kahawai. Malia paha, ʻo kona hoʻololi ʻana ma muli o ka algorithm adaptation frequency. Hiki ke ʻike ʻia kahi mea kokoke i ke ʻano hopping frequency (pseudo-random tuning of the operating frequency) ma ka hoʻohana ʻana i ka punawai alapine o ka laulā.

No laila, ma lalo o nā kūlana o ka maopopo ʻole o ka manawa-frequency, e hōʻoia i ka loaʻa ʻana o nā hōʻailona keyboard āpau, pono ka mea hoʻouka e nānā mau i ka pahu alapine holoʻokoʻa o nā kūlana 84, e koi ana i kahi manawa nui. Maanei e akaka ai ke kumu o ka vulnerability o ke kī kī USB (CVE-2019-13054) ma nā kumu hoʻonoho ʻia e like me ka hiki ke hoʻokomo i nā kī kī, ma mua o ka loaʻa ʻana o ka mea hoʻouka i ka ʻikepili i hoʻokomo ʻia mai ka papa keyboard. ʻIke loa, paʻakikī loa ka lekiō lekiō o ke kīwī uila a hāʻawi i ke kamaʻilio lekiō hilinaʻi ma waena o nā polokalamu Logitech i nā kūlana hoʻopilikia paʻakikī i ka band 2,4 GHz.

He nānā i ka pilikia mai loko mai

No kā mākou noiʻi ʻana, ua koho mākou i kekahi o kā mākou kīpē Logitech K330 a me kahi dongle Logitech Unifying.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Logitech K330

E nānā kākou i loko o ka papa keyboard. ʻO kahi mea hoihoi ma ka papa e aʻo ai ʻo ka chip SoC NRF24 mai Nordic Semiconductor.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

ʻO SoC NRF24 ma ka Logitech K330 papa kīwī uila

Aia ka firmware i loko o ka hoʻomanaʻo i loko, ʻaʻole i hoʻopaʻa ʻia nā mīkini heluhelu a me ka debugging. ʻO ka mea pōʻino, ʻaʻole i paʻi ʻia ka firmware ma nā kumu ākea. No laila, ua hoʻoholo mākou e hoʻokokoke i ka pilikia mai kēlā ʻaoʻao - e aʻo i nā ʻike o loko o ka Logitech dongle receiver.

ʻO ka "honua i loko" o ka mea hoʻokipa dongle he mea hoihoi loa ia. Hoʻokaʻawale maʻalahi ka dongle, lawe ʻia ma luna o ka moku NRF24 hoʻokuʻu me kahi mea hoʻokele USB i kūkulu ʻia a hiki ke hoʻonohonoho hou ʻia mai ka ʻaoʻao USB a pololei mai ka mea polokalamu.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Logitech dongle me ka hale ʻole

No ka mea aia kahi hana maʻamau no ka hoʻonui ʻana i ka firmware me ka hoʻohana ʻana Nā polokalamu lako polokalamu Firmware Update (mai kahi e hiki ai iā ʻoe ke unuhi i ka mana firmware hou), ʻaʻohe pono e ʻimi i ka firmware i loko o ka dongle.

He aha ka mea i hana ʻia: firmware RQR_012_005_00028.bin i lawe ʻia mai ke kino o ka polokalamu Firmware Update Tool. No ka nānā ʻana i kona kūpaʻa, ua hoʻopili ʻia ka mana dongle me kahi kaula i ka mea papahana ChipProg-48:

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Uea no ka hoʻopili ʻana i ka dongle Logitech i ka polokalamu polokalamu ChipProg 48

No ka hoʻomalu ʻana i ka pono o ka firmware, ua hoʻokomo maikaʻi ʻia i ka hoʻomanaʻo o ka mea hoʻoponopono a hana pololei, ua pili ka keyboard a me ka ʻiole i ka dongle ma o Logitech Unifying. Hiki ke hoʻouka i ka firmware i hoʻololi ʻia me ka hoʻohana ʻana i ka mīkini hoʻoponopono maʻamau, no ka mea ʻaʻohe ʻano pale cryptographic no ka firmware. No ka noiʻi ʻana, ua hoʻohana mākou i kahi pilina kino i ka mea papahana, ʻoiai ʻoi aku ka wikiwiki o ka debugging ma kēia ala.

ʻO ka noiʻi firmware a me ka hoʻouka ʻana i ka hoʻokomo mea hoʻohana

Hoʻolālā ʻia ka chip NRF24 e pili ana i ka Intel 8051 computing core i ka hoʻolālā kuʻuna Harvard. No ke kumu, hana ka transceiver ma ke ʻano he mea peripheral a waiho ʻia i loko o ka wahi kikoʻī e like me kahi hoʻonohonoho o nā papa inoa. Hiki ke loaʻa nā palapala no ka chip a me nā kumu kumu kumu ma ka Pūnaewele, no laila ʻaʻole paʻakikī ka wehe ʻana i ka firmware. I ka wā o ka ʻenekinia hoʻohuli, ua hoʻokaʻawale mākou i nā hana no ka loaʻa ʻana o ka ʻikepili kī mai ka lekiō a hoʻololi iā ia i ke ʻano HID no ka hoʻouna ʻana i ka mea hoʻokipa ma o ka USB interface. Hoʻokomo ʻia ka code injection i loko o nā helu hoʻomanaʻo manuahi, kahi i loaʻa i nā mea hana no ka intercepting control, mālama a hoʻihoʻi i ka pōʻaiapili hoʻokō kumu, a me ke code hana.

ʻO ka ʻeke o ke kaomi ʻana a hoʻokuʻu paha i kahi kī i loaʻa i ka dongle mai ka lekiō lekiō, ua hoʻololi ʻia i kahi hōʻike HID maʻamau a hoʻouna ʻia i ka interface USB e like me ka keyboard maʻamau. Ma ke ʻano he haʻawina, ʻo ka ʻāpana o ka hōʻike HID i makemake nui ʻia iā mākou ʻo ia ka ʻāpana o ka hōʻike HID i loaʻa kahi byte o nā hae hoʻololi a me kahi ʻāpana o 6 bytes me nā code keystroke (no ka ʻike, ʻike e pili ana i ka HID. maanei).

Hoʻolālā hōʻike 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;

Ma mua koke o ka hoʻouna ʻana i ka ʻōnaehana HID i ka mea hoʻokipa, lawe ka code injected i ka mana, kope i 8 bytes o ka ʻikepili HID maoli i ka hoʻomanaʻo a hoʻouna ʻia i ka ʻaoʻao ʻaoʻao lekiō ma kahi kikokikona. Ma ke code e like me kēia:

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

Hoʻonohonoho ʻia ke kahawai ʻaoʻao ma kahi alapine a mākou i hoʻonohonoho ai me kekahi mau hiʻohiʻona o ka wikiwiki manipulation a me ka hoʻolālā packet.

Ka hana o ka transceiver i loko o ka chip NRF24 ua hoʻokumu ʻia ma ka pakuhi mokuʻāina kahi i hoʻohui ʻia ai ka protocol Enhanced ShockBurst. Ua ʻike mākou ma mua o ka hoʻouna ʻana i ka ʻikepili HID i ke kikowaena USB host, aia ka transceiver i ka mokuʻāina IDLE. ʻO kēia ka mea e hiki ai ke hoʻonohonoho hou iā ia e hana ma kahi kahawai ʻaoʻao. Hoʻopili ke code injected i ka mana, mālama i ka hoʻonohonoho transceiver kumu i piha a hoʻololi iā ia i kahi ʻano hoʻouna hou ma ke kahawai ʻaoʻao. Hoʻopau ʻia ka mīkini hōʻoia ShockBurst Enhanced i kēia ʻano; Hoʻouna ʻia ka ʻikepili HID ma ke ʻano maopopo ma luna o ka lewa. Hōʻike ʻia ke ʻano o ka ʻeke ma ke kahawai ʻaoʻao ma ke kiʻi ma lalo nei, ua loaʻa nā kiʻi hōʻailona ma hope o ka demodulation a ma mua o ka hoʻihoʻi ʻana o ka hoʻonohonoho ʻana i ka uaki data. Ua koho ʻia ka helu helu wahi no ka maʻalahi o ka ʻike maka o ka pūʻolo.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

ʻO ka hōʻailona Burst Burst hōʻemi ʻia ma ka ʻaoʻao Channel

Ma hope o ka hoʻouna ʻia ʻana o ka ʻeke i ke kahawai ʻaoʻao, hoʻihoʻi ke code injected i ke kūlana o ka transceiver. I kēia manawa ua mākaukau hou e hana maʻamau i ka pōʻaiapili o ka firmware kumu.

Ma ka alapine a me ka manawa-frequency domain, ʻo ke ala ʻaoʻao e like me kēia:

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Hōʻike kikoʻī a me ka manawa-frequency o ke kahawai ʻaoʻao

No ka hoʻāʻo ʻana i ka hana o ka chip NRF24 me ka firmware i hoʻololi ʻia, ua hōʻuluʻulu mākou i kahi kū i loaʻa kahi Logitech dongle me ka firmware i hoʻololi ʻia, kahi kī uila a me kahi mea hoʻokipa i ʻākoakoa ma ke kumu o kahi module Kina me ka chip NRF24.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Logitech kīwī kīwī lekiō kaapuni hoʻopaʻa lekiō

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

NRF24 ma muli o ka module

Ma ka noho, me ka hana maʻamau o ka papa keyboard, ma hope o ka hoʻopili ʻana iā Logitech dongle, ʻike mākou i ka hoʻouna ʻana i nā ʻikepili maopopo e pili ana i nā kī kī ma ka ʻaoʻao lekiō a me ka hoʻoili maʻamau o nā ʻikepili i hoʻopili ʻia i ka lekiō nui. No laila, ua hiki iā mākou ke hāʻawi i ka interception pololei o ka hoʻokomo keyboard mea hoʻohana:

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

ʻO ka hopena o ke keakea ʻana i ka hoʻokomo keyboard

Hoʻokomo ka code injected i ka lohi iki i ka hana ʻana o ka firmware dongle. Eia naʻe, liʻiliʻi loa lākou no ka mea hoʻohana e ʻike.

E like me kāu e noʻonoʻo ai, hiki ke hoʻohana ʻia kekahi kīwī Logitech i kūpono me ka ʻenehana Unifying no kēia vector hoʻouka. Ma muli o ka hoʻouka kaua ʻana i ka Unifying receiver i hoʻokomo pū ʻia me ka hapa nui o nā kīwī Logitech, kūʻokoʻa ia i ke kumu hoʻohālike kikoʻī.

hopena

Hōʻike nā hopena o ke aʻo ʻana i ka hoʻohana ʻana i ka hiʻohiʻona i manaʻo ʻia e nā mea hoʻouka: inā hoʻololi ka mea hacker i ka mea i hoʻopaʻa ʻia me ka dongle receiver no ka Logitech wireless keyboard, a laila hiki iā ia ke ʻike i nā ʻōlelo huna i nā moʻokāki o ka mea i pepehi ʻia me nā mea a pau e hiki mai ana. hopena. Mai poina hiki nō hoʻi ke hoʻokomo i nā kī kī, ʻo ia hoʻi ʻaʻole paʻakikī ke hoʻokō i nā code arbitrary ma ke kamepiula o ka mea i pepehi ʻia.

He aha inā hiki koke i kahi mea hoʻouka ke hoʻololi mamao i ka firmware o kekahi dongle Logitech ma o USB? A laila, mai nā dongles kokoke loa, hiki iā ʻoe ke hana i kahi pūnaewele o nā mea hou a hoʻonui i ka mamao leakage. ʻOiai e hiki i ka mea hoʻouka kaua "waiwai waiwai" ke "hoʻolohe" i ka hoʻokomo ʻana i ka keyboard a me ke kaomi ʻana i nā kī mai kahi hale e pili ana, nā lako hoʻokipa lekiō hou me nā ʻōnaehana koho loa, nā mea lekiō koʻikoʻi me nā manawa kani alapine pōkole a me nā antenna kuhikuhi nui e ʻae iā lākou. e "hoʻolohe" i ka hoʻokomo ʻana i ka keyboard a paʻi i nā kī mai kahi hale kokoke.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

Nā lako lekiō ʻoihana

No ka mea ua pale maikaʻi ʻia ke kahawai hoʻouna ʻikepili uila o ka Logitech keyboard, pono ka mea hoʻouka kaua i loaʻa i ke komo kino i ka mea hoʻokipa, kahi e kaupalena nui ai i ka mea hoʻouka. ʻO ka koho pale wale nō i kēia hihia, ʻo ia ka hoʻohana ʻana i nā mīkini pale cryptographic no ka firmware hoʻokipa, no ka laʻana, ke nānā ʻana i ka pūlima o ka firmware i hoʻouka ʻia ma ka ʻaoʻao hoʻokipa. Akā, ʻo ka mea pōʻino, ʻaʻole kākoʻo ʻo NRF24 i kēia a ʻaʻole hiki ke hoʻokō i ka pale i loko o ka hoʻolālā ʻenehana o kēia manawa. No laila e mālama pono i kāu mau dongle, no ka mea, ʻo ke koho hoʻouka kaua i wehewehe ʻia e pono ai ke komo kino iā lākou.

E mālama i kāu mau dongle: Logitech keyboard receiver safety study

ʻO Raccoon Security kahi hui kūikawā o nā loea mai ka Vulcan Research and Development Center ma ke kahua o ka palekana ʻike pono, cryptography, circuit circuit, reverse engineering a me ka hana polokalamu haʻahaʻa haʻahaʻa.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka