Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Históricamente, la mayoría de los empleados utilizan teclados y ratones inalámbricos Logitech. Una vez más ingresando nuestras contraseñas, los especialistas del equipo de Raccoon Security nos preguntamos: ¿qué tan difícil es eludir los mecanismos de seguridad de los teclados inalámbricos? La investigación realizada reveló fallas arquitectónicas y errores de software que permiten el acceso a los datos de entrada. Debajo del corte, lo que tenemos.

¿Por qué Logitech?

En nuestra opinión, los dispositivos de entrada Logitech se encuentran entre los de mayor calidad y comodidad. La mayoría de los dispositivos que tenemos están basados ​​en la solución Logitech. Unificando es un receptor dongle universal que le permite conectar hasta 6 dispositivos. Todos los dispositivos compatibles con la tecnología Logitech Unifying están marcados con el logo correspondiente. Fácil de usar приложение le permite administrar la conexión de teclados inalámbricos a su computadora. El proceso de conexión del teclado al receptor dongle Logitech, así como la tecnología en sí, se tratan en detalle, por ejemplo, aquí.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Receptor Dongle unificador Logitech

El teclado puede convertirse en una fuente de información para los intrusos. Logitech, teniendo en cuenta la posible amenaza, se encargó de la seguridad: aplicó el algoritmo de cifrado AES128 en el canal de radio del teclado inalámbrico. El primer pensamiento que puede venir a un atacante en esta situación es interceptar información clave durante su transmisión por aire durante el procedimiento de vinculación. Después de todo, si tienes una clave, puedes interceptar las señales de radio del teclado y descifrarlas. Sin embargo, es muy raro (o nunca) que un usuario vincule un teclado con un procedimiento Unifying, y un hacker con una radio de escaneo tendrá que esperar mucho tiempo. Además, no todo es tan sencillo con el proceso de interceptación en sí. En el último estudio de junio de 2019 lo publicó en línea el experto en seguridad Markus Mengs сообщение sobre el descubrimiento de una vulnerabilidad en el firmware antiguo de los dongles USB de Logitech. Permite a los atacantes con acceso físico a los dispositivos obtener claves de cifrado de canales de radio e inyectar pulsaciones de teclas (CVE-2019-13054).

Cubriremos nuestro estudio de seguridad de un dongle Logitech basado en el SoC NRF24 de Nordic Semiconductor. Y comencemos, quizás, por el propio canal de radio.

Cómo "vuelan" los datos en el canal de radio

Para el análisis tiempo-frecuencia de la señal de radio, utilizamos un receptor SDR basado en el dispositivo Blade-RF en modo analizador de espectro (también puede leer sobre esto aquí).

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Dispositivo SDR Blade-RF

También se consideró la posibilidad de registrar cuadraturas de la señal de radio en una frecuencia intermedia para luego analizarlas mediante métodos de procesamiento digital de señales.

Comisión Estatal de Radiofrecuencias de la Federación de Rusia permitido para uso con dispositivos de corto alcance en el rango de frecuencia 2400-2483,5 MHz. Se trata de una gama muy "poblada", en la que no encontrarás de nada: Wi-Fi, Bluetooth, todo tipo de mandos a distancia, sistemas de seguridad, detectores inalámbricos, ratones con teclado y otros dispositivos digitales inalámbricos.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Espectro de banda de 2,4 GHz

La situación de interferencia en el rango es bastante complicada. A pesar de esto, Logitech pudo proporcionar una recepción confiable y estable utilizando el protocolo Enhanced ShockBurst en el transceptor NRF24 en combinación con algoritmos de adaptación de frecuencia.

Los canales de la banda se colocan en posiciones de MHz enteros como se define en especificaciones NRF24 Nordic Semiconductor: total de 84 canales en la cuadrícula de frecuencia. El número de canales de frecuencia utilizados simultáneamente por Logitech es, por supuesto, menor. Identificamos el uso de al menos cuatro. Debido al alcance limitado del analizador de espectro de señales utilizado, no fue posible determinar la lista exacta de posiciones de frecuencia utilizadas, pero esto no fue necesario. La información desde el teclado al receptor dongle se transmite en modo Burst (se enciende brevemente el transmisor) utilizando modulación de frecuencia de dos posiciones GFSK a una velocidad de símbolo de 1 Mbaud:

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Señal de radio del teclado en vista de tiempo

El receptor utiliza el principio de correlación de recepción, por lo que el paquete transmitido contiene un preámbulo y una parte de dirección. No se utiliza codificación de corrección de errores, el cuerpo de los datos se cifra mediante el algoritmo AES128.

En general, la interfaz aérea de un teclado inalámbrico Logitech se puede caracterizar como completamente asíncrona con multiplexación por división estadística y respuesta de frecuencia. Esto significa que el transmisor del teclado cambia el canal para transmitir cada nuevo paquete. El receptor no conoce de antemano ni la hora de transmisión ni el canal de frecuencia, sino sólo una lista de ellos. El receptor y el transmisor se encuentran en el canal gracias a los algoritmos de escucha y derivación de frecuencia acordados, así como a los mecanismos de reconocimiento de ShockBurst mejorados. No hemos examinado si la lista de canales es estática. Probablemente su cambio se deba al algoritmo de adaptación de frecuencia. En el uso del recurso de frecuencia del rango se adivina algo parecido al método PRCH (sintonización pseudoaleatoria de la frecuencia operativa).

Por lo tanto, en condiciones de incertidumbre tiempo-frecuencia, para garantizar la recepción de todas las señales del teclado, un atacante necesitará monitorear constantemente toda la cuadrícula de frecuencia del rango de 84 posiciones, lo que requiere importantes costos de tiempo. Aquí queda claro por qué la vulnerabilidad de extracción de llave USB (CVE-2019-13054) en fuentes Se posiciona como la posibilidad de inyectar pulsaciones de teclas, en lugar de obtener acceso de un atacante a los datos ingresados ​​desde el teclado. Obviamente, la interfaz de radio del teclado inalámbrico es bastante compleja y proporciona una comunicación por radio confiable entre dispositivos Logitech en un entorno de interferencia difícil en la banda de 2,4 GHz.

Una mirada al interior del problema

Para investigar, elegimos uno de nuestros teclados Logitech K330 disponibles y un dongle Logitech Unifying.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Logitech K330

Echemos un vistazo al interior del teclado. Un elemento interesante en la placa para la investigación es el chip SoC NRF24 de Nordic Semiconductor.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

SoC NRF24 en la placa de teclado inalámbrico Logitech K330

El firmware se encuentra en la memoria interna, los mecanismos de lectura y depuración están desactivados. Lamentablemente, el firmware no se ha publicado en fuentes abiertas. Por lo tanto, decidimos abordar el problema desde el otro lado: estudiar el contenido interno del receptor dongle Logitech.

El “mundo interior” del receptor dongle es bastante interesante. El dongle se desmonta fácilmente, lleva a bordo el NRF24 que conocemos con un controlador USB incorporado y puede ser reprogramado tanto desde el lado USB como directamente por el programador.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Dongle Logitech sin estuche

Dado que existe un mecanismo de actualización de firmware regular que utiliza Herramienta de actualización de firmware (del cual puede extraer la versión actualizada del firmware), no es necesario buscar el firmware dentro del dongle.

Qué se hizo: El firmware RQR_012_005_00028.bin se extrajo del cuerpo de la aplicación Herramienta de actualización de firmware. Para verificar su integridad, el controlador del dongle se conectó mediante un bucle. al programador ChipProg-48:

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Cable de conexión dongle Logitech para programador ChipProg 48

Para controlar la integridad del firmware, se colocó con éxito en la memoria del controlador y funcionó correctamente, el teclado y el mouse se conectaron al dongle a través de Logitech Unifying. Es posible cargar el firmware modificado utilizando el mecanismo de actualización estándar, ya que no existen mecanismos de protección criptográfica para el firmware. Para fines de investigación, utilizamos una conexión física con el programador, ya que de esta manera la depuración es mucho más rápida.

Investigación de firmware y ataque a la entrada del usuario.

El chip NRF24 está diseñado sobre la base del núcleo informático Intel 8051 en la arquitectura tradicional de Harvard. Para el kernel, el transceptor actúa como un dispositivo periférico y está ubicado en el espacio de direcciones como un conjunto de registros. La documentación del chip y ejemplos de código fuente se pueden encontrar en Internet, por lo que desmontar el firmware no es difícil. En el curso de ingeniería inversa, localizamos las funciones para recibir datos de pulsaciones de teclas del canal de radio y convertirlos al formato HID para transmitirlos al host a través de la interfaz USB. En las direcciones de memoria libre se colocó el código de inyección, que incluía herramientas para interceptar el control, guardar y restaurar el contexto de ejecución original, así como código funcional.

El paquete de presionar o soltar una tecla recibido por el dongle desde el canal de radio se descifra, se convierte en un informe HID estándar y se envía a la interfaz USB como desde un teclado convencional. Como parte del estudio, la parte del informe HID que contiene el byte de los indicadores modificadores y una matriz de 6 bytes con códigos de pulsación de teclas es de mayor interés para nosotros (como referencia, información sobre HID aquí).

Estructura del 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 pasar la estructura HID al host, el código inyectado recibe el control, copia 8 bytes de datos HID nativos en la memoria y los envía al canal lateral de radio en texto claro. En código se ve así:

//~~~~~~~~~ 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 está organizado en la frecuencia establecida por nosotros con ciertas características de velocidad de manipulación y estructura de paquetes.

Funcionamiento del transceptor en un chip. NRF24 se basa en un gráfico de estado, en el que está inscrito orgánicamente el protocolo Enhanced ShockBurst. Descubrimos que el transceptor estaba en estado IDLE justo antes de que se enviaran los datos HID a la interfaz USB del host. Esto hace posible reconfigurarlo de forma segura para la operación de canal lateral. El código inyectado anula el control, preserva la configuración original del transceptor en su totalidad y lo coloca en un nuevo modo de transmisión en el canal lateral. El mecanismo de reconocimiento de ShockBurst mejorado está deshabilitado en este modo, los datos HID se transmiten en texto claro por aire. La estructura del paquete en el canal lateral se muestra en la siguiente figura; los gráficos de la señal se obtienen después de la demodulación y antes de la recuperación del reloj de datos. El valor de la dirección se elige para facilitar la identificación visual del paquete.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Señal de ráfaga demodulada en el canal lateral

Una vez completada la transmisión del paquete al canal lateral, el código inyectado restaura el estado del transceptor. Ahora está listo para funcionar normalmente nuevamente en el contexto del firmware original.

En los dominios de frecuencia y tiempo-frecuencia, el canal lateral tiene este aspecto:

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Representación espectral y tiempo-frecuencia del canal lateral.

Para probar el funcionamiento del chip NRF24 con firmware modificado, montamos un banco de pruebas que incluía un dongle Logitech con firmware modificado, un teclado inalámbrico y un receptor ensamblado sobre la base de un módulo chino con chip NRF24.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Diagrama de intercepción de radio del teclado inalámbrico Logitech

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Módulo basado en NRF24

En el banco, durante el funcionamiento normal del teclado después de conectarlo al dongle Logitech, observamos la transmisión de datos abiertos al presionar teclas en el canal de radio lateral y la transmisión normal de datos cifrados en la interfaz de radio principal. Por lo tanto, logramos proporcionar una interceptación directa de la entrada del teclado del usuario:

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

El resultado de interceptar la entrada del teclado.

El código inyectado introduce pequeños retrasos en el funcionamiento del firmware del dongle. Sin embargo, son demasiado pequeños para que el usuario los note.

Como comprenderá, cualquier teclado Logitech que sea compatible con la tecnología Unifying puede usarse para dicho vector de ataque. Dado que el ataque está dirigido al receptor Unifying que se incluye con la mayoría de los teclados Logitech, es independiente del modelo de teclado específico.

Conclusión

Los resultados del estudio sugieren que los atacantes pueden utilizar el escenario considerado: si un hacker reemplaza a la víctima con un receptor dongle para un teclado inalámbrico Logitech, podrá descubrir las contraseñas de las cuentas de la víctima con todo lo consiguiente. consecuencias. No olvide que también es posible inyectar pulsaciones de teclas, lo que significa que no es difícil ejecutar código arbitrario en el ordenador de la víctima.

¿Qué pasa si un atacante puede modificar de forma remota el firmware de cualquier dongle Logitech a través de USB? Luego, desde dongles estrechamente espaciados, puede agregar una red de repetidores y aumentar la distancia de fuga. Aunque los medios modernos de recepción de radio cuentan con sistemas altamente selectivos, los receptores de radio sensibles con un tiempo de sintonización de frecuencia corto y antenas estrechamente dirigidas permitirán a un atacante "financieramente seguro" "escuchar" las entradas del teclado y presionar teclas incluso desde un edificio vecino.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Equipo de radio profesional

Dado que el enlace de datos inalámbrico del teclado Logitech está bastante bien protegido, el vector de ataque encontrado requiere acceso físico al receptor, lo que limita enormemente al atacante. La única opción de protección en este caso podría ser el uso de mecanismos de protección criptográfica para el firmware del receptor, por ejemplo, la verificación de la firma del firmware descargado en el lado del receptor. Pero, desafortunadamente, NRF24 no admite esto y es imposible implementar protección dentro de la arquitectura actual del dispositivo. Así que cuida tus dongles, porque la opción de ataque descrita requiere acceso físico a ellos.

Cuide sus dongles: estudio de seguridad del receptor de teclado Logitech

Raccoon Security es un equipo dedicado de expertos de Vulkan STC en el campo de la seguridad práctica de la información, criptografía, circuitos, ingeniería inversa y desarrollo de software de bajo nivel.

Fuente: habr.com

Añadir un comentario