Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Historisk set bruger de fleste medarbejdere Logitech trådløse tastaturer og mus. Da vi igen indtastede vores adgangskoder, spurgte vi, specialisterne fra Raccoon Security-teamet, os selv: hvor svært er det at omgå sikkerhedsmekanismerne for trådløse tastaturer? Den udførte forskning afslørede arkitektoniske fejl og softwarefejl, der giver adgang til inputdataene. Under snittet - hvad vi fik.

Hvorfor Logitech?

Efter vores mening er Logitech input-enheder blandt den højeste kvalitet og mest bekvemme. De fleste af de enheder, vi har, er baseret på Logitech-løsningen Unifying er en universel donglemodtager, der giver dig mulighed for at tilslutte op til 6 enheder. Alle enheder, der er kompatible med Logitech Unifying-teknologi, er mærket med det tilsvarende logo. Let at bruge приложение giver dig mulighed for at administrere forbindelsen af ​​trådløse tastaturer til din computer. Processen med at forbinde tastaturet til Logitech donglemodtageren samt selve teknologien er gennemgået detaljeret, f.eks. her.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Logitech Unifying Dongle-modtager

Tastaturet kan blive en informationskilde for ubudne gæster. Logitech tog sig af sikkerheden under hensyntagen til den mulige trussel - anvendte AES128-krypteringsalgoritmen i radiokanalen på det trådløse tastatur. Den første tanke, der kan besøge en angriber i denne situation, er aflytning af nøgleinformation under dens transmission over luften under den bindende procedure. Når alt kommer til alt, hvis du har en nøgle, kan du opsnappe tastaturets radiosignaler og dekryptere dem. Det er dog meget sjældent (eller aldrig) at en bruger binder et tastatur med en Unifying-procedure, og en hacker med en scannende radio skal vente længe. Derudover er alt ikke så simpelt med selve aflytningsprocessen. I den seneste undersøgelse i juni 2019 offentliggjorde sikkerhedsekspert Markus Mengs online сообщение om opdagelsen af ​​en sårbarhed i den gamle firmware af Logitech USB-dongler. Det giver angribere med fysisk adgang til enheder mulighed for at få radiokanalkrypteringsnøgler og injicere tastetryk (CVE-2019-13054).

Vi vil dække vores sikkerhedsundersøgelse af en Logitech-dongle baseret på Nordic Semiconductors NRF24 SoC. Og lad os måske starte med selve radiokanalen.

Hvordan data "flyver" i radiokanalen

Til tids-frekvensanalyse af radiosignalet brugte vi en SDR-modtager baseret på Blade-RF-enheden i spektrumanalysatortilstand (du kan også læse om dette her).

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

SDR Blade-RF-enhed

Vi overvejede også muligheden for at optage kvadraturer af radiosignalet ved en mellemfrekvens for derefter at analysere dem ved hjælp af digitale signalbehandlingsmetoder.

Statens kommission for radiofrekvenser i Den Russiske Føderation tilladt til brug af kortrækkende enheder i frekvensområdet 2400-2483,5 MHz. Dette er et meget "befolket" område, hvor du ikke finder noget: Wi-Fi, Bluetooth, alle former for fjernbetjeninger, sikkerhedssystemer, trådløse detektorer, mus med tastaturer og andre trådløse digitale enheder.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

2,4 GHz båndspektrum

Interferenssituationen i området er ret kompliceret. På trods af dette var Logitech i stand til at levere pålidelig og stabil modtagelse ved at bruge Enhanced ShockBurst-protokollen i NRF24-transceiveren i kombination med frekvenstilpasningsalgoritmer.

Kanalerne i båndet er placeret i heltal MHz-positioner som defineret i specifikationer NRF24 Nordic Semiconductor - i alt 84 kanaler i frekvensnettet. Antallet af frekvenskanaler, som Logitech bruger samtidigt, er naturligvis mindre. Vi identificerede brugen af ​​mindst fire. På grund af det begrænsede spænd for den anvendte signalspektrumanalysator var det ikke muligt at bestemme den nøjagtige liste over anvendte frekvenspositioner, men dette var ikke nødvendigt. Information fra tastaturet til dongle-modtageren transmitteres i Burst-tilstand (kort sender tænder) ved hjælp af to-positions frekvensmodulation GFSK med en symbolhastighed på 1 Mbaud:

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Tastaturradiosignal i tidsvisning

Modtageren bruger korrelationsprincippet for modtagelse, så den transmitterede pakke indeholder en præambel og en adressedel. Fejlkorrigerende kodning anvendes ikke, datakroppen er krypteret ved hjælp af AES128-algoritmen.

Generelt kan luftgrænsefladen på et trådløst Logitech-tastatur karakteriseres som fuldstændig asynkron med statistisk divisionsmultipleksing og frekvensrespons. Det betyder, at tastatursenderen skifter kanal for at sende hver ny pakke. Modtageren kender ikke på forhånd hverken sendetiden eller frekvenskanalen, men kun en liste over dem. Modtageren og senderen mødes på kanalen takket være de aftalte frekvensomløbs- og lyttealgoritmer, samt Enhanced ShockBurst-bekræftelsesmekanismer. Vi har ikke undersøgt, om kanallisten er statisk. Sandsynligvis skyldes dens ændring frekvenstilpasningsalgoritmen. Noget tæt på PRCH-metoden (pseudo-tilfældig tuning af driftsfrekvensen) gættes i brugen af ​​frekvensressourcen i området.

For at garantere modtagelse af alle tastatursignaler vil en angriber således under betingelser med tids-frekvensusikkerhed konstant skulle overvåge hele frekvensgitteret i området på 84 positioner, hvilket kræver betydelige tidsomkostninger. Her bliver det klart, hvorfor USB-nøgleudtrækningssårbarhed (CVE-2019-13054) i kilder Det er placeret som muligheden for at injicere tastetryk i stedet for at få adgang af en angriber til data indtastet fra tastaturet. Det er klart, at radiogrænsefladen på det trådløse tastatur er ret kompleks og giver pålidelig radiokommunikation mellem Logitech-enheder i et vanskeligt interferensmiljø på 2,4 GHz-båndet.

Et indblik i problemet

Til research valgte vi et af vores tilgængelige Logitech K330-tastaturer og en Logitech Unifying-dongle.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Logitech K330

Lad os tage et kig inde i tastaturet. Et interessant element i bestyrelsen for forskning er SoC NRF24-chippen fra Nordic Semiconductor.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

NRF24 SoC på Logitech K330 Wireless Keyboard Board

Firmwaren er placeret i den interne hukommelse, læse- og fejlfindingsmekanismerne er slået fra. Desværre er firmwaren ikke blevet offentliggjort i åbne kilder. Derfor besluttede vi at nærme os problemet fra den anden side - at studere det interne indhold i Logitech donglemodtageren.

Donglemodtagerens "indre verden" er ret interessant. Donglen skilles let ad, bærer den for os kendte NRF24 med en indbygget USB-controller og kan omprogrammeres både fra USB-siden og direkte af programmøren.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Dongle Logitech uden etui

Da der er en regelmæssig firmwareopdateringsmekanisme, der bruger Firmwareopdateringsværktøj (hvorfra du kan udtrække den opdaterede version af firmwaren), er der ingen grund til at søge efter firmwaren inde i donglen.

Hvad blev der gjort: RQR_012_005_00028.bin-firmwaren blev udtrukket fra selve Firmware Update Tool-applikationen. For at kontrollere dens integritet blev donglecontrolleren forbundet med en sløjfe til programmøren ChipProg-48:

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Logitech dongleforbindelseskabel til ChipProg 48 programmør

For at kontrollere integriteten af ​​firmwaren blev den med succes placeret i controllerens hukommelse og fungerede korrekt, tastaturet og musen blev forbundet til donglen via Logitech Unifying. Det er muligt at uploade den ændrede firmware ved hjælp af standardopdateringsmekanismen, da der ikke er nogen kryptografiske beskyttelsesmekanismer for firmwaren. Til forskningsformål brugte vi en fysisk forbindelse til programmøren, da fejlfinding er meget hurtigere på denne måde.

Firmwareundersøgelse og angreb på brugerinput

NRF24-chippen er designet baseret på Intel 8051-computerkernen i den traditionelle Harvard-arkitektur. For kernen fungerer transceiveren som en perifer enhed og er placeret i adresserummet som et sæt registre. Dokumentation for chippen og eksempler på kildekode kan findes på internettet, så det er ikke svært at adskille firmwaren. I løbet af reverse engineering lokaliserede vi funktionerne til at modtage tastetryksdata fra radiokanalen og konvertere dem til HID-format til transmission til værten via USB-grænsefladen. I ledige hukommelsesadresser blev injektionskoden placeret, som omfattede værktøjer til at opsnappe kontrol, gemme og gendanne den oprindelige udførelseskontekst samt funktionel kode.

Pakken med at trykke eller slippe en nøgle modtaget af donglen fra radiokanalen dekrypteres, konverteres til en standard HID-rapport og sendes til USB-grænsefladen som fra et konventionelt tastatur. Som en del af undersøgelsen er den del af HID-rapporten, der indeholder byten af ​​modifikatorflag og et array på 6 bytes med tastetrykskoder, af størst interesse for os (til reference, information om HID her).

HID rapportstruktur:

// 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 den overfører HID-strukturen til værten, modtager den indsprøjtede kode kontrol, kopierer 8 bytes indbyggede HID-data i hukommelsen og sender dem til radiosidekanalen i klartekst. 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<

Sidekanalen er organiseret ved den frekvens, der er indstillet af os med visse karakteristika for manipulationshastigheden og pakkestrukturen.

Betjening af transceiveren i en chip NRF24 er baseret på en tilstandsgraf, hvor Enhanced ShockBurst-protokollen er organisk indskrevet. Vi fandt ud af, at transceiveren var i IDLE-tilstand lige før HID-dataene blev sendt til værtens USB-interface. Dette gør det muligt sikkert at omkonfigurere den til sidekanaldrift. Den indsprøjtede kode tilsidesætter kontrol, bevarer den originale konfiguration af transceiveren i sin helhed og sætter den i en ny transmissionstilstand på sidekanalen. Den forbedrede ShockBurst-bekræftelsesmekanisme er deaktiveret i denne tilstand, HID-data transmitteres i klartekst trådløst. Strukturen af ​​pakken i sidekanalen er vist i figuren nedenfor, signalplottene er opnået efter demodulation og før dataklokgendannelse. Adresseværdien er valgt af hensyn til den visuelle identifikation af pakken.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Demoduleret Burst Burst-signal i sidekanalen

Efter afslutningen af ​​transmissionen af ​​pakken til sidekanalen genopretter den indsprøjtede kode transceiverens tilstand. Nu er den klar til at fungere normalt igen i sammenhæng med den originale firmware.

I frekvens- og tidsfrekvensdomænerne ser sidekanalen således ud:

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Spektral og tids-frekvens repræsentation af sidekanalen

For at teste driften af ​​NRF24-chippen med en modificeret firmware, samlede vi et stativ, som omfattede en Logitech-dongle med en modificeret firmware, et trådløst tastatur og en modtager samlet på basis af et kinesisk modul med en NRF24-chip.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Logitech Wireless Keyboard Radio Intercept Diagram

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

NRF24 baseret modul

På bænken observerede vi under normal drift af tastaturet efter at have tilsluttet det til Logitech-donglen transmissionen af ​​åbne data på tastetryk i sideradiokanalen og den normale transmission af krypterede data i hovedradiogrænsefladen. Således lykkedes det os at levere direkte aflytning af brugerens tastaturinput:

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Resultatet af at opsnappe tastaturinput

Den injicerede kode introducerer små forsinkelser i driften af ​​dongle-firmwaren. De er dog for små til, at brugeren kan lægge mærke til dem.

Som du forstår, kan du til sådan en angrebsvektor bruge ethvert Logitech-tastatur, der er kompatibelt med Unifying-teknologi. Da angrebet er rettet mod Unifying-modtageren, der følger med de fleste Logitech-tastaturer, er det uafhængigt af den specifikke tastaturmodel.

Konklusion

Resultaterne af undersøgelsen tyder på, at scenariet under overvejelse kan bruges af angribere: Hvis en hacker erstatter offeret med en donglemodtager til et trådløst Logitech-tastatur, vil han være i stand til at finde ud af adgangskoderne til offerets konti med alle de efterfølgende konsekvenser. Glem ikke, at det også er muligt at injicere tastetryk, hvilket betyder, at det ikke er svært at udføre vilkårlig kode på offerets computer.

Hvad hvis en angriber kan fjernmodificere firmwaren på enhver Logitech-dongle via USB? Derefter kan du fra tæt anbragte dongler tilføje et netværk af repeatere og øge lækageafstanden. Selvom moderne midler til radiomodtagelse med meget selektive systemer, vil følsomme radiomodtagere med en kort frekvensindstillingstid og snævert rettede antenner tillade en "økonomisk sikker" angriber at "lytte" til tastaturinput og trykke på taster selv fra en nabobygning.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Professionelt radioudstyr

Da det trådløse datalink på Logitech-tastaturet er ret godt beskyttet, kræver den fundne angrebsvektor fysisk adgang til modtageren, hvilket i høj grad begrænser angriberen. Den eneste beskyttelsesmulighed i dette tilfælde kunne være brugen af ​​kryptografiske beskyttelsesmekanismer til modtagerens firmware, for eksempel verifikation af signaturen af ​​den downloadede firmware på siden af ​​modtageren. Men desværre understøtter NRF24 ikke dette, og det er umuligt at implementere beskyttelse inden for den nuværende enhedsarkitektur. Så pas på dine dongler, for den beskrevne angrebsmulighed kræver fysisk adgang til dem.

Pas på dine dongler: Logitech Keyboard Receiver Safety Study

Raccoon Security er et dedikeret team af Vulkan STC-eksperter inden for praktisk informationssikkerhed, kryptografi, kredsløb, reverse engineering og softwareudvikling på lavt niveau.

Kilde: www.habr.com

Tilføj en kommentar