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
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
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ò
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
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
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)
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.
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.
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.
Dongle Logitech sense carcassa
Com que hi ha un mecanisme estàndard per actualitzar el firmware utilitzant
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
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).
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
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:
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.
Circuit d'intercepció del senyal de ràdio del teclat sense fil 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:
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í.
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.
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