Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Historicky väčšina zamestnancov používa bezdrôtové klávesnice a myši od spoločnosti Logitech. Pri opätovnom zadávaní hesiel sme si my, špecialisti tímu Raccoon Security, položili otázku: aké ťažké je obísť bezpečnostné mechanizmy bezdrôtových klávesníc? Štúdia odhalila architektonické chyby a softvérové ​​chyby, ktoré umožňujú prístup k vstupným údajom. Pod rezom je to, čo sme dostali.

Prečo Logitech?

Vstupné zariadenia Logitech patria podľa nášho názoru medzi najkvalitnejšie a najpohodlnejšie. Väčšina zariadení, ktoré máme, je založená na riešení Logitech zjednocujúci je univerzálny dongle prijímač, ktorý umožňuje pripojiť až 6 zariadení. Všetky zariadenia kompatibilné s technológiou Logitech Unifying sú označené logom technológie Logitech Unifying. Jednoduché použitie prihláška Umožňuje spravovať pripojenie bezdrôtových klávesníc k počítaču. Proces pripojenia klávesnice k prijímaču Logitech dongle, ako aj samotná technológia je pokrytá napr. tu.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Dongle prijímač s podporou Logitech Unifying

Klávesnica sa môže stať zdrojom informácií pre útočníkov. Logitech, berúc do úvahy možnú hrozbu, sa postaral o bezpečnosť - použil šifrovací algoritmus AES128 v rádiovom kanáli bezdrôtovej klávesnice. Prvá myšlienka, ktorú by útočník mohol mať v tejto situácii, je zachytiť kľúčové informácie, keď sú prenášané cez rádiový kanál počas procesu viazania. Koniec koncov, ak máte kľúč, môžete zachytiť rádiové signály klávesnice a dešifrovať ich. Používateľ však len zriedka (alebo dokonca nikdy) musí klávesnicu zjednotiť a hacker so skenovacím rádiom bude musieť dlho čakať. Okrem toho nie je všetko také jednoduché so samotným procesom odpočúvania. V najnovšej štúdii z júna 2019 publikoval bezpečnostný expert Markus Mengs online сообщение o objavení zraniteľnosti v starom firmvéri kľúčov USB Logitech. Umožňuje útočníkom s fyzickým prístupom k zariadeniam získať šifrovacie kľúče rádiových kanálov a vkladať stlačenia klávesov (CVE-2019-13054).

Budeme hovoriť o našej bezpečnostnej štúdii dongle Logitech založenej na NRF24 SoC od Nordic Semiconductor. Začnime možno samotným rozhlasovým kanálom.

Ako dáta „lietajú“ v rádiovom kanáli

Na časovo-frekvenčnú analýzu rádiového signálu sme použili SDR prijímač založený na zariadení Blade-RF v režime spektrálneho analyzátora (môžete si prečítať aj o tomto tu).

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Zariadenie SDR Blade-RF

Zvažovali sme aj možnosť zaznamenávania kvadratúry rádiového signálu na strednej frekvencii, ktorá by sa potom mohla analyzovať pomocou techník digitálneho spracovania signálu.

Štátna komisia pre rádiové frekvencie v Ruskej federácii povolený pre použitie zariadeniami s krátkym dosahom je frekvenčný rozsah 2400–2483,5 MHz. Ide o veľmi „vyľudnený“ sortiment, v ktorom nenájdete nič: Wi-Fi, Bluetooth, všetky druhy diaľkových ovládačov, bezpečnostné systémy, bezdrôtové detektory, myši s klávesnicami a ďalšie bezdrôtové digitálne zariadenia.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Spektrum pásma 2,4 GHz

Rušivé prostredie v dosahu je pomerne zložité. Napriek tomu bola spoločnosť Logitech schopná poskytnúť spoľahlivý a stabilný príjem pomocou protokolu Enhanced ShockBurst v transceiveri NRF24 v kombinácii s algoritmami frekvenčnej adaptácie.

Kanály v pásme sú umiestnené na pozíciách celých MHz, ako je definované v technické údaje NRF24 Nordic Semiconductor - celkom 84 kanálov vo frekvenčnej sieti. Počet súčasne používaných frekvenčných kanálov spoločnosťou Logitech je samozrejme nižší. Identifikovali sme použitie najmenej štyroch. Vzhľadom na obmedzenú šírku pásma použitého analyzátora spektra signálu nebolo možné určiť presný zoznam použitých frekvenčných pozícií, nebolo to však potrebné. Informácie z klávesnice do dongle prijímača sa prenášajú v režime Burst (krátke zapnutie vysielača) pomocou dvojpolohovej frekvenčnej modulácie GFSK so symbolovou rýchlosťou 1 Mbaud:

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Rádiový signál klávesnice v časovom zobrazení

Prijímač využíva korelačný princíp príjmu, takže prenášaný paket obsahuje preambulu a adresovú časť. Nepoužíva sa kódovanie odolné voči šumu, telo údajov je šifrované pomocou algoritmu AES128.

Vo všeobecnosti možno rádiové rozhranie bezdrôtovej klávesnice Logitech charakterizovať ako úplne asynchrónne so štatistickým multiplexovaním a frekvenčným prispôsobením. To znamená, že vysielač klávesnice prepne kanál na prenos každého nového paketu. Prijímač vopred nepozná ani vysielací čas, ani frekvenčný kanál, ale je známy len ich zoznam. Prijímač a vysielač sa stretávajú v kanáli vďaka koordinovanému frekvenčnému bypassu a algoritmom počúvania, ako aj mechanizmom potvrdenia Enhanced ShockBurst. Neskúmali sme, či je zoznam kanálov statický. Jeho zmena je pravdepodobne spôsobená frekvenčným adaptačným algoritmom. Niečo blízke metóde frekvenčného skákania (pseudonáhodné ladenie prevádzkovej frekvencie) možno vidieť vo využívaní frekvenčného zdroja rozsahu.

V podmienkach časovo-frekvenčnej neistoty, aby sa zabezpečil zaručený príjem všetkých signálov klávesnice, bude musieť útočník neustále monitorovať celú frekvenčnú mriežku 84 pozícií, čo si vyžaduje značné množstvo času. Tu je jasné, prečo je zraniteľnosť extrahovania kľúča USB (CVE-2019-13054) v zdrojoch umiestnené ako schopnosť vstrekovať stlačenia klávesov, a nie získať útočníkov prístup k údajom zadaným z klávesnice. Je zrejmé, že rádiové rozhranie bezdrôtovej klávesnice je pomerne zložité a poskytuje spoľahlivú rádiovú komunikáciu medzi zariadeniami Logitech v náročných podmienkach rušenia v pásme 2,4 GHz.

Pohľad na problém zvnútra

Pre našu štúdiu sme si vybrali jednu z našich existujúcich klávesníc Logitech K330 a dongle Logitech Unifying.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Logitech K330

Poďme sa pozrieť do vnútra klávesnice. Zaujímavým prvkom na doske na štúdium je čip SoC NRF24 od Nordic Semiconductor.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

SoC NRF24 na doske bezdrôtovej klávesnice Logitech K330

Firmvér je umiestnený vo vnútornej pamäti, mechanizmy čítania a ladenia sú vypnuté. Firmvér bohužiaľ nebol zverejnený v otvorených zdrojoch. Preto sme sa rozhodli pristúpiť k problému z druhej strany – naštudovať si vnútorný obsah dongle prijímača Logitech.

„Vnútorný svet“ prijímača dongle je celkom zaujímavý. Dongle je ľahko rozoberateľný, nesie na palube známu spúšť NRF24 so vstavaným USB ovládačom a dá sa preprogramovať zo strany USB aj priamo z programátora.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Dongle Logitech bez krytu

Pretože existuje štandardný mechanizmus na aktualizáciu firmvéru pomocou Aplikácie Firmware Update Tool (z ktorého môžete extrahovať aktualizovanú verziu firmvéru), nie je potrebné hľadať firmvér vo vnútri dongle.

Čo sa urobilo: Firmvér RQR_012_005_00028.bin bol extrahovaný z tela aplikácie Firmware Update Tool. Na kontrolu jeho integrity bol dongle ovládač pripojený káblom do programátora ChipProg-48:

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Kábel na pripojenie kľúča Logitech k programátoru ChipProg 48

Na kontrolu integrity firmvéru bol úspešne umiestnený do pamäte ovládača a fungoval správne, klávesnica a myš boli pripojené k hardvéru cez Logitech Unifying. Upravený firmvér je možné nahrať pomocou štandardného aktualizačného mechanizmu, pretože firmvér nemá žiadne kryptografické ochranné mechanizmy. Na výskumné účely sme použili fyzické spojenie s programátorom, keďže ladenie je týmto spôsobom oveľa rýchlejšie.

Výskum firmvéru a útok na vstup používateľa

Čip NRF24 je navrhnutý na základe výpočtového jadra Intel 8051 v tradičnej Harvardskej architektúre. Pre jadro funguje transceiver ako periférne zariadenie a je umiestnený v adresnom priestore ako súbor registrov. Dokumentáciu k čipu a príklady zdrojového kódu je možné nájsť na internete, takže demontáž firmvéru nie je náročná. Počas reverzného inžinierstva sme lokalizovali funkcie na príjem údajov o stlačení klávesov z rádiového kanála a ich konverziu do formátu HID na prenos do hostiteľa cez rozhranie USB. Injekčný kód bol umiestnený na adresy voľnej pamäte, ktoré obsahovali nástroje na zachytenie riadenia, ukladanie a obnovenie pôvodného kontextu vykonávania, ako aj funkčný kód.

Balík stlačenia alebo uvoľnenia kľúča prijatý dongle z rádiového kanála sa dešifruje, prevedie na štandardnú správu HID a odošle na rozhranie USB ako z bežnej klávesnice. V rámci štúdie je časť správy HID, ktorá nás najviac zaujíma, časť správy HID obsahujúca bajt príznakov modifikátora a pole 6 bajtov s kódmi stlačenia klávesov (pre referenciu informácie o HID tu).

Štruktúra správy 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;

Bezprostredne pred prenosom štruktúry HID do hostiteľa prevezme vložený kód kontrolu, skopíruje 8 bajtov natívnych údajov HID do pamäte a odošle ich do rádiového vedľajšieho kanála ako čistý text. V kóde to vyzerá takto:

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

Bočný kanál je organizovaný na frekvencii, ktorú sme nastavili s určitými charakteristikami rýchlosti manipulácie a štruktúry paketov.

Činnosť transceivera v čipe NRF24 je založený na stavovom grafe, do ktorého je organicky integrovaný protokol Enhanced ShockBurst. Zistili sme, že bezprostredne pred prenosom HID dát do hostiteľského USB rozhrania bol transceiver v stave IDLE. Vďaka tomu je možné ho bezpečne prekonfigurovať na prevádzku vo vedľajšom kanáli. Vložený kód zachytí riadenie, zachová pôvodnú konfiguráciu transceivera v plnom rozsahu a prepne ho do nového vysielacieho režimu na vedľajšom kanáli. Potvrdzovací mechanizmus Enhanced ShockBurst je v tomto režime deaktivovaný; HID dáta sa prenášajú v čistej forme vzduchom. Štruktúra paketu vo vedľajšom kanáli je znázornená na obrázku nižšie, signálové diagramy boli získané po demodulácii a pred obnovením synchronizácie dátových hodín. Hodnota adresy bola zvolená pre ľahkú vizuálnu identifikáciu balíka.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Demodulovaný burstový signál v bočnom kanáli

Potom, čo je paket prenesený do vedľajšieho kanála, vložený kód obnoví stav transceivera. Teraz je opäť pripravený normálne fungovať v kontexte pôvodného firmvéru.

Vo frekvenčnej a časovo-frekvenčnej doméne vyzerá bočný kanál takto:

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Spektrálne a časovo-frekvenčné znázornenie bočného kanála

Na testovanie fungovania čipu NRF24 s upraveným firmvérom sme zostavili stojan, ktorý obsahoval dongle Logitech s upraveným firmvérom, bezdrôtovú klávesnicu a prijímač zostavený na báze čínskeho modulu s čipom NRF24.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Obvod na zachytávanie rádiového signálu bezdrôtovej klávesnice Logitech

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Modul založený na NRF24

Na lavičke s normálne fungujúcou klávesnicou sme po pripojení k dongle Logitech pozorovali prenos čistých údajov o stlačeniach kláves vo vedľajšom rádiovom kanáli a bežný prenos šifrovaných údajov v hlavnom rádiovom rozhraní. Takto sme boli schopní poskytnúť priame odpočúvanie vstupu z klávesnice používateľa:

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Výsledok zachytenia vstupu z klávesnice

Vložený kód predstavuje mierne oneskorenie pri prevádzke firmvéru hardvérového kľúča. Sú však príliš malé na to, aby si ich používateľ všimol.

Ako si viete predstaviť, na tento vektor útoku možno použiť akúkoľvek klávesnicu Logitech, ktorá je kompatibilná s technológiou Unifying. Keďže útok je zameraný na prijímač Unifying, ktorý je súčasťou väčšiny klávesníc Logitech, je nezávislý od konkrétneho modelu klávesnice.

Záver

Výsledky štúdie naznačujú možné využitie uvažovaného scenára útočníkmi: ak hacker nahradí obeť dongle prijímačom pre bezdrôtovú klávesnicu Logitech, potom bude môcť zistiť heslá k účtom obete so všetkými následnými dôsledky. Nezabudnite, že je tiež možné vložiť stlačenie klávesov, čo znamená, že nie je ťažké spustiť ľubovoľný kód na počítači obete.

Čo ak zrazu môže útočník na diaľku upraviť firmvér ľubovoľného kľúča Logitech cez USB? Potom z blízko umiestnených kľúčov môžete vytvoriť sieť opakovačov a zväčšiť únikovú vzdialenosť. Hoci „finančne bohatý“ útočník bude môcť „počúvať“ vstupy z klávesnice a stláčať klávesy aj zo susednej budovy, moderné rádiové prijímacie zariadenia s vysoko selektívnymi systémami, citlivými rádiovými prijímačmi s krátkymi časmi ladenia frekvencie a vysoko smerovými anténami im to umožnia. „počúvať“ vstup z klávesnice a stláčať klávesy aj zo susednej budovy.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Profesionálne rádiové zariadenia

Keďže kanál bezdrôtového prenosu dát klávesnice Logitech je celkom dobre chránený, nájdený vektor útoku vyžaduje fyzický prístup k prijímaču, čo značne obmedzuje útočníka. Jedinou možnosťou ochrany v tomto prípade by bolo použitie kryptografických ochranných mechanizmov pre firmvér prijímača, napríklad kontrola podpisu nahraného firmvéru na strane prijímača. Ale, bohužiaľ, NRF24 to nepodporuje a je nemožné implementovať ochranu v rámci súčasnej architektúry zariadenia. Postarajte sa teda o svoje dongle, pretože popísaná možnosť útoku k nim vyžaduje fyzický prístup.

Postarajte sa o svoje hardvérové ​​kľúče: Štúdia bezpečnosti prijímača klávesnice Logitech

Raccoon Security je špeciálny tím odborníkov z výskumného a vývojového centra Vulcan v oblasti praktickej informačnej bezpečnosti, kryptografie, návrhu obvodov, reverzného inžinierstva a tvorby nízkoúrovňového softvéru.

Zdroj: hab.com

Pridať komentár