Perdido na tradução: vulnerabilidades de gateway de protocolo industrial

A barreira do idioma não é apenas entre o pessoal de TI e os usuários. As fábricas “inteligentes” e os computadores que as controlam também são incapazes de se comunicar uns com os outros sem tradutores - gateways especializados de protocolos industriais. Nesta postagem, exploraremos os pontos fracos dos gateways de protocolo e como os invasores podem usá-los para prejudicar os negócios.



imagem



Um gateway de protocolo é um pequeno dispositivo que fornece tradução de comando de missão crítica entre máquinas-ferramentas, sensores, vários atuadores e computadores que operam fábricas, barragens, usinas de energia e plantas industriais. Esses gateways se parecem com roteadores domésticos: eles também têm várias interfaces conectadas a redes diferentes e são igualmente vulneráveis ​​a vários ataques. Se tal dispositivo falhar, a comunicação entre os sistemas de controle e as máquinas será perdida. Os operadores não verão o que está acontecendo. Na verdade, eles nem mesmo saberão se as máquinas, turbinas ou geradores estão operando com segurança. Mesmo se algo estiver claramente errado, uma falha do gateway não permitirá que o operador emita um comando para iniciar ou parar processos.



Uma situação semelhante teve que ser em dezembro de 2015 duranteataques à rede elétrica ucraniana : os invasores obtiveram acesso ao centro de controle da rede elétrica e desabilitaram os gateways de protocolo nas subestações, carregando firmware danificado para elas. Isso bloqueou todas as tentativas dos engenheiros da concessionária de restaurar o serviço, pois os comandos dos sistemas de controle para fechar os disjuntores não puderam ser transmitidos.



Em um relatório de incidente da SANS ICS (uma divisão da organização americana de educação e pesquisa SANS Institute para o estudo de sistemas de controle industrial) e do Power Analysis and Information Exchange Center (E-ISAC - uma estrutura que reúne participantes do mercado de fornecimento de energia da América do Norte), o firmware do gateway foi danificado os protocolos eram chamados de "explosão de pontes". Isso descreve com muita precisão o que aconteceu, uma vez que os invasores destruíram o link principal - os tradutores, que atuam apenas como uma ponte entre os controladores e as subestações.

imagem

A estrutura de interação entre a rede de controle e a rede de execução. Fonte (doravante, salvo indicação em contrário): Trend Micro



Devido à sua localização, um gateway de protocolo pode se tornar o elo mais fraco em uma cadeia de dispositivos de instalações industriais, e um invasor pode atacar esses dispositivos por dois motivos importantes:



  1. É improvável que os gateways terminem em um inventário de ativos críticos que seria monitorado por um agente de segurança ou sistema de registro. Portanto, é menos provável que o ataque seja notado.
  2. Os problemas de tradução são difíceis de diagnosticar, portanto, as falhas no projeto de gateways de protocolo permitem que invasores avançados conduzam ataques muito secretos.


Tipos de gateways



De acordo com o modo de operação, duas famílias de gateways podem ser distinguidas:



  1. O gateway em tempo real (gateways em tempo real) encaminha o tráfego à medida que se torna disponível - cada pacote de entrada é imediatamente avaliado, traduzido e encaminhado; representantes: Nexcom NIO50, Schneider Link 150, Digi One IA;
  2. Estações de dados - funcionam de forma assíncrona usando a tabela de mapeamento de interface - não espere por uma solicitação de leitura para receber dados do PLC conectado, mas regularmente solicita atualizações de estado do PLC e armazena os dados recebidos no cache interno para emissão sob demanda.


A segunda característica importante dos gateways de protocolo é o tipo de protocolo que eles suportam e traduzem. Por esta propriedade, os dispositivos podem ser agrupados em três categorias:



  1. , , , Modbus TCP Modbus RTU, — , ;
  2. , , , Modbus RTU → Profibus, — , ;
  3. , , , Modbus TCP → Profibus, — , .


No estudo Lost in Translation: When Industrial Protocol Translation Goes Wrong , examinamos as vulnerabilidades do primeiro grupo de gateways. Para isso, montamos uma bancada de testes composta pelos seguintes componentes:



  • fuzzer que gera tráfego de entrada para o gateway testado - por exemplo, ao testar a tradução do Modbus TCP para Modbus RTU, o fuzzer gera casos de teste do Modbus TCP,
  • gateway - dispositivo estudado,
  • simulador - um dispositivo que simula uma estação receptora, por exemplo, um PLC que implementa Modbus RTU de um dispositivo escravo - é necessário porque alguns gateways de protocolo podem não funcionar corretamente se não houver dispositivo escravo na cadeia,
  • um sniffer que coleta informações sobre o tráfego de saída, ou seja, sobre o protocolo de transmissão,
  • analisador de tráfego de entrada e saída.


imagem

Diagrama de blocos da bancada de teste para estudar as vulnerabilidades de gateways de protocolo



imagem

Bancada de teste real



Para modelar o nó Modbus principal, usamos o software de código aberto QmodMaster e para modelar o dispositivo escravo - pyModSlave, adaptando-o às nossas necessidades, como receber dados de / dev / ttyUSB0.



Usamos Wireshark para Modbus TCP e IONinja para Modbus RTU para interceptar o tráfego. Escrevemos analisadores especiais para converter a saída desses dois programas em uma sintaxe comum que nosso analisador possa entender.



Implementamos o fuzzer com base no BooFuzz, adicionando alguns módulos do projeto Boofuzz-modbus, que é distribuído sob a licença Apache. Tornamos o fuzzer portátil para vários protocolos ICS e o usamos para testar várias implementações do Modbus.



Aqui estão alguns dos tipos de ataques que descobrimos ao examinar vários gateways de protocolo:



  • ataque ao tradutor de protocolo,
  • reutilização de credenciais e descriptografia de configuração,
  • amplificação de tráfego,
  • escalada de privilégios.


Ataque de tradutor de protocolo



Os gateways em tempo real traduzem pacotes de um protocolo para outro, substituindo os cabeçalhos do protocolo de origem pelos cabeçalhos do protocolo de destino. Gateways de diferentes fornecedores lidam com pacotes inválidos de maneira diferente. Alguns deles, por exemplo, ao receber um pacote com um comprimento especificado incorretamente, em vez de ajustar o comprimento ou descartá-lo, o transmitem como está. Este recurso permite que você projete cuidadosamente um pacote de comprimento incorreto para o Modbus TCP de forma que permaneça correto após a conversão para o Modbus RTU. Além disso, se você lê-lo como um pacote Modbus RTU, ele terá um significado completamente diferente em comparação com o equivalente Modbus TCP.



imagem

Pacote de ataque: no Modbus TCP contém um comando para ler um registro, mas no Modbus RTU já é um comando para escrever várias células de bits



Ao analisar este pacote com semântica TCP Modbus, ele é interpretado como um comando para ler o registro de entrada (Código de Função 04) do bloco com ID = 3. Mas na semântica do Modbus RTU, ele é interpretado como a gravação de várias células de bits (Código de Função 15 e 0F) em um bloco com ID = 1.

Essa vulnerabilidade é crítica porque uma solicitação de leitura completamente inocente se transforma em um comando de gravação devido ao gateway de protocolo não manipular o pacote corretamente. Um invasor avançado pode usar esta vulnerabilidade para contornar um firewall de rede industrial especializado que bloqueia comandos de gravação de endereços IP não incluídos na lista de permissões.



Com isso, basta um único comando para, por exemplo, desabilitar os sensores de monitoramento da saúde e segurança do motor (sensor de temperatura e tacômetro), deixando o motor ligado. Se os engenheiros e operadores não perceberem, o motor já pode entrar em modo crítico e falhar, mas ninguém saberá, pois o termômetro e o tacômetro foram desativados.



Reutilizar credenciais e descriptografar configuração



Os gateways Moxa usam um protocolo proprietário ao se comunicar com o programa de controle remoto MGate Manager. Quando o MGate Manager é inicializado, o engenheiro é solicitado a fornecer um nome de usuário e uma senha para acessar o gateway de protocolo, após o qual o McGate Manager redefine automaticamente a configuração para que o usuário possa alterar as configurações. Quando o engenheiro de campo termina de configurar o gateway de protocolo e clica no botão Sair, a configuração é compactada, criptografada e carregada para o gateway.



imagem

Etapas de configuração do gateway Moxa



Existem duas falhas de segurança neste procedimento que podem ser abusadas.



- Reuso



Quando um engenheiro faz o login, uma chave é passada ao MGate Manager para fazer o hash da senha. Porém, no firmware testado, o mecanismo é implementado de forma que um hacker possa interceptar a senha criptografada de um engenheiro para entrar no sistema e, em seguida, utilizá-la para fazer login com privilégios administrativos, mesmo sem saber a senha em forma de texto.



-



Descriptografia de configuração A configuração criptografada transmitida pela rede contém uma chave de criptografia que permite a um hacker despejá-la e descriptografá-la.



imagem

A configuração criptografada contém uma chave AES para descriptografá-la. Muito útil para hackear



Para a descriptografia, usamos uma biblioteca de descriptografia proprietária extraída do firmware do dispositivo. A configuração contém arquivos de configuração, bancos de dados SQLite e uma chave Secure Shell (SSH). Abaixo está um exemplo da configuração descriptografada de nosso próprio gateway de protocolo, que conseguimos interceptar.



imagem

Arquivos de configuração descriptografados do Moxa MGate 5105



Amplificação de tráfego



Como as estações de dados transmitem protocolos de forma assíncrona, várias solicitações de gravação de um bit podem ser combinadas em uma única solicitação para fazer melhor uso do barramento serial. Por exemplo, um hacker pode chamar a função 15 (escrevendo vários bits), na estação de dados será convertido em 1 registro para ID = 2, 1 para ID = 4, 1 para ID = 5, 1 para ID = 6. Portanto, uma entrada Modbus TCP se traduz em quatro entradas Modbus RTU, causando um pequeno congestionamento no barramento serial.



imagem

Um comando TCP para escrever uma célula se transforma em quatro comandos RTU.



Observe que esta amplificação não causará uma negação de serviço (DoS), mas um barramento RS-485 sobrecarregado ainda pode levar a um comportamento anormal.



Escalada de privilégios



No MGate 5105-MB-EIP, descobrimos a vulnerabilidade de escalonamento de privilégios CVE-2020-885 que permite que um usuário sem privilégios execute comandos com privilégios elevados.



A origem do problema é a falta de filtragem da entrada do usuário na interface da web do utilitário Ping.



imagem

Interface do utilitário Mgate Ping



Com conhecimento técnico mínimo, um usuário sem privilégios pode iniciar o daemon Telnet no contexto do usuário root com uma simples solicitação HTTP GET e obter acesso remoto completo com um shell root.



Nossas recomendações



Depois de examinar as especificações da operação de vários gateways de protocolo industrial, desenvolvemos uma série de recomendações para fornecedores, instaladores ou usuários finais.



  1. - . . .
  2. — , , . ICS- . Trend Micro — TXOne Networks, OT .
  3. , — /, . , , , MQTT.
  4. OT , .



All Articles