
Historisch gezien gebruiken de meeste medewerkers draadloze toetsenborden en muizen van Logitech. Opnieuw vroegen wij – de specialisten van het Raccoon Security-team – ons bij het invoeren van onze wachtwoorden af: hoe moeilijk is het om de beveiligingsmechanismen van draadloze toetsenborden te omzeilen? Het uitgevoerde onderzoek bracht architectuurfouten en softwarefouten aan het licht die toegang tot de ingevoerde gegevens mogelijk maken. Wat we uiteindelijk kregen.
Waarom Logitech?
Naar onze mening behoren de invoerapparaten van Logitech tot de beste kwaliteit en het meest gebruiksvriendelijk. De meeste apparaten die we aanbieden, zijn gebaseerd op de Logitech-oplossing. – is een universele dongle-ontvanger waarmee u tot 6 apparaten kunt aansluiten. Alle apparaten die compatibel zijn met Logitech Unifying-technologie zijn voorzien van het bijbehorende logo. Gebruiksvriendelijk Hiermee kunt u de verbinding van draadloze toetsenborden met uw computer beheren. Het proces van het aansluiten van een toetsenbord op een Logitech-dongle-ontvanger, evenals de technologie zelf, worden uitgebreid behandeld, bijvoorbeeld: .

Logitech Unifying Dongle-ontvanger
Het toetsenbord kan een bron van informatie voor indringers worden. Logitech heeft, rekening houdend met de mogelijke dreiging, gezorgd voor de beveiliging: het gebruikte het AES128-encryptiealgoritme in het radiokanaal van het draadloze toetsenbord. Het eerste waar een indringer in deze situatie aan kan denken, is het onderscheppen van sleutelinformatie wanneer deze via het radiokanaal wordt verzonden tijdens de koppelingsprocedure. Immers, als je de sleutel hebt, kun je de radiosignalen van het toetsenbord onderscheppen en ontcijferen. De gebruiker hoeft het toetsenbord echter zelden (of zelfs nooit) te koppelen met de Unifying-procedure, en een hacker met een scannende radio-ontvanger zal lang moeten wachten. Bovendien is het onderscheppen zelf niet zo eenvoudig. In de meest recente studie van juni 2019 publiceerde beveiligingsexpert Marcus Mengs online Over de ontdekking van een kwetsbaarheid in oude firmware van Logitech USB-dongles. Deze kwetsbaarheid stelt aanvallers met fysieke toegang tot de apparaten in staat om encryptiesleutels voor radiokanalen te verkrijgen en toetsaanslagen te injecteren (CVE-2019-13054).
We vertellen je over ons onderzoek naar de beveiliging van de Logitech-dongle gebaseerd op de NRF24 SoC van Nordic Semiconductor. Laten we beginnen met het radiokanaal zelf.
Hoe data in een radiokanaal ‘vliegt’
Voor de frequentie-tijdanalyse van het radiosignaal hebben we een SDR-ontvanger gebruikt op basis van het Blade-RF-apparaat in spectrum-analysatormodus (hier kunt u ook meer over lezen) ).

SDR Blade-RF-apparaat
Ook hebben we de mogelijkheid overwogen om de kwadraturen van het radiosignaal op de middenfrequentie te registreren, zodat we deze vervolgens met behulp van digitale signaalverwerkingstechnieken konden analyseren.
Staatscommissie voor radiofrequenties in de Russische Federatie Voor gebruik door apparaten met een kort bereik ligt het frequentiebereik tussen 2400 en 2483,5 MHz. Dit is een zeer drukbezocht bereik, waar je alles kunt vinden: wifi, Bluetooth, allerlei soorten afstandsbedieningen, beveiligingssystemen, draadloze detectoren, muizen met toetsenborden en andere draadloze digitale apparaten.

Spectrum van de 2,4 GHz-band
De interferentieomgeving in het bereik is vrij complex. Desondanks is Logitech erin geslaagd een betrouwbare en stabiele ontvangst te bieden dankzij het Enhanced ShockBurst-protocol in de NRF24-transceiver in combinatie met frequentieaanpassingsalgoritmen.
De kanalen in het bereik zijn geplaatst op gehele MHz-posities zoals gedefinieerd in NRF24 Nordic Semiconductor – slechts 84 kanalen in het frequentieraster. Het aantal gelijktijdig gebruikte frequentiekanalen van Logitech is uiteraard minder. We vonden er minstens vier in gebruik. Vanwege de beperkte bandbreedte van de toegepaste signaalspectrumanalysator was het niet mogelijk om de exacte lijst met gebruikte frequentieposities te bepalen, maar dat was ook niet nodig. Informatie van het toetsenbord naar de dongle-ontvanger wordt verzonden in burstmodus (korte inschakeling van de zender) met behulp van twee-positie frequentiemodulatie GFSK met een symboolsnelheid van 1 Mbaud:

Toetsenbordradiosignaal in tijdweergave
De ontvanger gebruikt het correlatieprincipe van ontvangst, waardoor het verzonden pakket een preambule en een adresgedeelte bevat. Er wordt geen gebruikgemaakt van ruisbestendige codering; de databody wordt gecodeerd met het AES128-algoritme.
Over het algemeen kan de radio-interface van het draadloze Logitech-toetsenbord worden gekarakteriseerd als volledig asynchroon met statistische multiplexing en frequentieaanpassing. Dit betekent dat de zender van het toetsenbord van kanaal wisselt voor het verzenden van elk nieuw pakket. De ontvanger kent de transmissietijd of het frequentiekanaal niet van tevoren, maar alleen hun lijst. De ontvanger en zender ontmoeten elkaar in het kanaal dankzij gecoördineerde algoritmen voor het omzeilen en beluisteren van frequenties, evenals Enhanced ShockBurst-bevestigingsmechanismen. We hebben niet onderzocht of de kanaallijst statisch is. Waarschijnlijk is de verandering te wijten aan het frequentieaanpassingsalgoritme. Iets dat dicht in de buurt komt van de frequentiehopping-methode (pseudo-willekeurige frequentiehopping) wordt geraden in het gebruik van de frequentiebron van het bereik.
Om de ontvangst van alle toetsenbordsignalen te garanderen, moet een aanvaller in omstandigheden van frequentie-tijdsonzekerheid constant het volledige frequentieraster van het 84-positiebereik in de gaten houden, wat aanzienlijke tijdsinvesteringen vereist. Hier wordt duidelijk waarom de kwetsbaarheid bij het extraheren van USB-sleutels (CVE-2019-13054) bestaat. wordt gepositioneerd als een mogelijkheid om toetsaanslagen te injecteren, en niet om een indringer toegang te verschaffen tot de gegevens die via het toetsenbord worden ingevoerd. Het is duidelijk dat de radio-interface van het draadloze toetsenbord vrij complex is en betrouwbare radiocommunicatie tussen Logitech-apparaten biedt, zelfs bij sterke interferentie in het 2,4 GHz-bereik.
Een blik op het probleem van binnenuit
Voor ons onderzoek kozen we een van onze bestaande Logitech K330-toetsenborden en een Logitech Unifying-dongle.

Logitech K330
Laten we eens kijken naar de binnenkant van het toetsenbord. Een interessant element op het bord is de SoC NRF24-chip van Nordic Semiconductor.

NRF24 SoC op Logitech K330 draadloos toetsenbordbord
De firmware bevindt zich in het interne geheugen, de lees- en debugmechanismen zijn uitgeschakeld. Helaas is de firmware niet gepubliceerd in open bronnen. Daarom hebben we besloten het probleem vanuit een andere hoek te benaderen: door de interne inhoud van de Logitech-dongle-ontvanger te bestuderen.
De "binnenwereld" van de dongle-ontvanger is behoorlijk interessant. De dongle is eenvoudig te demonteren, heeft de bekende NRF24 in de release met een ingebouwde USB-controller en kan zowel vanaf de USB-kant als rechtstreeks door de programmeur worden herprogrammeerd.

Logitech dongle zonder behuizing
Omdat er een standaardmechanisme is voor het updaten van de firmware met behulp van (waar u de bijgewerkte versie van de firmware kunt ophalen), hoeft u niet te zoeken naar de firmware in de dongle.
Wat er gedaan werd: de firmware RQR_012_005_00028.bin werd uit de body van de Firmware Update Tool-applicatie gehaald. Om de integriteit ervan te controleren, werd de donglecontroller met een lintkabel verbonden. :

Kabel voor het aansluiten van de Logitech-dongle op de ChipProg 48-programmeur
Om de integriteit van de firmware te controleren, werd deze succesvol in het geheugen van de controller geplaatst en functioneerde deze correct. Het toetsenbord en de muis werden via Logitech Unifying met de dongle verbonden. Het is mogelijk om aangepaste firmware te uploaden met behulp van het standaard updatemechanisme, aangezien er geen cryptografische firmwarebeveiligingsmechanismen zijn. Voor de doeleinden van het onderzoek gebruikten we een fysieke verbinding met de programmeur, omdat dit het debuggen aanzienlijk versnelt.
Firmware-onderzoek en gebruikersinvoeraanval
De NRF24-chip is ontworpen op basis van de Intel 8051-rekenkern in de traditionele Harvard-architectuur. Voor de kern fungeert de transceiver als een randapparaat en wordt deze als een set registers in de adresruimte geplaatst. De documentatie voor de chip en voorbeelden van bronteksten zijn te vinden op internet, waardoor het demonteren van de firmware niet moeilijk is. Tijdens reverse engineering hebben we de functies gelokaliseerd voor het ontvangen van toetsaanslaggegevens van het radiokanaal en het converteren ervan naar het HID-formaat voor verzending naar de host via de USB-interface. Injectiecode werd in vrije geheugenadressen geplaatst, inclusief tools voor het onderscheppen van de besturing, het opslaan en herstellen van de oorspronkelijke uitvoeringscontext, evenals functionele code.
Het toetsaanslag- of toetsontgrendelingspakket dat de dongle van het radiokanaal ontvangt, wordt gedecodeerd, omgezet in een standaard HID-rapport en naar de USB-interface verzonden, net als bij een gewoon toetsenbord. In het kader van de studie is het deel van het HID-rapport dat voor ons het meest interessant is, het deel met de modifier flag-byte en de 6-byte array met toetsaanslagcodes (zie ter referentie de informatie over HID). ).
Structuur van het HID-rapport:
// 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;Vlak voordat de HID-structuur naar de host wordt verzonden, neemt de geïnjecteerde code de controle over, kopieert 8 bytes aan native HID-gegevens naar het geheugen en stuurt deze in platte tekst naar het zijradiokanaal. In code ziet het er als volgt uit:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<Het zijkanaal is georganiseerd op een frequentie die we instellen met bepaalde kenmerken van manipulatiesnelheid en pakketstructuur.
Werking van de transceiver in de chip is gebaseerd op een statusgrafiek, die het Enhanced ShockBurst-protocol organisch integreert. We ontdekten dat de transceiver zich vlak voor de verzending van HID-gegevens naar de host-USB-interface in de inactieve status bevond. Dit maakt het mogelijk om deze veilig te herconfigureren voor gebruik in het zijkanaal. De geïnjecteerde code onderschept de besturing, slaat de oorspronkelijke transceiverconfiguratie volledig op en schakelt over naar een nieuwe transmissiemodus in het zijkanaal. Het Enhanced ShockBurst-bevestigingsmechanisme is in deze modus uitgeschakeld en HID-gegevens worden als platte tekst via de ether verzonden. De structuur van het pakket in het zijkanaal wordt weergegeven in de onderstaande afbeelding. De signaaldiagrammen zijn verkregen na demodulatie en vóór het herstellen van de datakloksynchronisatie. De adreswaarde is gekozen voor eenvoudige visuele identificatie van het pakket.

Gedemoduleerd burstpakketsignaal in het zijkanaal
Nadat het pakket naar het zijkanaal is overgebracht, herstelt de geïnjecteerde code de status van de transceiver. Deze is nu weer klaar om in de normale modus te werken in de context van de oorspronkelijke firmware.
In het frequentiedomein en het tijd-frequentiedomein ziet het zijkanaal eruit zoals in de afbeelding is weergegeven:

Spectrale en tijd-frequentie weergave van het zijkanaal
Om de werking van de NRF24-chip met aangepaste firmware te testen, hebben we een standaard in elkaar gezet met daarin een Logitech-dongle met aangepaste firmware, een draadloos toetsenbord en een ontvanger die was samengesteld op basis van een Chinese module met een NRF24-chip.

Schema voor het onderscheppen van radiosignalen van het draadloze Logitech-toetsenbord

NRF24-gebaseerde module
Op de standaard observeerden we, tijdens normaal gebruik van het toetsenbord na aansluiting op de Logitech-dongle, de transmissie van open data over toetsaanslagen in het zijkanaal en de normale transmissie van gecodeerde data in de hoofdinterface. Zo konden we de toetsenbordinvoer van de gebruiker direct afluisteren:

Resultaat van het onderscheppen van toetsenbordinvoer
De ingevoegde code introduceert kleine vertragingen in de werking van de dongle-firmware. Deze zijn echter te klein om door de gebruiker te worden opgemerkt.
Zoals u kunt zien, kan elk Logitech-toetsenbord dat compatibel is met Unifying-technologie voor deze aanvalsvector worden gebruikt. Omdat de aanval gericht is op de Unifying-ontvanger die bij de meeste Logitech-toetsenborden wordt geleverd, is deze niet afhankelijk van het specifieke toetsenbordmodel.
Conclusie
De resultaten van het onderzoek geven aanleiding tot de gedachte dat aanvallers het volgende scenario kunnen gebruiken: als een hacker de dongle van het slachtoffer vervangt door een draadloos Logitech-toetsenbord, kan hij de wachtwoorden van de accounts van het slachtoffer achterhalen, met alle gevolgen van dien. Het is belangrijk om te onthouden dat het ook mogelijk is om toetsaanslagen te injecteren, wat betekent dat het uitvoeren van willekeurige code op de computer van het slachtoffer niet moeilijk is.
Maar wat als een aanvaller de firmware van een Logitech-dongle op afstand via USB kan wijzigen? Dan kan een netwerk van repeaters worden gecreëerd met dicht op elkaar geplaatste dongles en kan de lekafstand worden vergroot. Hoewel een "financieel veilige" aanvaller moderne radio-ontvangstapparatuur met zeer selectieve systemen, gevoelige radio-ontvangers met een korte frequentie-afstemtijd en smalle antennes kan gebruiken om te "luisteren" naar toetsenbordinvoer en het indrukken van toetsen, zelfs vanuit een naburig gebouw.

Professionele apparatuur voor radio-ontvangst
Omdat het draadloze gegevensoverdrachtkanaal van het Logitech-toetsenbord goed beveiligd is, vereist de gevonden aanvalsvector fysieke toegang tot de ontvanger, wat de mogelijkheden van de aanvaller aanzienlijk beperkt. De enige beschermingsoptie in dit geval zou het gebruik van cryptografische beveiligingsmechanismen voor de firmware van de ontvanger kunnen zijn, bijvoorbeeld verificatie van de handtekening van de geladen firmware aan de ontvangerzijde. Helaas ondersteunt NRF24 dit niet en is het onmogelijk om bescherming te implementeren binnen de huidige architectuur van het apparaat. Wees dus voorzichtig met uw dongles, want de beschreven aanvalsoptie vereist fysieke toegang tot de dongles.

Raccoon Security is een speciaal team van experts van het Vulcan Scientific and Technical Center op het gebied van praktische informatiebeveiliging, cryptografie, circuitontwerp, reverse engineering en het maken van low-level software.
Bron: www.habr.com
