Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Historicky většina zaměstnanců používá bezdrátové klávesnice a myši Logitech. Znovu jsme zadali svá hesla a my, specialisté týmu Raccoon Security, jsme si položili otázku: jak těžké je obejít bezpečnostní mechanismy bezdrátových klávesnic? Provedený výzkum odhalil architektonické chyby a softwarové chyby, které umožňují přístup ke vstupním datům. Pod řezem - co jsme dostali.

Proč Logitech?

Vstupní zařízení Logitech podle nás patří mezi nejkvalitnější a nejpohodlnější. Většina zařízení, která máme, je založena na řešení Logitech sjednocující je univerzální dongle přijímač, který umožňuje připojit až 6 zařízení. Všechna zařízení kompatibilní s technologií Logitech Unifying jsou označena odpovídajícím logem. Snadné použití přihláška umožňuje spravovat připojení bezdrátových klávesnic k počítači. Procesu připojení klávesnice k přijímači Logitech dongle i samotné technologii se podrobně věnuje např. zde.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Logitech Unifying Dongle Receiver

Klávesnice se může stát zdrojem informací pro vetřelce. Logitech se s ohledem na možnou hrozbu postaral o bezpečnost - aplikoval šifrovací algoritmus AES128 v rádiovém kanálu bezdrátové klávesnice. První myšlenkou, která může útočníka v této situaci navštívit, je zachycení klíčové informace při jejím přenosu vzduchem během vázání. Koneckonců, pokud máte klíč, můžete zachytit rádiové signály klávesnice a dešifrovat je. Je však velmi vzácné (nebo nikdy), aby uživatel svázal klávesnici pomocí Unifying procedury a hacker se skenovacím rádiem bude muset dlouho čekat. Se samotným procesem odposlechu navíc není vše tak jednoduché. V nejnovější studii z června 2019 zveřejnil bezpečnostní expert Markus Mengs online сообщение o objevení zranitelnosti ve starém firmwaru USB klíčů Logitech. Umožňuje útočníkům s fyzickým přístupem k zařízením získat klíče pro šifrování rádiových kanálů a vkládat úhozy (CVE-2019-13054).

Budeme se zabývat naší bezpečnostní studií dongle Logitech založeného na NRF24 SoC společnosti Nordic Semiconductor. A začněme možná u samotného rozhlasového kanálu.

Jak data "létají" v rádiovém kanálu

Pro časově-frekvenční analýzu rádiového signálu jsme použili SDR přijímač založený na zařízení Blade-RF v režimu spektrálního analyzátoru (můžete si také přečíst o tomto zde).

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Zařízení SDR Blade-RF

Zvažovali jsme také možnost záznamu kvadratur rádiového signálu na mezifrekvenci, abychom je následně analyzovali pomocí metod digitálního zpracování signálu.

Státní komise pro rádiové frekvence v Ruské federaci povoleno pro použití zařízeními s krátkým dosahem ve frekvenčním rozsahu 2400-2483,5 MHz. Jedná se o velmi „zalidněný“ sortiment, ve kterém nenajdete nic: Wi-Fi, Bluetooth, všemožná dálková ovládání, zabezpečovací systémy, bezdrátové detektory, myši s klávesnicemi a další bezdrátová digitální zařízení.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Spektrum pásma 2,4 GHz

Situace rušení v dosahu je poměrně komplikovaná. Navzdory tomu byla společnost Logitech schopna zajistit spolehlivý a stabilní příjem pomocí protokolu Enhanced ShockBurst v transceiveru NRF24 v kombinaci s algoritmy frekvenční adaptace.

Kanály v pásmu jsou umístěny na pozicích celých MHz, jak je definováno v Specifikace NRF24 Nordic Semiconductor - celkem 84 kanálů ve frekvenční mřížce. Počet frekvenčních kanálů používaných současně společností Logitech je samozřejmě menší. Identifikovali jsme použití minimálně čtyř. Vzhledem k omezenému rozsahu použitého spektrálního analyzátoru signálu nebylo možné určit přesný seznam použitých frekvenčních poloh, nebylo to však nutné. Informace z klávesnice do dongle-přijímače jsou přenášeny v režimu Burst (zapne se krátký vysílač) pomocí dvoupolohové frekvenční modulace GFSK při přenosové rychlosti 1 Mbaud:

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Rádiový signál klávesnice v časovém zobrazení

Přijímač využívá korelační princip příjmu, přenášený paket tedy obsahuje preambuli a adresní část. Kódování pro opravu chyb se nepoužívá, tělo dat je šifrováno pomocí algoritmu AES128.

Obecně lze vzduchové rozhraní bezdrátové klávesnice Logitech charakterizovat jako plně asynchronní se statistickým multiplexováním dělení a frekvenční odezvou. To znamená, že vysílač klávesnice změní kanál pro vysílání každého nového paketu. Přijímač předem nezná ani čas vysílání, ani frekvenční kanál, ale pouze jejich seznam. Přijímač a vysílač se na kanálu setkávají díky dohodnutému frekvenčnímu bypassu a algoritmu naslouchání, stejně jako mechanismům potvrzení Enhanced ShockBurst. Nezkoumali jsme, zda je seznam kanálů statický. Jeho změna je pravděpodobně způsobena algoritmem frekvenční adaptace. Něco blízkého metodě PRCH (pseudonáhodné ladění provozní frekvence) se odhaduje ve využití frekvenčního zdroje rozsahu.

V podmínkách časově-frekvenční nejistoty, aby byl zaručen příjem všech signálů klávesnice, bude tedy útočník muset neustále sledovat celou frekvenční mřížku v rozsahu 84 pozic, což vyžaduje značné časové náklady. Zde je zřejmé, proč je zranitelnost extrahování klíče USB (CVE-2019-13054) ve zdrojích Je umístěn jako možnost vkládání úhozů, spíše než získání přístupu útočníka k datům zadaným z klávesnice. Je zřejmé, že rádiové rozhraní bezdrátové klávesnice je poměrně složité a poskytuje spolehlivou rádiovou komunikaci mezi zařízeními Logitech v prostředí s obtížným rušením v pásmu 2,4 GHz.

Vnitřní pohled na problém

Pro výzkum jsme vybrali jednu z našich dostupných klávesnic Logitech K330 a dongle Logitech Unifying.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Logitech K330

Pojďme se podívat dovnitř klávesnice. Zajímavým prvkem na desce pro výzkum je čip SoC NRF24 od Nordic Semiconductor.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

SoC NRF24 na bezdrátové klávesnici Logitech K330

Firmware je umístěn ve vnitřní paměti, mechanismy čtení a ladění jsou vypnuté. Firmware bohužel nebyl zveřejněn v otevřených zdrojích. Proto jsme se rozhodli k problému přistoupit z druhé strany – prostudovat vnitřní obsah dongle přijímače Logitech.

„Vnitřní svět“ přijímače dongle je docela zajímavý. Dongle je snadno rozebíratelný, nese na palubě nám známý NRF24 ve verzi s vestavěným USB řadičem a lze jej přeprogramovat jak ze strany USB, tak přímo programátorem.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Dongle Logitech bez pouzdra

Vzhledem k tomu, že se používá pravidelný mechanismus aktualizace firmwaru Nástroj pro aktualizaci firmwaru (ze kterého můžete extrahovat aktualizovanou verzi firmwaru), není nutné hledat firmware uvnitř dongle.

Co bylo provedeno: Firmware RQR_012_005_00028.bin byl extrahován z těla aplikace Firmware Update Tool. Pro kontrolu jeho integrity byl hardwarový ovladač připojen smyčkou na programátor ChipProg-48:

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Propojovací kabel Logitech dongle pro programátor ChipProg 48

Pro kontrolu integrity firmwaru byl úspěšně umístěn do paměti ovladače a fungoval správně, klávesnice a myš byly připojeny k dongle přes Logitech Unifying. Upravený firmware je možné nahrát pomocí standardního aktualizačního mechanismu, protože pro firmware neexistují žádné kryptografické ochranné mechanismy. Pro výzkumné účely jsme použili fyzické připojení k programátoru, protože ladění je tímto způsobem mnohem rychlejší.

Vyšetřování firmwaru a útok na vstup uživatele

Čip NRF24 je navržen na základě výpočetního jádra Intel 8051 v tradiční harvardské architektuře. Pro jádro funguje transceiver jako periferní zařízení a je umístěn v adresovém prostoru jako sada registrů. Dokumentaci k čipu a ukázky zdrojového kódu lze najít na internetu, takže rozebrání firmwaru není složité. V průběhu reverzního inženýrství jsme lokalizovali funkce pro příjem dat o stisku kláves z rádiového kanálu a jejich převod do formátu HID pro přenos na hostitele přes rozhraní USB. V adresách volné paměti byl umístěn injekční kód, který obsahoval nástroje pro zachycení řízení, uložení a obnovení původního kontextu provádění a také funkční kód.

Paket stisknutí nebo uvolnění klíče přijatý hardwarovým klíčem z rádiového kanálu je dešifrován, převeden na standardní HID zprávu a odeslán do USB rozhraní jako z konvenční klávesnice. V rámci studie nás nejvíce zajímá část zprávy HID, která obsahuje bajt příznaků modifikátoru a pole 6 bajtů s kódy úhozů (pro referenci, informace o HID zde).

Struktura zprá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;

Bezprostředně před předáním struktury HID hostiteli obdrží vložený kód řízení, zkopíruje 8 bajtů nativních dat HID do paměti a odešle je do rádiového postranního kanálu jako prostý text. V kódu to vypadá 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<

Postranní kanál je organizován na námi nastavené frekvenci s určitými charakteristikami rychlosti manipulace a struktury paketů.

Provoz transceiveru v čipu NRF24 je založen na stavovém grafu, ve kterém je organicky zapsán protokol Enhanced ShockBurst. Zjistili jsme, že transceiver byl ve stavu IDLE těsně před odesláním HID dat do hostitelského USB rozhraní. Díky tomu je možné jej bezpečně překonfigurovat pro provoz postranního kanálu. Vložený kód potlačí ovládání, zachová původní konfiguraci transceiveru v celém rozsahu a uvede jej do nového režimu vysílání na vedlejším kanálu. Mechanismus potvrzení Enhanced ShockBurst je v tomto režimu deaktivován, HID data jsou přenášena vzduchem jako čistý text. Struktura paketu ve vedlejším kanálu je znázorněna na obrázku níže, grafy signálu jsou získány po demodulaci a před obnovením datových hodin. Hodnota adresy se volí pro usnadnění vizuální identifikace paketu.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Demodulovaný burst signál ve vedlejším kanálu

Po dokončení přenosu paketu do vedlejšího kanálu vložený kód obnoví stav transceiveru. Nyní je připraven opět normálně fungovat v kontextu původního firmwaru.

Ve frekvenční a časově-frekvenční doméně vypadá postranní kanál takto:

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Spektrální a časově-frekvenční reprezentace postranního kanálu

Pro otestování provozu čipu NRF24 s upraveným firmwarem jsme sestavili stojan, který obsahoval dongle Logitech s upraveným firmwarem, bezdrátovou klávesnici a přijímač sestavený na bázi čínského modulu s čipem NRF24.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Schéma rádiového odposlechu bezdrátové klávesnice Logitech

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Modul založený na NRF24

Na lavici jsme při běžném provozu klávesnice po připojení k dongle Logitech pozorovali přenos otevřených dat o úhozech ve vedlejším rádiovém kanálu a běžný přenos šifrovaných dat v hlavním rádiovém rozhraní. Podařilo se nám tedy zajistit přímý odposlech vstupu uživatele z klávesnice:

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Výsledek zachycení vstupu z klávesnice

Vložený kód vnáší do provozu firmwaru hardwarového klíče malá zpoždění. Jsou však příliš malé na to, aby si jich uživatel všiml.

Jak jistě víte, pro takový vektor útoku můžete použít jakoukoli klávesnici Logitech, která je kompatibilní s technologií Unifying. Vzhledem k tomu, že útok je zaměřen na přijímač Unifying, který je součástí většiny klávesnic Logitech, je nezávislý na konkrétním modelu klávesnice.

Závěr

Výsledky studie naznačují, že zvažovaný scénář mohou útočníci využít: pokud hacker nahradí oběť hardwarovým přijímačem pro bezdrátovou klávesnici Logitech, bude schopen zjistit hesla k účtům oběti se všemi z toho plynoucími následky. Nezapomeňte, že je také možné vkládat stisky kláves, což znamená, že není obtížné spustit libovolný kód na počítači oběti.

Co když může útočník na dálku upravit firmware libovolného klíče Logitech přes USB? Poté můžete z blízko sebe umístěných hardwarových klíčů přidat síť opakovačů a zvětšit únikovou vzdálenost. Přestože moderní prostředky rádiového příjmu s vysoce selektivními systémy, citlivé rádiové přijímače s krátkou dobou ladění frekvence a úzce nasměrovanými anténami umožní „finančně zabezpečenému“ útočníkovi „poslechnout“ vstup z klávesnice a stisknout klávesy i ze sousední budovy.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Profesionální rádiové zařízení

Vzhledem k tomu, že bezdrátové datové spojení klávesnice Logitech je docela dobře chráněno, nalezený vektor útoku vyžaduje fyzický přístup k přijímači, což útočníka značně omezuje. Jedinou možností ochrany by v tomto případě mohlo být použití kryptografických ochranných mechanismů pro firmware přijímače, například ověření podpisu staženého firmwaru na straně přijímače. Ale bohužel NRF24 toto nepodporuje a je nemožné implementovat ochranu v rámci současné architektury zařízení. Postarejte se tedy o své dongle, protože popsaná možnost útoku k nim vyžaduje fyzický přístup.

Postarejte se o své hardwarové klíče: Bezpečnostní studie Logitech Keyboard Receiver

Raccoon Security je specializovaný tým odborníků Vulkan STC v oblasti praktické informační bezpečnosti, kryptografie, obvodů, reverzního inženýrství a vývoje softwaru na nízké úrovni.

Zdroj: www.habr.com

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster