
Det har historisk set været sådan, at de fleste medarbejdere bruger trådløse tastaturer og mus fra Logitech. Igen, da vi indtastede vores adgangskoder, stillede vi – eksperterne fra Raccoon Security-teamet – os selv spørgsmålet: hvor svært er det at omgå beskyttelsesmekanismerne for trådløse tastaturer? Den udførte undersøgelse afslørede arkitekturfejl og softwarefejl, der gør det muligt at få adgang til indtastede data. Læs videre for at se, hvad vi fandt.
Hvorfor Logitech?
Efter vores mening er Logitech en af de mest kvalitetsbevidste og brugervenlige input-enheder. De fleste af vores enheder er baseret på Logitech-løsninger. – er en universel dongle-mottager, der muliggør tilslutning af op til 6 enheder. Alle enheder, der er kompatible med Logitech Unifying-teknologien, er mærket med det relevante logo. Det er nemt at bruge og giver mulighed for at styre tilslutningen af trådløse tastaturer til computeren. Den detaljerede proces til tilslutning af tastaturet til Logitech-dongle-mottageren, samt selve teknologien, er beskrevet i eksempelvis .

Dongle-mottager med støtte for Logitech Unifying
Et tastatur kan blive en informationskilde for ondsindede aktører. Logitech har, under hensyntagen til den potentielle trussel, taget sig af sikkerheden – ved at anvende AES128 krypteringsalgoritmen i radioforbindelsen for det trådløse tastatur. Den første tanke, der kan komme til en ondsindet aktør i denne sammenhæng, er at opfange nøglerelateret information under transmissionen over radioforbindelsen under parringsproceduren. For med nøglen kan man opfange radiosignalerne fra tastaturet og dekryptere dem. Men brugeren skal meget sjældent (eller aldrig) parre tastaturet ved Unifying-proceduren, og en hacker med en scannende radiomodtager skal vente længe. Desuden er selve processen for opfangning ikke så enkel. I den seneste undersøgelse i juni 2019 offentliggjorde sikkerhedsekspert Markus Mengs på internettet opdagelsen af en sårbarhed i ældre firmware-versioner af Logitech USB-dongler. Den gør det muligt for ondsindede aktører med fysisk adgang til enhederne at få nøgler til krypteringen af radioforbindelsen og injicere tastetryk (CVE-2019-13054).
Vi vil fortælle om vores sikkerhedsanalyse af Logitech-donglen baseret på SoC NRF24 fra Nordic Semiconductor. Lad os starte med selve radioforbindelsen.
Hvordan data "flyver" i radiokanalen
Til frekvens-tidsanalyse af radiosignalet brugte vi en SDR-modtager baseret på Blade-RF-enheden i spektralanalysator-tilstand (dette kan også læses om) ).

SDR-enheden Blade-RF
Vi overvejede også muligheden for at optage kvadraturerne af radiosignalet på en mellemfrekvens for senere at analysere dem ved hjælp af metoder til digital signalbehandling.
Statens kommission for radiobølger i Den Russiske Føderation til brug af apparater med lille rækkevidde i frekvensområdet 2400–2483,5 MHz. Dette er et meget "befolket" område, hvor man kan finde alt muligt: Wi-Fi, Bluetooth, forskellige fjernbetjeninger, alarmsystemer, trådløse detektorer, mus med tastaturer og andre trådløse digitale enheder.

Spektrum af 2,4 GHz-båndet
Forstyrrelsessituationen i båndet er ret kompleks. Men på trods af dette har Logitech formået at sikre pålidelig og stabil modtagelse ved at bruge protokollen Enhanced ShockBurst i NRF24-transceiveren i kombination med frekvensadaptationsalgoritmer.
Kanalerne i området er placeret ved hele MHz-værdier, som defineret i NRF24 Nordic Semiconductor – i alt 84 kanaler i frekvensnettet. Antallet af samtidig anvendte frekvenskanaler fra Logitech er selvfølgelig færre. Vi fandt brug af mindst fire. På grund af den begrænsede synsfelt for den anvendte spektralanalysator kunne den præcise liste over anvendte frekvenspositioner ikke bestemmes, men dette var heller ikke nødvendigt. Information fra tastaturet til dongle-modtageren overføres i Burst-tilstand (korte transmissioner fra transmitter) ved hjælp af to-position frekvensmodulation GFSK ved en symbolhastighed på 1 Mb/s:

RadiSignalet fra tastaturet i tidsrepræsentation
Modtageren bruger en korrelationsmodtagelsesprincippet, så det transmitterede paket indeholder en præambel og adressefelt. Forstyrrelsesresistent kodning anvendes ikke, datakroppen krypteres med AES128-algoritmen.
Generelt kan radiogrænsefladen for Logitech trådløse tastaturer karakteriseres som fuldstændig asynkron med statistisk komprimering og frekvensadaptation. Det betyder, at tastaturens transmitter skifter kanal for at sende hver ny pakke. Modtageren kender på forhånd hverken tidspunkter for transmission eller frekvenskanaler, men kun deres liste. Modtageren og transmitter mødes på kanalen gennem aftalte algoritmer for frekvensoverspring og lytning, samt mekanismer for bekræftelser som Enhanced ShockBurst. Vi har ikke undersøgt, om listen over kanaler er statisk. Sandsynligvis skyldes ændringer i denne liste algoritmen for frekvensadaptation. Noget tæt på metoden PPRCH (pseudo-tilfældig omkonfiguration af arbejdsfrekvens) kan anes i brugen af frekvensressourcer i området.
Således, under forhold med frekvens-tid usikkerhed, vil en angriber have brug for kontinuert kontrol over hele frekvensgitteret med 84 positioner for at garantere modtagelse af alle tastatursignaler, hvilket kræver betydelige tidsomkostninger. Her bliver det klart, hvorfor sårbarheden til udtrækning af nøglen via USB (CVE-2019-13054) positioneres som muligheden for at injicere tastetryk, snarere end at give angriberen adgang til de data, der indtastes fra tastaturet. Det er tydeligt, at radiogrænsefladen for det trådløse tastatur er ret kompleks og sikrer pålidelig radiokommunikation mellem Logitech-enheder under vanskelige interferensforhold i 2,4 GHz-området.
Et indblik i problemet
Til undersøgelsen valgte vi et af vores tastaturer, Logitech K330, og Logitech Unifying donglen.

Logitech K330
Lad os kigge ind i tastaturet. Et interessant element til undersøgelse på printpladen er SoC-chippen NRF24 fra Nordic Semiconductor.

SoC NRF24 på printpladen af Logitech K330 trådløse tastatur
Firmwaren er placeret i den interne hukommelse, og mekanismerne til læsning og debugging er deaktiveret. Desværre er firmwaren ikke offentliggjort i åbne kilder. Derfor besluttede vi at nærme os problemet fra en anden vinkel - at undersøge indholdet af Logitech dongle-modtageren.
Den indre verden af dongle-modtageren er ret interessant. Donglen er nem at adskille, og den har det velkendte NRF24 i en version med indbygget USB-controller, som kan programmeres både via USB og direkte med en programmer.

Logitech dongle uden kabinet
Da der findes en standard firmware-opdateringsmekanisme ved hjælp af (fra hvilken den opdaterede firmware-version kan udtrækkes), er der ikke behov for at søge firmware inde i donglen.
Hvad der blev udført: firmware RQR_012_005_00028.bin blev udtrukket fra applikationens krop Firmware Update Tool. For at kontrollere dens integritet blev dongle-controlleren tilsluttet med et kabel :

Kabel til forbindelse af Logitech dongle til ChipProg 48 programmeren
For at kontrollere firmware-integriteten blev den vellykket placeret i controllerens hukommelse og fungerede korrekt, tastaturet og musen blev tilsluttet donglen via Logitech Unifying. Det er muligt at uploade den modificerede firmware ved hjælp af den standardiserede opdateringsmekanisme, da der ikke er nogen mekanismer til kryptografisk beskyttelse af firmwaren. Til forskningsformål brugte vi en fysisk forbindelse til programmeren, da det gør debugging meget hurtigere.
Undersøgelse af firmwaren og angreb på brugerinput
NRF24-chippen er designet på baggrund af Intel 8051 beregningskernen i en traditionel Harvard-arkitektur. For kernen fungerer transceiveren som en perifer enhed og er placeret i adresseområdet som et sæt registre. Dokumentationen til chippen og eksempler på kildekode kan findes på internettet, så disassembly af firmwaren er ikke en udfordring. Under reverse engineering lokaliserede vi funktionerne til at få data om tastetryk fra radiokanalen og konvertere dem til HID-format til transmission til værten via USB-grænsefladen. I de frie hukommelsesadresser blev injektionskoden placeret, som omfattede værktøjer til at opfange kontrol, gemme og gendanne den originale kontekst for udførelsen, samt funktionskoden.
Den pakke af taster, der modtages via en radiokanal, dekodes af donglen, omdannes til en standard HID-rapport og sendes til USB-interface som fra et almindeligt tastatur. I vores forskning er den del af HID-rapporten, der indeholder en byte af modifier-flags og en array af 6 bytes med tasternes koder, af størst interesse (for information om HID ).
Strukturen af HID-rapporten:
// 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;Umiddelbart før transmissionen af HID-strukturen til værten får den injicerede kode kontrol, kopierer 8 bytes af de originale HID-data i hukommelsen og sender dem åbent på den sekundære radiokanal. I koden ser det sådan ud:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<Den sekundære kanal organiseres på den frekvens, vi har fastsat, med bestemte karakteristika for manipulation og pakkestruktur.
Transceivers arbejde i chippen er baseret på en tilstandsgraf, hvor protokollen Enhanced ShockBurst integreres. Vi fandt ud af, at transceiveren var i IDLE-tilstand umiddelbart før transmissionen af HID-data til værts-USB-interface. Dette muliggør en sikker rekonfiguration til arbejdet i den sekundære kanal. Den injicerede kode overtager kontrollen, gemmer den originale konfiguration af transceiveren fuldstændigt og skifter den til en ny transmissionsmode på den sekundære kanal. Bekræftelsesmekanismen i Enhanced ShockBurst er deaktiveret i denne tilstand, og HID-data sendes åbent til radiofrekvensen. Pakkestrukturen på den sekundære kanal er vist på billedet nedenfor, signalernes epydurer er opnået efter demodulation og før restitutionen af datasykronisering. Adressen er valgt for nem visuel identifikation af pakken.

Demoduleret signal fra Burst-pakken på den sekundære kanal
Efter afslutningen af pakkeoverførslen på den sekundære kanal gendanner den injicerede kode tilstanden af transceiveren. Nu er den igen klar til at arbejde i normal tilstand i konteksten af den originale firmware.
I frekvens- og tidsfrekvensområderne ser den sekundære kanal sådan ud, som vist på billedet:

Spektral og tidsfrekvensrepræsentation af den sekundære kanal
For testing the operation of the NRF24 chip with modified firmware, we assembled a setup that included a Logitech dongle with modified firmware, a wireless keyboard, and a receiver based on a Chinese module with the NRF24 chip.

Diagram of intercepting the radio signal of the Logitech wireless keyboard

Module based on NRF24
In the setup during normal operation of the keyboard after connecting it to the Logitech dongle, we observed the transmission of unencrypted keystroke data on a side radio channel and normal transmission of encrypted data on the main radio interface. Thus, we managed to directly intercept the user's keyboard input:

Result of intercepting keyboard input
The injected code introduces slight delays in the operation of the dongle's firmware. However, they are too small for the user to notice.
As you understand, any Logitech keyboard compatible with the Unifying technology can be used for such an attack vector. Since the attack targets the Unifying receiver, which is included with most Logitech keyboards, it is not dependent on a specific keyboard model.
Konklusion
The results of the research suggest the possibility of this scenario being exploited by attackers: if a hacker replaces the victim's dongle receiver for the Logitech wireless keyboard, they could learn the passwords to the victim's accounts with all the ensuing consequences. One must not forget that injecting keystrokes is also possible, which means executing arbitrary code on the victim's computer is not difficult.
And what if the attacker could remotely modify the firmware of any Logitech dongle via USB? Then, from nearby dongles, they could build a network of repeaters and increase the distance of data leakage. Although a 'financially equipped' attacker could use modern reception methods with highly selective systems, sensitive receivers with short frequency switching times, and directional antennas to 'listen' to keyboard input and keystrokes even from a neighboring building.

Professional radio reception equipment
Da det trådløse datakanal til Logitech-tastaturet er tilstrækkeligt beskyttet, kræver den opdagede angrebsvektor fysisk adgang til modtageren, hvilket kraftigt begrænser angriberen. Den eneste mulighed for beskyttelse kunne have været at bruge kryptografiske beskyttelsesmekanismer til firmwareopdatering af modtageren, for eksempel ved at kontrollere signaturen på den indlæste firmware på modtagerens side. Desværre understøtter NRF24 ikke dette, og det er ikke muligt at implementere beskyttelse inden for den nuværende arkitektur af enheden. Så pas godt på jeres dongler, for den beskrevne angrebsmetode kræver fysisk adgang til dem.

Raccoon Security er et specialteam af eksperter fra NTC "Vulkan" inden for praktisk informationssikkerhed, kryptografi, kredsløbsdesign, reverse engineering og udvikling af lavniveau software.
Kilde: habr.com
