Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Historisk sett bruker de fleste ansatte trådløse tastaturer og mus fra Logitech. Da vi skrev inn passordene våre igjen, spurte vi, spesialistene til Raccoon Security-teamet, oss selv: hvor vanskelig er det å omgå sikkerhetsmekanismene til trådløse tastaturer? Studien avdekket arkitektoniske feil og programvarefeil som gir tilgang til inndata. Under kuttet er det vi fikk.

Hvorfor Logitech?

Etter vår mening er Logitech-inndataenheter av høyeste kvalitet og mest praktiske. De fleste enhetene vi har er basert på Logitech-løsningen Unifying er en universell donglemottaker som lar deg koble til opptil 6 enheter. Alle enheter som er kompatible med Logitech Unifying-teknologi er merket med Logitech Unifying-teknologilogoen. Lett å bruke приложение Lar deg administrere tilkoblingen av trådløse tastaturer til datamaskinen. Prosessen med å koble tastaturet til Logitech-mottakerdongelen, så vel som selve teknologien, dekkes f.eks. her.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Donglemottaker med Logitech Unifying-støtte

Tastaturet kan bli en kilde til informasjon for angripere. Logitech, tatt i betraktning den mulige trusselen, tok seg av sikkerheten - brukte AES128-krypteringsalgoritmen i radiokanalen til det trådløse tastaturet. Den første tanken en angriper kan ha i denne situasjonen er å fange opp nøkkelinformasjon når den sendes over en radiokanal under bindingsprosedyren. Tross alt, hvis du har en nøkkel, kan du fange opp tastaturets radiosignaler og dekryptere dem. Imidlertid trenger brukeren sjelden (eller til og med aldri) å forene tastaturet, og en hacker med en skannerradio må vente lenge. I tillegg er ikke alt så enkelt med selve avlyttingsprosessen. I den siste studien i juni 2019 publiserte sikkerhetsekspert Markus Mengs på nettet сообщение om oppdagelsen av en sårbarhet i gammel fastvare til Logitech USB-dongler. Den lar angripere med fysisk tilgang til enheter få radiokanalkrypteringsnøkler og injisere tastetrykk (CVE-2019-13054).

Vi vil snakke om vår sikkerhetsstudie av Logitech-dongelen basert på NRF24 SoC fra Nordic Semiconductor. La oss kanskje starte med selve radiokanalen.

Hvordan data "flyr" i en radiokanal

For tids-frekvensanalyse av radiosignalet brukte vi en SDR-mottaker basert på Blade-RF-enheten i spektrumanalysatormodus (du kan også lese om dette her).

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

SDR Blade-RF-enhet

Vi vurderte også muligheten for å registrere kvadraturer av radiosignalet ved en mellomfrekvens, som deretter kunne analyseres ved hjelp av digitale signalbehandlingsteknikker.

Statens kommisjon for radiofrekvenser i den russiske føderasjonen tillatt for bruk av enheter med kort rekkevidde, er frekvensområdet 2400–2483,5 MHz. Dette er et veldig "befolket" område, der du ikke finner noe: Wi-Fi, Bluetooth, alle slags fjernkontroller, sikkerhetssystemer, trådløse detektorer, mus med tastatur og andre trådløse digitale enheter.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Spektrum for 2,4 GHz-båndet

Interferensmiljøet i området er ganske komplekst. Til tross for dette var Logitech i stand til å gi pålitelig og stabil mottakelse gjennom bruk av Enhanced ShockBurst-protokollen i NRF24-transceiveren i kombinasjon med frekvenstilpasningsalgoritmer.

Kanaler i et bånd er plassert i heltalls MHz-posisjoner som definert i spesifikasjoner NRF24 Nordic Semiconductor - totalt 84 kanaler i frekvensnettet. Antallet samtidig brukte frekvenskanaler av Logitech er selvfølgelig mindre. Vi identifiserte bruken av minst fire. På grunn av den begrensede båndbredden til signalspektrumanalysatoren som ble brukt, kunne den nøyaktige listen over frekvensposisjoner som ble brukt ikke bestemmes, men dette var ikke nødvendig. Informasjon fra tastaturet til mottakerdongelen overføres i Burst-modus (korte svinger på senderen) ved bruk av to-posisjons frekvensmodulasjon GFSK med en symbolhastighet på 1 Mbaud:

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Tastaturradiosignal i tidsrepresentasjon

Mottakeren bruker korrelasjonsprinsippet for mottak, slik at den overførte pakken inneholder en preambel og en adressedel. Støybestandig koding brukes ikke; datakroppen er kryptert med AES128-algoritmen.

Generelt kan radiogrensesnittet til det trådløse Logitech-tastaturet karakteriseres som fullstendig asynkront med statistisk multipleksing og frekvenstilpasning. Dette betyr at tastatursenderen bytter kanal for å sende hver ny pakke. Mottakeren vet ikke på forhånd verken sendetiden eller frekvenskanalen, men kun listen deres er kjent. Mottakeren og senderen møtes i kanalen takket være koordinerte frekvensbypass- og lyttealgoritmer, samt Enhanced ShockBurst-bekreftelsesmekanismer. Vi har ikke undersøkt om kanallisten er statisk. Sannsynligvis er endringen på grunn av frekvenstilpasningsalgoritmen. Noe i nærheten av frekvenshoppingsmetoden (pseudo-tilfeldig innstilling av driftsfrekvensen) kan sees i bruken av frekvensressursen til området.

For å sikre garantert mottak av alle tastatursignaler, under forhold med tidsfrekvensusikkerhet, vil en angriper derfor måtte konstant overvåke hele frekvensnettet med 84 posisjoner, noe som krever en betydelig mengde tid. Her blir det klart hvorfor USB-nøkkelutvinningssårbarheten (CVE-2019-13054) i kilder posisjonert som evnen til å injisere tastetrykk, i stedet for å få en angripers tilgang til data som legges inn fra tastaturet. Det er klart at radiogrensesnittet til det trådløse tastaturet er ganske komplekst og gir pålitelig radiokommunikasjon mellom Logitech-enheter under vanskelige interferensforhold i 2,4 GHz-båndet.

En titt på problemet fra innsiden

For studien vår valgte vi et av våre eksisterende Logitech K330-tastaturer og en Logitech Unifying-dongle.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Logitech K330

La oss ta en titt på innsiden av tastaturet. Et interessant element på brettet å studere er SoC NRF24-brikken fra Nordic Semiconductor.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

SoC NRF24 på Logitech K330 trådløst tastatur

Fastvaren er plassert i internminnet, lese- og feilsøkingsmekanismer er deaktivert. Dessverre har ikke fastvaren blitt publisert i åpne kilder. Derfor bestemte vi oss for å nærme oss problemet fra den andre siden - å studere det interne innholdet i Logitech-dongelmottakeren.

Den "indre verden" til donglemottakeren er ganske interessant. Dongelen demonteres enkelt, har med seg den kjente NRF24-utløseren med innebygd USB-kontroller og kan omprogrammeres både fra USB-siden og direkte fra programmereren.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Logitech dongel uten hus

Siden det er en standardmekanisme for å oppdatere fastvaren ved hjelp av Firmware Update Tool-applikasjoner (hvorfra du kan trekke ut den oppdaterte fastvareversjonen), er det ikke nødvendig å se etter fastvaren inne i dongelen.

Hva ble gjort: fastvare RQR_012_005_00028.bin ble trukket ut fra hoveddelen av Firmware Update Tool-applikasjonen. For å sjekke integriteten ble donglekontrolleren koblet til med en kabel til ChipProg-48-programmereren:

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Kabel for å koble Logitech-dongelen til ChipProg 48-programmereren

For å kontrollere integriteten til fastvaren ble den plassert i kontrollerens minne og fungerte riktig, tastaturet og musen ble koblet til dongelen via Logitech Unifying. Det er mulig å laste opp modifisert firmware ved å bruke standard oppdateringsmekanisme, siden det ikke finnes kryptografiske beskyttelsesmekanismer for fastvaren. For forskningsformål brukte vi en fysisk tilkobling til programmereren, siden feilsøking er mye raskere på denne måten.

Fastvareundersøkelse og angrep på brukerinndata

NRF24-brikken er designet basert på Intel 8051-datakjernen i tradisjonell Harvard-arkitektur. For kjernen fungerer transceiveren som en perifer enhet og plasseres i adresserommet som et sett med registre. Dokumentasjon for brikken og kildekodeeksempler kan finnes på Internett, så det er ikke vanskelig å demontere fastvaren. Under omvendt utvikling lokaliserte vi funksjonene for å motta tastetrykkdata fra radiokanalen og konvertere den til HID-format for overføring til verten via USB-grensesnittet. Injeksjonskoden ble plassert i ledige minneadresser, som inkluderte verktøy for å avskjære kontroll, lagre og gjenopprette den opprinnelige utførelseskonteksten, samt funksjonell kode.

Pakken med å trykke eller slippe en nøkkel som mottas av dongelen fra radiokanalen, dekrypteres, konverteres til en standard HID-rapport og sendes til USB-grensesnittet som fra et vanlig tastatur. Som en del av studien er den delen av HID-rapporten som er av mest interesse for oss, den delen av HID-rapporten som inneholder en byte med modifikasjonsflagg og en matrise på 6 byte med tastetrykkkoder (for referanse, informasjon 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 overføring av HID-strukturen til verten, tar den injiserte koden kontroll, kopierer 8 byte med native HID-data i minnet og sender den til radiosidekanalen i klartekst. I koden ser det slik ut:

//~~~~~~~~~ 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 organisert ved en frekvens vi setter med visse egenskaper for manipulasjonshastigheten og pakkestrukturen.

Drift av transceiveren i brikken NRF24 er basert på en tilstandsgraf der Enhanced ShockBurst-protokollen er organisk integrert. Vi fant ut at umiddelbart før overføring av HID-data til verts-USB-grensesnittet, var transceiveren i IDLE-tilstand. Dette gjør det mulig å trygt rekonfigurere den til å fungere i en sidekanal. Den injiserte koden avskjærer kontroll, bevarer den originale transceiverkonfigurasjonen i sin helhet og bytter den til en ny overføringsmodus på sidekanalen. Den forbedrede ShockBurst-bekreftelsesmekanismen er deaktivert i denne modusen; HID-data overføres i klar form over luften. Strukturen til pakken i sidekanalen er vist i figuren nedenfor, signaldiagrammene ble oppnådd etter demodulering og før gjenoppretting av dataklokkesynkronisering. Adresseverdien ble valgt for enkel visuell identifikasjon av pakken.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Demodulert Burst Burst Signal i Side Channel

Etter at pakken er overført til sidekanalen, gjenoppretter den injiserte koden tilstanden til transceiveren. Nå er den igjen klar til å fungere normalt i sammenheng med den originale fastvaren.

I frekvens- og tidsfrekvensdomenene ser sidekanalen slik ut:

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Spektral- og tidsfrekvensrepresentasjon av sidekanalen

For å teste driften av NRF24-brikken med modifisert firmware, satte vi sammen et stativ som inkluderte en Logitech-dongle med modifisert firmware, et trådløst tastatur og en mottaker satt sammen på basis av en kinesisk modul med NRF24-brikken.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Logitech trådløs tastaturradiosignalavskjæringskrets

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

NRF24 basert modul

På benken, mens tastaturet fungerer normalt, etter å ha koblet det til Logitech-dongelen, observerte vi overføring av klare data om tastetrykk i sideradiokanalen og normal overføring av krypterte data i hovedradiogrensesnittet. Dermed var vi i stand til å gi direkte avlytting av brukertastaturinndata:

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Resultatet av å avskjære tastaturinndata

Den injiserte koden introduserer små forsinkelser i driften av dongelfastvaren. De er imidlertid for små til at brukeren kan legge merke til dem.

Som du kan forestille deg, kan ethvert Logitech-tastatur som er kompatibelt med Unifying-teknologi brukes til denne angrepsvektoren. Siden angrepet retter seg mot Unifying-mottakeren som følger med de fleste Logitech-tastaturer, er det uavhengig av den spesifikke tastaturmodellen.

Konklusjon

Resultatene av studien antyder mulig bruk av det vurderte scenariet av angripere: hvis en hacker erstatter offeret med en donglemottaker for et trådløst Logitech-tastatur, vil han kunne finne ut passordene til offerets kontoer med alle de påfølgende konsekvenser. Ikke glem at det også er mulig å injisere tastetrykk, noe som betyr at det ikke er vanskelig å utføre vilkårlig kode på offerets datamaskin.

Hva om plutselig en angriper kan eksternt endre fastvaren til en hvilken som helst Logitech-dongle via USB? Deretter, fra dongler med tett avstand, kan du opprette et nettverk av repeatere og øke lekkasjeavstanden. Selv om en "økonomisk velstående" angriper vil være i stand til å "lytte" til tastaturinndata og trykke på taster selv fra en nabobygning, vil moderne radiomottaksutstyr med svært selektive systemer, sensitive radiomottakere med korte frekvensinnstillingstider og sterkt retningsbestemte antenner tillate dem å "lytte" til tastaturinndata og trykke på tastene selv fra en nabobygning.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Profesjonelt radioutstyr

Siden den trådløse dataoverføringskanalen til Logitech-tastaturet er ganske godt beskyttet, krever den funnet angrepsvektoren fysisk tilgang til mottakeren, noe som i stor grad begrenser angriperen. Det eneste beskyttelsesalternativet i dette tilfellet vil være å bruke kryptografiske beskyttelsesmekanismer for mottakerens fastvare, for eksempel å sjekke signaturen til den innlastede fastvaren på mottakersiden. Men dessverre støtter ikke NRF24 dette, og det er umulig å implementere beskyttelse innenfor gjeldende enhetsarkitektur. Så ta vare på donglene dine, fordi det beskrevne angrepsalternativet krever fysisk tilgang til dem.

Ta vare på donglene dine: Logitech-tastaturmottakersikkerhetsstudie

Raccoon Security er et spesielt team av eksperter fra Vulcan Research and Development Center innen praktisk informasjonssikkerhet, kryptografi, kretsdesign, omvendt utvikling og lavnivåprogramvare.

Kilde: www.habr.com

Legg til en kommentar