Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Historisch gezien gebruiken de meeste medewerkers draadloze toetsenborden en muizen van Logitech. Terwijl we opnieuw onze wachtwoorden invoerden, stelden wij – de specialisten van het Raccoon Security-team – ons de vraag: hoe moeilijk is het om de beveiligingsmechanismen van draadloze toetsenborden te omzeilen? Het uitgevoerde onderzoek onthulde architectonische tekortkomingen en softwarefouten die toegang tot de ingevoerde gegevens mogelijk maken. Hieronder vind je wat we hebben ontdekt.

Waarom Logitech?

Naar onze mening zijn de invoerapparaten van Logitech een van de meest kwalitatieve en gebruiksvriendelijke. De meeste apparaten die wij hebben, zijn gebaseerd op de oplossing van Logitech. Unifying is een universele dongle-ontvanger waarmee tot 6 apparaten kunnen worden aangesloten. Alle apparaten die compatibel zijn met de Logitech Unifying-technologie zijn gemarkeerd met het bijbehorende logo. Het gebruiksvriendelijke de app maakt het mogelijk om de verbinding van draadloze toetsenborden met de computer te beheren. Het proces om een toetsenbord aan de Logitech-dongle te koppelen, evenals de technologie zelf, worden bijvoorbeeld gedetailleerd behandeld in hier.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

De dongle-ontvanger met ondersteuning voor Logitech Unifying

Een toetsenbord kan een bron van informatie zijn voor aanvallers. Logitech heeft, rekening houdend met de mogelijke bedreiging, gezorgd voor de veiligheid – er is een AES128 versleutelingsalgoritme toegepast op de draadloze verbinding van het toetsenbord. De eerste gedachte die een aanvaller kan krijgen in zo'n situatie is het onderscheppen van cruciale informatie tijdens de overdracht via de draadloze verbinding tijdens de koppelprocedure. Met de juiste sleutel is het immers mogelijk om radiosignalen van het toetsenbord te onderscheppen en deze te ontcijferen. Echter, gebruikers hoeven het toetsenbord heel zelden (of zelfs nooit) via een Unifying-procedure te koppelen, en een hacker met een scanner moet lang wachten. Bovendien is het ook niet zo eenvoudig met het onderscheppingsproces zelf. In het laatste onderzoek in juni 2019 publiceerde de beveiligingsexpert Marcus Mengs op internet een bericht over het ontdekken van kwetsbaarheden in oude firmware van USB-dongles van Logitech. Dit stelt aanvallers met fysieke toegang tot de apparaten in staat om de versleutelingssleutels van de draadloze verbinding te verkrijgen en toetsindrukken in te injecteren (CVE-2019-13054).

We zullen ons onderzoek naar de beveiliging van de Logitech-dongle op basis van de SoC NRF24 van Nordic Semiconductor bespreken. Laten we beginnen met de draadloze verbinding.

Hoe gegevens door het radiokanaal 'vliegen'

Voor de frequentie-tijd analyse van het radiosignaal hebben we een SDR-ontvanger gebruikt op basis van het Blade-RF apparaat in de modus spectrumanalysator (hierover valt ook te lezen. hier).

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Het SDR-apparaat Blade-RF

We hebben ook de mogelijkheid bekeken om de kwadraturen van het radiosignaal op een tussenfrequentie op te nemen om deze vervolgens te analyseren met technieken voor digitale signaalverwerking.

De staatscommissie voor radi frequency in de Russische Federatie is toegestaan voor gebruik door apparaten met een klein bereik in het frequentiegebied van 2400–2483,5 MHz. Dit is een zeer 'populaire' band waarin van alles te vinden is: Wi-Fi, Bluetooth, allerlei afstandsbedieningen, beveiligingssystemen, draadloze detectors, muizen met toetsenborden en andere draadloze digitale apparaten.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Het spectrum van het 2,4 GHz-bereik

De interferentieomgeving in het bereik is vrij complex. Maar ondanks dit is het Logitech gelukt om betrouwbare en stabiele ontvangst te realiseren door gebruik te maken van het Enhanced ShockBurst protocol in de NRF24 zender-ontvanger in combinatie met frequentie-adaptatie-algoritmen.

De kanalen in dit bereik zijn geplaatst op hele waarden van MHz, zoals gedefinieerd in de specificatie NRF24 Nordic Semiconductor - in totaal 84 kanalen in het frequentienetwerk. Het aantal gelijktijdig gebruikte frequentiekanalen door Logitech is natuurlijk lager. We hebben ten minste vier kanalen identificeren. Vanwege de beperkte bandbreedte van de gebruikte spectrumanalysator was het niet mogelijk om een exacte lijst van de gebruikte frequentieposities vast te stellen, maar dat was ook niet nodig. De informatie van het toetsenbord naar de dongle-ontvanger wordt verzonden in Burst-modus (korte inschakelingen van de zender) met behulp van tweepositie frequentiemodulatie GFSK op een symbolen snelheid van 1 Mbps:

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Het radiosignaal van het toetsenbord in de tijdsweergave

De ontvanger gebruikt een correlatieprincipe voor ontvangst, waardoor in het verzonden pakket een preamble en adresgedeelte aanwezig zijn. Storingsbestendige codering wordt niet toegepast, de datalichaam is versleuteld met het AES128-algoritme.

Over het algemeen kan de draadloze interface van het Logitech toetsenbord worden gekarakteriseerd als volledig asynchroon met statistische compressie en frequentie-adaptatie. Dit betekent dat de zender van het toetsenbord het kanaal wisselt voor de overdracht van elk nieuw pakket. De ontvanger weet vooraf noch de tijd van verzending, noch het frequentiekanaal, maar alleen hun lijst. De ontvanger en zender ontmoeten elkaar op het kanaal dankzij gecoƶrdineerde algoritmes voor het omzeilen en afluisteren van frequenties, evenals de bevestigingsmechanismen van Enhanced ShockBurst. We hebben niet onderzocht of de lijst met kanalen statisch is. Waarschijnlijk wordt de wijziging ervan veroorzaakt door het algoritme voor frequentie-adaptatie. Iets wat lijkt op de PPRC-methode (pseudo-willekeurige herschikking van werkfrequentie) is af te leiden uit het gebruik van het frequentieresource in het bereik.

Bijgevolg, in omstandigheden van frequentie-tijd onzekerheid, heeft een aanvaller die gegarandeerd alle signalen van het toetsenbord wil ontvangen de noodzaak om continu het hele frequentienetwerk van 84 posities te controleren, wat aanzienlijke tijdsinvesteringen vereist. Het wordt duidelijk waarom de kwetsbaarheid voor het extraheren van de sleutel via USB (CVE-2019-13054) in bronnen wordt gepositioneerd als de mogelijkheid om toetsaanslagen te injecteren, in plaats van dat de aanvaller toegang krijgt tot de gegevens die via het toetsenbord worden ingevoerd. Het is duidelijk dat de draadloze interface van het toetsenbord vrij complex is en betrouwbare radioverbindingen tussen Logitech-apparaten waarborgt in een complexe ruisomgeving in het 2,4 GHz-bereik.

Een blik op het probleem van binnenuit

Voor ons onderzoek hebben we een van onze Logitech K330-toetsenborden en de Logitech Unifying-dongle gekozen.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Logitech K330

Laten we naar binnen in het toetsenbord kijken. Een interessant element voor onderzoek op de printplaat is de SoC NRF24-chip van Nordic Semiconductor.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

SoC NRF24 op de printplaat van het draadloze Logitech K330-toetsenbord

De firmware is opgeslagen in het interne geheugen, de lees- en debugmechanismen zijn uitgeschakeld. Helaas is de firmware niet gepubliceerd in open bronnen. Daarom besloten we het probleem vanuit een andere invalshoek te benaderen - het interne inhoud van de Logitech-dongle-ontvanger te bestuderen.

De interne structuur van de dongle is vrij interessant. De dongle is gemakkelijk te demonteren, bevat de vertrouwde NRF24 met een ingebouwde USB-controller en kan zowel via USB als met een programmer worden geherprogrammeerd.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Logitech dongle zonder behuizing

Aangezien er een standaardmechanisme voor firmware-updates bestaat met behulp van de toepassing Firmware Update Tool (waaruit de bijgewerkte firmwareversie kan worden gehaald), is het niet nodig om de firmware binnen de dongle te zoeken.

Wat is uitgevoerd: de firmware RQR_012_005_00028.bin is uit de applicatie Firmware Update Tool gehaald. Voor de controle van de integriteit werd de dongle-controller verbonden met een kabel met de ChipProg-48 programmer:

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Verbindingskabel van de Logitech dongle naar de ChipProg 48 programmer

Om de integriteit van de firmware te controleren, is deze succesvol in het geheugen van de controller geplaatst en functioneerde het correct; het toetsenbord en de muis waren via Logitech Unifying met de dongle verbonden. Het is mogelijk om de gewijzigde firmware te uploaden met behulp van het standaardmechanisme voor updates, omdat er geen cryptografische bescherming voor de firmware is voorzien. Voor onderzoeksdoeleinden hebben we echter een fysieke verbinding met de programmer gebruikt, aangezien dit debugging veel sneller maakt.

Onderzoek van de firmware en aanval op gebruikersinvoer

De chip NRF24 is ontworpen op basis van de Intel 8051 rekenkern in een traditionele Harvard-architectuur. Voor de kern functioneert de transceiver als een randapparaat en bevindt zich in het adresbereik als een set registers. Documentatie over de chip en voorbeelden van broncode zijn online te vinden, waardoor het disassemblageproces van de firmware niet moeilijk is. Tijdens het reverse-engineering hebben we functies gelokaliseerd voor het verkrijgen van gegevens over toetsindrukken van het radiokanaal en deze om te zetten naar het HID-formaat voor overdracht naar de host via de USB-interface. In vrije geheugenadressen is injectiecode geplaatst, die beheertools voor beheer, het opslaan en herstellen van de originele uitvoeringscontext, evenals functionele code bevat.

Het pakket van het ingelaste dongleft vanuit de radiokanaal voor het indrukken of loslaten van de toets wordt gedecodeerd, omgezet in een standaard HID-rapport en via de USB-interface doorgestuurd als van een gewone toetsenbord. In het kader van het onderzoek is het meest interessant voor ons het deel van het HID-rapport dat de byte van modifier-flags en een array van 6 bytes met toetsindrukcodes bevat (ter referentie, informatie over HID hier).

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;

Direct voor de overdracht van de HID-structuur naar de host krijgt de geĆÆnjecteerde code de controle, kopieert 8 bytes van de native HID-gegevens in het geheugen en stuurt ze in open tekst naar het secundaire radiokanaal. In de code ziet dit eruit als:

//~~~~~~~~~ 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 secundaire kanaal wordt gegenereerd op de door ons ingestelde frequentie met bepaalde karakteristieken voor snelheid van manipulatie en pakketstructuur.

Werking van de transceiver in de chip NRF24 is gebaseerd op een toestandsgrafiek, waarin het Enhanced ShockBurst-protocol organisch is opgenomen. We hebben vastgesteld dat de transceiver zich direct voor de overdracht van HID-gegevens naar de USB-interface van de host in de IDLE-toestand bevond. Dit maakt een veilige herconfiguratie voor gebruik in het secundaire kanaal mogelijk. De geïnjecteerde code onderschept de controle, houdt de originele configuratie van de transceiver volledig vast en schakelt deze over naar de nieuwe zendmodus voor het secundaire kanaal. Het bevestigingsmechanisme van Enhanced ShockBurst is in deze modus uitgeschakeld, de HID-gegevens worden in open tekst naar de radiofrequentie verzonden. De pakketstructuur in het secundaire kanaal is weergegeven in de onderstaande afbeelding, de signaalpatronen zijn verkregen na demodulatie en vóór het herstellen van de klok-synchronisatie van de gegevens. De waarde van het adres is gekozen voor het gemak van visuele identificatie van het pakket.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Demoduleerde Burst-pakketsignaal in het secundaire kanaal

Na de voltooiing van de pakketoverdracht naar het secundaire kanaal herstelt de geĆÆnjecteerde code de toestand van de transceiver. Nu is hij weer klaar voor gebruik in de normale modus binnen de context van de originele firmware.

In de frequentie- en frequentietijdelijke gebieden ziet het secundaire kanaal eruit zoals weergegeven in de afbeelding:

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Spectrale en frequentietijdelijke weergave van het secundaire kanaal

Om de werking van de NRF24-chip met de gewijzigde firmware te controleren, hebben we een testopstelling opgebouwd die een Logitech-dongle met gemodificeerde firmware, een draadloos toetsenbord en een ontvanger omvat die is gebouwd op basis van een Chinese module met de NRF24-chip.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

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

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Module gebaseerd op NRF24

Bij de testopstelling zagen we tijdens normaal gebruik van het toetsenbord, nadat het was aangesloten op de Logitech-dongle, de uitzending van open gegevens over toetsaanslagen op een zijfrequentie en de normale overdracht van versleutelde gegevens op de hoofd radio-interface. Op deze manier konden we de toetsenbordinvoer van de gebruiker rechtstreeks onderscheppen:

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Resultaat van het onderscheppen van toetsenbordinvoer

De geĆÆnjecteerde code veroorzaakt kleine vertragingen in de werking van de dongle-firmware. Echter, deze zijn te klein om door de gebruiker te worden opgemerkt.

Zoals u begrijpt, kan voor dit aanvalsscenario elke Logitech-toetsenbord die compatibel is met de Unifying-technologie worden gebruikt. Aangezien de aanval gericht is op de Unifying-ontvanger die bij de meeste Logitech-toetsenborden is inbegrepen, is deze niet afhankelijk van een specifiek toetsenbordmodel.

Conclusie

De resultaten van het onderzoek wijzen op mogelijke gebruiksmogelijkheden van het besproken scenario door kwaadwillenden: als een hacker de dongle-ontvanger van het draadloze Logitech-toetsenbord van het slachtoffer vervangt, kan hij wachtwoorden van de accounts van het slachtoffer achterhalen met alle gevolgen van dien. Vergeet niet dat het ook mogelijk is om toetsaanslagen te injecteren, wat betekent dat het uitvoeren van willekeurige code op de computer van het slachtoffer geen probleem vormt.

En wat als een kwaadwillende in staat zou zijn om de firmware van elke Logitech-dongle via USB op afstand te wijzigen? Dan zou het mogelijk zijn om van dichtbij geplaatste dongles een netwerk van repeater te vormen en de afstand van de gegevenslek te vergroten. Hoewel een "financieel goed ondersteunde" kwaadwillende moderne radioreceptiesystemen met hoge selectiecapaciteit, gevoelige radioprijzen met korte frequentiewisseltijden en richtantennes zou kunnen gebruiken om toetsaanslagen te 'luisteren' en toetsen te drukken, zelfs vanuit een naburig gebouw.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Professionele apparatuur voor radio-ontvangst

Omdat het draadloze datatransmissiekanaal van het Logitech-toetsenbord goed beveiligd is, vereist de gevonden aanvalsvector fysieke toegang tot de ontvanger, wat de aanvaller sterk beperk. De enige manier om in dit geval bescherming te bieden, zou het gebruik van cryptografische beschermingsmechanismen voor de firmware van de ontvanger kunnen zijn, bijvoorbeeld het controleren van de handtekening van de te laden firmware aan de kant van de ontvanger. Maar helaas ondersteunt de NRF24 dit niet en is het in de huidige architectuur van het apparaat niet mogelijk om beveiliging te implementeren. Dus bescherm je dongles, want de beschreven aanval vereist fysieke toegang tot hen.

Bescherm uw dongles: onderzoek naar de beveiliging van Logitech toetsenbordontvangers

Raccoon Security is een speciaal team van experts van het NTC "Vulkan" op het gebied van praktische informatiebeveiliging, cryptografie, schakelingen, reverse engineering en de ontwikkeling van low-level software.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster