Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Historiskt sett använder de flesta anställda trådlösa tangentbord och möss från Logitech. När vi angav våra lösenord igen, frågade vi, specialisterna från Raccoon Security-teamet, oss själva: hur svårt är det att kringgå säkerhetsmekanismerna för trådlösa tangentbord? Studien avslöjade arkitektoniska brister och programvarufel som ger tillgång till indata. Nedanför snittet är vad vi fick.

Varför Logitech?

Enligt vår åsikt är Logitechs indataenheter bland de högsta kvaliteterna och de mest bekväma. De flesta enheter vi har är baserade på Logitechs lösning Unifying är en universell dongelmottagare som låter dig ansluta upp till 6 enheter. Alla enheter som är kompatibla med Logitech Unifying-teknik är märkta med Logitech Unifying-teknologilogotypen. Lätt att använda ansökan Låter dig hantera anslutningen av trådlösa tangentbord till din dator. Processen att ansluta tangentbordet till Logitechs mottagardongel, liksom själva tekniken, täcks t.ex. här.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Dongelmottagare med stöd för Logitech Unifying

Tangentbordet kan bli en informationskälla för angripare. Logitech, med hänsyn till det möjliga hotet, tog hand om säkerheten - använde AES128-krypteringsalgoritmen i radiokanalen på det trådlösa tangentbordet. Den första tanken som en angripare kan ha i denna situation är att fånga upp nyckelinformation när den sänds över en radiokanal under bindningsproceduren. När allt kommer omkring, om du har en nyckel, kan du fånga upp tangentbordets radiosignaler och dekryptera dem. Användaren behöver dock sällan (eller ens aldrig) förena tangentbordet, och en hackare med en skanningsradio kommer att behöva vänta länge. Dessutom är inte allt så enkelt med själva avlyssningsprocessen. I den senaste studien i juni 2019 publicerade säkerhetsexperten Markus Mengs online сообщение om upptäckten av en sårbarhet i gammal firmware hos Logitech USB-donglar. Det tillåter angripare med fysisk åtkomst till enheter att få radiokanalskrypteringsnycklar och injicera tangenttryckningar (CVE-2019-13054).

Vi kommer att prata om vår säkerhetsstudie av Logitech-dongeln baserad på NRF24 SoC från Nordic Semiconductor. Låt oss kanske börja med själva radiokanalen.

Hur data "flyger" i en radiokanal

För tidsfrekvensanalys av radiosignalen använde vi en SDR-mottagare baserad på Blade-RF-enheten i spektrumanalysläge (du kan också läsa om detta här).

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

SDR Blade-RF-enhet

Vi övervägde också möjligheten att spela in kvadraturer av radiosignalen vid en mellanfrekvens, som sedan kunde analyseras med digital signalbehandlingsteknik.

Statens kommission för radiofrekvenser i Ryska federationen tillåten för användning av kortdistansenheter är frekvensområdet 2400–2483,5 MHz. Detta är ett mycket "befolkat" område där du inte hittar någonting: Wi-Fi, Bluetooth, alla typer av fjärrkontroller, säkerhetssystem, trådlösa detektorer, möss med tangentbord och andra trådlösa digitala enheter.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Spektrum för 2,4 GHz-bandet

Interferensmiljön i området är ganska komplex. Trots detta kunde Logitech tillhandahålla tillförlitlig och stabil mottagning genom användningen av Enhanced ShockBurst-protokollet i NRF24-transceivern i kombination med frekvensanpassningsalgoritmer.

Kanaler i ett band placeras i heltals MHz-positioner enligt definitionen i specifikationer NRF24 Nordic Semiconductor - totalt 84 kanaler i frekvensnätet. Antalet samtidigt använda frekvenskanaler av Logitech är naturligtvis mindre. Vi identifierade användningen av minst fyra. På grund av den begränsade bandbredden hos den använda signalspektrumanalysatorn kunde den exakta listan över använda frekvenspositioner inte fastställas, men detta var inte nödvändigt. Information från tangentbordet till mottagardongeln sänds i Burst-läge (korta varv på sändaren) med tvåläges frekvensmodulering GFSK med en symbolhastighet på 1 Mbaud:

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Tangentbordsradiosignal i tidsrepresentation

Mottagaren använder mottagningens korrelationsprincip, så det överförda paketet innehåller en inledning och en adressdel. Brusresistent kodning används inte, datakroppen är krypterad med AES128-algoritmen.

Generellt sett kan radiogränssnittet hos det trådlösa Logitech-tangentbordet karakteriseras som helt asynkront med statistisk multiplexering och frekvensanpassning. Detta innebär att tangentbordssändaren byter kanal för att sända varje nytt paket. Mottagaren vet inte i förväg vare sig sändningstiden eller frekvenskanalen, utan endast deras lista är känd. Mottagaren och sändaren möts i kanalen tack vare samordnade frekvensbypass- och lyssningsalgoritmer, samt Enhanced ShockBurst-bekräftelsemekanismer. Vi har inte undersökt om kanallistan är statisk. Förmodligen beror dess förändring på frekvensanpassningsalgoritmen. Något nära frekvenshoppningsmetoden (pseudo-slumpmässig inställning av arbetsfrekvensen) kan ses i användningen av frekvensresursen för området.

För att garantera mottagningen av alla tangentbordssignaler måste en angripare ständigt övervaka hela frekvensnätet med 84 positioner, vilket kräver en betydande tid. Här blir det tydligt varför sårbarheten för utvinning av USB-nyckeln (CVE-2019-13054) i källor positionerad som förmågan att injicera tangenttryckningar, snarare än att få en angripares tillgång till data som matas in från tangentbordet. Uppenbarligen är radiogränssnittet på det trådlösa tangentbordet ganska komplext och ger tillförlitlig radiokommunikation mellan Logitech-enheter under svåra störningsförhållanden i 2,4 GHz-bandet.

En titt på problemet från insidan

För vår studie valde vi ett av våra befintliga Logitech K330-tangentbord och en Logitech Unifying-dongel.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Logitech K330

Låt oss ta en titt inuti tangentbordet. Ett intressant inslag på tavlan att studera är SoC NRF24-chippet från Nordic Semiconductor.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

SoC NRF24 på Logitech K330 trådlöst tangentbordskort

Den fasta programvaran finns i internminnet, läs- och felsökningsmekanismer är inaktiverade. Tyvärr har den fasta programvaran inte publicerats i öppna källor. Därför bestämde vi oss för att närma oss problemet från andra sidan - att studera det interna innehållet i Logitechs dongelmottagare.

Dongelmottagarens "inre värld" är ganska intressant. Dongeln är lätt att demontera, bär ombord den välbekanta NRF24-releasen med en inbyggd USB-kontroller och kan programmeras om både från USB-sidan och direkt från programmeraren.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Logitech dongel utan hölje

Eftersom det finns en standardmekanism för att uppdatera firmware med hjälp av Firmware Update Tool-applikationer (från vilken du kan extrahera den uppdaterade firmwareversionen), finns det ingen anledning att leta efter firmware inuti dongeln.

Vad gjordes: firmware RQR_012_005_00028.bin extraherades från kroppen i programmet Firmware Update Tool. För att kontrollera dess integritet var dongelkontrollern ansluten med en kabel till ChipProg-48-programmeraren:

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Kabel för anslutning av Logitech-dongeln till ChipProg 48-programmeraren

För att kontrollera firmwarens integritet placerades den framgångsrikt i styrenhetens minne och fungerade korrekt, tangentbordet och musen var anslutna till dongeln via Logitech Unifying. Det är möjligt att ladda upp modifierad firmware med standarduppdateringsmekanismen, eftersom det inte finns några kryptografiska skyddsmekanismer för firmware. För forskningsändamål använde vi en fysisk anslutning till programmeraren, eftersom felsökning är mycket snabbare på detta sätt.

Firmware forskning och attack på användarinmatning

NRF24-chippet är designat baserat på Intel 8051-datorkärnan i traditionell Harvard-arkitektur. För kärnan fungerar transceivern som en perifer enhet och placeras i adressutrymmet som en uppsättning register. Dokumentation för chip- och källkodsexemplen finns på Internet, så det är inte svårt att demontera firmware. Under reverse engineering lokaliserade vi funktionerna för att ta emot tangenttryckningsdata från radiokanalen och konvertera den till HID-format för överföring till värden via USB-gränssnittet. Injektionskoden placerades i lediga minnesadresser, som inkluderade verktyg för att avlyssna kontroll, spara och återställa den ursprungliga exekveringskontexten, samt funktionell kod.

Paketet med att trycka eller släppa en nyckel som tas emot av dongeln från radiokanalen dekrypteras, omvandlas till en standard HID-rapport och skickas till USB-gränssnittet som från ett vanligt tangentbord. Som en del av studien är den del av HID-rapporten som är mest intressant för oss den del av HID-rapporten som innehåller en byte av modifieringsflaggor och en array på 6 byte med tangenttryckningskoder (för referens, information om HID här).

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;

Omedelbart innan HID-strukturen överförs till värden tar den injicerade koden kontrollen, kopierar 8 byte av inbyggd HID-data i minnet och skickar den till radiosidokanalen i klartext. I koden ser det ut så här:

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

Sidokanalen är organiserad vid en frekvens som vi ställer in med vissa egenskaper för manipulationshastighet och paketstruktur.

Drift av transceivern i chipet NRF24 baseras på ett tillståndsdiagram i vilket Enhanced ShockBurst-protokollet är organiskt integrerat. Vi upptäckte att omedelbart innan HID-data överfördes till värd-USB-gränssnittet, var sändtagaren i IDLE-läge. Detta gör det möjligt att säkert omkonfigurera den för att fungera i en sidokanal. Den injicerade koden avlyssnar kontroll, bevarar den ursprungliga transceiverkonfigurationen i sin helhet och växlar den till ett nytt överföringsläge på sidokanalen. Den förbättrade ShockBurst-bekräftelsemekanismen är inaktiverad i detta läge; HID-data överförs i klar form över luften. Strukturen för paketet i sidokanalen visas i figuren nedan, signaldiagrammen erhölls efter demodulering och före återställandet av dataklocksynkronisering. Adressvärdet valdes för att underlätta visuell identifiering av paketet.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Demodulerad Burst Burst-signal i sidokanalen

Efter att paketet har sänts till sidokanalen, återställer den injicerade koden sändtagarens tillstånd. Nu är den återigen redo att fungera normalt i samband med den ursprungliga firmware.

I frekvens- och tidsfrekvensdomänerna ser sidokanalen ut så här:

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Spektral- och tidsfrekvensrepresentation av sidokanalen

För att testa funktionen av NRF24-chippet med modifierad firmware, monterade vi ett stativ som innehöll en Logitech-dongel med modifierad firmware, ett trådlöst tangentbord och en mottagare monterad på basis av en kinesisk modul med NRF24-chippet.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Logitech trådlös radiosignalavlyssningskrets med tangentbord

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

NRF24-baserad modul

På bänken, med tangentbordet fungerande normalt, efter att ha kopplat det till Logitech-dongeln, observerade vi överföringen av tydliga data om tangenttryckningar i sidoradiokanalen och den normala överföringen av krypterad data i huvudradiogränssnittet. Således kunde vi tillhandahålla direkt avlyssning av användarens tangentbordsinmatning:

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Resultatet av avlyssning av tangentbordsinmatning

Den injicerade koden introducerar små förseningar i driften av dongelns firmware. De är dock för små för att användaren ska lägga märke till dem.

Som du kan föreställa dig kan vilket Logitech-tangentbord som helst som är kompatibelt med Unifying-teknik användas för denna attackvektor. Eftersom attacken riktar sig mot Unifying-mottagaren som ingår i de flesta Logitech-tangentbord är den oberoende av den specifika tangentbordsmodellen.

Slutsats

Resultaten av studien antyder möjlig användning av det övervägda scenariot av angripare: om en hacker ersätter offret med en dongelmottagare för ett trådlöst Logitech-tangentbord, kommer han att kunna ta reda på lösenorden till offrets konton med alla efterföljande konsekvenser. Glöm inte att det också är möjligt att injicera tangenttryckningar, vilket innebär att det inte är svårt att exekvera godtycklig kod på offrets dator.

Tänk om en angripare plötsligt kan fjärrmodifiera firmwaren för alla Logitech-donglar via USB? Sedan kan du, från tätt placerade donglar, skapa ett nätverk av repeatrar och öka läckageavståndet. Även om en "finansiellt rik" angripare kommer att kunna "lyssna" på tangentbordsinmatning och trycka på tangenter även från en angränsande byggnad, kommer modern radiomottagningsutrustning med mycket selektiva system, känsliga radiomottagare med korta frekvensinställningstider och mycket riktade antenner att tillåta dem att "lyssna" på tangentbordsinmatning och trycka på tangenter även från en angränsande byggnad.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Professionell radioutrustning

Eftersom den trådlösa dataöverföringskanalen på Logitech-tangentbordet är ganska väl skyddad, kräver den hittade attackvektorn fysisk åtkomst till mottagaren, vilket kraftigt begränsar angriparen. Det enda skyddsalternativet i detta fall skulle vara att använda kryptografiska skyddsmekanismer för mottagarens fasta programvara, till exempel att kontrollera signaturen för den laddade firmwaren på mottagarsidan. Men tyvärr stöder inte NRF24 detta och det är omöjligt att implementera skydd inom den nuvarande enhetsarkitekturen. Så ta hand om dina donglar, eftersom det beskrivna attackalternativet kräver fysisk åtkomst till dem.

Ta hand om dina donglar: Logitechs säkerhetsstudie för tangentbordsmottagare

Raccoon Security är ett speciellt team av experter från Vulcan Research and Development Center inom området praktisk informationssäkerhet, kryptografi, kretsdesign, reverse engineering och mjukvaruskapande på låg nivå.

Källa: will.com

Lägg en kommentar