banner

Noticias

May 06, 2023

Los investigadores extraen la clave maestra de cifrado de los PLC de Siemens

Por Luciano Constantino

Redactor sénior de CSO, CSO |

Los investigadores de seguridad han encontrado una manera de extraer una clave de cifrado global que estaba codificada en las CPU de varias líneas de productos de controladores lógicos programables (PLC) de Siemens, lo que les permite comprometer sus comunicaciones y autenticación seguras. Siemens aconseja a todos los clientes que actualicen tanto el firmware de los dispositivos afectados como el software TIA Portal que los ingenieros usan para comunicarse con ellos e implementar sus programas.

Según los investigadores de seguridad de Claroty, Siemens introdujo la criptografía asimétrica en sus CPU de PLC SIMATIC S7-1200/1500 hace casi una década para proteger su configuración, programas y comunicaciones. Sin embargo, la empresa optó por hacerlo mediante el uso de una clave privada global codificada para todos los dispositivos de esas familias de productos porque, en ese entonces, la distribución y administración de claves dinámicas no era una práctica común y una carga potencial para los clientes.

"Sin embargo, desde entonces, los avances en tecnología, la investigación de seguridad y un panorama de amenazas que cambia rápidamente han convertido a tales claves criptográficas codificadas en un riesgo inaceptable", dijeron los investigadores en su informe. "Un actor malicioso que sea capaz de extraer una clave global codificada podría comprometer la seguridad de toda la línea de productos del dispositivo de una manera irreparable".

Según Claroty, los PLC Siemens S7-1200 y S7-1500 utilizan varias claves. Todos los dispositivos de una línea de productos comparten una clave "por familia" y se usa una clave "por modelo/firmware" para cifrar configuraciones y mantener la integridad del código, y una clave de conexión que se usa en el proceso de autenticación, así como para cifrar las comunicaciones con los clientes. La clave de conexión se deriva de las claves de configuración y se utiliza para el cifrado basado en curvas elípticas.

Esto significa que los atacantes obtienen la clave de configuración, potencialmente pueden descifrar la contraseña de usuario de la configuración de un PLC, así como lanzar ataques de intermediarios, incluso si no tienen acceso para leer la configuración cifrada.

El problema es que esta clave de configuración para toda la familia no se almacena en el firmware del dispositivo, el sistema operativo que se ejecuta en el dispositivo, sino en la propia CPU, por lo que su lectura requiere acceso para interactuar directamente con la CPU a través de códigos de operación. Solo tiene que hacerse una vez en un dispositivo porque todos comparten la clave.

El año pasado, los investigadores de Claroty encontraron una vulnerabilidad de ejecución remota de código (CVE-2020-15782) que afectaba a los PLC S7 y les permitía ejecutar código nativo en los dispositivos. Normalmente, los programas o la lógica que los ingenieros escriben e implementan en los PLC a través del software de ingeniería especializado se ejecutan dentro de una caja de arena en el sistema operativo del PLC. CVE-2020-15782 permitió a los investigadores eludir esa capa de seguridad y leer y escribir directamente en cualquier dirección de memoria normalmente protegida en el PLC.

"Usando el permiso de lectura DA [acceso directo a la memoria] que obtuvimos, pudimos extraer todo el firmware del PLC encriptado (SIMATIC S7-1500) y mapear sus funciones", dijeron los investigadores. "Durante el proceso de mapeo, encontramos una función que lee la clave privada en el PLC. Una vez que tuvimos la dirección de la función, reescribimos la funcionalidad de los códigos de operación específicos de MC7+ con nuestro código de shell, obligándolos a llamar a la función nativa que lee la clave privada. Luego copiamos la clave a una dirección de memoria conocida y la leímos desde allí. Ejecutar la función sobrescrita nos dio la clave privada completa del PLC".

La interacción con los PLC de Siemens requiere una contraseña, pero los permisos que el cliente otorga al dispositivo están definidos por cuatro niveles de protección que se pueden configurar. Si el nivel de protección es inferior a tres, un atacante puede extraer la configuración del PLC sin ningún permiso especial. Esta configuración contiene el hash de la contraseña, pero está cifrada. Sin embargo, si tienen la clave privada global, los atacantes pueden descifrar el hash de la contraseña y usarlo para autenticarse en el PLC con mayores privilegios.

Si el nivel de protección es superior a cuatro, los atacantes pueden usar la clave privada para lanzar un ataque de intermediario contra un cliente legítimo. La forma en que esto funcionaría es que simularían un PLC falso y obligarían al cliente a intentar autenticarse en él. Esto haría que el cliente enviara una clave de conexión cifrada al PLC no autorizado, que luego se descifraría con la clave global extraída en posesión del atacante y se usaría para conectarse al PLC real. El PLC real respondería con un desafío de contraseña que el atacante reenviaría al cliente y obtendría su respuesta.

Reenviar la respuesta de desafío al PLC real les permitiría establecer una sesión autenticada con privilegios para leer la configuración que incluye el hash de la contraseña. Luego, el hash de la contraseña podría descifrarse utilizando la clave privada global, lo que brinda a los atacantes acceso futuro sin repetir el secuestro de la sesión del hombre en el medio.

Finalmente, "un atacante con acceso pasivo para capturar tráfico a un PLC determinado en la red puede interceptar lecturas/escrituras de configuración del PLC", advirtieron los investigadores. "Usando la clave privada, el atacante puede descifrar la configuración y extraer el hash de la contraseña. Con el hash de la contraseña, el atacante puede autenticarse en el controlador y escribir una nueva configuración".

"Las CPU SIMATIC S7-1200, S7-1500 y los productos relacionados protegen la clave privada global integrada de una manera que ya no se puede considerar suficiente", dijo Siemens en un nuevo aviso en respuesta a este problema. "Siemens recomienda actualizar tanto los productos afectados como el proyecto TIA Portal correspondiente a las últimas versiones. TIA Portal V17 y las versiones de firmware de CPU relacionadas introdujeron la protección de datos de configuración confidenciales basados ​​en contraseñas individuales por dispositivo y PG/PC protegido por TLS y comunicación IHM".

Los dispositivos vulnerables incluyen versiones de la familia SIMATIC Drive Controller anteriores a 2.9.2, SIMATIC ET 200SP Open Controller CPU 1515SP PC2 (incluidas las variantes SIPLUS) versiones anteriores a la 21.9, versiones de la familia SIMATIC S7-1200 CPU (incluidas las variantes SIPLUS) anteriores a la 4.5.0 , familia de CPU SIMATIC S7-1500 (incluidas las CPU ET200 relacionadas y variantes SIPLUS) versiones anteriores a 2.9.2, versiones de controlador de software SIMATIC S7-1500 anteriores a 21.9 y versiones avanzadas de SIMATIC S7-PLCSIM anteriores a 4.0. Todas las versiones de SIMATIC ET 200SP Open Controller CPU 1515SP PC (incluidas las variantes SIPLUS) también se ven afectadas, pero no hay ninguna solución disponible ni planificada para ellas.

Lucian Constantin es escritor sénior en CSO y se ocupa de la seguridad de la información, la privacidad y la protección de datos.

Derechos de autor © 2022 IDG Communications, Inc.

Los PLC de Siemens utilizan claves criptográficas para la autenticación y la protección del código Los investigadores obtuvieron acceso directo a la memoria para extraer la clave Los usuarios recomendaron actualizar los dispositivos vulnerables y el software de ingeniería A continuación, lea esto
COMPARTIR