Cabecera blog ciberseguridad

Seguridad en las redes PRIME – Estado actual

Desde enero de 2019, todos los contadores eléctricos de los clientes de baja potencia (hasta 15 kW) en España son ,o han sido sustituidos por, contadores eléctricos inteligentes, permitiendo a las distribuidoras realizar medidas de consumo y distintas operaciones de gestión de los puntos de suministro de forma remota.

La mitad del parque de contadores eléctricos inteligentes del mercado español emplea una pila de comunicaciones PLC basada en PRIME 1.3.6 para las capas inferiores y DLMS en capa de aplicación. En marzo de 2020 Tarlogic presentó en la RootedCON de ese mismo año los resultados de su investigación en materia de seguridad en este tipo de redes, demostrando que el tráfico a nivel de PRIME no contaba con ningún tipo de cifrado y que, a nivel de DLMS, aunque parte del tráfico se transportaba cifrado (empleando claves dedicadas), la mayor parte viajaba en claro y se autenticaba mediante la transmisión de contraseñas también sin cifrar (en lo que se conoce como Low Level Security en la literatura DLMS).

De cara a ilustrar los efectos que ha tenido en la industria la divulgación de esta información, Tarlogic ha realizado un segundo estudio más exhaustivo donde se ilustra (en términos de proporción) el tipo de comunicaciones empleadas, contraseñas de acceso más comunes y la frecuencia con la que se pueden encontrar paquetes de datos sin cifrar (cubriendo ambas capas). Este estudio se ha realizado en dos puntos de la geografía española:

  • O Barco de Valdeorras (Ourense)
  • Madrid, distrito Hortaleza

Para la realización de este estudio fue necesario el desarrollo de la herramienta PLCTool, la cual ofrece una interfaz gráfica amigable para el análisis de la seguridad de las redes basadas en PRIME y DLMS. Las pruebas en la localidad de O Barco de Valdeorras efectuadas en 2020 determinaron que:

  • Se empleaba PRIME 1.3.6 en perfil 0 (sin cifrar).
  • La totalidad de las autenticaciones (AARQ) observadas se efectuaron en modo baja seguridad, y no negociaban ningún tipo de cifrado.
  • La totalidad de las autenticaciones empleaba 00000001 como contraseña. Estas credenciales parecían usarse indistintamente para lectura, escritura y ejecución de métodos (acciones):
Autenticación en modo de baja seguridad. Nótese la contraseña 00000001 codificada en hexadecimal (3030303030303031).

Autenticación en modo de baja seguridad. Nótese la contraseña 00000001 codificada en hexadecimal (3030303030303031).

Esto queda constatado en la captura de un mensaje de tipo SET_REQUEST (escritura de atributo), contra un objeto de la clase con identificador 8 (clase correspondiente a objetos de tipo CLOCK), estableciendo la fecha y hora a “2020-07-12 00:26:40” (representada en cadena de bytes como 07E4070C07001A2800800080):

Configuración del reloj de un contador por parte del concentrador.

Configuración del reloj de un contador por parte del concentrador.

Respecto de las pruebas realizadas en el distrito Hortaleza (Madrid) en 2020, se pudo concluir que:

  • PRIME 1.3.6 en perfil 0 sigue siendo la norma.
  • La totalidad de los intercambios AARQ observados se hacían en modo de baja seguridad.
  • La totalidad de las contraseñas de lectura (para todos los contadores) eran 00000001.
  • Las contraseñas usadas para escritura eran distintas, y dependían del contador
Contraseñas capturadas en autenticaciones de baja seguridad

Contraseñas capturadas en autenticaciones de baja seguridad

Mensaje AARQ en solicitud de escritura empleando una contraseña particular.

Mensaje AARQ en solicitud de escritura empleando una contraseña particular.

Adicionalmente, ha sido posible observar actualizaciones del firmware durante las capturas realizadas. Debido al empleo del perfil 0, el intercambio de información se hizo en claro, sin ningún tipo de autenticación que justificara la confianza en el nodo base:

Paquete conteniendo una porción de la cabecera firmware (el resto del firmware fue transmitido en los paquetes subsiguientes). Nótese que, debido a la poca fiabilidad de las comunicaciones, el mismo firmware debe transmitirse varias veces antes de poder ser reconstruido por el contador de destino.

Paquete conteniendo una porción de la cabecera firmware (el resto del firmware fue transmitido en los paquetes subsiguientes). Nótese que, debido a la poca fiabilidad de las comunicaciones, el mismo firmware debe transmitirse varias veces antes de poder ser reconstruido por el contador de destino.

Nuestras conclusiones son que la adopción del estándar PRIME 1.3.6 en Perfil 0 sigue siendo lo habitual, por lo que el tráfico PLC presenta las siguientes debilidades:

  • Empleo masivo de comunicaciones sin cifrar.
  • Ausencia de mecanismos de autorización.
  • Ausencia de mecanismos de autenticación.
  • Ausencia de mecanismos de protección contra ataques de reinyección.
  • Posibilidad de manipular el firmware de los contadores remotamente.

Todo esto, unido a un tráfico DLMS en capa de aplicación configurado en modo Low Level Security (con intercambio de contraseñas por defecto y en claro) y sin seguridad a nivel de transporte de ningún tipo provoca que el riesgo para estas infraestructuras sea muy elevado. Entre las amenazas que se contemplan está la desconexión remota del ICP (apagar el contador remotamente), modificación de la potencia contratada, modificación de contraseñas e incluso actualización del firmware.

Esta información ha sido publicada en varios artículos del blog [2], [3], [4] y la ponencia en español en el congreso de ciberseguridad RootedCON [5] aunque también existen referencias de estudios previos como [6] y [7]

Dado que la presencia de Perfil 0 existe tanto en PRIME 1.3.6 como PRIME 1.4,  y como forma de empujar a la industria para mejorar la seguridad de las redes de contadores inteligentes y de sus usuarios, Tarlogic ha puesto en conocimiento de la industria en España y de la PRIME Alliance los resultados de esta investigación. En línea con las buenas prácticas en materia de divulgación de fallos de seguridad, también se le han transmitido la intención de publicar a lo largo de los próximos meses una herramienta de auditoría PRIME (PLCTool), detalles técnicos de estos ataques y cómo un atacante podría hacer uso de ellos para, por ejemplo, desconectar el ICP interno del contador de una vivienda.

El Calendario de publicación previsto por Tarlogic es el siguiente:

  • 90 días (1 de diciembre 2020): Liberación del firmware para la realización de pruebas + PLCTool con funcionalidades limitadas.
  • 180 días (1 de marzo 2021): Framework completo con implementación de ataques.
Contraseñas de la capa DLMS capturadas tras observar tráfico sin cifrar con perfil 0 de PRIME 1.3.6 desde el enchufe del domicilio de un particular, mediante la herramienta PLCTool.

Contraseñas de la capa DLMS capturadas tras observar tráfico sin cifrar con perfil 0 de PRIME 1.3.6 desde el enchufe del domicilio de un particular, mediante la herramienta PLCTool.

Descubre nuestro trabajo y nuestros servicios de ciberseguridad en www.tarlogic.com/es/

En TarlogicTeo y en TarlogicMadrid.

Referencias:

  1. Presentación en RootedConhttps://www.youtube.com/watch?v=UsVDI8oRYrA
  2. Seijo Simó, Miguel. López López, Gregorio. Moreno Novella, José Ignacio. “Cybersecurity Vulnerability Analysis of the PLC PRIME Standard.” Security and Communication Networks. Hindawi. 2017. https://downloads.hindawi.com/journals/scn/2017/7369684.pdf
  3. https://www.youtube.com/watch?v=Z_y_vjYtAWM
Más artículos de la serie Contadores Inteligentes

Este artículo forma parte de una serie de articulos sobre Contadores Inteligentes

  1. Contadores Inteligentes – El escenario español y el sistema de Telegestión.
  2. Contadores Inteligentes – Amenazas a los contadores y ataques PRIME
  3. Contadores Inteligentes – Una prueba de concepto: secuestrando un contador
  4. Contadores Inteligentes – Evaluando el riesgo del concentrador
  5. Seguridad en las redes PRIME – Estado actual
  6. PLCTool, la navaja suiza de los contadores inteligentes
  7. Soporte para plugins en PLCTool