Sistemas operativos fósiles o la falta de actualización de los sistemas de control industrial

Esta mañana he venido a trabajar en metro, como acostumbro a hacer. Cuando he pasado junto a la fila de máquinas expendedoras de billetes he visto que una de ellas estaba bloqueada y en pantalla aparecía una ventana de error con una imagen fija que identificaba el sistema operativo de la misma: Windows 2000.

Este hecho, tan simple, nos sirve para ilustrar una de las características que diferencian los sistemas TIC de los sistemas de control industrial. Efectivamente, los PC de control y supervisión suelen tener el sistema operativo de uso corriente en el momento en que se implantó el sistema/instalación. Y suele permanecer así para siempre. Es más, en general ni siquiera se instalan las distintas actualizaciones distribuidas periódicamente por el desarrollador.

Esto tiene distintas causas. Algunas de ellas son las siguientes:

1. Porque los responsables de estos equipos son gente de producción y no tienen los medios ni los conocimientos para responsabilizarse de mantener estos sistemas actualizados.

2. Porque la programación de los sistemas industriales requiere de un perfil de personal que, en general, no está disponible en la empresa (hay que contratar a terceros). Por esta misma razón ocurre a veces que hay elementos, alarmas, etc. de los programas de supervisión que han quedado obsoletos y aún así no se eliminan de las interfaces gráficas.

3. Porque el sector es muy conservador y poco dado a modificar cosas que, en principio, funcionan.

4. Porque el software es un desarrollo específico y ya no existe servicio técnico por parte del proveedor/desarrollador/integrador. Esto puede parecer raro, pero teniendo en cuenta la vida de los equipos industriales, medida en lustros, no es nada raro que uno se encuentre con que al cabo de los años no tiene a quién llamar.

5. Porque actualizar el sistema operativo puede requerir actualizar el software de supervisión, lo que requiere el trabajo de especialistas externos, lo que supone un coste, lo que no vamos a hacer ya que todo funciona y no se ve la necesidad.

6. Porque existe la percepción de que una actualización sirve para arreglar cosas que el proveedor del sistema operativo no hizo bien a la primera (pero que afectan a otros, ya que a mí ‘me funciona todo bien’, por lo que no veo la necesidad de actualizar nada).

7. Porque se tiene la percepción de que las cosas viejas están puestas a prueba durante más tiempo y son fiables, mientras que las nuevas no (por eso los informáticos tienen que estar continuamente haciendo parches). Fíjense en las connotaciones negativas asociadas a la palabra parche, que independientemente de su significado específico en la jerga de una profesión es, para el resto de hablantes, sinónimo de ‘arreglo chapucero con lo que tenía a mano para ir tirando’.

8. Porque hay miedo de que el software deje de funcionar si se actualiza el sistema operativo (y no es un temor injustificado). En un proceso industrial en producción no hay líneas de reserva (por lo general) y un fallo en el sistema de control implica una parada del proceso, pérdidas de trabajo en curso y tiempos de indisponibilidad cuyo coste es fácilmente evaluable en términos de lucro cesante. Por no hablar del riesgo sobre vidas humanas. En aquellos casos en los que existe una estación de ingeniería o un servidor SCADA de respaldo en los que es posible probar los efectos de modificar el SO o el programa, las razones de la no actualización hay que buscarlas en otros puntos de este listado.

Este es un hecho con el que los expertos en seguridad deben familiarizarse. Cualquier estrategia debe tener en cuenta que uno no se va a enfrentar a los mismos problemas que existen en los sistemas TIC. Y que puede que técnicas y herramientas perfectamente válidos en estos no lo sean en un sistema industrial. También nos sirve como recordatorio de la extrema vulnerabilidad de los sistemas industriales, expuestos a morir de enfermedades superadas hace tiempo en otros lugares.

Vamos, de un constipado.

Comments

  1. Viene a mi memoria una recomendación de un profesor de los últimos cursos de la carrera formulada a modo de máxima ingenieril: “Nunca toquéis una máquina que funciona.” :)

  2. No había caído nunca en las connotaciones que tienen para el resto de los mortales la palabra parche… cuanto menos curioso!

  3. El lenguaje es fundamental, Adrián. Sirve por igual para unir y para separar. Por eso hay que tener cuidado con la jerga profesional cuando se habla con gente de otros sectores. Nunca sabes lo que están entendiendo…

  4. Ya lo decía el bueno de Wittgenstein en el Tractatus; cada persona tiene un mundo que le viene conformado por el lenguaje.

  5. Se te ha olvidado “Porque están a millones de Kilómetros”. Fuera de coña la Sonda Viking funciona con MS-DOS… perdona la frivolidad, pero es verdad ese chisme a salido del Sistema Solar con un procesado que no creo que fuera 386. De todas formas tienes bastante razón en el artículo. Gracias

  6. Hola Akileos: pues sí. Yo soy ingeniero industrial y culturalmente estoy del lado de la robustez, los sistemas probados y el ‘mejor no tocarlo’. El problema es que eso está empezando a suponer un nuevo tipo de riesgo que no puede ignorarse por más tiempo.

    Saludos

  7. Depende el sistema, quizá el firmaware del microondas sea “perfecto” para la función que cumple y es bastante posible que si lo sea.
    El SO que maneja un barco mercante está más allá que el del microondas, quizá esté en manos de un sistema en tpo real con decenas de certificaciones a cuestas, y qué tal el SO del procesador de un misil de guerra, piensan que requiere un update que perfeccione el funcionamiento ? (no hablo de agregar funciones). Lo anterior para dibujar escenarios donde la lógica de control debe estar muy pero muy pulida y dificilmente sea necesario un update. Quizá hasta se simularon todos los casos posibles cientos o miles de veces. Finalmente una lógica de control es una máquina de estados.
    Lo que es vergonzoso es un cajero atm con windows.

  8. El problema surge cuando esos sistemas, que efectivamente están probados y tienen la funcionalidad requerida, entran en contacto con el exterior por el medio que sea. En ese momento el hecho de tener vulnerabilidades no corregidas supone un riesgo en ocasiones inasumible (y del que no se suele ser consciente)

    Saludos