Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Històricament, la majoria dels empleats utilitzen teclats i ratolins sense fil de Logitech. Introduint de nou les nostres contrasenyes, els especialistes de l'equip de Raccoon Security ens vam preguntar: fins a quin punt és difícil evitar els mecanismes de seguretat dels teclats sense fil? L'estudi va revelar defectes arquitectònics i errors de programari que permeten accedir a les dades d'entrada. A sota del tall hi ha el que hem aconseguit.

Per què Logitech?

Segons la nostra opinió, els dispositius d'entrada de Logitech es troben entre els de més alta qualitat i els més còmodes. La majoria dels dispositius que tenim es basen en la solució Logitech unificador és un receptor dongle universal que us permet connectar fins a 6 dispositius. Tots els dispositius compatibles amb la tecnologia Logitech Unifying estan marcats amb el logotip de la tecnologia Logitech Unifying. Fàcil d'usar приложение Et permet gestionar la connexió dels teclats sense fil al teu ordinador. El procés de connexió del teclat al dongle receptor de Logitech, així com la pròpia tecnologia, es cobreix, per exemple, aquí.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Receptor dongle amb suport Logitech Unifying

El teclat pot esdevenir una font d'informació per als atacants. Logitech, tenint en compte la possible amenaça, va tenir cura de la seguretat: va utilitzar l'algoritme de xifratge AES128 al canal de ràdio del teclat sense fil. El primer pensament que pot tenir un atacant en aquesta situació és interceptar la informació clau quan es transmet per un canal de ràdio durant el procediment d'enllaç. Després de tot, si teniu una clau, podeu interceptar els senyals de ràdio del teclat i desxifrar-los. Tanmateix, l'usuari rarament (o fins i tot mai) ha d'unificar el teclat, i un pirata informàtic amb una ràdio d'escaneig haurà d'esperar molt de temps. A més, no tot és tan senzill amb el propi procés d'intercepció. En l'últim estudi del juny de 2019, l'expert en seguretat Markus Mengs va publicar en línia сообщение sobre el descobriment d'una vulnerabilitat al microprogramari antic dels dongles USB de Logitech. Permet als atacants amb accés físic als dispositius obtenir claus de xifratge del canal de ràdio i injectar pulsacions de tecles (CVE-2019-13054).

Parlarem del nostre estudi de seguretat del dongle Logitech basat en el SoC NRF24 de Nordic Semiconductor. Comencem, potser, pel mateix canal de ràdio.

Com les dades "volen" en un canal de ràdio

Per a l'anàlisi de la freqüència de temps del senyal de ràdio, hem utilitzat un receptor SDR basat en el dispositiu Blade-RF en mode analitzador d'espectre (també podeu llegir sobre això aquí).

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Dispositiu SDR Blade-RF

També es va plantejar la possibilitat d'enregistrar quadratures del senyal de ràdio a una freqüència intermèdia, que després es podria analitzar mitjançant tècniques de processament de senyal digital.

Comissió Estatal de Freqüències de Ràdio a la Federació Russa permès per a l'ús de dispositius de curt abast, el rang de freqüències és de 2400–2483,5 MHz. Es tracta d'una gamma molt “poblada”, en la qual no hi trobareu res: Wi-Fi, Bluetooth, tot tipus de comandaments a distància, sistemes de seguretat, detectors sense fil, ratolins amb teclat i altres dispositius digitals sense fil.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Espectre de la banda de 2,4 GHz

L'entorn d'interferència en el rang és força complex. Malgrat això, Logitech va poder proporcionar una recepció fiable i estable mitjançant l'ús del protocol Enhanced ShockBurst al transceptor NRF24 en combinació amb algorismes d'adaptació de freqüència.

Els canals d'una banda es col·loquen en posicions enteres en MHz tal com es defineix a especificacions NRF24 Nordic Semiconductor: un total de 84 canals a la xarxa de freqüències. El nombre de canals de freqüència utilitzats simultàniament per Logitech és, per descomptat, menor. Hem identificat l'ús d'almenys quatre. A causa de l'amplada de banda limitada de l'analitzador d'espectre de senyal utilitzat, no es va poder determinar la llista exacta de posicions de freqüència utilitzades, però això no era necessari. La informació des del teclat al dongle receptor es transmet en mode Burst (girs curts al transmissor) mitjançant la modulació de freqüència de dues posicions GFSK a una velocitat de símbol d'1 Mbaud:

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Senyal de ràdio del teclat en representació del temps

El receptor utilitza el principi de correlació de recepció, de manera que el paquet transmès conté un preàmbul i una part d'adreça. No s'utilitza codificació resistent al soroll; el cos de dades està xifrat amb l'algoritme AES128.

En general, la interfície de ràdio del teclat sense fil Logitech es pot caracteritzar com a completament asíncrona amb multiplexació estadística i adaptació de freqüència. Això significa que el transmissor del teclat canvia de canal per transmetre cada paquet nou. El receptor no coneix per endavant ni el temps de transmissió ni el canal de freqüència, però només se'n coneix la llista. El receptor i el transmissor es troben al canal gràcies als algorismes d'escolta i bypass de freqüència coordinats, així com als mecanismes de reconeixement de ShockBurst millorats. No hem investigat si la llista de canals és estàtica. Probablement, el seu canvi es deu a l'algoritme d'adaptació de freqüència. Alguna cosa propera al mètode de salt de freqüència (afinació pseudoaleatoria de la freqüència de funcionament) es pot veure en l'ús del recurs de freqüència del rang.

Així, en condicions d'incertesa temps-freqüència, per garantir la recepció garantida de tots els senyals del teclat, un atacant haurà de controlar constantment tota la xarxa de freqüències de 84 posicions, cosa que requereix una quantitat de temps important. Aquí queda clar per què la vulnerabilitat d'extracció de clau USB (CVE-2019-13054) a les fonts posicionat com la capacitat d'injectar pulsacions de tecles, en lloc d'obtenir l'accés d'un atacant a les dades introduïdes des del teclat. Òbviament, la interfície de ràdio del teclat sense fil és força complexa i proporciona una comunicació de ràdio fiable entre dispositius Logitech en condicions d'interferència difícils a la banda de 2,4 GHz.

Una mirada al problema des de dins

Per al nostre estudi, vam triar un dels nostres teclats Logitech K330 existents i un dongle Logitech Unifying.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Logitech K330

Fem una ullada a l'interior del teclat. Un element interessant del tauler per estudiar és el xip SoC NRF24 de Nordic Semiconductor.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

SoC NRF24 a la placa de teclat sense fil Logitech K330

El microprogramari es troba a la memòria interna, els mecanismes de lectura i depuració estan desactivats. Malauradament, el firmware no s'ha publicat en fonts obertes. Per tant, vam decidir abordar el problema des de l'altra banda: estudiar el contingut intern del receptor dongle Logitech.

El "món interior" del receptor dongle és força interessant. El dongle es desmunta fàcilment, porta a bord el conegut llançament NRF24 amb un controlador USB integrat i es pot reprogramar tant des del costat USB com directament des del programador.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Dongle Logitech sense carcassa

Com que hi ha un mecanisme estàndard per actualitzar el firmware utilitzant Aplicacions de l'eina d'actualització de firmware (de la qual podeu extreure la versió actualitzada del microprogramari), no cal buscar el microprogramari dins del dongle.

Què es va fer: el firmware RQR_012_005_00028.bin s'ha extret del cos de l'aplicació de l'eina d'actualització de firmware. Per comprovar-ne la integritat, el controlador del dongle es va connectar amb un cable al programador ChipProg-48:

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Cable per connectar el dongle Logitech al programador ChipProg 48

Per controlar la integritat del microprogramari, es va col·locar amb èxit a la memòria del controlador i va funcionar correctament, el teclat i el ratolí es van connectar al dongle mitjançant Logitech Unifying. És possible carregar el microprogramari modificat mitjançant el mecanisme d'actualització estàndard, ja que no hi ha mecanismes de protecció criptogràfica per al microprogramari. Amb finalitats d'investigació, hem utilitzat una connexió física amb el programador, ja que la depuració és molt més ràpida d'aquesta manera.

Investigació de firmware i atac a l'entrada de l'usuari

El xip NRF24 està dissenyat basant-se en el nucli informàtic Intel 8051 a l'arquitectura tradicional de Harvard. Per al nucli, el transceptor actua com un dispositiu perifèric i es col·loca a l'espai d'adreces com un conjunt de registres. La documentació dels exemples de xip i codi font es pot trobar a Internet, de manera que desmuntar el microprogramari no és difícil. Durant l'enginyeria inversa, vam localitzar les funcions per rebre dades de pulsació de tecla del canal de ràdio i convertir-les en format HID per transmetre-les a l'amfitrió mitjançant la interfície USB. El codi d'injecció es va col·locar en adreces de memòria lliure, que incloïa eines per interceptar el control, desar i restaurar el context d'execució original, així com el codi funcional.

El paquet de prémer o alliberar una clau que rep el dongle des del canal de ràdio es desxifra, es converteix en un informe HID estàndard i s'envia a la interfície USB com des d'un teclat normal. Com a part de l'estudi, la part de l'informe HID que ens interessa més és la part de l'informe HID que conté un byte de senyaladors modificadors i una matriu de 6 bytes amb codis de teclat (per a referència, informació sobre HID). aquí).

Estructura de l'informe HID:

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

Immediatament abans de transmetre l'estructura HID a l'amfitrió, el codi injectat pren el control, copia 8 bytes de dades HID natives a la memòria i les envia al canal lateral de ràdio en text clar. En codi es veu així:

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

El canal lateral s'organitza a una freqüència que establim amb determinades característiques de la velocitat de manipulació i l'estructura del paquet.

Funcionament del transceptor al xip NRF24 es basa en un gràfic d'estats en el qual s'integra orgànicament el protocol Enhanced ShockBurst. Vam trobar que immediatament abans de transmetre dades HID a la interfície USB de l'amfitrió, el transceptor estava en estat IDLE. Això fa possible reconfigurar-lo de manera segura perquè funcioni en un canal lateral. El codi injectat intercepta el control, conserva la configuració original del transceptor en la seva totalitat i la canvia a un nou mode de transmissió al canal lateral. El mecanisme de confirmació de ShockBurst millorat està desactivat en aquest mode; les dades HID es transmeten de forma clara per l'aire. L'estructura del paquet al canal lateral es mostra a la figura següent, els diagrames de senyal es van obtenir després de la demodulació i abans de la restauració de la sincronització del rellotge de dades. El valor de l'adreça es va triar per facilitar la identificació visual del paquet.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Senyal de ràfega demodulada al canal lateral

Després de transmetre el paquet al canal lateral, el codi injectat restaura l'estat del transceptor. Ara està de nou a punt per funcionar normalment en el context del firmware original.

Als dominis de freqüència i temps-freqüència, el canal lateral té aquest aspecte:

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Representació espectral i temps-freqüència del canal lateral

Per provar el funcionament del xip NRF24 amb firmware modificat, vam muntar un suport que incloïa un dongle Logitech amb firmware modificat, un teclat sense fil i un receptor muntat sobre la base d'un mòdul xinès amb el xip NRF24.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Circuit d'intercepció del senyal de ràdio del teclat sense fil Logitech

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Mòdul basat en NRF24

Al banc, amb el teclat funcionant amb normalitat, després de connectar-lo al dongle Logitech, vam observar la transmissió de dades clares sobre les pulsacions de tecles al canal de ràdio lateral i la transmissió normal de dades xifrades a la interfície de ràdio principal. Així, vam poder proporcionar una intercepció directa de l'entrada del teclat de l'usuari:

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

El resultat d'interceptar l'entrada del teclat

El codi injectat introdueix lleugers retards en el funcionament del microprogramari del dongle. No obstant això, són massa petits perquè l'usuari els noti.

Com us podeu imaginar, qualsevol teclat Logitech compatible amb la tecnologia Unifying es pot utilitzar per a aquest vector d'atac. Com que l'atac s'adreça al receptor Unifying inclòs amb la majoria de teclats Logitech, és independent del model de teclat específic.

Conclusió

Els resultats de l'estudi suggereixen el possible ús de l'escenari considerat per part dels atacants: si un pirata informàtic substitueix la víctima per un receptor dongle per a un teclat sense fil Logitech, llavors podrà esbrinar les contrasenyes dels comptes de la víctima amb tot el consegüent. conseqüències. No oblideu que també és possible injectar pulsacions de tecles, la qual cosa significa que no és difícil executar codi arbitrari a l'ordinador de la víctima.

Què passa si de sobte un atacant pot modificar de forma remota el microprogramari de qualsevol dongle Logitech mitjançant USB? A continuació, a partir de dongles molt espaiats, podeu crear una xarxa de repetidors i augmentar la distància de fuita. Tot i que un atacant "econòmicament ric" podrà "escoltar" l'entrada del teclat i prémer les tecles fins i tot des d'un edifici veí, els moderns equips de recepció de ràdio amb sistemes altament selectius, receptors de ràdio sensibles amb temps de sintonització de freqüències curts i antenes altament direccionals els permetran. per "escoltar" l'entrada del teclat i prémer les tecles fins i tot des d'un edifici veí.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Equips de ràdio professional

Com que el canal de transmissió de dades sense fil del teclat Logitech està bastant ben protegit, el vector d'atac trobat requereix accés físic al receptor, cosa que limita molt l'atacant. L'única opció de protecció en aquest cas seria utilitzar mecanismes de protecció criptogràfica per al microprogramari del receptor, per exemple, comprovant la signatura del microprogramari carregat al costat del receptor. Però, malauradament, NRF24 no és compatible amb això i és impossible implementar protecció dins de l'arquitectura actual del dispositiu. Així que tingueu cura dels vostres dongles, perquè l'opció d'atac descrita requereix accés físic a ells.

Tingueu cura dels vostres dongles: estudi de seguretat del receptor de teclat Logitech

Raccoon Security és un equip especial d'experts del Centre de Recerca i Desenvolupament Vulcan en l'àmbit de la seguretat pràctica de la informació, la criptografia, el disseny de circuits, l'enginyeria inversa i la creació de programari de baix nivell.

Font: www.habr.com

Afegeix comentari