exploit
Microsoft
Infraestructura crítica
Vulnerabilidades

Microsoft identifica un 'exploit' de ejecución remota de código contra PLC compatibles con CODESYS

CODESYS ha parcheado las últimas versiones del protocolo y los fabricantes de equipos industriales podrían no haberlas desplegado aún.

industria
Créditos: Umit Yildirim (Unsplash).

Investigadores de Microsoft han demostrado cómo los controladores lógicos programables (PLC, de sus siglas en inglés) que admiten el tiempo de ejecución CODESYS pueden ser controlados mediante la explotación de vulnerabilidades de ejecución remota de código (RCE) de alta gravedad en el popular protocolo de automatización. Los fallos se parchearon a principios de este año y afectan al kit de desarrollo de software (SDK) CODESYS V3, integrado en más de 1.000 modelos de dispositivos de más de 500 fabricantes.

"La explotación de las vulnerabilidades descubiertas, que afectan a todas las versiones de CODESYS V3 anteriores a la versión 3.5.19.0, podría poner la infraestructura de tecnología operativa (OT) en riesgo de ataques, como la ejecución remota de código y la denegación de servicio (DoS)", señalan los investigadores de Microsoft en un informe. "El descubrimiento de estas vulnerabilidades pone de relieve la importancia crítica de garantizar la seguridad de los sistemas de control industrial y subraya la necesidad de una supervisión y protección continuas de estos entornos".

Microsoft informó de las vulnerabilidades al grupo CODESYS, que mantiene el popular SDK, en septiembre de 2022 y fueron parcheadas en actualizaciones publicadas en marzo y abril. Sin embargo, los fabricantes de equipos industriales que integran CODESYS Control Runtime Toolkit en sus controladores para permitir a los clientes ejecutar y depurar aplicaciones creadas con CODESYS también tendrán que emitir actualizaciones y el desarrollo y despliegue de parches en el espacio ICS puede ser muy lento.

 

15 vulnerabilidades de CODESYS

Los investigadores encontraron 12 vulnerabilidades que pueden dar lugar tanto a la ejecución remota de código como a la denegación de servicio en varios componentes del protocolo CODESYS y otras tres que pueden dar lugar únicamente a la denegación de servicio. Todos los fallos, excepto uno de denegación de servicio, tienen una calificación de 8,8 sobre 10 en la escala de gravedad CVSS, pero una denegación de servicio puede tener graves consecuencias cuando afecta a dispositivos como PLC que controlan procesos críticos en fábricas, plantas de energía y sistemas de automatización de edificios.

El paquete de software CODESYS tiene múltiples componentes. Proporciona un entorno de desarrollo integrado (IDE) que se ejecuta en estaciones de trabajo de ingeniería y permite a los usuarios desarrollar aplicaciones de acuerdo con la norma IEC 61131-3 en múltiples lenguajes de programación y para múltiples arquitecturas de CPU utilizadas en los PLC. El paquete permite a los usuarios cargar estas aplicaciones en los PLC, donde se ejecutan mediante el tiempo de ejecución CODESYS integrado y también pueden supervisarse y depurarse. Otros complementos amplían la funcionalidad para incluir visualización, comunicación con interfaces hombre-máquina (HMI), aplicaciones avanzadas de movimiento, etc.

Los investigadores de Microsoft se propusieron investigar el protocolo de comunicaciones de red CODESYS que permite al software de ingeniería CODESYS comunicarse con los PLC compatibles con CODESYS. Este protocolo se ejecuta a través de TCP (puertos 11740-11743) o UDP (puertos 1740-1743) y se divide en varias capas: la capa de controladores de bloque, la capa de datagramas, la capa de canales y la capa de servicios.

La capa de servicios era especialmente interesante porque se dividía a su vez en varios componentes, cada uno de los cuales implementaba una funcionalidad diferente en el tiempo de ejecución del PLC, y cada componente disponía de diferentes servicios (comandos) que podían invocarse en el tiempo de ejecución. Por ejemplo, muchos de los fallos de ejecución remota de código se encontraron en el componente CmpTraceMgr que soporta los siguientes servicios: TraceMgrPacketCreate crea un nuevo paquete de rastreo; TraceMgrPacketDelete elimina un paquete del gestor de trazas; TraceMgrPacketStart inicia el rastreo, que es disparado por el TraceTrigger; TraceMgrRecordUpdate registra el valor actual de la TraceVariable junto con la marca de tiempo actual; TraceMgrRecordAdd crea un nuevo TraceRecordConfiguration y lo añade a un paquete de rastreo específico para una tarea/aplicación IEC concreta.

Además, los datos se transmiten mediante etiquetas, que son esencialmente estructuras de datos extraídas por el componente y enviadas al servicio. Por ejemplo, TraceMgrRecordAdd activa el servicio correspondiente e intentará copiar los datos de las etiquetas especificadas en un búfer de salida. El problema es que la etiqueta se copia en el búfer de memoria sin ninguna validación de tamaño, lo que conduce a un desbordamiento de búfer clásico.

Las vulnerabilidades de desbordamiento de búfer se pueden explotar para insertar código controlado por el atacante en el búfer de memoria y luego hacer que ese código se ejecute, lo que lleva a la ejecución de código arbitrario. Si esto se puede lograr de forma remota, como en este caso porque el exploit se entrega a través de un protocolo de red, se trata de ejecución remota de código.

La limitación en este caso es que el envío de peticiones a un PLC a través del protocolo CODESYS requiere autenticación. Los investigadores de Microsoft superaron esta limitación explotando una vulnerabilidad más antigua en CODESYS, CVE-2019-9013, que permite interceptar credenciales de texto plano durante el inicio de sesión y utilizarlas para lanzar un ataque de repetición.

 

Cómo mitigar las vulnerabilidades de CODESYS

"CODESYS GmbH recomienda encarecidamente utilizar la gestión de usuarios online", dijo CODESYS en su aviso sobre las vulnerabilidades encontradas por Microsoft. "Esto no sólo evita que un atacante envíe solicitudes maliciosas o descargue código virulento, sino que también suprime el inicio, la detención, la depuración u otras acciones en una aplicación de trabajo conocida que potencialmente podría interrumpir una máquina o sistema". A partir de la versión V3.5.17.0, la gestión de usuarios en línea se aplica por defecto".

Además de eludir la autenticación, los investigadores también tuvieron que superar las protecciones de memoria a nivel de sistema operativo y de aplicación diseñadas para dificultar la explotación del desbordamiento de búfer, como la prevención de ejecución de datos (DEP) y la aleatorización de la disposición del espacio de direcciones (ASLR). Los investigadores demostraron sus hazañas en un controlador Schnieder Electric TM251 y en un dispositivo Wago PFC200, ambos con DEP y ASLR activados, y el proceso se documenta detalladamente en un artículo de investigación. También desarrollaron un marco forense ICS de código abierto para permitir a los propietarios de activos identificar dispositivos afectados, recibir recomendaciones de seguridad para esos dispositivos e identificar artefactos sospechosos en metadatos PLC y archivos de proyecto.

Sus recomendaciones generales para los usuarios de CODESYS y dispositivos compatibles con CODESYS incluyen:

 

- Aplicar parches a los dispositivos afectados de su red y comprobar con los fabricantes de los dispositivos si hay parches disponibles y actualizar el firmware del dispositivo a la versión 3.5.19.0 o superior.

-Asegurarse de que todos los dispositivos críticos, como PLC, enrutadores y PC, estén desconectados de Internet y segmentados, independientemente de si ejecutan CODESYS.

- Limitar el acceso a los dispositivos CODESYS únicamente a los componentes autorizados.

- Debido a la naturaleza de los CVE, que siguen requiriendo un nombre de usuario y una contraseña, si resulta difícil priorizar la aplicación de parches, hay que disminuir el riesgo garantizando una segmentación adecuada, exigiendo nombres de usuario y contraseñas únicos y reduciendo los usuarios que tienen autenticación de escritura.

 

 



TE PUEDE INTERESAR...

Accede a la cobertura de nuestros encuentros
 
Lee aquí nuestra revista digital de canal

DealerWorld Digital

 

Forma parte de nuestra comunidad
 
¿Interesado en nuestros foros? 

 

Whitepaper

Documento Pure Storage y Kyndryl INFRAESTRUCTURAS