Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Historicamente, a maioria dos funcionários utiliza teclados e mouses sem fio da Logitech. Ao inserir mais uma vez suas senhas, nós, especialistas da equipe Raccoon Security, nos perguntamos: quão difícil é contornar os mecanismos de proteção dos teclados sem fio? A pesquisa realizada revelou falhas arquitetônicas e erros de software que permitem o acesso aos dados inseridos. Abaixo, apresentamos os resultados obtidos.

Por que Logitech?

Na nossa opinião, os dispositivos de entrada da Logitech são um dos mais qualificados e confortáveis. A maioria dos nossos dispositivos é baseada na solução Logitech. Unifying – é um receptor dongle universal que permite conectar até 6 dispositivos. Todos os dispositivos compatíveis com a tecnologia Logitech Unifying são identificados pelo respectivo logotipo. A sua utilização simples permite gerenciar a conexão dos teclados sem fio ao computador. O processo de conexão do teclado ao dongle Logitech, assim como a própria tecnologia, é detalhado, por exemplo, um aplicativo O dongle com suporte à Logitech Unifying aqui.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

O teclado pode se tornar uma fonte de informação para malfeitores. A Logitech, ciente da possível ameaça, se preocupou com a segurança – aplicou o algoritmo de criptografia AES128 na transmissão de rádio do teclado sem fio. O primeiro pensamento que pode passar pela mente de um invasor nessas circunstâncias é a interceptação de informações-chave durante sua transmissão pelo rádio durante o processo de emparelhamento. Afinal, com a chave, é possível capturar os sinais de rádio do teclado e decifrá-los. No entanto, o usuário raramente (ou nunca) precisa emparelhar o teclado, e um hacker com um receptor de rádio terá que esperar bastante tempo. Além disso, a própria captura não é tão simples quanto parece. No último estudo, em junho de 2019, o especialista em segurança Markus Mengs publicou online

sobre a descoberta de uma vulnerabilidade em antigas versões de firmware dos dongles USB da Logitech. Isso permite que malfeitores com acesso físico aos dispositivos obtenham as chaves de criptografia do canal de rádio e injetem pressionamentos de tecla (CVE-2019-13054). a ocorrência Falaremos sobre nossa pesquisa de segurança do dongle Logitech baseado no SoC NRF24 da Nordic Semiconductor. Vamos começar, talvez, pela própria transmissão de rádio.

Vamos falar sobre nossa pesquisa de segurança do dongle Logitech baseado no SoC NRF24 da Nordic Semiconductor. E, para começar, talvez seja melhor abordar o próprio canal de rádio.

Como os dados "viajam" na radiofrequência

Para a análise espectral do sinal de rádio, utilizamos um receptor SDR baseado no dispositivo Blade-RF em modo de analisador de espectro (sobre isso também é possível ler) aqui).

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Dispositivo SDR Blade-RF

Também consideramos a possibilidade de gravar as quadraturas do sinal de rádio na frequência intermediária, para em seguida analisá-las com a aplicação de métodos de processamento digital de sinais.

Comissão Governamental de Radiofrequências da Federação Russa autorizado para uso por dispositivos de curto alcance na faixa de frequência de 2400–2483,5 MHz. Esta é uma faixa muito "populada", onde encontramos de tudo: Wi-Fi, Bluetooth, diversos controles remotos, sistemas de segurança, detectores sem fio, mouses com teclados e outros dispositivos digitais sem fio.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Espectro da faixa de 2,4 GHz

O ambiente de interferência na faixa é bastante complexo. Mas apesar disso, a Logitech conseguiu garantir uma recepção confiável e estável utilizando o protocolo Enhanced ShockBurst no transceptor NRF24 combinado com algoritmos de adaptação de frequência.

Os canais na faixa estão posicionados em valores inteiros de MHz, conforme definido em especificações NRF24 Nordic Semiconductor – um total de 84 canais na grade de frequências. O número de canais de frequência utilizados simultaneamente pela Logitech é, é claro, menor. Identificamos o uso de pelo menos quatro. Devido à largura de banda limitada do analisador de espectro utilizado, não foi possível determinar a lista exata das posições de frequência utilizadas, mas não havia necessidade disso. A informação do teclado para o dongle receptor é transmitida em modo Burst (ativação curta do transmissor) utilizando modulação de frequência em dois estados GFSK a uma taxa de símbolos de 1 Mbps:

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Sinal de rádio do teclado em representação temporal

O receptor utiliza o princípio de recepção por correlação, portanto, o pacote transmitido inclui um preâmbulo e a parte do endereço. Codificação resistente à interferência não é aplicada, o corpo dos dados é criptografado pelo algoritmo AES128.

Em geral, a interface sem fio do teclado Logitech pode ser caracterizada como totalmente assíncrona com compactação estatística e adaptação de frequência. Isso significa que o transmissor do teclado alterna o canal para transmitir cada novo pacote. Para o receptor, tanto o tempo de transmissão quanto o canal de frequência não são conhecidos previamente, apenas sua lista é familiar. O receptor e transmissor se encontram no canal através de algoritmos de sincronização e escuta de frequências, bem como mecanismos de confirmação Enhanced ShockBurst. Não investigamos se a lista de canais é estática. É provável que sua alteração seja devido ao algoritmo de adaptação de frequência. Algo semelhante ao método PPRC (rearranjo pseudoaleatório da frequência de trabalho) é insinuado no uso do recurso de frequência da faixa.

Assim, em condições de incerteza tempo-frequencial, para garantir a recepção de todos os sinais do teclado, um invasor precisaria controlar constantemente toda a grade de frequências da faixa de 84 posições, o que exige um investimento significativo de tempo. Aqui se torna claro por que a vulnerabilidade de extração da chave via USB (CVE-2019-13054) nas fontes é posicionada como uma possibilidade de injeção de pressionamentos de tecla, e não como acesso do invasor aos dados inseridos pelo teclado. É evidente que a interface sem fio do teclado é bastante complexa e garante uma comunicação sem fio confiável entre dispositivos Logitech em condições de interferência complexa na faixa de 2,4 GHz.

Uma visão interna do problema

Para o estudo, escolhemos um dos teclados Logitech K330 que temos e o dongle Logitech Unifying.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Logitech K330

Vamos olhar dentro do teclado. Um elemento interessante para pesquisa na placa é o chip SoC NRF24 da Nordic Semiconductor.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

SoC NRF24 na placa do teclado sem fio Logitech K330

O firmware está armazenado na memória interna, os mecanismos de leitura e depuração estão desativados. Infelizmente, o firmware não foi publicado em fontes abertas. Portanto, decidimos abordar o problema de outra maneira – estudando o conteúdo interno do receptor dongle Logitech.

O «mundo interno» do dongle receptor é bastante interessante. O dongle é facilmente desmontável, possui o conhecido NRF24 com um controlador USB integrado e pode ser reprogramado tanto pelo USB quanto diretamente pelo programador.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Dongle Logitech sem capa

Uma vez que existe um mecanismo padrão para atualização de firmware usando o aplicativo Firmware Update Tool (do qual é possível extrair a versão atualizada do firmware), não há necessidade de procurar o firmware dentro do dongle.

O que foi feito: o firmware RQR_012_005_00028.bin foi extraído do corpo do aplicativo Firmware Update Tool. Para verificar sua integridade, o controlador do dongle foi conectado via cabo ao programador ChipProg-48:

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Cabo de conexão do dongle Logitech ao programador ChipProg 48

Para controle de integridade do firmware, ele foi colocado com sucesso na memória do controlador e funcionou corretamente, o teclado e o mouse foram conectados ao dongle via Logitech Unifying. A atualização do firmware modificado é possível usando o mecanismo padrão de atualização, pois não há mecanismos de proteção criptográfica do firmware. Para nossos fins de pesquisa, utilizamos a conexão física ao programador, pois isso torna a depuração muito mais rápida.

Análise do firmware e ataque à entrada do usuário

O chip NRF24 é baseado em um núcleo computacional Intel 8051 na arquitetura de Harvard tradicional. Para o núcleo, o transceiver atua como um dispositivo periférico e é mapeado no espaço de endereços como um conjunto de registradores. A documentação do chip e exemplos de códigos-fonte podem ser encontrados na Internet, portanto, a desmontagem do firmware não apresenta dificuldades. Durante a engenharia reversa, localizamos funções para capturar dados de pressionamentos de tecla do canal de rádio e convertê-los para o formato HID para transmissão ao host por meio da interface USB. O código de injeção foi colocado em endereços de memória disponíveis, incluindo ferramentas para interceptação de controle, salvamento e restauração do contexto original de execução, bem como o código funcional.

O pacote de pressionamento ou liberação da tecla recebido pelo dongle do canal de rádio é decodificado, transformado em um relatório HID padrão e enviado para a interface USB como se fosse de um teclado comum. No âmbito da pesquisa, o que mais nos interessa é a parte do relatório HID que contém o byte dos flags modificadores e um array de 6 bytes com os códigos das teclas pressionadas (para referência, informações sobre HID aqui).

Estrutura do relatório 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;

Justo antes de enviar a estrutura HID ao host, o código injetado assume o controle, copia 8 bytes de dados HID nativos para a memória e os envia pelo canal de rádio secundário em texto claro. No código, isso se apresenta da seguinte forma:

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

O canal secundário é organizado na frequência que estabelecemos, com características definidas de velocidade de manipulação e estrutura do pacote.

Funcionamento do transceptor no chip NRF24 baseia-se em um grafo de estados, no qual o protocolo Enhanced ShockBurst está organicamente inserido. Descobrimos que, imediatamente antes de transmitir os dados HID para a interface USB do host, o transceptor estava em estado IDLE. Isso possibilita sua reconfiguração segura para operação no canal secundário. O código injetado intercepta o controle, preserva a configuração original do transceptor em sua totalidade e a transforma em um novo modo de transmissão para o canal secundário. O mecanismo de confirmações do Enhanced ShockBurst é desligado neste modo, e os dados HID são transmitidos em texto claro pelo espectro de rádio. A estrutura do pacote no canal secundário é apresentada na figura abaixo, e as epuras do sinal são obtidas após a demodulação e antes da recuperação da sincronização de dados por clock. O valor do endereço é selecionado para facilitar a identificação visual do pacote.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Sinal demodulado do pacote Burst no canal secundário

Após a conclusão da transmissão do pacote no canal secundário, o código injetado restaura o estado do transceptor. Agora ele está novamente pronto para operar no modo padrão no contexto do firmware original.

Nos domínios de frequência e tempo-frequência, o canal secundário aparece conforme mostrado na figura:

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Representação espectral e tempo-frequência do canal secundário

Para testar a operação do chip NRF24 com o firmware modificado, montamos um suporte que incluiu um dongle Logitech com firmware alterado, um teclado sem fio e um receptor baseado em um módulo chinês com o chip NRF24.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Esquema de interceptação do sinal de rádio do teclado sem fio Logitech

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Módulo baseado em NRF24

No suporte, com o teclado funcionando normalmente após ser conectado ao dongle Logitech, observamos a transmissão de dados abertos sobre as teclas pressionadas em um canal de rádio lateral, além da transmissão normal de dados criptografados na interface de rádio principal. Assim, conseguimos garantir a interceptação direta da entrada do teclado do usuário:

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Resultado da interceptação da entrada do teclado

O código injetado provoca pequenos atrasos no funcionamento do firmware do dongle. No entanto, esses atrasos são muito sutis para que o usuário possa percebê-los.

Como você deve entender, qualquer teclado Logitech compatível com a tecnologia Unifying pode ser usado para tal vetor de ataque. Uma vez que o ataque se dirige ao receptor Unifying, que faz parte da maioria dos teclados Logitech, ele não depende de um modelo específico de teclado.

Conclusão

Os resultados da pesquisa sugerem a possibilidade do uso do cenário discutido por criminosos: se um hacker substituir o dongle receptor do teclado sem fio Logitech da vítima, ele pode descobrir as senhas das contas da vítima, com todas as consequências que isso acarreta. Não devemos esquecer que também é possível injetar entradas de teclas, o que significa que executar código arbitrário no computador da vítima não é uma tarefa difícil.

E se, por acaso, um criminoso conseguir modificar remotamente o firmware de qualquer dongle Logitech através da USB? Nesse caso, dongles próximos podem formar uma rede de retransmissores e aumentar a distância da vazamento. Embora um criminoso "financeiramente capaz" tenha acesso a modernos meios de recepção de rádio com sistemas de alta seletividade, receptores de rádio sensíveis com curto tempo de ajuste de frequência e antenas direcionais, permitindo "ouvir" a entrada do teclado e pressionar teclas até mesmo do prédio ao lado.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

Equipamento profissional para recepção de rádio

Como o canal de transmissão wireless do teclado Logitech é bastante seguro, o vetor de ataque encontrado exige acesso físico ao receptor, o que limita bastante o atacante. A única opção de proteção, neste caso, poderia ser a utilização de mecanismos de proteção criptográfica para o firmware do receptor, por exemplo, a verificação da assinatura do firmware carregado no lado do receptor. Mas, infelizmente, o NRF24 não suporta isso e, dentro da arquitetura atual do dispositivo, implementar proteção é impossível. Portanto, cuide dos seus dongles, pois o ataque descrito exige acesso físico a eles.

Cuide dos seus dongles: pesquisa sobre a segurança dos receptores de teclados Logitech

A Raccoon Security é uma equipe especializada de especialistas do NTC "Vulkan" nas áreas de segurança da informação prática, criptografia, design de circuitos, engenharia reversa e desenvolvimento de software de baixo nível.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster