Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Historisch gezien gebruiken de meeste werknemers draadloze toetsenborden en muizen van Logitech. Toen we onze wachtwoorden opnieuw invoerden, vroegen wij, de specialisten van het Raccoon Security-team, ons af: hoe moeilijk is het om de beveiligingsmechanismen van draadloze toetsenborden te omzeilen? Het onderzoek bracht architectonische gebreken en softwarefouten aan het licht die toegang tot invoergegevens mogelijk maken. Onder de snede is wat we hebben.

Waarom Logitech?

Naar onze mening behoren de invoerapparaten van Logitech tot de hoogste kwaliteit en het handigst. De meeste apparaten die we hebben zijn gebaseerd op de Logitech-oplossing Unifying is een universele dongle-ontvanger waarmee u maximaal 6 apparaten kunt aansluiten. Alle apparaten die compatibel zijn met Logitech Unifying-technologie zijn gemarkeerd met het Logitech Unifying-technologielogo. Makkelijk te gebruiken приложение Hiermee kunt u de verbinding van draadloze toetsenborden met uw computer beheren. Het proces van het verbinden van het toetsenbord met de Logitech-ontvangerdongle, evenals de technologie zelf, komt bijvoorbeeld aan bod: hier.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Dongle-ontvanger met Logitech Unifying-ondersteuning

Het toetsenbord kan een informatiebron worden voor aanvallers. Logitech zorgde, rekening houdend met de mogelijke dreiging, voor de veiligheid - gebruikte het AES128-coderingsalgoritme in het radiokanaal van het draadloze toetsenbord. De eerste gedachte die een aanvaller in deze situatie zou kunnen hebben, is het onderscheppen van belangrijke informatie wanneer deze tijdens de bindingsprocedure via een radiokanaal wordt verzonden. Als je een sleutel hebt, kun je immers de radiosignalen van het toetsenbord onderscheppen en decoderen. De gebruiker hoeft echter zelden (of zelfs nooit) het toetsenbord te verenigen, en een hacker met een scanradio zal lang moeten wachten. Bovendien is niet alles zo eenvoudig met het onderscheppingsproces zelf. In het laatste onderzoek van juni 2019 publiceerde beveiligingsexpert Markus Mengs online bericht over de ontdekking van een kwetsbaarheid in oude firmware van Logitech USB-dongles. Hiermee kunnen aanvallers met fysieke toegang tot apparaten coderingssleutels voor radiokanalen verkrijgen en toetsaanslagen injecteren (CVE-2019-13054).

We zullen het hebben over ons beveiligingsonderzoek van de Logitech-dongle op basis van de NRF24 SoC van Nordic Semiconductor. Laten we misschien beginnen met het radiokanaal zelf.

Hoe gegevens ‘vliegen’ in een radiokanaal

Voor tijd-frequentieanalyse van het radiosignaal hebben we een SDR-ontvanger gebruikt op basis van het Blade-RF-apparaat in spectrumanalysemodus (je kunt hier ook over lezen hier).

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

SDR Blade-RF-apparaat

We hebben ook de mogelijkheid overwogen om kwadraturen van het radiosignaal op een middenfrequentie op te nemen, die vervolgens kunnen worden geanalyseerd met behulp van digitale signaalverwerkingstechnieken.

Staatscommissie voor radiofrequenties in de Russische Federatie toegestaan voor gebruik door korteafstandsapparaten is het frequentiebereik 2400–2483,5 MHz. Dit is een zeer “bevolkt” bereik, waarin je niets zult vinden: Wi-Fi, Bluetooth, allerlei afstandsbedieningen, beveiligingssystemen, draadloze detectoren, muizen met toetsenborden en andere draadloze digitale apparaten.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Spectrum van de 2,4 GHz-band

De interferentieomgeving in het bereik is behoorlijk complex. Desondanks kon Logitech betrouwbare en stabiele ontvangst bieden door het gebruik van het Enhanced ShockBurst-protocol in de NRF24-transceiver in combinatie met algoritmen voor frequentieaanpassing.

Kanalen in een band worden op gehele MHz-posities geplaatst, zoals gedefinieerd in specificaties NRF24 Nordic Semiconductor - in totaal 84 kanalen in het frequentieraster. Het aantal gelijktijdig gebruikte frequentiekanalen door Logitech is uiteraard minder. We hebben het gebruik van ten minste vier geïdentificeerd. Vanwege de beperkte bandbreedte van de gebruikte signaalspectrumanalysator kon de exacte lijst met gebruikte frequentieposities niet worden vastgesteld, maar dit was niet nodig. Informatie van het toetsenbord naar de ontvangerdongle wordt verzonden in Burst-modus (korte beurten op de zender) met behulp van frequentiemodulatie met twee posities GFSK met een symboolsnelheid van 1 Mbaud:

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Toetsenbordradiosignaal in tijdweergave

De ontvanger gebruikt het correlatieprincipe van ontvangst, dus het verzonden pakket bevat een preambule en een adresgedeelte. Er wordt geen gebruik gemaakt van ruisbestendige codering; de databody is 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 frequentie-aanpassing. Dit betekent dat de toetsenbordzender het kanaal schakelt om elk nieuw pakket te verzenden. De ontvanger kent van tevoren de zendtijd en het frequentiekanaal niet, maar alleen hun lijst is bekend. De ontvanger en zender ontmoeten elkaar in het kanaal dankzij gecoördineerde frequentie-bypass- en luisteralgoritmen, evenals verbeterde ShockBurst-bevestigingsmechanismen. We hebben niet onderzocht of de zenderlijst statisch is. Waarschijnlijk is de verandering te wijten aan het frequentieaanpassingsalgoritme. Iets dat dicht bij de frequentieverspringingsmethode ligt (pseudo-willekeurige afstemming van de werkfrequentie) is te zien in het gebruik van de frequentiebron van het bereik.

Om een ​​gegarandeerde ontvangst van alle toetsenbordsignalen te garanderen, zal een aanvaller, onder omstandigheden van tijd-frequentie-onzekerheid, voortdurend het volledige frequentieraster van 84 posities moeten monitoren, wat een aanzienlijke hoeveelheid tijd vergt. Hier wordt duidelijk waarom de kwetsbaarheid voor het extraheren van USB-sleutels (CVE-2019-13054) bij bronnen gepositioneerd als de mogelijkheid om toetsaanslagen te injecteren, in plaats van toegang te krijgen tot gegevens die via het toetsenbord worden ingevoerd. Het is duidelijk dat de radio-interface van het draadloze toetsenbord behoorlijk complex is en betrouwbare radiocommunicatie tussen Logitech-apparaten biedt onder moeilijke interferentieomstandigheden in de 2,4 GHz-band.

Een blik op het probleem van binnenuit

Voor ons onderzoek kozen we voor een van onze bestaande Logitech K330-toetsenborden en een Logitech Unifying-dongle.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Logitech K330

Laten we eens een kijkje nemen in het toetsenbord. Een interessant element op het bord om te bestuderen is de SoC NRF24-chip van Nordic Semiconductor.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

SoC NRF24 op Logitech K330 draadloos toetsenbordbord

De firmware bevindt zich in het interne geheugen, de lees- en foutopsporingsmechanismen zijn uitgeschakeld. Helaas is de firmware niet gepubliceerd in open bronnen. Daarom hebben we besloten het probleem van de andere kant te benaderen: om de interne inhoud van de Logitech-dongle-ontvanger te bestuderen.

De “binnenwereld” van de dongle-ontvanger is best interessant. De dongle is eenvoudig te demonteren, bevat de bekende NRF24-release met ingebouwde USB-controller en kan zowel vanaf de USB-kant als rechtstreeks vanaf de programmeur opnieuw worden geprogrammeerd.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Logitech dongle zonder behuizing

Omdat er een standaardmechanisme is voor het bijwerken van de firmware met behulp van Firmware Update Tool-toepassingen (waaruit u de bijgewerkte firmwareversie kunt halen), hoeft u niet naar de firmware in de dongle te zoeken.

Wat is er gedaan: firmware RQR_012_005_00028.bin is geëxtraheerd uit de hoofdtekst van de Firmware Update Tool-toepassing. Om de integriteit ervan te controleren, werd de dongle-controller met een kabel verbonden naar de ChipProg-48-programmeur:

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Kabel voor het verbinden van de Logitech-dongle met de ChipProg 48-programmeur

Om de integriteit van de firmware te controleren, werd deze met succes in het geheugen van de controller geplaatst en werkte correct, het toetsenbord en de muis waren via Logitech Unifying op de dongle aangesloten. Het is mogelijk om gewijzigde firmware te uploaden met behulp van het standaard updatemechanisme, aangezien er geen cryptografische beveiligingsmechanismen voor de firmware bestaan. Voor onderzoeksdoeleinden hebben we een fysieke verbinding met de programmeur gebruikt, omdat het debuggen op deze manier veel sneller gaat.

Firmwareonderzoek en aanval op gebruikersinvoer

De NRF24-chip is ontworpen op basis van de Intel 8051-computerkern in traditionele Harvard-architectuur. Voor de kern fungeert de zendontvanger als randapparaat en wordt als een set registers in de adresruimte geplaatst. Documentatie voor de chip en broncodevoorbeelden zijn op internet te vinden, dus het demonteren van de firmware is niet moeilijk. Tijdens reverse engineering hebben we de functies gelokaliseerd voor het ontvangen van toetsaanslaggegevens van het radiokanaal en het converteren ervan naar HID-formaat voor verzending naar de host via de USB-interface. De injectiecode werd in vrije geheugenadressen geplaatst, die tools bevatten voor het onderscheppen van de controle, het opslaan en herstellen van de oorspronkelijke uitvoeringscontext, evenals functionele code.

Het pakket van het indrukken of loslaten van een sleutel dat door de dongle van het radiokanaal wordt ontvangen, wordt gedecodeerd, omgezet in een standaard HID-rapport en naar de USB-interface verzonden zoals vanaf een gewoon toetsenbord. Als onderdeel van het onderzoek is het deel van het HID-rapport dat voor ons het meest interessant is, het deel van het HID-rapport dat een byte met modificatievlaggen bevat en een array van 6 bytes met toetsaanslagcodes (ter referentie: informatie over HID hier).

HID-rapportstructuur:

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

Onmiddellijk voordat de HID-structuur naar de host wordt verzonden, neemt de geïnjecteerde code de controle over, kopieert 8 bytes aan oorspronkelijke HID-gegevens in het geheugen en verzendt deze in duidelijke tekst naar het radiozijkanaal. 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 hebben ingesteld met bepaalde kenmerken van de manipulatiesnelheid en pakketstructuur.

Werking van de transceiver in de chip NRF24 is gebaseerd op een toestandsgrafiek waarin het Enhanced ShockBurst-protocol organisch is geïntegreerd. We ontdekten dat de transceiver onmiddellijk voordat HID-gegevens naar de USB-hostinterface werden verzonden, zich in de IDLE-status bevond. Dit maakt het mogelijk om hem veilig opnieuw te configureren voor gebruik in een zijkanaal. De geïnjecteerde code onderschept de besturing, behoudt de oorspronkelijke transceiverconfiguratie volledig en schakelt deze over naar een nieuwe transmissiemodus op het zijkanaal. Het Enhanced ShockBurst-bevestigingsmechanisme is in deze modus uitgeschakeld; HID-gegevens worden in duidelijke vorm 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 herstel van de datakloksynchronisatie. De adreswaarde is gekozen vanwege het gemak van visuele identificatie van het pakket.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Gedemoduleerd Burst Burst-signaal in zijkanaal

Nadat het pakket naar het zijkanaal is verzonden, herstelt de geïnjecteerde code de toestand van de zendontvanger. Nu is het weer klaar om normaal te werken in de context van de originele firmware.

In de frequentie- en tijdfrequentiedomeinen ziet het zijkanaal er als volgt uit:

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Spectrale en tijdfrequentieweergave van het zijkanaal

Om de werking van de NRF24-chip met aangepaste firmware te testen, hebben we een standaard in elkaar gezet met onder meer een Logitech-dongle met aangepaste firmware, een draadloos toetsenbord en een ontvanger samengesteld op basis van een Chinese module met de NRF24-chip.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Logitech draadloos toetsenbord radiosignaal onderscheppingscircuit

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Op NRF24 gebaseerde module

Op de bank, terwijl het toetsenbord normaal werkte, observeerden we, nadat we het hadden aangesloten op de Logitech-dongle, de overdracht van duidelijke gegevens over toetsaanslagen in het zijradiokanaal en de normale overdracht van gecodeerde gegevens in de hoofdradio-interface. Zo konden we de toetsenbordinvoer van gebruikers direct onderscheppen:

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Het resultaat van het onderscheppen van toetsenbordinvoer

De geïnjecteerde code introduceert kleine vertragingen in de werking van de dongle-firmware. Ze zijn echter te klein voor de gebruiker om op te merken.

Zoals u zich kunt voorstellen, 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 onafhankelijk van het specifieke toetsenbordmodel.

Conclusie

De resultaten van het onderzoek suggereren het mogelijke gebruik van het beschouwde scenario door aanvallers: als een hacker het slachtoffer vervangt door een dongle-ontvanger voor een draadloos toetsenbord van Logitech, kan hij de wachtwoorden voor de accounts van het slachtoffer achterhalen met alle gevolgen van dien. gevolgen. Vergeet niet dat het ook mogelijk is om toetsaanslagen te injecteren, waardoor het niet moeilijk is om willekeurige code uit te voeren op de computer van het slachtoffer.

Wat als een aanvaller plotseling de firmware van een Logitech-dongle via USB op afstand kan wijzigen? Vervolgens kunt u vanuit dicht bij elkaar geplaatste dongles een netwerk van repeaters creëren en de lekafstand vergroten. Hoewel een ‘financieel rijke’ aanvaller zelfs vanuit een naburig gebouw naar toetsenbordinvoer kan ‘luisteren’ en toetsen kan indrukken, kunnen moderne radio-ontvangstapparatuur met zeer selectieve systemen, gevoelige radio-ontvangers met korte frequentieafstemtijden en sterk gerichte antennes hen in staat stellen om te “luisteren” naar toetsenbordinvoer en op toetsen te drukken, zelfs vanuit een naburig gebouw.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Professionele radioapparatuur

Omdat het draadloze datatransmissiekanaal van het Logitech-toetsenbord redelijk goed beschermd is, vereist de gevonden aanvalsvector fysieke toegang tot de ontvanger, wat de aanvaller enorm beperkt. De enige beschermingsoptie in dit geval zou het gebruik van cryptografische beschermingsmechanismen voor de ontvangerfirmware zijn, bijvoorbeeld door de handtekening van de geladen firmware aan de ontvangerzijde te controleren. Maar helaas ondersteunt NRF24 dit niet en is het onmogelijk om bescherming te implementeren binnen de huidige apparaatarchitectuur. Zorg dus goed voor je dongles, want de beschreven aanvalsoptie vereist fysieke toegang daartoe.

Zorg goed voor uw dongles: Logitech-veiligheidsonderzoek naar toetsenbordontvangers

Raccoon Security is een speciaal team van experts van het Vulcan Research and Development Center op het gebied van praktische informatiebeveiliging, cryptografie, circuitontwerp, reverse engineering en low-level softwarecreatie.

Bron: www.habr.com

Voeg een reactie