UMAS: Protección Avanzada para la Seguridad de sus Comunicaciones Digitales

0
71

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 sirve 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, el cual 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

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 el esquema, 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 pueden 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 se va a hacer con el PLC.

Después de ver cómo está estructurado el protocolo UMAS, se podría pensar que sería difícil que sufriera 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. Sin embargo, no es así. Este protocolo ha recibido multitud de ciberataques e incluso se le han descubierto distintas vulnerabilidades, como 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 legítimo.

Como se puede ver en el flujo de ataque, 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.

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 que no siempre es 0x01. Pero esta versión también presenta problemas ya que solo tiene un byte de longitud, permitiendo así que el atacante pueda realizar un ataque de fuerza bruta.

Para realizar este ataque, se pueden enviar peticiones al puerto 502/TCP del PLC con diferentes valores de sesión ID y visualizar las diferentes respuestas del PLC. En el caso de que el código enviado por el atacante sea correcto, el PLC enviará 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 han 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.

El problema que se descubrió con 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 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. Tras realizar diferentes investigaciones, se han 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 ello, 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 salga al mercado.

Contenido realizado en el marco de los fondos del Plan de Recuperación, Transformación y Resiliencia del Gobierno de España, financiado por la Unión Europea (Next Generation).

vía: INCIBE