Estructura y vulnerabilidades
Una de las características clave del protocolo UMAS es el uso del código 90 (0x5A) para indicar si se debe transferir un dato a otro dispositivo. Como puedes ver en la imagen de arriba, después del código de actividad ve a la sección principal. En este apartado tiene capacidad de un byte, y dependiendo del valor que tenga se puede hacer una petición de escritura y por tanto se puede cambiar la información del PLC. Por último, en el apartado de trabajo UMAS puedes ver qué tipo de trabajo estás realizando con el PLC.
- CVE-2020-28212: El principal problema con el sistema backend es que no utiliza contraseñas de computadora, por lo que un atacante puede usar la clave de ubicación para enviar solicitudes para cambiar la configuración del dispositivo. Por ejemplo, en dispositivos Modicon M340 anteriores a la versión 2.7, la clave de partición tiene el mismo valor, igual a «0x01», cada vez que se guarda el dispositivo. Esto significa que después de que el dispositivo sea propiedad privada de un usuario autorizado, los piratas informáticos pueden modificar el dispositivo llamando a las funciones más importantes.
Como vio en el ejemplo anterior, si el dispositivo no puede reservar espacio, el atacante puede esperar y pasar la función umas_QueryTakePLCReservation (0x01) para almacenar la clave de espacio que puede cambiar la configuración del dispositivo.
Como se mencionó anteriormente, este tipo de ataque solo funciona en versiones de Modicon M340 anteriores a 2.7 y versiones de firmware 2.7 o superiores, donde la clave de partición siempre es un valor aleatorio distinto de 0x01 i. Pero este tipo también tiene un problema, porque sólo tiene una longitud, tiene muy poca potencia y el atacante no puede realizar ataques potentes.
- CVE-2021-22779: Luego de la corrección en el apartado mencionado, la investigación continuó y se encontró que se introdujo la implementación. Por ejemplo, este CVE podría permitir que un atacante externo omita el proceso de autenticación y utilice funciones que deberían reservarse para modificar el PLC. En la imagen de abajo puedes ver cómo funciona la nueva comunicación.
Un problema encontrado con esta mejora es que el dispositivo envía las mismas respuestas independientemente de la solicitud enviada, por lo que un atacante puede realizar un ataque de suplantación de identidad utilizando el tráfico de red entre el cliente y el servidor y el PLC mencionado anteriormente. Proceso.
Para evitar este problema, Schneider Corporation no incluyó el bloque de memoria del PLC 0x14 que contiene el hash de contraseña utilizado, sino que lo cifró con un hash SHA256.
Esto esto se soluciona contactando con nosotros en nuestra web Solwed.es o pidiendo cita para que te orientemos.