AI Hacking - Como os hackers utilizam a inteligência artificial nos ciberataques

Ler agora
Utilizamos inteligência artificial para as traduções dos sítios e, embora nos esforcemos por garantir a exatidão, estas podem nem sempre ser 100% precisas. Agradecemos a sua compreensão.

Proteção contra ataques OT em PLCs da Rockwell Automation 

por OPSWAT
Partilhar esta publicação

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. 

Luan Pham e Viet Tran, estudantes de pós-graduação da Universidade de Ciências de Ho Chi Minh
Os estudantes participaram no programa de bolsas de estudo OPSWAT .

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.

foto do produto Controladores MicroLogix 1400 da Rockwell Automation
Controladores MicroLogix 1400 da Rockwell Automation

14469

Descrição

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.

diagrama que ilustra um cenário de segurança com um atacante que visa um dispositivo MicroLogix 1400, levando a vários resultados potenciais
Impacto 

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. 

classificações de gravidade para uma vulnerabilidade de cibersegurança CVE-2017-14469, detalhando as pontuações CVSS do NIST NVD e Talos com pontuações de base críticas
Informações sobre o CVE-2017-14469 no NIST NVD 

Análise de vulnerabilidade

O que é uma falha e uma rotina de falhas?

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.

fluxograma que explica o procedimento para tratar as falhas do dispositivo, incluindo a deteção de falhas, as verificações de rotina e a visualização dos códigos de erro
Mecanismo de eliminação de falhas do utilizador através da rotina de falhas do utilizador.
Modo de funcionamento do MicroLogix 1400 da Rockwell Automation

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.

Programa
  • Modo inativo, utilizado para descarregar e editar programas
  • Responde a mensagens na porta de comunicação
  • Execução interrompida e sem resultados
Remoto
  • Permite que uma sessão de software controle o dispositivo
  • Responde a mensagens na porta de comunicação
  • Execução e saída normais
Correr
  • Executa programas em ciclo contínuo
  • Responde apenas a mensagens restritas
Como funciona o CVE-2017-14469

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:

representação esquemática da estrutura dos pacotes Ethernet/IP e dos objectos CIP para a comunicação por protocolo industrial
Mecanismo de eliminação de falhas do utilizador através da rotina de falhas do utilizador.

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
0x0F80Mudar de modo
0x0F0xAAEscrita lógica digitada protegida com três campos de endereço
0x0F0xA2Leitura 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
84020x1dFicheiro de estado - Número da rotina de avarias do utilizador
840206Ficheiro de estado - Código de erro grave
840205Ficheiro 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.

  1. Estabelecer uma ligação ao dispositivo através de Ethernet/IP para obter o identificador de sessão.
  2. Enviar o pedido malicioso para substituir o número da rotina de avarias.
  3. Criar um pacote CIP malicioso para voltar a colocar o PLC em modo de funcionamento e provocar a falha.
  4. O dispositivo encontra uma falha e pára a execução.
fragmento de código python para uma ligação de socket, registo de sessão e envio de comandos para alterar a rotina de falha de um dispositivo e o estado da CPU, marcado como uma exploração
O código mostra as funções passo a passo para explorar a vulnerabilidade. 
Passo 1

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:

função python para registar uma sessão com dados de bytes em bruto, enviando-os através de um socket e descodificando a resposta do identificador de sessão
Passo 2

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.

código python que define uma função para enviar uma instrução através de um socket de rede e receber uma resposta, parte de um script de comunicação de rede
Passo 3

No último passo, é enviado outro pacote CIP para mudar o dispositivo para o modo de funcionamento e ativar a falha.

função python que define o estado da CPU de um dispositivo para o modo de execução ou de programa, enviando cargas de comando específicas
Passo 4

Como se vê na imagem, a execução do PLC é interrompida e a vulnerabilidade é explorada com êxito.

representação da interface de utilizador do sistema e do MicroLogix 1400 da Rockwell Automation a funcionar em condições normais
O sistema funciona em condições normais
Representação da interface do utilizador do sistema e do MicroLogix 1400 da Rockwell Automation desligado após a exploração da vulnerabilidade
O sistema está em baixo após a exploração desta vulnerabilidade

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: 

  1. Descobre e constrói rapidamente o inventário de activos com o Smart Asset Profiling
  2. Monitoriza ativa e passivamente as ameaças e anomalias
  3. Gestão remota de patches com capacidades de auto-patching centralizadas
  4. Fluxo de trabalho de alerta de risco estruturado e simplificado, gerido por um painel de controlo abrangente e personalizável
  5. Relatórios de conformidade regulamentar global, regional e setorial
Painel de controlo que apresenta uma avaliação detalhada da vulnerabilidade de um dispositivo PLC MicroLogix 1400 da Rockwell Automation, incluindo listagens CVE e pontuações CVSS

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.

Mantenha-se atualizado com OPSWAT!

Inscreva-se hoje para receber as últimas actualizações da empresa, histórias, informações sobre eventos e muito mais.