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.

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.

CVE-2017-14469
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.

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.

Análisis de vulnerabilidades
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.

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.
- 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
- 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
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:

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 |
| 0x0F | 0x80 | Cambiar modo |
| 0x0F | 0xAA | Escritura lógica tipada protegida con tres campos de dirección |
| 0x0F | 0xA2 | Lectura 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 |
| 0x84 | 0x02 | 0x1d | Archivo de estado – Número de rutina de error de usuario |
| 0x84 | 0x02 | 0x06 | Archivo de estado – Código de error grave |
| 0x84 | 0x02 | 0x05 | Archivo 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.
- Establece una conexión con el dispositivo a través de Ethernet/IP para obtener el identificador de sesión.
- Envía la solicitud maliciosa para sobrescribir el número de la rutina de error.
- Crea un paquete CIP malicioso para que el PLC vuelva al modo de ejecución y así provocar el fallo.
- El dispositivo detecta un fallo y detiene su funcionamiento.

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:

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.

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

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


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:
- Identifica y elabora rápidamente un inventario de activos con Smart Asset Profiling
- Supervisa de forma activa y pasiva las amenazas y las anomalías
- Gestión remota de parches con funciones centralizadas de aplicación automática de parches
- Flujo de trabajo de alertas de riesgo estructurado y optimizado, gestionado mediante un panel de control completo y personalizable
- Informes sobre el cumplimiento normativo a nivel mundial, regional y sectorial

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.
