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
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
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
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
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
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)
Unha ollada ao problema desde dentro
Para o noso estudo, escollemos un dos nosos teclados Logitech K330 existentes e un dongle Logitech Unifying.
Logitech K330
Vexamos o interior do teclado. Un elemento interesante no taboleiro para estudar é o chip SoC NRF24 de Nordic Semiconductor.
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.
Dongle Logitech sen carcasa
Xa que hai un mecanismo estándar para actualizar o firmware usando
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
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).
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
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:
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.
Circuito de interceptación de sinal de radio de teclado sen fíos 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:
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.
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.
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