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
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
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
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
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
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)
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.
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.
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.
Dongle Logitech bez krytu
Pretože existuje štandardný mechanizmus na aktualizáciu firmvéru pomocou
Č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
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
Š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
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:
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.
Obvod na zachytávanie rádiového signálu bezdrôtovej 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:
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.
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.
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