Temos o prazer de apresentar uma série de blogues de análise técnica centrados em vários CVE (Vulnerabilidades e Exposições Comuns) que podem ser identificados e corrigidos com as nossas tecnologias avançadas de deteção de ameaças.Toda a investigação é realizada por estudantes de pós-graduação que participaram no programaOPSWAT Cybersecurity Fellowship, que foi lançado em dezembro de 2023.
Neste blogue, explicaremos o CVE-2017-14469 da Rockwell Micrologix e como as organizações podem defender-se contra ataques de exploração CVE- 2017-14469.
Controlador MicroLogix 1400 da Rockwell Automation
Um PLC (Programmable Logic Controller - Controlador Lógico Programável) é um computador concebido especificamente para controlar os processos de fabrico industrial. É utilizado em sectores de infra-estruturas críticas, como linhas de montagem, monitorização de máquinas, controlo de processos, etc. O controlador MicroLogix 1400 da Rockwell Automation é um PLC modular e extensível, com um elevado número de E/S, contador rápido de alta velocidade e suporte de rede melhorado, o que o torna adequado para uma vasta gama de aplicações.
14469
Uma vulnerabilidade no Rockwell Automation MicroLogix 1400 Series B FRN 21.2 e versões anteriores permite que um atacante leia e escreva/sobreescreva dados sensíveis no dispositivo. Um pacote não autenticado e especialmente criado que contenha um comando pode levar à modificação do número da rotina de falhas definida pelo utilizador, conduzindo a uma paragem inesperada na execução do dispositivo.
A National Vulnerability Database (NVD) classificou esta vulnerabilidade como "Crítica" com uma pontuação máxima CVSS (Common Vulnerability Scoring System). O seu impacto pode afetar significativamente a confidencialidade, integridade e disponibilidade de um dispositivo sem exigir quaisquer autenticações adicionais. A disponibilidade do sistema é crucial, especialmente em sistemas de infra-estruturas críticas, onde qualquer interrupção ou tempo de inatividade pode levar a enormes perdas financeiras ou mesmo a danos físicos. Este CVE pode levar a uma paragem das funções do PLC, desencadeando uma "falha do sistema" no controlador, o que representa um risco de perturbação dos sistemas de infra-estruturas críticas.
Análise de vulnerabilidade
O conceito de uma falha assemelha-se muito ao de uma exceção na programação. Quando ocorre uma falha, a execução da instrução é interrompida, levando o dispositivo a um estado de falha. As falhas podem ser classificadas em dois tipos: falhas de utilizador e falhas de não utilizador.
Existem dois mecanismos de eliminação de falhas: a eliminação automática através de um ciclo de alimentação do controlador ou a eliminação manual através de uma rotina de falhas do utilizador, que é um procedimento que pode ser definido para ser executado automaticamente em resposta a uma falha do utilizador. O CVE-2017-14469 está relacionado com o segundo mecanismo. Para evitar que o sistema seja encerrado ou interrompa a execução inesperadamente devido a uma falha do utilizador, é definida uma rotina de falha do utilizador para tratar as falhas atribuídas com base nos respectivos números de falha e é executada quando ocorre a falha correspondente. Se não existir uma rotina para tratar a falha, o dispositivo pára a execução e apresenta o número da falha. O valor da rotina de falhas do utilizador é definido em 0x00 quando o dispositivo funciona normalmente e só deve ser configurado no intervalo de 0x03 a 0xFF para o tratamento de falhas.
Existem três posições de comutação de modo no MicroLogix 1400 da Rockwell Automation: PROGRAM, REMOTE e RUN. Ambos os modos PROGRAM e REMOTE permitem descarregar programas para o dispositivo, ao mesmo tempo que aceitam e tratam os pedidos recebidos. No entanto, no modo RUN, o dispositivo só aceita pedidos restritos. No contexto desta vulnerabilidade, a exploração não é possível se o dispositivo estiver no modo RUN.
- Modo inativo, utilizado para descarregar e editar programas
- Responde a mensagens na porta de comunicação
- Execução interrompida e sem resultados
- Permite que uma sessão de software controle o dispositivo
- Responde a mensagens na porta de comunicação
- Execução e saída normais
O dispositivo comunica através de CIP (Common Industrial Protocol) com extensão PCCC. O protocolo CIP é construído em cima da Ethernet/IPIndustrial ProtocoloIndustrial ). A estrutura de um pacote é mostrada na figura abaixo:
Como pode ser visto na imagem acima, não há nenhum campo designado para autenticação. Isto representa um desafio significativo, uma vez que o dispositivo não tem capacidade para distinguir entre os pedidos de um atacante e o tráfego normal de um utilizador.
Normalmente, um operador pode monitorizar e atualizar a configuração do dispositivo através do software de controlo. Para comunicar com o dispositivo, o Software de controlo envia um pedido correspondente com um comando lógico de escrita ou de leitura protegido, preenchendo o objeto CIP PCCC. No formato do protocolo CIP PCCC, um comando é identificado pelo seu código de comando e código de função.
Código de comando | Código de função | Descrição |
0x0F | 80 | Mudar de modo |
0x0F | 0xAA | Escrita lógica digitada protegida com três campos de endereço |
0x0F | 0xA2 | Leitura lógica digitada protegida com três campos de endereço |
O comando de escrita lógica protegida é utilizado para escrever em ficheiros sensíveis, como o ficheiro de estado, o ficheiro de bits, o ficheiro de contadores e outras configurações do dispositivo.
O dispositivo utiliza três campos de endereço no pacote CIP para identificar a localização para leitura e escrita: tipo de ficheiro, número de ficheiro e números de elemento. Seguem-se alguns exemplos de valores para identificar as localizações dos ficheiros de configuração que serão afectados pelo comando:
Tipo de ficheiro | Número de ficheiro | Números dos elementos | Descrição |
84 | 02 | 0x1d | Ficheiro de estado - Número da rotina de avarias do utilizador |
84 | 02 | 06 | Ficheiro de estado - Código de erro grave |
84 | 02 | 05 | Ficheiro de estado - Código de erro grave |
No entanto, há uma falta de validação de entrada quando o dispositivo trata o pedido; os dados enviados no comando de escrita não são validados e permitem ser definidos para quaisquer valores inválidos.
A vulnerabilidade é causada por duas razões principais. Em primeiro lugar, o dispositivo não consegue autenticar os pedidos de entrada, permitindo que um atacante envie um pedido não autenticado para modificar definições sensíveis. Em segundo lugar, o dispositivo valida incorretamente os dados recebidos, o que faz com que as definições sejam alteradas para um estado inválido.
Para explorar com êxito a vulnerabilidade, um atacante envia um pedido malicioso, abusando do comando de escrita lógica protegida, para substituir o número da rotina de falhas no ficheiro de estado por um valor inválido, como 0x01 ou 0x02. Quando o número da rotina de falha é substituído por um valor inválido e o dispositivo passa para o modo RUN através de outro pacote CIP, é desencadeada uma falha e a execução é interrompida.
Exploração de vulnerabilidades
O ataque pode ser dividido em 4 etapas.
- Estabelecer uma ligação ao dispositivo através de Ethernet/IP para obter o identificador de sessão.
- Enviar o pedido malicioso para substituir o número da rotina de avarias.
- Criar um pacote CIP malicioso para voltar a colocar o PLC em modo de funcionamento e provocar a falha.
- O dispositivo encontra uma falha e pára a execução.
Para comunicar com o dispositivo, um atacante deve iniciar uma ligação registando uma sessão com o dispositivo para obter o identificador de sessão e utilizá-lo para a comunicação em curso. O código seguinte demonstra um pedido de registo de sessão padrão:
Subsequentemente, um atacante efectua um pedido utilizando o identificador de sessão previamente obtido e inclui uma carga útil com um comando de escrita lógica protegido para substituir o número da rotina de falha, encapsulado num pacote CIP.
No último passo, é enviado outro pacote CIP para mudar o dispositivo para o modo de funcionamento e ativar a falha.
Como se vê na imagem, a execução do PLC é interrompida e a vulnerabilidade é explorada com êxito.
Remediação
OPSWATOs produtos da Microsoft para a segurança ICS foram concebidos para resistir a este tipo de ataques. MetaDefender OT Security é uma ferramenta de deteção de ameaças e inteligência alimentada por IA que detecta quaisquer pedidos anormais de atacantes, permitindo aos administradores identificar potenciais ameaças.
MetaDefender OT Security possui as seguintes capacidades para melhorar a postura de segurança dos ambientes OT:
- Descobre e constrói rapidamente o inventário de activos com o Smart Asset Profiling
- Monitoriza ativa e passivamente as ameaças e anomalias
- Gestão remota de patches com capacidades de auto-patching centralizadas
- Fluxo de trabalho de alerta de risco estruturado e simplificado, gerido por um painel de controlo abrangente e personalizável
- Relatórios de conformidade regulamentar global, regional e setorial
Além disso, MetaDefender OT Security também pode ser integrado com MetaDefender Industrial Firewall para evitar que pedidos maliciosos tenham impacto nos dispositivos detectados pelo OT Security. O MetaDefender Industrial Firewall é a última linha de defesa que protege os PLCs de missão crítica, VFDs, RTUs e outros activos industriais. Aplica políticas de acesso a dispositivos altamente granulares e impõe zonas de acesso a dispositivos, assegurando que nenhum acesso não autorizado ou alterações possam afetar o hardware crítico.
Os dois juntos criam um IDPS (sistema de deteção e prevenção de intrusões) sem falhas que detecta e impede eficazmente que quaisquer ligações de rede anómalas, pedidos, comunicações, etc., afectem a rede.
MetaDefender OT Security fornece proteção crucial para infra-estruturas críticas através da sua visibilidade de activos e deteção robusta de ameaças. Para além das suas proezas tecnológicas, a OPSWAT oferece oportunidades de carreira interessantes para indivíduos apaixonados pela cibersegurança. Junte-se a nós para moldar o futuro da segurança e proteger o que é mais importante. Explore diversas funções e projectos de impacto em OPSWAT, onde a sua experiência pode fazer uma diferença tangível. Juntos, vamos proteger os sistemas mais vitais do mundo.