Envío de registros, alertas y datos de telemetría a través de un diodo de datos

Descubre cómo
Utilizamos inteligencia artificial para traducir el sitio web y, aunque nos esforzamos por garantizar la precisión, es posible que las traducciones no sean siempre 100 % exactas. Agradecemos tu comprensión.

Protección contra ataques de OT en los PLC de Rockwell Automation 

Por OPSWAT
Comparte esta publicación

Nos complace presentar una serie de entradas de blog sobre análisis técnico centradas en diversas CVE (vulnerabilidades y exposiciones comunes) que pueden identificarse y solucionarse con nuestras tecnologías avanzadas de detección de amenazas. Toda la investigación ha sido realizada por estudiantes de posgrado que han participado en el programa de becasOPSWAT , puesto en marcha en diciembre de 2023. 

Luan Pham y Viet Tran, estudiantes de posgrado de la Universidad de Ciencias de Ho Chi Minh
Los estudiantes participaron en el programa OPSWAT .

En este blog, explicaremos el CVE-2017-14469 de Rockwell Micrologix y cómo las organizaciones pueden protegerse contra los ataques que aprovechan esta vulnerabilidad.

Controlador MicroLogix 1400 de Rockwell Automation 

Un PLC (controlador lógico programable) es un ordenador diseñado específicamente para controlar procesos de fabricación industrial. Se utiliza en sectores de infraestructuras críticas, como líneas de montaje, supervisión de máquinas, control de procesos, etc. El controlador MicroLogix 1400 de Rockwell Automation es un PLC modular y ampliable que cuenta con un elevado número de E/S, un contador de alta velocidad y una compatibilidad de red mejorada, lo que lo hace adecuado para una amplia gama de aplicaciones.

Foto del producto: controladores MicroLogix 1400 de Rockwell Automation
Controladores MicroLogix 1400 de Rockwell Automation

CVE-2017-14469

Descripción

Una vulnerabilidad en el dispositivo Rockwell Automation MicroLogix serie 1400 B FRN 21.2 y versiones anteriores permite a un atacante leer y escribir o sobrescribir datos confidenciales en el dispositivo. Un paquete no autenticado y especialmente diseñado que contenga un comando provocaría la modificación del número de rutina de fallo definido por el usuario, lo que daría lugar a una interrupción inesperada en la ejecución del dispositivo.

Diagrama que ilustra un escenario de seguridad en el que un atacante tiene como objetivo un dispositivo MicroLogix 1400, lo que puede dar lugar a múltiples resultados posibles
Repercusión 

La Base de Datos Nacional de Vulnerabilidades (NVD) ha clasificado esta vulnerabilidad como «crítica», con una puntuación máxima en el CVSS (Sistema Común de Puntuación de Vulnerabilidades). Su impacto puede afectar significativamente a la confidencialidad, integridad y disponibilidad de un dispositivo sin requerir ninguna autenticación adicional. La disponibilidad del sistema es crucial, especialmente en sistemas de infraestructura crítica, donde cualquier interrupción o tiempo de inactividad puede provocar pérdidas económicas masivas o incluso daños físicos. Este CVE puede provocar la interrupción de las funciones del PLC al desencadenar un «fallo del sistema» dentro del controlador, lo que supone un riesgo de interrupción de los sistemas de infraestructura crítica. 

Clasificaciones de gravedad de la vulnerabilidad de ciberseguridad CVE-2017-14469, en las que se detallan las puntuaciones CVSS del NIST NVD y de Talos, con puntuaciones básicas críticas
Información sobre CVE-2017-14469 en el NVD del NIST 

Análisis de vulnerabilidades

¿Qué son los errores y las rutinas de error?

El concepto de «fallo» se asemeja mucho al de «excepción» en programación. Cuando se produce un fallo, se detiene la ejecución de la instrucción, lo que lleva al dispositivo a un estado de fallo. Los fallos se pueden clasificar en dos tipos: fallos de usuario y fallos que no son de usuario.  

Existen dos mecanismos para borrar los errores: el borrado automático, que se realiza reiniciando la alimentación del controlador, o el borrado manual mediante una rutina de error de usuario, que es un procedimiento que se puede configurar para que se ejecute automáticamente en respuesta a un error de usuario. La vulnerabilidad CVE-2017-14469 se refiere al segundo mecanismo. Para evitar que el sistema se apague o detenga su ejecución de forma inesperada debido a un fallo de usuario, se define una rutina de fallo de usuario para gestionar los fallos asignados en función de sus números de fallo, y esta se ejecuta cuando se produce el fallo correspondiente. Si no hay ninguna rutina para gestionar el fallo, el dispositivo detiene la ejecución y muestra el número de fallo. El valor de la rutina de fallo de usuario se establece en 0x00 cuando el dispositivo funciona con normalidad, y solo debe configurarse dentro del rango de 0x03 a 0xFF para la gestión de fallos.

diagrama de flujo que explica el procedimiento para gestionar los fallos del dispositivo, incluyendo la detección de fallos, las comprobaciones rutinarias y la visualización de códigos de error
Mecanismo de resolución de errores de usuario mediante la rutina de errores de usuario.
Modo de funcionamiento del MicroLogix 1400 de Rockwell Automation

El MicroLogix 1400 de Rockwell Automation cuenta con tres posiciones en el selector de modo: PROGRAM, REMOTE y RUN. Tanto el modo PROGRAM como el REMOTE permiten la descarga de programas en el dispositivo, al tiempo que aceptan y gestionan las solicitudes entrantes. Sin embargo, en el modo RUN, el dispositivo solo acepta solicitudes restringidas. En el contexto de esta vulnerabilidad, no es posible explotarla si el dispositivo se encuentra en modo RUN.

Programa
  • Modo de espera, utilizado para descargar y editar programas
  • Responde a los mensajes del puerto de comunicación
  • La ejecución se ha detenido y no hay salida
A distancia
  • Permite que una sesión desde el software controle el dispositivo
  • Responde a los mensajes del puerto de comunicación
  • Ejecución y salida normales
Correr
  • Ejecuta programas en bucle continuo
  • Solo responde a mensajes restringidos
Cómo funciona CVE-2017-14469

El dispositivo se comunica mediante el protocolo CIP (Common Industrial ) con la extensión PCCC. El protocolo CIP se basa en Ethernet/IP (Industrial ). En la siguiente figura se muestra la estructura de un paquete:

Representación esquemática de la estructura de los paquetes Ethernet/IP y los objetos CIP para la comunicación mediante protocolos industriales
Mecanismo de resolución de errores de usuario mediante la rutina de errores de usuario.

Como se puede observar en la imagen anterior, no hay ningún campo destinado a la autenticación. Esto supone un problema importante, ya que el dispositivo no es capaz de distinguir entre las solicitudes de un atacante y el tráfico normal de un usuario. 

Por lo general, un operador puede supervisar y actualizar la configuración del dispositivo mediante un software de control. Para comunicarse con el dispositivo, el Software de control Software la solicitud correspondiente con un comando lógico de escritura o lectura de tipo protegido, rellenando el objeto CIP PCCC. En el formato del protocolo CIP PCCC, un comando se identifica mediante su código de comando y su código de función. 

Código de comando
Código de función
Descripción
0x0F0x80Cambiar modo
0x0F0xAAEscritura lógica tipada protegida con tres campos de dirección
0x0F0xA2Lectura lógica de tipo protegido con tres campos de dirección

El comando de escritura lógica con protección de tipo se utiliza para escribir en archivos confidenciales, como el archivo de estado, el archivo de bits, el archivo de contadores y otras configuraciones del dispositivo.  

El dispositivo utiliza tres campos de dirección en el paquete CIP para identificar la ubicación de lectura y escritura: tipo de archivo, número de archivo y números de elemento. A continuación se muestran algunos valores de ejemplo para identificar las ubicaciones de los archivos de configuración que se verán afectadas por el comando: 

Tipo de archivo
Número de expediente
Números atómicos
Descripción
0x840x020x1dArchivo de estado – Número de rutina de error de usuario
0x840x020x06Archivo de estado – Código de error grave
0x840x020x05Archivo de estado – Código de error grave

Sin embargo, no se comprueba la validez de los datos introducidos cuando el dispositivo procesa la solicitud; los datos enviados en el comando de escritura no se validan, lo que permite establecer cualquier valor no válido. 

La vulnerabilidad se debe a dos motivos principales. En primer lugar, el dispositivo no puede autenticar las solicitudes entrantes, lo que permite a un atacante enviar una solicitud no autenticada para modificar ajustes confidenciales. En segundo lugar, el dispositivo valida incorrectamente los datos entrantes, lo que provoca que los ajustes pasen a un estado no válido. 

Para aprovechar con éxito la vulnerabilidad, un atacante envía una solicitud maliciosa, haciendo uso indebido del comando de escritura lógica tipada protegida para sobrescribir el número de rutina de error en el archivo de estado con un valor no válido, como 0x01 o 0x02. Cuando el número de rutina de error se sobrescribe con un valor no válido y el dispositivo pasa al modo RUN a través de otro paquete CIP, se desencadena un error y se detiene la ejecución. 

Aprovechamiento de vulnerabilidades

El ataque se podría dividir en cuatro pasos.

  1. Establece una conexión con el dispositivo a través de Ethernet/IP para obtener el identificador de sesión.
  2. Envía la solicitud maliciosa para sobrescribir el número de la rutina de error.
  3. Crea un paquete CIP malicioso para que el PLC vuelva al modo de ejecución y así provocar el fallo.
  4. El dispositivo detecta un fallo y detiene su funcionamiento.
Fragmento de código en Python para establecer una conexión de socket, registrar una sesión y enviar comandos para modificar la rutina de error y el estado de la CPU de un dispositivo, marcado como un exploit
El código muestra las funciones paso a paso para aprovechar la vulnerabilidad. 
Paso 1

Para comunicarse con el dispositivo, un atacante debe iniciar una conexión registrando una sesión con el dispositivo para obtener el identificador de sesión y utilizarlo para la comunicación posterior. El siguiente código muestra una solicitud estándar de registro de sesión:

Función en Python para registrar una sesión con datos de bytes sin procesar, enviarla a través de un socket y descodificar la respuesta del identificador de sesión
Paso 2

Posteriormente, un atacante elabora una solicitud utilizando el identificador de sesión obtenido anteriormente e incluye una carga útil con un comando de escritura lógica de tipo protegido para sobrescribir el número de la rutina de error, encapsulada en un paquete CIP.

Código en Python que define una función para enviar una instrucción a través de un socket de red y recibir una respuesta, como parte de un script de comunicación en red
Paso 3

En el último paso, se envía otro paquete CIP para poner el dispositivo en modo de funcionamiento y provocar el fallo.

Función de Python que configura el estado de la CPU de un dispositivo en modo de ejecución o de programación mediante el envío de comandos específicos
Paso 4

Tal y como se muestra en la imagen, la ejecución del PLC se detiene y la vulnerabilidad se aprovecha con éxito.

Representación de la interfaz de usuario del sistema y del MicroLogix 1400 de Rockwell Automation funcionando en condiciones normales
El sistema funciona en condiciones normales
Representación de la interfaz de usuario del sistema y del MicroLogix 1400 de Rockwell Automation fuera de servicio tras el aprovechamiento de una vulnerabilidad
El sistema ha dejado de funcionar tras el aprovechamiento de esta vulnerabilidad

Remediación

Los productos OPSWATpara la seguridad de los sistemas de control industrial (ICS) están diseñados para resistir este tipo de ataques. MetaDefender OT Security es una herramienta de inteligencia y detección de amenazas basada en IA que detecta cualquier solicitud anómala procedente de atacantes, lo que permite a los administradores identificar posibles amenazas. 

MetaDefender OT Security las siguientes funciones para mejorar el nivel de seguridad de los entornos de tecnología operativa: 

  1. Identifica y elabora rápidamente un inventario de activos con Smart Asset Profiling
  2. Supervisa de forma activa y pasiva las amenazas y las anomalías
  3. Gestión remota de parches con funciones centralizadas de aplicación automática de parches
  4. Flujo de trabajo de alertas de riesgo estructurado y optimizado, gestionado mediante un panel de control completo y personalizable
  5. Informes sobre el cumplimiento normativo a nivel mundial, regional y sectorial
panel de control que muestra una evaluación detallada de las vulnerabilidades de un dispositivo PLC MicroLogix 1400 de Rockwell Automation, incluyendo listados de CVE y puntuaciones CVSS

Además, MetaDefender OT Security también seOT Security integrar con MetaDefender Industrial Firewall para evitar que las solicitudes maliciosas afecten a los dispositivos detectados por OT Security. El MetaDefender Industrial Firewall la última línea de defensa que protege los PLC, VFD, RTU y otros activos industriales de misión crítica. Aplica políticas de acceso a dispositivos altamente granulares y hace cumplir las zonas de acceso a los dispositivos, garantizando que ningún acceso o cambio no autorizado pueda afectar al hardware crítico.  

Ambos elementos conforman un sistema IDPS (sistema de detección y prevención de intrusiones) integrado que detecta y evita de manera eficaz que cualquier conexión, solicitud o comunicación anómala en la red afecte a esta.

MetaDefender OT Security una protección esencial para las infraestructuras críticas gracias a su visibilidad de los activos y a su sólida detección de amenazas. Más allá de su excelencia tecnológica, OPSWAT interesantes oportunidades profesionales para personas apasionadas por la ciberseguridad. Únete a nosotros para dar forma al futuro de la seguridad y proteger lo que más importa. Descubre los diversos puestos y proyectos de gran impacto en OPSWAT, donde tu experiencia puede marcar una diferencia tangible. Juntos, protejamos los sistemas más vitales del mundo.

¡Mantente al día con OPSWAT!

Regístrate hoy mismo para recibir las últimas novedades de la empresa, historias, información sobre eventos y mucho más.