UMAS y la ciberseguridad de sus comunicaciones

Fecha de publicación 11/07/2024
Autor
INCIBE (INCIBE)
Foto decorativa portada UMAS

En el mundo industrial se utilizan multitud de dispositivos electrónicos fabricados por diferentes marcas y con diferentes características. Debido a esta gran competencia las marcas han tenido que ir mejorando y desarrollando nuevas tecnologías para poder diferenciarse de las otras marcas y que los compradores utilicen únicamente sus productos.

Para ello en muchas ocasiones las compañías han creado software específico que únicamente sirven para sus dispositivos o incluso la creación de protocolos específicos para la comunicación entre dispositivos de las mismas empresas.

Uno de los mejores ejemplos es el protocolo UMAS (Unified Messaging Application Services), este protocolo fue creado por la empresa Schneider y se utiliza para configurar y monitorizar los PLCs de Schneider Electric.

Dicho protocolo se encuentra basado en el protocolo Modbus/TCP, este protocolo es muy utilizado en el mundo industrial ya que es uno de los más antiguos, además se caracteriza por realizar la comunicación maestro esclavo. A continuación, se verá la estructura de dicho protocolo.

Estructura y vulnerabilidades

Estructura de UMAS

- Estructura de UMAS. Fuente -

Una de las características principales del protocolo UMAS es que utiliza el código de función 90(0x5A) para definir que se pueda transmitir el campo de los datos a otro dispositivo. Como se puede ver en la imagen anterior, después del código de función va la clave de sesión. En este apartado, que tiene la capacidad de un Byte, es donde dependiendo del valor que tenga se puede hacer peticiones de escritura permitiendo así modificar información del PLC. Finalmente, la parte de la función UMAS es donde se puede ver el tipo de actividad que vas a hacer con el PLC.

Después de ver cómo está estructurado el protocolo UMAS, se puede pensar que sería difícil que sufriese algún tipo de ciberataque, ya que se trata de un protocolo industrial con difícil acceso y con alto nivel de complejidad, en cuanto al funcionamiento de la comunicación, pero no es así, este protocolo ha recibido multitud de ciberataques e incluso se le han descubierto distintas vulnerabilidades, como, por ejemplo, el CVE-2020-28212 y el CVE-2021-22779.

  • CVE-2020-28212: el principal problema del mecanismo de reserva básico es que no usa la contraseña de aplicación y por lo tanto un atacante puede usar la clave de sesión para enviar peticiones y así poder cambiar la configuración del dispositivo. Por ejemplo, en los dispositivos Modicon M340 con una versión anterior a la 2.7, la clave de sesión tiene el mismo valor cada vez que el dispositivo es reservado y es igual a ”0x01”. Esto significa que el atacante puede hacer cambios en el dispositivo haciendo llamadas a las funciones más relevantes, después de reservar el dispositivo por ellos mismos o por un usuario legitimo.

    Flujo de ataque

    - Flujo de ataque. Fuente -

    Como se puede ver en la anterior imagen, si el dispositivo no ha podido reservar la sesión, el atacante puede anticiparse y mandar la función umas_QueryTakePLCReservation(0x01) para reservarse la clave de sesión y así poder cambiar la configuración del dispositivo.

    Como se dijo anteriormente este tipo de ataque solo funciona para la versión inferior de 2.7 ya que los Modicon M340 con la versión de firmware de 2.7 o superior tienen una clave de sesión con valores aleatorios y no siempre es 0x01. Pero esta versión también tiene problemas ya que solo tiene un byte de longitud por lo que tiene una capacidad muy baja permitiendo así que el atacante pueda realizar un ataque de fuerza bruta.

    Para realizar este ataque, se puede enviar peticiones al puerto 502/TCP del PLC con diferentes valores de sesión ID y poder visualizar las diferentes respuestas del PLC. En el caso de que el código enviado por el atacante sea correcto el PLC enviara el código “0xfe” pero si no es el correcto el dispositivo responderá con el código “0xfd”.

    Debido a los grandes problemas que puede acarrear esta vulnerabilidad los desarrolladores de la empresa Schneider ha realizado mejoras para mitigar dicha vulnerabilidad. Esta mejora consiste en implementar algoritmos criptográficos y aumentar la longitud de la sesión ID.

  • CVE-2021-22779: después de realizar las mejoras en dicho dispositivo se ha seguido investigando y se ha visto que la implementación introducida tiene algunos fallos. Como, por ejemplo, este CVE que podría permitir a un atacante remoto saltarse el mecanismo de autenticación y utilizar funciones que requieren reserva para realizar cambios en el PLC. En la siguiente imagen se podrá ver cómo funciona la nueva comunicación mejorada.

    Comunicación con la contraseña de aplicación permitida

    - Comunicación con la contraseña de aplicación permitida. Fuente -

    El problema que se descubrió de esta mejora es que el dispositivo siempre envía la misma respuesta independiente de la petición que se ha enviado, por ello el atacante puede realizar un ataque de Replay utilizando el tráfico de red entre el cliente y el servidor, capturando anteriormente dicho proceso del PLC. 

    Para poder evitar este problema la empresa Schneider hizo que el bloque de memoria 0x14 del PLC no contenga el hash de la contraseña utilizado, sino que se oculte con el hash SHA256.

Conclusión

Finalmente, como se ha podido observar a lo largo de este artículo, el mundo industrial es un sector que durante el paso de los años está sufriendo un alto crecimiento de ciberataques, uno de los dispositivos que ha sufrido una gran cantidad de ciberataques es el Modicon M340 y el protocolo UMAS ambos de Schneider ya que tras realizar diferentes investigaciones se ha encontrado varios CVEs (CVE-2020-28212 y  CVE-2021-22779) que permitían modificar la configuración del dispositivo lo que provocaría tener grandes problemas en el funcionamiento del PLC. Por eso, cada vez más las empresas están invirtiendo en ciberseguridad y realizan diferentes tipos de pruebas de pentesting lo que permite que el dispositivo sea lo más ciberseguro posible antes de que se salga al mercado.