Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Históricamente, a maioría dos empregados usan teclados e ratos sen fíos de Logitech. Introducindo os nosos contrasinais unha vez máis, nós, os especialistas do equipo de Raccoon Security, preguntámonos: que difícil é evitar os mecanismos de seguridade dos teclados sen fíos? O estudo revelou fallos arquitectónicos e erros de software que permiten acceder aos datos de entrada. Debaixo do corte está o que conseguimos.

Por que Logitech?

Na nosa opinión, os dispositivos de entrada Logitech están entre os máis cómodos e de maior calidade. A maioría dos dispositivos que temos están baseados na solución Logitech Unifying é un receptor dongle universal que che permite conectar ata 6 dispositivos. Todos os dispositivos compatibles coa tecnoloxía Logitech Unifying están marcados co logotipo da tecnoloxía Logitech Unifying. Doado de usar aplicación Permítelle xestionar a conexión dos teclados sen fíos ao seu ordenador. O proceso de conexión do teclado ao dongle do receptor de Logitech, así como a propia tecnoloxía, está cuberto, por exemplo, aquí.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Receptor dongle con soporte Logitech Unifying

O teclado pode converterse nunha fonte de información para os atacantes. Logitech, tendo en conta a posible ameaza, ocupouse da seguridade: utilizou o algoritmo de cifrado AES128 na canle de radio do teclado sen fíos. O primeiro pensamento que pode ter un atacante nesta situación é interceptar información clave cando se transmite a través dunha canle de radio durante o procedemento de vinculación. Despois de todo, se tes unha chave, podes interceptar os sinais de radio do teclado e descifralos. Non obstante, o usuario raramente (ou incluso nunca) ten que unificar o teclado, e un hacker cunha radio de dixitalización terá que esperar moito tempo. Ademais, non todo é tan sinxelo co propio proceso de interceptación. No último estudo de xuño de 2019, o experto en seguridade Markus Mengs publicou en liña mensaxe sobre o descubrimento dunha vulnerabilidade no firmware antigo dos dongles USB de Logitech. Permite aos atacantes con acceso físico aos dispositivos obter claves de cifrado de canles de radio e inxectar pulsacións de tecla (CVE-2019-13054).

Falaremos do noso estudo de seguridade do dongle Logitech baseado no SoC NRF24 de Nordic Semiconductor. Comecemos, se cadra, pola propia canle de radio.

Como "voan" os datos nunha canle de radio

Para a análise de frecuencia horaria do sinal de radio, utilizamos un receptor SDR baseado no dispositivo Blade-RF en modo analizador de espectro (tamén podes ler sobre isto aquí).

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Dispositivo SDR Blade-RF

Tamén consideramos a posibilidade de gravar cuadraturas do sinal de radio a unha frecuencia intermedia, que logo poderían ser analizadas mediante técnicas de procesamento de sinal dixital.

Comisión Estatal de Radiofrecuencias na Federación Rusa permitidas para o seu uso en dispositivos de curto alcance, o rango de frecuencia é de 2400–2483,5 MHz. Trátase dunha gama moi “poboada”, na que non atoparás nada: Wi-Fi, Bluetooth, todo tipo de mandos a distancia, sistemas de seguridade, detectores sen fíos, ratos con teclado e outros dispositivos dixitais sen fíos.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Espectro da banda de 2,4 GHz

O ambiente de interferencia no rango é bastante complexo. A pesar diso, Logitech foi capaz de proporcionar unha recepción fiable e estable mediante o uso do protocolo Enhanced ShockBurst no transceptor NRF24 en combinación con algoritmos de adaptación de frecuencia.

As canles dunha banda colócanse en posicións enteiras de MHz segundo se definen en especificacións NRF24 Nordic Semiconductor: un total de 84 canles na rede de frecuencias. O número de canles de frecuencia utilizadas simultaneamente por Logitech é, por suposto, menor. Identificamos o uso de polo menos catro. Debido ao ancho de banda limitado do analizador de espectro de sinal utilizado, non se puido determinar a lista exacta das posicións de frecuencia utilizadas, pero non foi necesario. A información do teclado ao dongle do receptor transmítese en modo Burst (curtos giros no transmisor) mediante a modulación de frecuencia de dúas posicións GFSK a unha velocidade de símbolo de 1 Mbaud:

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Sinal de radio do teclado na representación do tempo

O receptor utiliza o principio de correlación da recepción, polo que o paquete transmitido contén un preámbulo e unha parte de dirección. Non se utiliza codificación resistente ao ruído; o corpo de datos está cifrado co algoritmo AES128.

En xeral, a interface de radio do teclado sen fíos Logitech pódese caracterizar como completamente asíncrona con multiplexación estatística e adaptación de frecuencia. Isto significa que o transmisor do teclado cambia a canle para transmitir cada novo paquete. O receptor non coñece de antemán nin o tempo de transmisión nin a canle de frecuencia, pero só se coñece a súa lista. O receptor e o transmisor atópanse na canle grazas a algoritmos coordinados de derivación de frecuencia e escoita, así como mecanismos de recoñecemento de ShockBurst mellorados. Non investigamos se a lista de canles é estática. Probablemente, o seu cambio débese ao algoritmo de adaptación de frecuencia. Algo próximo ao método de salto de frecuencia (axuste pseudoaleatorio da frecuencia de operación) pódese ver no uso do recurso de frecuencia do rango.

Así, en condicións de incerteza tempo-frecuencia, para garantir a recepción de todos os sinais do teclado, un atacante terá que supervisar constantemente toda a rede de frecuencias de 84 posicións, o que require un tempo importante. Aquí queda claro por que a vulnerabilidade de extracción da chave USB (CVE-2019-13054) nas fontes posicionada como a capacidade de inxectar pulsacións de teclas, en lugar de obter o acceso dun atacante aos datos introducidos desde o teclado. Obviamente, a interface de radio do teclado sen fíos é bastante complexa e proporciona unha comunicación de radio fiable entre dispositivos Logitech en condicións de interferencia difíciles na banda de 2,4 GHz.

Unha ollada ao problema desde dentro

Para o noso estudo, escollemos un dos nosos teclados Logitech K330 existentes e un dongle Logitech Unifying.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Logitech K330

Vexamos o interior do teclado. Un elemento interesante no taboleiro para estudar é o chip SoC NRF24 de Nordic Semiconductor.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

SoC NRF24 na placa de teclado sen fíos Logitech K330

O firmware está situado na memoria interna, os mecanismos de lectura e depuración están desactivados. Desafortunadamente, o firmware non se publicou en fontes abertas. Polo tanto, decidimos abordar o problema desde o outro lado: estudar o contido interno do receptor dongle Logitech.

O "mundo interior" do receptor dongle é bastante interesante. O dongle desmontase facilmente, leva a bordo a familiar versión NRF24 cun controlador USB incorporado e pódese reprogramar tanto desde o lado USB como directamente desde o programador.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Dongle Logitech sen carcasa

Xa que hai un mecanismo estándar para actualizar o firmware usando Aplicacións da ferramenta de actualización de firmware (do que pode extraer a versión actualizada do firmware), non é necesario buscar o firmware dentro do dongle.

Que se fixo: o firmware RQR_012_005_00028.bin foi extraído do corpo da aplicación Firmware Update Tool. Para comprobar a súa integridade, conectouse o controlador do dongle cun cable ao programador ChipProg-48:

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Cable para conectar o dongle Logitech ao programador ChipProg 48

Para controlar a integridade do firmware, colocouse con éxito na memoria do controlador e funcionou correctamente, o teclado e o rato conectáronse ao dongle mediante Logitech Unifying. É posible cargar firmware modificado mediante o mecanismo de actualización estándar, xa que non hai mecanismos de protección criptográfica para o firmware. Para fins de investigación, utilizamos unha conexión física co programador, xa que a depuración é moito máis rápida deste xeito.

Investigación de firmware e ataque á entrada do usuario

O chip NRF24 está deseñado baseándose no núcleo de computación Intel 8051 na arquitectura tradicional de Harvard. Para o núcleo, o transceptor actúa como un dispositivo periférico e colócase no espazo de enderezos como un conxunto de rexistros. A documentación para os exemplos de chip e código fonte pódese atopar en Internet, polo que desmontar o firmware non é difícil. Durante a enxeñaría inversa, localizamos as funcións para recibir datos de teclas da canle de radio e convertelos en formato HID para transmitilos ao host a través da interface USB. O código de inxección colocouse en enderezos de memoria libre, que incluían ferramentas para interceptar o control, gardar e restaurar o contexto de execución orixinal, así como código funcional.

O paquete de presionar ou soltar unha tecla que recibe o dongle desde a canle de radio descífrase, convértese nun informe HID estándar e envíase á interface USB como desde un teclado normal. Como parte do estudo, a parte do informe HID que máis nos interesa é a parte do informe HID que contén un byte de marcas modificadoras e unha matriz de 6 bytes con códigos de pulsación de teclas (para referencia, información sobre HID). aquí).

Estrutura do 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;

Inmediatamente antes de transmitir a estrutura HID ao host, o código inxectado toma o control, copia 8 bytes de datos HID nativos na memoria e envíao á canle lateral de radio en texto claro. No código parece isto:

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

A canle lateral organízase nunha frecuencia que establecemos con determinadas características da velocidade de manipulación e da estrutura do paquete.

Funcionamento do transceptor no chip NRF24 baséase nun gráfico de estado no que se integra orgánicamente o protocolo Enhanced ShockBurst. Descubrimos que inmediatamente antes de transmitir os datos HID á interface USB do host, o transceptor estaba en estado INACTIVO. Isto fai posible reconfiguralo de forma segura para operar nunha canle lateral. O código inxectado intercepta o control, conserva a configuración orixinal do transceptor na súa totalidade e cámbiaa a un novo modo de transmisión na canle lateral. O mecanismo de confirmación de ShockBurst mellorado está desactivado neste modo; os datos HID transmítense en forma clara polo aire. A estrutura do paquete na canle lateral móstrase na figura seguinte, os diagramas de sinal obtivéronse despois da demodulación e antes da restauración da sincronización do reloxo de datos. Escolleuse o valor do enderezo para facilitar a identificación visual do paquete.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Sinal de ráfaga demodulado na canle lateral

Despois de transmitir o paquete á canle lateral, o código inxectado restablece o estado do transceptor. Agora está de novo listo para funcionar normalmente no contexto do firmware orixinal.

Nos dominios de frecuencia e frecuencia de tempo, a canle lateral ten o seguinte aspecto:

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Representación espectral e tempo-frecuencia da canle lateral

Para probar o funcionamento do chip NRF24 con firmware modificado, montamos un soporte que incluía un dongle Logitech con firmware modificado, un teclado sen fíos e un receptor montados sobre a base dun módulo chinés co chip NRF24.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Circuito de interceptación de sinal de radio de teclado sen fíos Logitech

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Módulo baseado en NRF24

No banco, co teclado funcionando normalmente, despois de conectalo ao dongle Logitech, observamos a transmisión de datos claros sobre as pulsacións de teclas na canle de radio lateral e a transmisión normal de datos cifrados na interface de radio principal. Así, puidemos proporcionar unha intercepción directa da entrada do teclado do usuario:

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

O resultado de interceptar a entrada do teclado

O código inxectado introduce lixeiros atrasos no funcionamento do firmware do dongle. Non obstante, son demasiado pequenos para que o note o usuario.

Como podes imaxinar, calquera teclado Logitech compatible coa tecnoloxía Unifying pódese utilizar para este vector de ataque. Dado que o ataque ten como obxectivo o receptor Unifying incluído na maioría dos teclados Logitech, é independente do modelo de teclado específico.

Conclusión

Os resultados do estudo suxiren o posible uso do escenario considerado por parte dos atacantes: se un hacker substitúe á vítima por un receptor dongle para un teclado sen fíos de Logitech, entón poderá descubrir os contrasinais das contas da vítima con todos os seguintes consecuencias. Non esquezas que tamén é posible inxectar pulsacións de teclas, o que significa que non é difícil executar código arbitrario no ordenador da vítima.

E se de súpeto un atacante pode modificar remotamente o firmware de calquera dongle Logitech a través de USB? Despois, a partir de dongles moi espaciados, pode crear unha rede de repetidores e aumentar a distancia de fuga. Aínda que un atacante "económico" poderá "escoitar" a entrada do teclado e premer as teclas incluso desde un edificio veciño, os modernos equipos de recepción de radio con sistemas altamente selectivos, receptores de radio sensibles con tempos de sintonía de frecuencia curtas e antenas altamente direccionais permitiranlles. para "escoitar" a entrada do teclado e premer as teclas incluso desde un edificio veciño.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Equipos de radio profesional

Dado que a canle de transmisión de datos sen fíos do teclado Logitech está bastante ben protexida, o vector de ataque atopado require acceso físico ao receptor, o que limita moito ao atacante. A única opción de protección neste caso sería utilizar mecanismos de protección criptográfica para o firmware do receptor, por exemplo, comprobando a sinatura do firmware cargado no lado do receptor. Pero, desafortunadamente, NRF24 non admite isto e é imposible implementar protección dentro da arquitectura do dispositivo actual. Entón, coida dos teus dongles, porque a opción de ataque descrita require acceso físico a eles.

Coida dos teus dongles: estudo de seguridade do receptor de teclado Logitech

Raccoon Security é un equipo especial de expertos do Centro de Investigación e Desenvolvemento Vulcan no campo da seguridade da información práctica, a criptografía, o deseño de circuítos, a enxeñería inversa e a creación de software de baixo nivel.

Fonte: www.habr.com

Engadir un comentario