Histoarysk brûke de measte meiwurkers draadloze toetseboerden en mûzen fan Logitech. Troch ús wachtwurden nochris yn te fieren, fregen wy, de spesjalisten fan it Raccoon Security-team, ússels ôf: hoe lestich is it om de feiligensmeganismen fan draadloze toetseboerden te omgean? De stúdzje die bliken arsjitektoanyske gebreken en software flaters dy't tastean tagong ta ynfier gegevens. Under de besuniging is wat wy krigen.
Wêrom Logitech?
Neffens ús miening binne Logitech-ynputapparaten ûnder de heechste kwaliteit en it handichste. De measte fan 'e apparaten dy't wy hawwe binne basearre op de Logitech-oplossing
Dongle-ûntfanger mei Logitech Unifying-stipe
It toetseboerd kin in boarne fan ynformaasje wurde foar oanfallers. Logitech, rekken hâldend mei de mooglike bedriging, soarge foar feiligens - brûkte it AES128-fersiferingsalgoritme yn it radiokanaal fan it draadloze toetseboerd. De earste gedachte dy't in oanfaller yn dizze situaasje kin hawwe is om wichtige ynformaasje te ûnderskeppen as it wurdt oerbrocht oer in radiokanaal tidens de binende proseduere. Ommers, as jo in kaai hawwe, kinne jo de radiosinjalen fan it toetseboerd ûnderskeppe en se ûntsiferje. De brûker moat lykwols selden (of sels nea) it toetseboerd ferienigje, en in hacker mei in skennende radio sil lang wachtsje moatte. Derneist is net alles sa ienfâldich mei it ûnderskeppingsproses sels. Yn 'e lêste stúdzje yn juny 2019 publisearre befeiligingsekspert Markus Mengs online
Wy sille prate oer ús feiligensstúdzje fan 'e Logitech-dongle basearre op de NRF24 SoC fan Nordic Semiconductor. Litte wy miskien begjinne mei it radiokanaal sels.
Hoe gegevens "fleane" yn in radiokanaal
Foar tiid-frekwinsje-analyze fan it radiosinjaal brûkten wy in SDR-ûntfanger basearre op it Blade-RF-apparaat yn spektrumanalysatormodus (jo kinne ek lêze oer dit
SDR Blade-RF-apparaat
Wy hawwe ek de mooglikheid beskôge om kwadraturen fan it radiosinjaal op te nimmen op in tuskenfrekwinsje, dy't dan kinne wurde analysearre mei help fan digitale sinjaalferwurkingstechniken.
Steatskommisje foar radiofrekwinsjes yn 'e Russyske Federaasje
Spektrum fan de 2,4 GHz-band
De ynterferinsjeomjouwing yn it berik is frij kompleks. Nettsjinsteande dit koe Logitech betroubere en stabile ûntfangst leverje troch it brûken fan it Enhanced ShockBurst-protokol yn 'e NRF24-transceiver yn kombinaasje mei frekwinsje-oanpassingsalgoritmen.
Kanalen yn in band wurde pleatst op integer MHz posysjes lykas definiearre yn
Toetseboerd radio sinjaal yn tiid fertsjintwurdiging
De ûntfanger brûkt it korrelaasjeprinsipe fan ûntfangst, sadat it útstjoerde pakket in preambule en in adresdiel befettet. Noise-resistant kodearring wurdt net brûkt; it gegevens lichem is fersifere mei it AES128-algoritme.
Yn 't algemien kin de radio-ynterface fan it Logitech-draadloze toetseboerd wurde karakterisearre as folslein asynchronysk mei statistyske multiplexing en frekwinsje-oanpassing. Dit betsjut dat de toetseboerdstjoerder it kanaal skeakelt om elk nij pakket te ferstjoeren. De ûntfanger wit net fan tefoaren noch de oerdracht tiid of it frekwinsje kanaal, mar allinnich harren list is bekend. De ûntfanger en de stjoerder treffe yn it kanaal troch koördinearre frekwinsje-bypass- en harkalgoritmen, lykas Enhanced ShockBurst-erkenningsmeganismen. Wy hawwe net ûndersocht oft de kanaallist statysk is. Wierskynlik is syn feroaring te tankjen oan it frekwinsje-oanpassingsalgoritme. Iets ticht by de metoade fan frekwinsje hopping (pseudo-willekeurich ôfstimmen fan de bestjoeringsfrekwinsje) kin sjoen wurde yn it brûken fan de frekwinsje boarne fan it berik.
Sa, ûnder betingsten fan tiid-frekwinsje ûnwissichheid, te garandearjen de ûntfangst fan alle toetseboerd sinjalen garandearre, in oanfaller sil moatte konstant tafersjoch op it hiele frekwinsje raster fan 84 posysjes, dat fereasket in grutte hoemannichte tiid. Hjir wurdt dúdlik wêrom't de kwetsberens foar ekstraksje fan USB-kaaien (CVE-2019-13054)
In blik op it probleem fan binnen
Foar ús stúdzje hawwe wy ien fan ús besteande Logitech K330-toetseboerden keazen en in Logitech Unifying-dongle.
Logitech K330
Litte wy ris yn it toetseboerd sjen. In nijsgjirrich elemint op it boerd om te studearjen is de SoC NRF24-chip fan Nordic Semiconductor.
SoC NRF24 op Logitech K330 draadloos toetseboerd
De firmware leit yn ynterne ûnthâld, lêzen en debuggen meganismen binne útskeakele. Spitigernôch is de firmware net publisearre yn iepen boarnen. Dêrom besleaten wy it probleem fan 'e oare kant te benaderjen - om de ynterne ynhâld fan' e Logitech dongle-ûntfanger te studearjen.
De "ynderlike wrâld" fan 'e dongle-ûntfanger is heul ynteressant. De dongle is maklik te disassemble, draacht oan board de bekende NRF24-release mei in ynboude USB-controller en kin wurde herprogrammearre sawol fan 'e USB-kant as direkt fan' e programmeur.
Logitech dongle sûnder húsfesting
Sûnt der is in standert meganisme foar it bywurkjen fan de firmware brûkend
Wat waard dien: firmware RQR_012_005_00028.bin waard helle út it lichem fan 'e applikaasje Firmware Update Tool. Om de yntegriteit te kontrolearjen, waard de donglekontrôler ferbûn mei in kabel
Kabel foar it ferbinen fan de Logitech dongle oan de ChipProg 48 programmer
Om de yntegriteit fan 'e firmware te kontrolearjen, waard it mei súkses pleatst yn it ûnthâld fan' e controller en wurke goed, it toetseboerd en de mûs waarden ferbûn mei de dongle fia Logitech Unifying. It is mooglik om wizige firmware te uploaden mei it standert updatemeganisme, om't d'r gjin kryptografyske beskermingsmeganismen binne foar de firmware. Foar ûndersyksdoelen brûkten wy in fysike ferbining mei de programmeur, om't debuggen op dizze manier folle flugger is.
Firmwareûndersyk en oanfal op brûkersynput
De NRF24-chip is ûntworpen basearre op de Intel 8051-komputerkearn yn tradisjonele Harvard-arsjitektuer. Foar de kearn fungearret de transceiver as in perifeare apparaat en wurdt yn 'e adresromte pleatst as in set fan registers. Dokumintaasje foar de chip en boarne koade foarbylden kinne fûn wurde op it ynternet, dus disassembly de firmware is net dreech. Tidens reverse engineering hawwe wy de funksjes lokalisearre foar it ûntfangen fan toetsoanslaggegevens fan it radiokanaal en it konvertearjen yn HID-formaat foar oerdracht nei de host fia de USB-ynterface. De ynjeksjekoade waard pleatst yn fergese ûnthâldadressen, dy't ark omfette foar it ûnderskeppen fan kontrôle, bewarjen en werstellen fan 'e orizjinele útfieringskontekst, lykas ek funksjonele koade.
It pakket fan drukken of loslitte fan in kaai ûntfongen troch de dongle fan it radiokanaal wurdt ûntsifere, omboud ta in standert HID-rapport en stjoerd nei de USB-ynterface as fan in gewoan toetseboerd. As ûnderdiel fan 'e stúdzje is it diel fan it HID-rapport dat ús it meast ynteressant is it diel fan it HID-rapport dat in byte fan modifikaasjeflaggen befettet en in array fan 6 bytes mei toetsoanslagkoades (foar referinsje, ynformaasje oer HID
HID rapportstruktuer:
// 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;
Fuort foar it ferstjoeren fan de HID-struktuer nei de host, nimt de ynjeksjede koade kontrôle, kopiearret 8 bytes fan native HID-gegevens yn it ûnthâld en stjoert it nei it radiosidekanaal yn dúdlike tekst. Yn koade sjocht it der sa út:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<
It sydkanaal wurdt organisearre op in frekwinsje dy't wy ynstelle mei bepaalde skaaimerken fan 'e manipulaasjesnelheid en pakketstruktuer.
Operaasje fan de transceiver yn 'e chip
Demodulated Burst Burst Signal yn Side Channel
Nei it pakket wurdt oerbrocht nei it sydkanaal, herstelt de ynjeksjede koade de steat fan 'e transceiver. No is it wer klear om normaal te wurkjen yn 'e kontekst fan' e orizjinele firmware.
Yn 'e frekwinsje- en tiidfrekwinsjedomeinen sjocht it sydkanaal der sa út:
Spektral- en tiidfrekwinsjefoarstelling fan it sydkanaal
Om de wurking fan 'e NRF24-chip mei wizige firmware te testen, hawwe wy in stand gearstald dy't in Logitech-dongle mei wizige firmware, in draadloze toetseboerd en in ûntfanger gearstald op basis fan in Sineeske module mei de NRF24-chip omfette.
Logitech draadloze toetseboerd radio sinjaal ûnderskepping circuit
NRF24 basearre module
Op 'e bank, mei it toetseboerd normaal operearjend, nei it ferbinen mei de Logitech-dongle, hawwe wy de oerdracht fan dúdlike gegevens oer toetsoanslaggen yn it sydradiokanaal en de normale oerdracht fan fersifere gegevens yn' e haadradio-ynterface observearre. Sa koene wy direkte ûnderskepping fan brûkerstoetseboerdynput leverje:
It resultaat fan it ûnderskeppen fan toetseboerdynput
De ynjeksjede koade yntroduseart lichte fertragingen yn 'e wurking fan' e dongle-firmware. Se binne lykwols te lyts foar de brûker om te merken.
Lykas jo jo kinne foarstelle, kin elk Logitech-toetseboerd dat kompatibel is mei Unifying-technology brûkt wurde foar dizze oanfalsvektor. Sûnt de oanfal is rjochte op de Unifying-ûntfanger opnommen mei de measte Logitech-toetseboerden, is it ûnôfhinklik fan it spesifike toetseboerdmodel.
konklúzje
De resultaten fan 'e stúdzje suggerearje it mooglike gebrûk fan it beskôge senario troch oanfallers: as in hacker it slachtoffer ferfangt mei in dongle-ûntfanger foar in Logitech-draadloos toetseboerd, dan sil hy de wachtwurden kinne fine foar de akkounts fan it slachtoffer mei alle folgjende gefolgen. Ferjit net dat it ek mooglik is om toetsoanslagen te ynjeksje, wat betsjut dat it net dreech is om willekeurige koade út te fieren op 'e kompjûter fan it slachtoffer.
Wat as in oanfaller ynienen de firmware fan elke Logitech-dongle fia USB kin wizigje? Dan kinne jo fan dongles dy't ticht byinoar binne, in netwurk fan repeaters oanmeitsje en de lekôfstân ferheegje. Hoewol in "finansjeel rike" oanfaller kin "harkje" nei toetseboerdynput en toetsen drukke sels fan in oanbuorjende gebou, sille moderne radio-ûntfangstapparatuer mei heul selektive systemen, gefoelige radio-ûntfangers mei koarte frekwinsje-ôfstimmingstiden en tige rjochtingsantennes har tastean om "harkje" nei toetseboerdynput en drukke op toetsen sels út in oanbuorjende gebou.
Profesjonele radioapparatuer
Sûnt it draadloze datatransmissionkanaal fan it Logitech-toetseboerd frij goed beskerme is, fereasket de fûn oanfalsvektor fysike tagong ta de ûntfanger, wat de oanfaller sterk beheint. De ienige beskermingsopsje yn dit gefal soe wêze om kryptografyske beskermingsmeganismen te brûken foar de firmware fan 'e ûntfanger, bygelyks it kontrolearjen fan de hantekening fan' e laden firmware oan 'e ûntfangerkant. Mar, spitigernôch, NRF24 stipet dit net en it is ûnmooglik om beskerming te ymplementearjen binnen de hjoeddeistige apparaatarsjitektuer. Soarch dus foar jo dongles, om't de beskreaune oanfalsopsje fysike tagong ta har fereasket.
Raccoon Security is in spesjaal team fan saakkundigen fan it Vulcan Research and Development Center op it mêd fan praktyske ynformaasjefeiligens, kryptografy, circuitûntwerp, reverse engineering en software-skepping op leech nivo.
Boarne: www.habr.com