Seguridad en BACnet para control de edificios

El pasado día seis de enero publicaba un artículo en el que hablaba de la aplicación y fundamentos sobre BACnet para la gestión y control de edificios. Ahora bien,  hoy hablaremos de Seguridad en BACnet que, a diferencia de otros protocolos, sí dispone de medidas nativas aunque su implementación es opcional. Sí, opcional, con lo que todos sabemos lo que puede llegar a suceder… que no se aplica.

El propósito de la arquitectura es proporcionar autenticación entre dispositivos, origen de los datos y operador, además de confidencialidad e integridad de información.

La seguridad es añadida en forma de mensajes en la capa de red. Por definición, no hay una “capa de seguridad” como tal, pero se refieren a ella de una manera separada de tal manera que pueda ser entendida más fácilmente. Por ello, es que todos los menajes referidos a seguridad son tratados de forma separada, aunque en realidad forman parte de los mensajes a nivel de capa de red del propio protocolo.

BACnet delega en el uso de claves compartidas. Para la autenticación de dispositivos y usuarios, se utilizan tanto mensajes firmados como claves para firma; mientas que para la confidencialidad de datos, claves de cifrado y protección de payload. Se definen un total de 6 tipo de claves, como son:

  1. General-Network-Access, empleados para mensajes de broadcast, túneles de cifrado y  dispositivos con interfaces de usuario que no pueden autenticarlos.
  2. User-Authenticated, al contrario que el anterior, empleado por dispositivos cliente que sí pueden validar usuarios.
  3. Application-Specific, empleada para limitar a ciertos dispositivos intercambiar información de una aplicación concreta.
  4. Installation, usadas para dar acceso a dispotivos de la red BACnet de forma temporal para aquellos usuarios que así lo requieran.
  5. Distribution, para la distribución las claves como, General-Network-Acess, User-Authenticated, Application-Specific e Installation.
  6. Device-Master, Empleada únicamente para la distribución de la clave de Distribución. Es única para cada dispositivo.

El uso de claves para introducir distintos niveles de seguridad, lleva aparejado unas tareas de gestión, mantenimiento y recursos que pueden llegar a ser más o menos complejos dependiendo de cómo queramos proteger los dispositivos, la información y las instalaciones. Esto es, si el nivel de seguridad no es muy alto, o contamos con otros equipos que pueden introducirla de manera externa, la asignación de claves puede hacerse en el momento de la instalación de equipo y luego no cambiar. Pero si esto último es necesario, el protocolo dispone de mecanismos para cambiarlas con mayor o menor frecuencia.

Documento Seguridad en BACnet

En ese sentido, las claves pueden ser distribuidas a todos los dispositivos por un servidor de claves denominado “BACnet Key Server”. Las relativas a “General-Network-Access”, “User-Authenticated”, “Application-Specific” e “Installation” son reunidas y enviadas de forma conjunta a los distintos dispositivos junto con lo que se denomina “revisión number” por medio de la “Distribution-Key”. Cada dispositivo BACnet dispone de fábrica (o debería) de una clave maestra de dispositivo llamada “Device-Master” o contar con un proceso de asignación de una. Luego, el servidor de claves empleará ésta para crear la de distribución, “Distribution-Key”, y a partir de ahí hacer llegar el resto. El tratamiento de esta clave es distinto de las otras ya que se considera que cambia con menos frecuencia.

Cuando un dispositivo necesita mandar información de forma segura, se genera un nuevo tipo de mensaje en el que se introduce la información original dentro del payload “seguro”. El nivel más básico que se le da es la firma mediante HMAC (keyed-hash message authentication algorithm) mediante MD5 o SHA-256. Aparte, se indican tanto el origen y destino de las instancias de los dispositivos, identificador de mensaje y una marca horaria.

En otro orden, BACnet define dos tipos de redes red dependiendo de las medidas de seguridad aplicadas. Las define como “Trusted” donde se aplica seguridad física o mediante el uso de firmas o cifrado; o “Non-Trusted” en la que no se aplica ninguna de las anteriores.

Aquellos mensajes que no poseen ninguna medida de seguridad, se definen como “plain”, por tanto, podemos decir que pueden darse cuatro posibles tipos de estrategia o políticas de seguridad dentro de una red BACnet.

  1. Plain-trusted, seguridad física pero no se utiliza ningún protcolo.
  2. Signed-trusted, no se require seguridad física pero ésta se aplica mediante la firma de mensajes.
  3. Encrypted-trusted, no se requiere seguridad física, pero se consigue mediante el cifrado de mensajes.
  4. Plain-non-trusted, ninguna de las anteriores, ni física, ni firma ni cifrado de menajes.

Además de lo anterior, existe la posibilidad de determinar seguridad a nivel de dispositivo. Por ejemplo, aquellos equipos ubicados en redes “Plain-non-trusted” (no seguras). Al hablar de política a nivel de red, todos los dispositivos incluidos en ella deben ser configurados de la misma manera. Todos los dispositivos son configurados con una política de seguridad base que determina el nivel mínimo de seguridad para el envío y recibo de mensajes. Esta política podría ser mayor que la definida para la red BACNet, pero no menor.

También se permite establecer túneles cifrados entre dispotivos capaces de llevar a cabo esta tarea.

Con la integración de sistemas de Control y Automatización en redes tanto Ethernet como IP aparecen múltiples beneficios, pero también ciertas obligaciones. Los equipos comienzan a estar expuestos y por tanto, resulta necesario implementar ciertas medidas de seguridad. Cobra especial importancia cuando este protocolo es utilizado para los usos referidos al principio, esto es, sistemas de refrigeración, antincendios, elevadores, cámaras de circuito cerrado, entre otras. Algo que no es exclusivo de edificios de viviendas, también en fábricas o instalaciones industriales. No hablo sólo de las oficinas en ellas ubicadas sino en la propia planta. Por ejemplo, montacargas para trasladar maquinaria, piezas o cualquier otro elemento; sistemas de climatización para mantener temperaturas constantes; sistemas de ventilación para la extracción de gases; equipos contra incendios; etc.

BACnet aporta ciertas medidas para mitigar o reducir el riego de sufrir un incidente pero, aparte de ser configuradas, revisadas y actualizadas; deben ser implementadas. Pero aún y así pueden no ser efectivas contra ciertos ataques, ya que el tipo de instalaciones donde se emplea este protocolo, es necesario apoyarse en otras como pueden la seguridad física o el acceso remoto por medio de VPNs.

Un saludo a todos, nos vemos en la siguiente y no te olvides que puedes seguirnos también en @enredandoconred .

Un saludo, nos vemos en la próxima.

BACnet, fundamentos de un protocolo para la gestión de edificios

A menudo nos centramos en materia de Ciberseguridad haciendo referencia a aquellos equipos y sistemas que intervienen en los procesos productivos o entornos de control y automatización. Sin embargo, las fábricas no sólo son PLCs, HMIs, Workstations, sensores u actuadores. Dependiendo de la actividad y el tamaño, cuentan con otros elementos que también contribuyen a que se garantice la disponibilidad de la que tanto hemos hablado. Me refiero a sistemas de refrigeración, extinción de fuegos, climatización, montacargas, etc. los cuales pueden ser gestionados por medio del protocolo BACnet.

Habitualmente los vemos referenciados en los denominados “Edificios Inteligentes”, sin embargo, su uso ni es exclusivo de ellos ni es algo relativamente nuevo. La gestión de edificios viene dada por las siglas BMS, Building Management System debiéndose distinguir, entre edificios de viviendas o edificios industriales. En general, los sistemas BMS integran un conjunto de subsistemas encargados de los sistemas de control de iluminación, antincendios, alarmas, elevadores, ventilación, temperatura, etc. Si bien muchos de ellos son comunes a ambos entornos no podemos decir que son similares ya que las aplicaciones y alcance son distintos.

Ahora bien, al igual que PLCs, HMIs, y demás dispositivos, estos sistemas han de comunicarse entre sí para su propio funcionamiento y gestión. En este sentido, uno de los protocolos empleados es BACnet, Buiding Automation Control Network. Desarrollado en 1987, ha sido un ANSI e ISO estándar desde 1995 y 2003, respectivamente. Aunque su mantenimiento es continuo, el propósito de BACnet es proporcionar interoperabilidad entre sistemas y dispositivos en aplicaciones de control y automatización de edificios, mediante un protocolo de comunicaciones estándar.

Al igual que muchos otros, cada dispositivo BACNet es una combinación de hardware y software, encontrándolo como norma general en forma de controlador, pasarela o interfaz de usuario. Cada uno de ellos dispone de un identificador o número de instancia único que lo identifica y diferencia de los existentes en la red aparte de otros con información relativa a las entradas y salidas que  monitoriza y controla.

Dentro de BACnet podemos encontrar 3 conceptos claramente diferenciados, Objetos, Propiedades y Servicios.

Toda la información contenida dentro de un dispositivo BACnet es ordenada como objetos, el cual le convierte en un protocolo orientado justamente a esto mismo, a objetos. Cada Objeto” representa un componente del propio dispositivo o un conjunto de información que puede ser solicitada por otro a través de medios como Ethernet, IP, RS-485, etc.

El protocolo define un total de 54 tipos de objetos para los usos más comunes cubriendo así la mayoría de las necesidades. Sin embargo, da la posibilidad de crear otros nuevos para no interferir sobre aquellos usos más concretos o aplicaciones propietarias.

La imagen muestra la arquitectura e interoperabilidad entre los distintos elementos que definen el funcionamiento del protocolo para la gestión y automatización de edificios BACnet.

Arquitectura e inteoperabilidad en BACnet

 

Cada objeto tiene un identificador de 32 bits el cual contiene un código para el tipo de objeto y el número de instancia de dicho objeto.

Con independencia del propósito o función, cada “Objeto” posee un conjunto de “Propiedades”. Cada una de ellas contendrá dos partes, un identificador y un valor. El identificador son números que la definen de forma única en el ámbito del tipo de objeto; y el valor, la magnitud del mismo. Luego, dicha información podrá ser tanto de lectura como de y escritura.

Si unificamos ambos conceptos, podemos decir que cada “Objeto” incluyen “Propiedades” que determinan sus capacidades, operación e información asociada.

Como hemos dicho anteriormente los dispositivos interactúan entre sí para su operación. Cuando un equipo se comunica con otro para llevar a cabo una determinada acción, lo hace a través de los denominados “Servicios”. Los servicios son agrupados en 5 categorías según su funcionalidad:

  1. Object access (lectura, escritura, creación, borrado)
  2. Device management (descubrimiento, sincronización horaria, inicialización, copia de respaldo y restauración)
  3. Alarm and event (alarmas y cambios de estado)
  4. File transfer (Tendencia de datos y cambio de programa)
  5. Virtual terminal (interfaz hombre-máquina por medio de menús o similar)

Cada dispositivo envía las peticiones empleando mensajes convenientemente estructurados tanto en la pregunta como en la respuesta. Los mensajes son codificados en un stream numérico definiendo las funciones que deben llevarse a cabo.

Para que dichos mensajes puedan enviarse y recibirse, se establecen varios medios de transporte, los cuales se citan a continuación:

  1. BACnet/IP
  2. BACnet ISO 802-3 (Ethernet)
  3. BACnet MS/TP (Master-Slave/Token Passing)
  4. BACnet over ARCNET
  5. BACnet Point-to-Point (EIA-232 and Telephone)
  6. BACnet over LonTalk Foreign Frames
  7. BACnet over ZigBee

Cada uno de ellos son una combinación de capas Físicas y Enlace de Datos. Sin embargo, el mensaje BACnet es independiente del medio empleado pudiendo existir a su vez pasarelas referenciadas como “Routers” que puedan combinar cada uno de los medios. No obstante, serán los dos primeros los que reclaman más nuestra atención ya que proporcionan integración con redes tradicionales.

BACnet/IP proporciona conectividad a nivel de capa 3 pudiendo ser los equipos accesibles desde distintas redes IP. Cuando este medio es empleado con múltiples subredes, es necesario el uso de una funcionalidad especial denominada BBMD, Broadcast (Management Devices), equipo empleado para administrar los mensajes broadcast entre subredes. Éste recoge dichos mensajes y los redistribuye a otro BBMD ubicado en otra red mediante mensajes unicast.

Mientras que, BACnet ISO 802.3, similar al anterior, pero limitando las comunicaciones a nivel de capa 2.

Ahora bien, teniendo en cuenta los conceptos acerca de dispositivos, objetos propiedades, servicios y la forma en la que transmitir los mensajes, BACnet proporciona capacidades funcionales las cuales son denominadas como “Interoperability Areas”.  Existen un total de 5:

  1. Data Sharing, intercambio de información entre dispositivos. Lo mensajes pueden ser priorizados en función de su propiedad, además de ser de lectura o lectura/escritura.
  2. Trending, visualización de los valores recogidos y graficados para determinar tendencias.
  3. Scheduling, programación de tareas a ejecutar en momentos o intervalos concretos.
  4. Alarm & Event Management, intercambio de información relativo a alarmas o eventos.
  5. Device & Network Management, permite el descubrimiento de dispositivos, objetos dentro de ellos, establecimiento y reconexión en caso de caída de comunicación, sincronización horaria y reinicio.

Estas áreas están definidas dentro de BACnet como BIBB, “BACnet Interoperability Blocks”.

Puesto que BACnet es un estándar, los distintos fabricantes de equipos deben garantizar que sus productos soportan ciertos requisitos para poder operar unos con otros. Para ello, deben cumplir con lo definido en lo que se denomina “Protocol and Implementation and Conformance Statement”, PICS; una ficha técnica con distinta información y entre ella, los distintos BIBB soportados para que puedan ser comparados y garantizar su funcionamiento.

Es importarte resaltar que los mensajes pueden ser dotados de una “Prioridad” dependiendo el tipo de mensaje y la información que transporta. Se definen un total de 16, siendo las dos primeras relativas a cuestiones de “Safety”, “Manual Life-Safety” y “Automatic Life-Safety”.

Hasta aquí la presentación de los conceptos básicos de BACnet. Un protocolo con unas características específicas para entornos concretos. Como decía, es importante remarcar que su uso puede no estar necesariamente asociado a edificios de viviendas sino también a entornos industriales. Éstos también disponen de sistemas de refrigeración, sensores de humos, montacargas, etc. dependiendo, claro está, del tamaño y la actividad. Podrán almacenar productos químicos que deban ser almacenados bajo unas condiciones de temperatura determinada; entornos donde la calidad del aire deba ser única debiendo accionarse los sistemas de ventilación bajo unas circunstancias concretas; controlar la iluminación de un pabellón en distintas franjas horarias, entre otras muchas. ¿Alguien se imagina los efectos que pudiera tener si algo o alguien, pudiese alterar a las dos de la madrugada la iluminación de parte o toda una nave de producción y los operarios no pudiesen trabajar? Y peor aún, cómo o porqué se genera esa situación si no se puede acotar la causa que lo origina. No estamos hablando de un hecho con unas consecuencias graves, pero sí con impacto sobre la actividad de la propia empresa.

Un saludo a todos, nos vemos en la siguiente y no te olvides que puedes seguirnos también en @enredandoconred .