Typewritter
Volver al blog

Contadores Inteligentes – Amenazas a los contadores y ataques PRIME

Una regla de oro en el mundo de la ciberseguridad es que el riesgo de un sistema es más grande que el riesgo agregado de los elementos que lo componen. Esto es así debido a que, a medida que crece el número de elementos vulnerables, más sofisticados (y difíciles de trazar) son los ataques que se podrían realizar contra dicho sistema.

El primer paso necesario para conocer el riesgo de un elemento es estudiar las amenazas a las que está sometido y, posteriormente, estudiar las vulnerabilidades que las podrían materializar. Así, en una infraestructura de contadores inteligentes, el conjunto de amenazas que habría que estudiar sería:

  • Amenazas a los contadores
  • Amenazas al concentrador
  • Amenazas a la red de telegestión
  • Amenazas a los servidores de la distribuidora
  • Amenazas a los enlaces

En el presente artículo se enumerarán las amenazas a las que están sometidos los contadores inteligentes y, debido al relativo desconocimiento existente al respecto del protocolo PRIME, qué tipo de ataques sobre este protocolo podrían hacerlas posibles.

El contador bajo acoso

Simplificando bastante, un contador inteligente es un dispositivo que permite:

  1. Medir y almacenar el consumo
  2. Enviar datos de consumo a la distribuidora
  3. Recibir órdenes de telegestión de la distribuidora
  4. Actualizar su firmware
  5. Visualizar el consumo

Salvo la funcionalidad de visualización de datos de consumo, el resto de operaciones se pueden considerar privilegiadas y por lo tanto, cualquier posible alteración intencional de las mismas, supone una amenaza.

Respecto a las medidas de consumo, la principal amenaza tiene que ver con su alteración. Una forma de conseguirlo sería, por ejemplo, modificando la relación de transformación del contador. Otra forma sería interactuando con el hardware del dispositivo y modificando la memoria que almacena dichas medidas. Afortunadamente -y salvo la presencia de otras vulnerabilidades- la primera forma es fácilmente detectable, y la segunda es difícilmente explotable.

Respecto del envío de datos de consumo a la distribuidora, la mayor amenaza tiene que ver con la inyección de tramas fraudulentas por la línea. Desgraciadamente, una combinación de protocolos inseguros y pobre aislamiento entre los enchufes del domicilio del usuario y la red PLC del contador hace de este ataque algo verdaderamente factible. Debido a la ausencia de filtrado en estas dos líneas, un atacante podría inundar la línea con ruido de alta frecuencia, inhibiendo el envío de tramas al concentrador. Al mismo tiempo, podría enviar tramas fraudulentas al concentrador usando un módem PLC conteniendo información errónea. Si bien el grado de conocimientos necesario para efectuar este ataque es bastante alto, hoy por hoy existen instalaciones donde esto es técnicamente posible.

Respecto a la recepción de órdenes de telegestión, se pueden observar dos amenazas distintas, en función del destino de dichos datos. Desde el punto de vista de la recepción, el usuario podría inyectar tramas localmente en su domicilio, suplantando la identidad del concentrador y ejecutando operaciones privilegiadas. Desde el punto de vista del envío, ese mismo atacante podría enviar tramas a otros contadores conectados a la misma fase, modificando sus parámetros o incluso cortando el suministro de otros usuarios.

Por último, respecto de la actualización del firmware, caben aquí todas las amenazas de ataques relacionados con la ausencia de verifcaciones de integridad del mismo. Esto implicaría todas las amenazas anteriores, más el propio de haber cedido el control del contador al atacante.

Atacando desde PRIME

Evidentemente, la existencia de estas amenazas no implica que se puedan materializar. Para acercarnos al riesgo de estas amenazas, estas deben conectarse a una vulnerabilidad que las haga posibles.

Aunque un contador inteligente es un equipo con una superficie de ataque más o menos heterogénea, lo novedoso de estos dispositivos es su conectividad PLC. Por eso mismo, el presente artículo se centrará exclusivamente en los ataques realizados desde una red PRIME.

Nodos base, nodos de servicio y switches

Aunque las redes PRIME forman una topología física en estrella (siendo el centro de la misma el concentrador local), las limitaciones físicas en cuanto a transmisión de las líneas eléctricas obligan a que estas realmente adquieran una topología lógica más cercana a la de una red en árbol. En esta topología lógica encontramos los siguientes tipos de nodos:

  • Nodo base: sólo puede haber un nodo base en toda la red, y se identifica con el concentrador terciario. Es en última instancia el encargado de determinar quién tiene acceso a la red, y qué perfiles de seguridad se pueden utilizar. La asociación entre nodos base y nodos de servicio se denomina “registro” en la especificación de PRIME.
  • Nodo de servicio: se identifica con el contador inteligente. Un nodo de servicio, una vez arrancado, escuchará en la red PLC tramas de anuncio (beacons) provenientes del nodo base. Si no recibe ninguna en un tiempo determinado (lo cual es muy común si el contador está muy alejado del concentrador), empezará a advertir de esta situación a toda la red, solicitando que un contador cercano pueda actuar como repetidor entre el contador alejado y el nodo base. Este proceso se denomina “solicitud de promoción”, y requiere de la mediación del nodo base para que pueda llevarse a cabo.
  • Nodo switch: se identifica con un contador inteligente que, por la presencia de contadores lejanos al nodo base, fue promocionado a repetidor, y se encarga de reenviar los paquetes de uno o más contadores de la red al nodo base y viceversa. Los nodos switch pueden ser degradados a nodos de servicio por el concentrador en determinados momentos (por ejemplo, la presencia de demasiados nodos switch en la red).

Enumerando los ataques a los nodos de la red PRIME

Los posibles ataques a los nodos de la red PRIME ya fueron recogidos en el artículo «Cybersecurity Vulnerability Analysis of the PLC PRIME Standard» (DOI: 10.1155/2017/7369684) de la revista Security and Communication Networks, año 2017, por Miguel Seijo Simó, Gregorio López López y José Ignacio Moreno Novella de la Universidad Carlos III de Madrid. Dicho artículo analiza la seguridad de la versión 1.3 del protocolo y propone los siguientes ataques:

1. Inhibición (jamming) en la capa física.

Este es quizá el ataque más básico que se puede hacer contra este protocolo: se inyecta una señal por la línea que interfiera con las tramas PRIME con objeto de impedir la comunicación en la línea.

Existen varias formas de hacer jamming en un canal de comunicaciones. La más simple es mediante la inyección de ruido gaussiano: espectralmente es muy ancho (estando esta anchura únicamente limitada por los filtros de salida del generador de ruido) y requiere muy poco conocimiento sobre la señal a atacar, bastando con una vaga idea sobre la frecuencia en la que trabaja la señal a interferir. Nótese además que los circuitos para generar ruido gaussiano (especialmente con anchos de banda del orden de los empleados en comunicaciones PLC) son extremadamente fáciles de construir: basta con conectar un generador de ruido a un transformador de acoplamiento.

Transformador toroidal

Un transformador toroidal dispuesto alrededor de un cable eléctrico proporciona un mecanismo sencillo para inyectar señales en el cableado eléctrico por acoplamiento inductivo.

Su baja selectividad es al mismo tiempo su talón de Aquiles: la mayor parte de la potencia inyectada en el canal es filtrada por el receptor PLC, aceptando este sólo una pequeña porción de ruido. Además, este tipo de señales se modulan en OFDM y emplean distintos códigos de corrección de errores, por lo que su efectividad se reduce todavía más. Para que este ataque sea realmente efectivo se debe o bien elevar la potencia del ruido (algo que no es siempre posible), o bien concentrar la potencia en una banda de frecuencias reducida en la que se sepa que se encuentra la señal de interés. Esto es lo que se conoce en la literatura como colorear la señal.

La última forma de jamming discutida se conoce como “jamming por correlación”, y requiere conocimiento previo sobre los parámetros de sincronización y modulación de la señal, además de hardware adecuado para poder llevarlo a cabo a tiempo real. En este tipo de ataques se efectúa una sincronización con la trama que está siendo enviada y, desde esa sincronización, se inyectan símbolos aleatorios que la distorsionan de forma irreversible. A pesar de la dificultad técnica de este tipo de ataque, es quizá el más efectivo y óptimo en términos de energía, puesto que esta se invierte casi exclusivamente en alterar la información codificada en la trama.

2. Inhibición (jamming) del protocolo de control de acceso al medio.

PRIME es un protocolo que utiliza CSMA/CA para controlar el acceso al medio y evitar colisiones. En esta técnica de jamming, se utiliza la misma estrategia que CSMA/CA para sondear la ocupación del canal. Sin embargo, cuando se encuentra que una trama está siendo enviada, se fuerza una pequeña colisión en su lugar, obligado a que el emisor retransmita la trama. Forzando esta colisión varias veces, se acaba consiguiendo que el emisor desista y considere la transmisión de la trama como fallida.

3. Flood de solicitudes de promoción.

Esquema de flood de solicitudes de promoción

Una de las particularidades de PRIME es que es capaz de compensar las pérdidas en líneas demasiado alejadas del concentrador usando contadores intermedios como repetidores. Esto se consigue cuando el contador alejado, ante la falta de beacons del concentrador, empieza a solicitar la promoción de un contador cercano (enviando una trama PNPDU). Cada contador cercano que recibe una PNPDU envía al concentrador una solicitud de promoción, el cual evalúa si se debe efectuar tal promoción o no.

Un atacante podría podría aprovechar este comportamiento inyectando multitud de tramas PNPDU con la dirección MAC falseada, amplificando el tráfico en la red al enviarse una solicitud de promoción por cada contador que recibió la PNPDU. El concentrador, por su parte, verá que existen muchos contadores con una conectividad muy pobre, concediendo promociones al resto de contadores legítimos, incrementando la complejidad de la topología lógica de la red, ralentizándola y causando errores.

4. Desbordamiento en el registro de nodos.

Esquema de flood de solicitudes de promoción

Lo primero que debe hacer todo contador para poder interactuar con la red es registrarse en el concentrador (identificándose con su MAC) y obtener un identificador de nodo (NID), único en la red. Este NID es un número de 22 bits, dividido en un identificador de switch (LSID, 8 bits) y un identificador de nodo local, dentro del switch (LNID, 14 bits). Esto implica que en las redes PRIME puede haber hasta 256 switches, con 16384 nodos cada uno.

2120191817161514131211109876543210
LSIDLNID
NID

Cuando un nodo se registra, este puede indicar a través de qué switch lo está haciendo. Este comportamiento podría permitir a un atacante desbordar el LNID para determinado switch enviando múltiples peticiones de registro con distintas direcciones MAC. El comportamiento del concentrador ante esta eventualidad no está contemplado en la especificación de PRIME: puede que empiece a desregistrar los nodos más viejos, que deje de aceptar nuevos registros o, en caso de una pobre implementación del firmware, se produzca un desbordamiento de búfer.

5. Suplantación en el registro de nodos.

Esquema de suplantación en el registro de nodos

Otro aspecto en el que especificación de PRIME no aclara es qué sucede cuando el mismo nodo se intenta registrar dos veces, por lo que el comportamiento depende de la implementación. Pueden suceder, por lo tanto dos cosas:

  1. El concentrador rechaza el registro hasta que este se desregistre (bien explícitamente, bien por timeout).
  2. El concentrador concede un nuevo NID a la MAC.

Ambos comportamientos son atacables: con el primero se podría bloquear el acceso a la red de un determinado contador, registrándose antes que el contador legítimo mientras que con el segundo se podrían desconectar contadores arbitrarios de la red simplemente conociendo su dirección MAC.

6. Desbordamiento del identificador del switch local (LSID)

Llevado el flood de solicitudes de promoción al extremo, se podría conseguir que el concentrador alcanzase el máximo de switches activos en su red (256), a partir del cual podrían suceder dos cosas: o bien el concentrador impide que se promocionen más switches, o bien empieza a degradar los switches más antiguos, dejando secciones enteras de la red sin conexión.

7. Suplantación del nodo base.

Esquema de suplantación del nodo base

Por definición, en una red PRIME sólo puede haber un único nodo base (el concentrador). Si un atacante se anuncia a la red como un nodo base y consigue que otros nodos de servicio se conecten a él, podría realizar medidas de consumido, modificar períodos de facturación o incluso cortar la luz. Nótese que incluso si se tiene el perfil de seguridad PRIME 1, el concentrador malicioso podría solicitar un downgrade al perfil 0, dejando sin efectos el perfil original.

8. Suplantación en los mensajes de degradación / desregistro / desconexión.

Esquema de suplantación en los mensajes de degradación / desregistro / desconexión

En este ataque, el atacante se haría pasar por el nodo base y enviaría distintos mensajes de control a los nodos de servicio con el objetivo de provocar una denegación de servicio. En función del tipo de mensaje podría desconectar una conexión existente, desregistrar el contador entero o, en el caso de que se trate de un switch, desconectarlo junto con todos los contadores conectados a él.

9. Interceptación de tráfico.

Este es el ataque más básico con el que se puede comprometer la privacidad de la red, y además el más difícil de detectar (siendo en principio indetectable). Si las tramas no están debidamente protegidas, un atacante podría obtener datos de consumo de los usuarios simplemente capturando tráfico.

Nótese que aunque se emplee el perfil de seguridad 1, la privacidad de las comunicaciones no está totalmente asegurada. Esto es consecuencia de las limitaciones en la política de claves usadas en PRIME basadas en claves precompartidas. Basta con comprometer las claves de un nodo de servicio para comprometer todas las comunicaciones realizadas entre este y el concentrador.

10. Sobrecarga de CPU por SCRC en perfil 1.

Recogido por completitud, se trata de un ataque que explota los reducidos recursos computacionales de los nodos de la red. En el perfil de seguridad 1, la integridad de las tramas está asegurada por el SCRC (el cual actúa como un código CRC sobre el contenido de la trama antes de ser cifrada). Puesto que para validar el SCRC hay que descifrar primer el contenido de la trama, un atacante podría inundar la red con paquetes grandes y contenido arbitrario, a un coste computacional muy pequeño. Los nodos receptores se verían obligados a efectuar el descifrado de las tramas, saturando su CPU y potencialmente dejando de responder.

11. Reinyección de tráfico.

Por último, en los ataques de reinyección de tráfico, el atacante capturará tramas (cifradas o no) y las retransmitirá intentando provocar el mismo efecto que las tramas originales.

El Talón de Aquiles del perfil 1 de PRIME 1.3

El estándar PRIME 1.3 detalla el procedimiento mediante el cual se derivan las distintas claves utilizadas por el protocolo. Estas claves se generan a partir de distintos valores empleados como semilla (seed) y clave de generación (GK) a partir de una función de derivación (KDF) consistente en un AES-128 en modo ECB:

Esquema de derivación de claves

Detalle de la función de derivación de claves: la clave de generación (GK) que entra por la izquierda se utiliza para cifrar el valor de semilla (Seed) alineado a 128 bits, dando como resultado una nueva clave (en rojo).

Detalle de la función de derivación de claves: la clave de generación (GK) que entra por la izquierda se utiliza para cifrar el valor de semilla (Seed) alineado a 128 bits, dando como resultado una nueva clave (en rojo).

Esta estrategia de derivación de claves se utiliza para generar las claves intermedias DSK (Device Specific Key), KDIV (Key Diversifier), USK (Unique Secret Key), WK0 y WK (Working Keys). Las distintas fases de generación de claves se acoplan como sigue:

Fases de derivación de claves

Fases de la generación de claves: los datos de entrada (naranja) se utilizan para generar claves intermedias (en rojo) aplicando repetidas veces la función de derivación de claves (azul).

Fases de la generación de claves: los datos de entrada (naranja) se utilizan para generar claves intermedias (en rojo) aplicando repetidas veces la función de derivación de claves (azul).

En naranja se detallan todos los datos de entrada que sirven para derivar la clave usada para cifrar el contenido de las tramas (working key, abreviada como WK en la literatura). Aunque de un primer vistazo podría parecer que existen varias fuentes de entropía para el cómputo de esta clave, la mayor parte de ellas no añaden seguridad a la clave:

  • La clave maestra Master Key 1 se administra en el nodo base. Sin embargo, debido a que la Device Specific Key de cada contador es fija (se establece durante la fabricación del contador) y debe poder calcularse vía función de derivación a través de su MAC y esta Master Key 1, se concluye que la Master Key 1 también es fija.
  • La dirección MAC de los dispositivos no se puede cambiar y además es fácilmente obtenible.
  • La semilla aleatoria SEC.RAN definida en los mensajes de registro no se intercambia cifrada.

De esto se concluye que el único material de claves realmente protegido es la Master Key 1 y la Master Key 2, con dos grandes debilidades:

  • La Master Key 1 y 2 se utilizan para derivar claves de absolutamente todos los dispositivos de la red. Comprometer una de estas claves afecta a las comunicaciones de toda la red.
  • Una vez la Master Key 1 haya sido comprometida, cambiarla implica sustituir todos los contadores de la red.

Se concluye por lo tanto que la seguridad de una red PRIME 1.3 se reduce al mantenimiento del secreto de dos únicas claves MK1 y MK2, con la particularidad de que además, si la MK1 se compromete, la única forma de cambiarla es sustituyendo todos los contadores.

Mitigando hasta donde sea posible

La mayor parte de ataques anteriormente mencionados se pueden dificultar elevando el perfil de seguridad en la configuración de PRIME 1.3 y asegurando el cumplimiento de listas blancas de contadores por parte de los concentradores: Limitando qué contadores pueden registrarse o pedir la promoción de un switch en base a su MAC, se limitan la mayor parte de los ataques de flood y overflow.

El perfil 1 de PRIME 1.3 simplemente complica el análisis del tráfico a partir del cifrado del mismo derivando claves a partir de una clave de fábrica inmutable, que el concentrador puede derivar en todo momento a partir de la MAC. Si se compromete este mecanismo de derivación, todas las claves derivadas de todos los contadores usando el perfil 1 estarían inmediatamente comprometidas (esto lo corrige PRIME 1.4 con el perfil 2). Además, dado que ataques como la introducción de nodos base falsos en la red lo dejan sin efecto (ver ataque #7), la única opción viable de seguridad en PRIME es el perfil de seguridad 2, el cual sólo está disponible en la versión 1.4 del protocolo.

Aún así, debe tenerse en cuenta que el protocolo PRIME 1.3 no es muy robusto en términos de seguridad: la autenticación está basada en el conocimiento mutuo de las claves simétricas  de cifrado (estándar PRIME 1.3, líneas 1441-1442) y los ataques de replay podrían ser posibles aún existiendo el SCRC debido a la carencia de NONCEs (PRIME 1.4 mejora la seguridad en este sentido, introduciendo AES-128-CCM en sus tramas, 1691-1698). Tampoco existe seguridad hacia adelante (forward secrecy), por lo que las claves deberían modificarse regularmente para evitar que un contador comprometido sirviese para descifrar todo el tráfico anterior. Y por último, el cifrado es en modo ECB: si las tramas son muy largas, un análisis lo suficientemente grande de tramas podría relevar la presencia de patrones (y por tanto, comprometer la privacidad de las comunicaciones).

El perfil 2  de PRIME 1.4 supone una mejora sustancial respecto del perfil 1. Con todo, debido a que PRIME no deja de ser un protocolo de capa física y enlace, es recomendable complementarlo con seguridad en capa de aplicación para proporcionar los adecuados mecanismos de autorización.

Agradecimientos a Alfonso Muñoz por sus apreciaciones y sugerencias sobre nuestro análisis del mecanismo de derivación de claves de PRIME 1.3.

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

Deja un comentario