La evolución del software en los sistemas de control industrial

Publicado el 23/07/2015, por INCIBE
La evolución del software en los sistemas de control industrial

El desarrollo tecnológico sufrido a lo largo del tiempo no ha dejado indiferente al sector industrial. Éste ha evolucionado tanto en aspectos hardware como en aspectos software y en comunicaciones, proporcionando a los sectores de la industria un mayor soporte y facilitando la producción dentro de las empresas.

En este artículo, nos centraremos en la evolución de las características del software dentro de los sistemas de control industrial.

 evolucion_soft

- Evolución Software -

Comenzaremos este viaje a lo largo del tiempo con los Sistemas Operativos. En el caso de los entornos industriales, se mantiene la necesidad de que los sistemas operativos sean de tiempo real, dependiendo del proceso a controlar. Por lo general, los sistemas operativos de tiempo real suelen tener una arquitectura similar a la de los convencionales, pero la diferencia radica en que en el caso de los sistemas de tiempo real se proporciona mayor prioridad a los elementos de control y procesamiento que son utilizados para ejecutar procesos o tareas, asegurándose así que cumplen con sus funciones en un tiempo acotado.

Entre las características que poseen los sistemas operativos de tiempo real destacan:

  • Capacidad para priorizar las tareas.
  • Comportamiento temporal conocido.
  • Proporciona comunicación y sincronización entre tareas.
  • Multitarea.
  • Mecanismos para evitar la inversión de prioridades.

Las mejoras añadidas dentro los sistemas operativos han sido notables con respecto a su arquitectura, pasando de soportar 8 bits a 16bits o 32bits y posteriormente evolucionar a arquitecturas de 64bits, con las ventajas y desventajas de seguridad que esto conlleva.

Un sistema operativo de 64 bits, al poder usar mucha más memoria, pueden usar técnicas que dificultan los ataques de los virus. Además gran parte de los virus existentes afectan a sistemas de 32 bits y no funcionan en sistemas de 64 bits. Estos cambios van ligados a la versión y al desarrollador del sistema operativo, ya que no en todo sistema operativo se han producido las mismas evoluciones.

Entre otras muchas mejoras, podemos encontrar la posibilidad de usar cifrado en el disco duro, con herramientas como bitlocker; deshabilitar el autoarranque por parte de dispositivos USB utilizados por los empleados dentro de la organización para que estos no cometan imprudencias a la hora de realizar un mantenimiento u otra tarea en máquinas físicas (BYOD), requerimiento de contraseñas robustas por defecto para usuarios o administradores y también encontraremos cortafuegos activados por defecto.

En el caso del sistema operativo embebido Linux, se ha incrementado considerablemente su uso en el mercado. Gracias a su sencillez, en muchas ocasiones sólo es necesaria su instalación y alguna configuración mínima en sus procesos, podríamos lograr resultados de manera inmediata. Por otro lado, tenemos los servicios básicos dentro de un sistema de control industrial.

Con el paso del tiempo, la forma de registrar la información de interés ha ido cambiando de prácticamente no recoger ningún evento generado por los dispositivos, a tener un sistema de registros centralizado gracias al cual poder analizar la información en base a nuestras necesidades. Esta información no sólo será procesada en un entorno local sino que podremos disponer de los informes también en remoto.

En la primera generación de dispositivos de control no se registraba ningún tipo de actividad. Posteriormente, en la siguiente generación, ya se podían observar cambios con respecto a estas medidas, ya que los dispositivos podían generar logs relacionados con el mantenimiento del mismo (uso de CPU, temperatura, cambio de ciertas variables, etc.). La evolución más notable se produce en la siguiente generación, gracias a la concienciación en seguridad. Este hecho hizo que los dispositivos comenzasen a registrar diversos eventos relacionados con la seguridad (accesos de usuario, cambios en ciertas configuraciones, etc.), pero los eventos registrados seguían siendo escasos.

La última evolución surge con los dispositivos de última generación, donde ya existen registros de eventos que recogen todo tipo de acciones que pueden ser importantes desde el punto de vista de la seguridad, además, también se separan los diferentes eventos en ficheros dependiendo si hacen referencia a la seguridad, al mantenimiento, etc.La última evolución surge con los dispositivos de última generación, donde ya existen registros de eventos que recogen todo tipo de acciones que pueden ser importantes desde el punto de vista de la seguridad, además, también se separan los diferentes eventos en ficheros dependiendo si hacen referencia a la seguridad, al mantenimiento, etc.

La forma de almacenar los diferentes eventos en fichero dentro de un dispositivo de control también ha cambiado con el paso del tiempo. Así, los primeros eventos generados por los dispositivos, se recogían en ficheros de tamaño fijo, que, una vez excedido, no almacenaban más información. Esto se definió de esta manera para evitar que se llenara el escaso almacenamiento.

Como con esta medida se perdían muchos datos y sobre todo los últimos antes de un posible incidente, se comenzó a realizar una rotación de ficheros, de forma que se sobrescriben los datos una vez alcanzado el tamaño máximo del fichero. Ambos tipos de funcionamiento pierden información si no se monitorizan continuamente los datos almacenados. Los nuevos dispositivos de control poseen características avanzadas de comunicación y permiten, además de ficheros más grandes al haberse eliminado la limitación del espacio de almacenamiento, el envío de los mensajes a través de sistemas tipo Syslog, lo que permite disponer de los registros de eventos de los dispositivos en un repositorio centralizado.

En la actualidad no sólo se desarrollan aplicaciones que se ejecuten en los ordenadores, sino que con las nuevas tecnologías, ya existen aplicaciones móviles para la revisión de mediciones e incluso para realizar cambios en el sistema.

Un ejemplo de esta evolución y donde podemos identificar claramente cómo se está produciendo este desarrollo se ve reflejado en el caso de los HMI, donde sus gráficos han evolucionado a un concepto más minimalistas, con las siguientes características:

  • Simplificando los entornos gráficos.
  • Eliminando los destellos y parpadeos que funcionaban como indicadores en el caso de producirse eventos en el sistema.
  • Sin multitud de colores, básicamente se utilizan dos, uno para saber que el proceso realiza los eventos de forma correcta y otro para detectar errores y fallos.
  • Mostrando sólo los parámetros necesarios para que el operario pueda realizar una lectura rápida sin distracciones.

evolucion_HMI

- Evolución HMI -

 La forma de desarrollar el software también ha cambiado, pudiendo encontrar software libre destinado a sistemas de control industrial o una mezcla entre software libre y software propietario del que no se conocen los detalles. Encontrar software libre en sistemas de control industrial hace unos años era algo impensable y, haciendo una rápida revisión del estado del software libre en estos sistemas, podemos darnos cuenta que hay mucho por hacer pero poco a poco nos encontramos controladores de proceso tipo DCS (Distributed Control System) o sistemas SCADA basados en software libre.

Por otro lado, el mercado industrial no se encuentra ajeno a la evolución tecnológica actual. Con la llegada del Internet de las Cosas (IoT, Internet of Things) se abre un abanico de oportunidades para los que buscan soluciones en la nube. El almacenamiento en la nube permite registrar los procesos de los entornos industriales y enviar información mediante aplicaciones a los dispositivos móviles, que disponen de aplicaciones específicas para estos entornos (los principales desarrollos se han realizado para sistemas Android). Con la aparición de las aplicaciones para dispositivos móviles, se abre otro camino de expansión para empresas de desarrollo software en entornos industriales y una vía de exposición a ciberataques.

Dentro de la programación en los dispositivos de control industrial, también se han notado ciertos cambios, evolucionando hacia una la programación que podemos observar en el mundo TI y que facilitará algunas tareas a los programadores de entornos industriales. La programación ha evolucionado desde la lógica en escalera (ladder logic) hacia sistemas de alto nivel basado en texto estructurado y programación orientada a objetos. Por el camino se ha trabajado también con lenguajes basados en bloques de funciones o en listas de instrucciones, asemejándose a evolución sufrida en los lenguajes de programación del entorno TI. Los principales lenguajes de programación de los dispositivos de los sistemas de control se recogen en el estándar IEC 61131-1.

evolucion_lenguaje

- Evolución de los lenguajes de programación en entornos industriales -

Con todas estas evoluciones que afectan al software, es muy recomendable que las empresas den un mayor peso a la ciberseguridad dentro de los proyectos que desarrollan. Por otro lado, las recomendaciones recogidas en guías de buenas prácticas tanto para el proceso de desarrollo de aplicaciones o programas para dispositivos en concreto, como para el uso de ciertos softwares que han de pasar unas pruebas de seguridad, verificando así su robustez y funcionamiento correctos, serán de gran importancia y ayuda.