Logotipo da Team82 Claroty
Retornar ao blog

Contornando a proteção de segurança local do chassi dos controladores Logix da Rockwell Automation

/

Resumo executivo

  • A Team82 descobriu e divulgou uma vulnerabilidade de desvio de segurança nos dispositivos Rockwell Automation ControlLogix 1756.

  • Nossa técnica nos permitiu contornar o recurso de slot confiável implementado pela Rockwell, que impõe políticas de segurança e permite que o controlador negue a comunicação por meio de caminhos não confiáveis no chassi local.

  • A vulnerabilidade que encontramos, antes de ser corrigida, permitia que um invasor saltasse entre os slots de backplane locais em um chassi 1756 usando o roteamento CIP, atravessando o limite de segurança destinado a proteger a CPU de placas não confiáveis. 

  • Um invasor precisaria de acesso à rede do dispositivo para atacar essa vulnerabilidade. Uma exploração bem-sucedida permitiria que um invasor contornasse a restrição de segurança e enviasse comandos elevados à CPU do PLC.

  • A Rockwell emitiu uma correção para o CVE-2024-6242 (CVSSv3: 8.4), e os usuários devem aplicá-la imediatamente.

  • A CISA também publicou um comunicado com recomendações de mitigação.

  • De acordo com a Rockwell, os módulos de E/S ControlLogix, GuardLogix e 1756 ControlLogix são afetados por essa vulnerabilidade.

  • Além disso, a Team82 está lançando uma regra do Snort que detecta tentativas de contornar essa proteção de segurança em dispositivos sobre o protocolo CIP.

Introdução

O ControlLogix 1756 é uma série de controladores de automação programáveis da Rockwell Automation. Faz parte da família ControlLogix, que foi projetada para aplicações de automação industrial de alto desempenho e escalonáveis. Especificamente, na maioria dos casos, o 1756 é referido como um componente de chassi que serve como um gabinete modular que abriga vários módulos de E/S, controladores e processadores de comunicação. Ele fornece as conexões físicas e elétricas necessárias para que esses componentes operem juntos.

Como a maioria dos produtos industriais da Rockwell, os dispositivos ControlLogix 1756 se comunicam por CIP (Common Industrial Protocol), um protocolo de comunicação usado em redes industriais para facilitar a troca de dados entre dispositivos, como sensores, atuadores e controladores. Ele foi projetado para suportar várias aplicações de automação industrial, fornecendo uma maneira padronizada de os dispositivos se comunicarem em uma rede.

O chassi do 1756 contém slots (também conhecidos como cartões ou módulos) que são conectados e se comunicam por meio do backplane. O backplane é uma placa de circuito impresso que conecta os vários módulos dentro do chassi, permitindo que eles se comuniquem. O backplane fornece as conexões elétricas e os caminhos de dados que permitem a troca de informações entre o controlador e os módulos de E/S.

Um módulo de rack de chassi de 7 slots ControlLogix 1756 da Rockwell Automation.

Isso significa que, quando um operador se comunica por meio de uma estação de trabalho de engenharia com um PLC ControlLogix 1756, na maioria dos casos, ele realmente se comunica pelo protocolo CIP com a placa de CPU que está conectada ao mesmo backplane no mesmo chassi que a placa de rede.

A Team82 descobriu uma vulnerabilidade em um recurso de segurança de chassi local chamado slot confiável, que foi projetado para negar a comunicação não confiável de placas de rede não confiáveis no plano do chassi. Quando esse recurso está ativado, um controlador nega a comunicação por meio de caminhos que não são confiáveis. 

Encontramos uma vulnerabilidade que permitia que um invasor contornasse o recurso de slot confiável saltando entre slots de backplane locais em um chassi 1756 usando roteamento CIP, atravessando o limite de segurança destinado a proteger a CPU de placas não confiáveis. 

Um invasor com esse tipo de acesso poderia enviar comandos elevados, como o download de lógica para a CPU do PLC, mesmo que o invasor estivesse localizado atrás de uma placa de rede não confiável.

O esquema básico de uma estação de trabalho de engenharia Studio 5000 que se comunica com o hardware do CLP: CPU ControlLogix 1756-L71 (Logix5571) da Rockwell Automation.

Roteamento CIP

Para dar suporte a essa arquitetura, foi introduzido o roteamento CIP. Na CIP, um caminho é um conceito essencial que define a rota ou a sequência de dispositivos e objetos de comunicação pelos quais uma solicitação ou mensagem passa. Um caminho em CIP especifica a rota de um dispositivo de origem (por exemplo, um dispositivo ou controlador em rede) para um dispositivo de destino (por exemplo, um módulo de E/S ou outro controlador). Ele descreve como atravessar a rede e se comunicar com o dispositivo desejado.

Em um sistema ControlLogix, os slots do backplane são identificados por uma estrutura de caminho exclusiva. Essa estrutura especifica como acessar cada slot, definindo a rota de comunicação através do backplane. Cada slot no chassi do 1756 tem um número de slot exclusivo. O protocolo CIP permite que você especifique um número de slot no caminho para direcionar um módulo específico. Por exemplo, se você quiser acessar os dados de um módulo de E/S no slot 4, o caminho incluirá esse número de slot.

O protocolo CIP usa o esquema de endereçamento do backplane (consulte o documento OVDA aqui, seção 2.8. Roteamento CIP) para facilitar a comunicação entre o controlador e os módulos em diferentes slots. Ao definir o caminho correto, você pode instruir o controlador a enviar ou receber dados de um slot específico no backplane. 

Um caminho pode ser semelhante a este: 1,3,1,0 - barramento de dados (01), cartão 3 (03), barramento de dados (01), cartão 0 (00):

Uma captura de tela do Wireshark que mostra um caminho CIP.

Segurança do chassi local

Um PLC 1756 em uma linha de produção pode estar conectado a várias fontes por meio de diferentes placas de rede, por exemplo, o painel HMI, a estação de trabalho de engenharia e outros dispositivos. Para garantir que somente dispositivos individuais específicos estejam executando operações elevadas no PLC, como a lógica de download, foi introduzido um mecanismo de segurança chamado slot confiável. 

O recurso de slot confiável ajuda a estabelecer e aplicar políticas de segurança no chassi do ControlLogix. Ele garante que somente os slots autorizados possam se comunicar entre si, protegendo contra acesso não autorizado e possíveis adulterações.

Quando o recurso de slot confiável está ativado, o controlador nega a comunicação por caminhos que não são confiáveis. Isso requer autenticação no módulo para que qualquer pessoa possa acessar o controlador com o software de programação. Um módulo específico pode ser designado como um slot confiável, o que significa que ele tem permissão para se comunicar livremente com outros slots no mesmo chassi e, principalmente, com a CPU.

Segurança do chassi local da Rockwell de um manual do 1756.

Por exemplo, no exemplo acima, se o recurso de segurança estiver ativado, mas nossa placa de rede não for confiável, a CPU se recusará a aceitar operações elevadas de qualquer tráfego CIP originado da placa de rede não confiável.

Contornando a segurança do chassi local via CVE-2024-6242 

Pesquisamos esse mecanismo e descobrimos uma vulnerabilidade interessante. Como todos os slots são conectados por meio do backplane e o CIP oferece suporte ao caminho (roteamento), poderíamos gerar um pacote CIP que seria roteado por meio de uma placa confiável antes de chegar à CPU. Basicamente, o método envolvia "saltar" entre os slots locais do backplane em um chassi 1756 usando o roteamento CIP. Essa técnica nos permitiu atravessar o limite de segurança destinado a proteger a CPU de placas não confiáveis. 

De acordo com a especificação CIP e como o roteamento de mensagens CIP funciona, a CPU pode verificar apenas o último slot e não toda a cadeia de slots. Essa limitação nos permitiu contornar a proteção do slot confiável e nos comunicar com a CPU por meio de uma placa de rede não confiável na qual estávamos atrás.

Um invasor com acesso à rede interna poderia explorar essa vulnerabilidade, contornar a restrição de segurança e enviar comandos elevados para a CPU do PLC, como comandos de download e upload e atualizações para a CPU do controlador.

Regra do Snort detecta comportamento de "salto

Para reforçar ainda mais a segurança e ajudar na detecção de vulnerabilidades semelhantes no futuro, estamos lançando uma regra do Snort projetada para detectar esse comportamento específico de "salto". O Snort, um sistema de detecção de intrusão de rede de código aberto, agora incluirá uma regra que monitora e identifica tentativas de explorar o protocolo CIP dessa maneira. Essa regra ajudará as organizações a reconhecer e responder a possíveis ameaças à segurança com mais eficiência.

Nossa regra do Snort tentará encontrar qualquer solicitação de abertura de encaminhamento CIP em que o caminho solicitado tenha 2 ou mais redirecionamentos de chassi local no mesmo backplane do PLC.

alert tcp any any -> any 44818 (content: "|6f 00|"; offset:0; pcre:"/\x54.*\xa3[^\x00-\x03](\x01[\x00-\x16]){2,}\x20\x02\$\x01/ms"; msg: " CVE-2024-6242: CIP suspicious forward open (might be used to bypass local chassis security)";

referência:url,claroty.com/team82/research/bypassing-rockwell-automation-logix-controllers-local-chassis-security-protection;referência:cve,2024-6242; classtype:misc-attack; sid:987002; rev:1;)

Resumo

Em resumo, descobrimos uma vulnerabilidade significativa nos controladores Logix 1756 da Rockwell Automation, especificamente no mecanismo de segurança do chassi local. Essa vulnerabilidade tinha o potencial de expor sistemas de controle críticos a acessos não autorizados pelo protocolo CIP, originados de slots de chassi não confiáveis.

Além disso, gostaríamos de agradecer à Rockwell Automation. Ao identificar e relatar essa vulnerabilidade, a Rockwell Automation agiu para resolver o problema. Desde então, a empresa lançou uma correção que resolve a falha de segurança, aprimorando a proteção de seus controladores Logix e atenuando o risco associado a essa técnica de desvio.

Fique por dentro

Receba o boletim informativo da Team82

Divulgações de vulnerabilidades relacionadas

Claroty
LinkedIn Twitter YouTube Facebook