Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Historicky se stalo, že většina zaměstnanců používá bezdrátové klávesnice a myši značky Logitech. Znovu, když jsme zadávali svá hesla, jsme – odborníci týmu Raccoon Security – zjistili, jak obtížné je překonat ochranné mechanismy bezdrátových klávesnic. Provedený výzkum odhalil architektonické nedostatky a programové chyby, které umožňují přístup k zadávaným datům. Podrobnosti o našich zjištěních najdete níže.

Proč Logitech?

Podle našeho názoru jsou vstupní zařízení společnosti Logitech jedny z nejkvalitnějších a nejpohodlnějších. Většina zařízení, která máme k dispozici, je založena na řešení Logitech. Unifying je univerzální dongle, který umožňuje připojit až 6 zařízení. Všechna zařízení kompatibilní s technologií Logitech Unifying jsou označena příslušným logem. Snadno použitelné aplikace umožňuje spravovat připojení bezdrátových klávesnic k počítači. Podrobně je popsán proces připojení klávesnice k dongle přijímači Logitech, stejně jako samotná technologie, například. zde.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Dongle přijímač s podporou Logitech Unifying

Klávesnice může být zdrojem informací pro útočníky. Společnost Logitech, s ohledem na možnou hrozbu, se postarala o bezpečnost – použila šifrovací algoritmus AES128 v rádiovém kanálu bezdrátové klávesnice. První myšlenka, která může útočníka napadnout v této situaci, je odchytávání klíčových informací při jejich přenosu po rádiovém kanálu během procesu párování. Při existenci klíče je možné odchytávat rádiové signály klávesnice a dešifrovat je. Nicméně uživateli se velmi zřídka (nebo dokonce nikdy) nemusí klávesnice párovat Unifying procedurou, a hacker s vyhledávacím rádiovým přijímačem bude muset dlouho čekat. Kromě toho není samotný proces odchytu také tak jednoduchý. V posledním výzkumu v červnu 2019 expert na bezpečnost Markus Mengs zveřejnil na internetu prohlášení objevení zranitelnosti ve starých firmwarech USB donglů Logitech. Tato zranitelnost umožňuje útočníkům s fyzickým přístupem k zařízením získat klíče pro šifrování rádiového kanálu a injektovat stisky kláves (CVE-2019-13054).

Povíme si o našem výzkumu bezpečnosti dongle Logitech založeném na SoC NRF24 od společnosti Nordic Semiconductor. Začněme asi s nejzákladnějším, a to s rádiovým kanálem.

Jak se přenášejí data v rádiovém kanálu

Pro frekvenčně-časovou 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 (o tom si také můžete přečíst zde).

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Zařízení SDR Blade-RF

Dále jsme prozkoumali možnost zaznamenávání kvadratury rádiového signálu na mezifrekvenci, abychom je následně analyzovali pomocí metod digitálního zpracování signálů.

Státní komisí pro rádiové frekvence v Ruské federaci je povoleno používání zařízení s malým dosahem v rozsahu frekvencí 2400–2483,5 MHz. Toto je velmi „zaplněný“ rozsah, ve kterém se nachází takřka všechno: Wi-Fi, Bluetooth, různé dálkové ovladače, bezpečnostní systémy, bezdrátové detektory, myši s klávesnicemi a další bezdrátová digitální zařízení.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Spektrum části pásma 2,4 GHz

Rušivé prostředí v tomto pásmu je dost složité. Přesto se společnosti Logitech podařilo zajistit spolehlivý a stabilní příjem díky použití protokolu Enhanced ShockBurst v transceiveru NRF24 společně s algoritmy frekvenční adaptace.

Kanály v pásmu jsou umístěny na pozicích celých hodnot MHz, jak je určeno v specifikaci NRF24 Nordic Semiconductor – celkem 84 kanálů v síti frekvencí. Počet současně používaných frekvenčních kanálů Logitech je samozřejmě menší. Zjistili jsme použití alespoň čtyř. Vzhledem k omezené šířce pásma použitého spektrálního analyzátoru nelze přesný seznam použitých frekvenčních pozic určit, ale to nebylo ani vůbec nutné. Informace z klávesnice k dongle přijímači jsou přenášeny v režimu Burst (krátce aktivováno vysílačem) s využitím dvoupolohové frekvenční modulace GFSK s symbolovou rychlostí 1 Mbaud:

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

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

Přijímač využívá korelační princip příjmu, proto je v přenášeném balíčku přítomna předambule a adresní část. Odolné kódování proti rušení není používáno, tělo dat je šifrováno algoritmem AES128.

Obecně lze bezdrátový rozhraní klávesnice Logitech charakterizovat jako plně asynchronní se statickým zhuštěním a frekvenční adaptací. To znamená, že vysílač klávesnice přepíná kanál pro přenos každého nového paketu. Přijímač předem nezná čas přenosu ani frekvenční kanál, zná pouze jejich seznam. Přijímač a vysílač se setkávají na kanálu díky dohodnutým algoritmům obcházení a naslouchání frekvencím, stejně jako mechanismům potvrzení Enhanced ShockBurst. Nezkoumali jsme, zda je seznam kanálů statický. Pravděpodobně se jeho změna řídí algoritmem frekvenční adaptace. Něco podobného metodě PPRC (pseudonáhodné přeuspořádání pracovní frekvence) se odhaduje na základě použití frekvenčního spektra.

Dále tedy, v podmínkách frekvenčně-časové neurčitosti, aby bylo zaručeno přijetí všech signálů z klávesnice, potřeboval by útočník trvale kontrolovat celou mřížku frekvencí v rozsahu 84 pozic, což vyžaduje značné časové nároky. Zde se ukazuje, proč zranitelnost extrakce klíče přes USB (CVE-2019-13054) ve zdrojích je prezentována jako možnost injektování stisků kláves, a ne jako přístup útočníka k datům zadávaným z klávesnice. Je evidentní, že bezdrátové rozhraní klávesnice je dost složité a zajišťuje spolehlivou rádiovou komunikaci mezi zařízeními Logitech v podmínkách složitého rušení v pásmu 2,4 GHz.

Pohled na problém zevnitř

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

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Logitech K330

Podíváme se dovnitř klávesnice. Zajímavý prvek na desce pro výzkum – čip SoC NRF24 od Nordic Semiconductor.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

SoC NRF24 na desce bezdrátové klávesnice Logitech K330

Firmware je nahrán v interní paměti, mechanismy čtení a ladění jsou vypnuté. Bohužel firmware není publikován ve veřejných zdrojích. Proto jsme se rozhodli přistoupit k problému z jiné strany – prozkoumat vnitřní obsah dongle přijímače Logitech.

Vnitřní svět dongle přijímače je dost zajímavě konstruován. Dongle se snadno rozebírá, obsahuje známý NRF24 ve verzi se zabudovaným USB ovladačem a může být přeprogramován jak z pohledu USB, tak přímo programátorem.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Dongle Logitech bez pouzdra

Jelikož existuje standardní mechanismus aktualizace firmwaru pomocí aplikace Firmware Update Tool (z níž lze extrahovat aktualizovanou verzi firmwaru), není třeba hledat firmware uvnitř dongle.

Co bylo provedeno: z těla aplikace Firmware Update Tool byl extrahován firmware RQR_012_005_00028.bin. Pro ověření její integrity byl ovladač dongle připojen k programátoru ChipProg-48:

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Kabel pro připojení dongle Logitech k programátoru 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. Je možné nahrát modifikovaný firmware pomocí standardního mechanismu aktualizace, protože nebyly implementovány žádné mechanismy kryptografické ochrany firmwaru. My jsme pro účely výzkumu použili fyzické připojení k programátoru, jelikož taková debuggování je mnohem rychlejší.

Výzkum firmwaru a útok na uživatelský vstup

Č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 slouží transceiver jako periferní zařízení a je umístěn v adresním prostoru jako sada registrů. Dokumentaci k čipu a příklady zdrojových textů lze nalézt na internetu, takže disassembly firmwaru nepředstavuje žádný problém. Během reverzního inženýrství jsme lokalizovali funkce pro získávání údajů o stisknutých klávesách z rádiového kanálu a jejich převod do formátu HID pro přenos na hostitele přes USB rozhraní. Do volných adres paměti byl umístěn kód injekce, který zahrnoval nástroje pro zachycení řízení, uchování a obnovení původního kontextu provádění, stejně jako funkční kód.

Přijatý paket z rádiového kanálu, obsahující stisknutí nebo uvolnění klávesy, je dekódován, převeden na standardní HID report a směrován do USB rozhraní jako od běžné klávesnice. V rámci výzkumu je pro nás nejzajímavější část HID reportu, která obsahuje bajt flagů-modifikátorů a pole o 6 bajtech s kódy stisknutí kláves (pro informaci o HID zde).

Struktura HID reportu:

// 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řenosem HID struktury na hostitele injikovaný kód získává ovládání, kopíruje do paměti 8 bajtů nativních HID dat a odesílá je na vedlejší rádiový kanál v otevřené podobě. 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<

Vedlejší kanál je organizován na nám nastavené frekvenci s určujícími charakteristikami rychlosti manipulace a struktury paketů.

Práce přijímače v čipu NRF24 je založena na grafu stavů, do kterého je organicky vložen protokol Enhanced ShockBurst. Zjistili jsme, že bezprostředně před přenosem HID dat do USB rozhraní hostitele byl přijímač ve stavu IDLE. To umožňuje jeho bezpečné přeprogramování pro práci na vedlejším kanálu. Injekční kód zachycuje ovládání, zachovává originální konfiguraci přijímače v plném rozsahu a převádí jej do nového režimu přenosu na vedlejší kanál. Mechanismus potvrzení Enhanced ShockBurst je v tomto režimu vypnut, HID data jsou v otevřené podobě přenášena do rádiového éteru. Struktura paketu na vedlejším kanálu je znázorněna na obrázku níže, epúry signálu byly získány po demodulaci a před obnovením časové synchronizace dat. Adresní hodnota byla zvolena pro usnadnění vizuální identifikace paketu.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Demodulovaný signál Burst paketu na vedlejším kanálu

Po dokončení přenosu paketu na vedlejší kanál injikovaný kód obnovuje stav přijímače. Nyní je opět připraven k práci v normálním režimu v kontextu původního firmwaru.

V frekvenční a časově-frekvenční oblasti vedlejší kanál vypadá tak, jak je znázorněno na obrázku:

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Spektrální a frézkově-časové zobrazení vedlejšího kanálu

Pro ověření funkce čipu NRF24 s upraveným firmwarem jsme sestavili stanoviště, které zahrnovalo Logitech dongle s modifikovaným firmwarem, bezdrátovou klávesnici a přijímač, který byl postaven na základě čínského modulu s čipem NRF24.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Schéma zachycení rádiového signálu bezdrátové klávesnice Logitech

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Modul na bázi NRF24

Na stanovišti při běžném provozu klávesnice po jejím připojení k donglu Logitech jsme pozorovali přenos otevřených dat o stisknutých klávesách na vedlejším rádiovém kanálu a normální přenos šifrovaných dat v hlavním rádiovém rozhraní. Tímto způsobem se nám podařilo zajistit přímé zachycení uživatelského vstupu z klávesnice:

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Výsledek zachycení uživatelského vstupu z klávesnice

Vložený kód přináší malé zpoždění do práce firmware donglu. Nicméně jsou příliš malé na to, aby je uživatel mohl postřehnout.

Jak chápete, pro takový vektor útoku lze použít libovolnou klávesnici Logitech 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, není závislý na konkrétním modelu klávesnice.

Závěr

Získané výsledky výzkumu vyvolávají myšlenku o možném využití zmiňovaného scénáře útočníky: pokud hacker vymění oběti dongle přijímač pro bezdrátovou klávesnici Logitech, může zjistit hesla k účtům oběti se všemi vyplývajícími následky. Nesmíme zapomínat, že injekce stisků kláves je také možná, což znamená, že provádění libovolného kódu na počítači oběti není obtížné.

A co když útočník bude moci vzdáleně modifikovat firmware jakéhokoli Logitech donglu přes USB? Pak by se z blízkých donglů dala vytvořit síť retranslátorů a zvýšit vzdálenost úniku. I když 'finančně zajištěný' útočník by mohl s moderním rádiovým vybavením s vysoce selektivními systémy, citlivými rádiovými přijímači s krátkým časem přestavby frekvence a úzce směrovanými anténami 'naslouchat' uživatelskému vstupu z klávesnice a stisknout klávesy i ze sousední budovy.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Profesionální vybavení pro rádiový příjem

Jelikož je bezdrátový přenos dat klávesnice Logitech dostatečně chráněný, nalezený vektor útoku vyžaduje fyzický přístup k přijímači, což značně omezuje útočníka. Jedinou možností ochrany by v tomto případě mohlo být použití mechanismů kryptografické ochrany pro firmwarový příjemce, například ověřování podpisu nahrávaného firmwaru na straně přijímače. Bohužel však NRF24 to nepodporuje a v rámci současné architektury zařízení není možné implementovat ochranu. Takže si chraňte své dongly, protože popsaný vektor útoku vyžaduje fyzický přístup k nim.

Chraňte své dongly: výzkum bezpečnosti přijímače klávesnic Logitech

Raccoon Security je speciální tým expertů NTC „Vulkan“ v oblasti praktické informační bezpečnosti, kryptografie, schématování, reverzního inženýrství a vytváření nízkolevelového softwaru.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster