La caja de pandora
El gusano Stuxnet fue la primera muestra de arma cibernética cuyo uso llegó al conocimiento del gran público. Los autores de Stuxnet abrieron la caja de Pandora, mostrando a todo el mundo cuan efectivos pueden ser los ataques contra las unidades vitales de infraestructura industrial. Ahora, hasta un estudiante de primaria puede imaginar las consecuencias de un ataque destructivo contra la infraestructura energética, industrial o financiera.
Después del descubrimiento de Stuxnet, se encontraron también otros programas similares: Duqu, Flame y Gauss. Todos estos programas tienen algunos rasgos en común, pero sus objetivos, funcionalidades y fecha de creación son diferentes. Por desgracia, estos no son los únicos ejemplares conocidos de programas ciberespías y de ciber sabotaje. Las armas cibernéticas se han convertido en una triste realidad y han pasado a formar parte del arsenal de algunos países. Si antes los países, para defender sus intereses geopolíticos, hacían uso de medios diplomáticos, económicos y militares, ahora para realizar determinadas tareas, en vez de aviones, misiles, tanques o navíos pueden usar programas maliciosos especialmente diseñados. Su uso, en caso de que el ataque tenga éxito, permite lograr los mismos resultados, pero de una forma mucho más barata, silenciosa y anónima. El reciente caso de Wiper ha confirmado una vez más la efectividad de este método.
Las potencias mundiales ya están discutiendo abiertamente la necesidad de una protección contra los actos hostiles del enemigo en el espacio cibernético y también los planes de aumentar su capacidad informática. Esto genera una reacción en cadena y fuerza a los demás países a formar equipos de programadores y hackers de alta cualificación para crear sistemas cibernéticos especializados, tanto para la defensa, como para el ataque. La carrera armamentista cibernética está en recrudecimiento.
Hoy en día podemos decir que para conservar su soberanía, un país no sólo debe hacer respetar sus intereses socioeconómicos y políticos, sino también cuidar escrupulosamente su espacio informático. Y una de las tareas de primer plano es controlar los sistemas informáticos de importancia crítica para el estado.
Anatomía del ataque
Los blancos más peligrosos para los ataques cibernéticos son, en primer lugar, los Sistemas informáticos de infraestructuras críticas que controlan las unidades de importancia clave. El que estas unidades queden fuera de servicio, puede crear caos y catástrofes. Nuestras vidas dependen de una forma u otra de estos sistemas. Estos traen calefacción a nuestros hogares, abastecen el agua y la electricidad, brindan la señal de radio, dirigen el tráfico de vehículos, controlan la extracción de recursos y los procesos de producción en las fábricas y factorías.
Aparte de las unidades industriales, existe una gran cantidad de organizaciones para las cuales el acceso no autorizado a la información puede convertirse en un serio problema: bancos, instituciones médicas y militares, centros de investigación científica y empresas. Estas organizaciones también pueden convertirse en blanco de ataques cibernéticos, pero en este artículo nos referiremos sólo a la protección de las instalaciones industriales.
En los Sistemas informáticos de infraestructuras críticas, para controlar las instalaciones se usan aplicaciones, que por desgracia no están libres de errores y vulnerabilidades. Según una investigación de la Universidad Carnegie Mellon, el promedio de errores en el software militar e industrial es de cinco a diez errores por cada 1000 líneas de código. El estudio supone las aplicaciones ya en uso y que ya ha pasado las etapas de prueba e implementación. Tomando en cuenta que el núcleo del sistema operativo Windows contiene 5 millones de líneas de código y el núcleo de Linux 3,5 millones, no es difícil calcular la cantidad de vulnerabilidades teóricamente posibles que pueden ser aprovechadas para lanzar ataques cibernéticos.
Para que el ataque cibernético sea efectivo, es necesario que el enemigo tenga la comprensión completa de la estructura interna de la instalación a atacar. Por esta razón, los ataques suelen constar de varias etapas.
En la primera etapa -de exploración- se recopila información sobre la topología interna de la red, los equipos y aplicaciones utilizadas, porque al enemigo le interesan sus detalles y características. En esta etapa, no suelen lanzarse ataques contra los blancos principales, sino contra las compañías subsidiarias encargadas de la automatización (integradores de sistemas) ya que éstas, por lo general, tienen una actitud menos responsable ante la seguridad informática, pero al mismo tiempo manejan datos valiosos. Además, estas compañías pueden tener acceso autorizado a la red tecnológica del destino del ataque final, que el enemigo puede utilizar en las posteriores etapas del ataque. En la etapa de recopilación de información también se pueden lanzar ataques contra compañías de servicio, socios de negocio, proveedores de equipos, etc.
En la segunda etapa se usa la información recolectada para hacer un análisis minucioso y se elige el vector de ataque más efectivo. Una vez encontrado, se determina qué vulnerabilidades del software hay que utilizar para penetrar el sistema y qué funcionalidades debe tener el código malicioso para alcanzar el objetivo necesario. A continuación se desarrolla un programa malicioso con las “municiones cibernéticas” necesarias.
Después, si es posible, se compran aplicaciones y equipos similares a los atacados para hacer prebas reales de los programas maliciosos.
Y al fin, se busca la forma de infiltrar el software malicioso en las instalaciones atacadas. Aquí, el espectro de posibilidades va desde métodos relativamente simples de ingeniería social hasta formas ultratecnológicas de penetrar en los canales de comunicación. Como se vio en el caso del ataque contra el sistema de cifrado MD5, si existe el deseo, la constancia y se tienen los recursos informáticos suficientes, se pueden lograr muchas cosas.
Peculiaridades de los Sistemas de Control Industrial
En el campo de la seguridad de los sistemas clave de infraestructura informática hay dos gravísimos problemas. Se trata de los defectos de los modelos de seguridad desarrollados para los sistemas industriales y de los defectos de los entornos en los que se ejecutan estos modelos.
Hasta hace poco, durante la creación de modelos de seguridad informática para instalaciones industriales de importancia vital, se creía que el aislamiento físico de la instalación era suficiente para protegerla. Como regla, el modelo de seguridad de estas instalaciones se basa en los principios de “security by obscurity” (seguridad por oscuridad) y “air gap” (aislamiento físico). Sin embargo, el incidente de Stuxnet mostró que estos principios ya no funcionan, y que este enfoque de seguridad es irremediablemente obsoleto.
En las instalaciones industriales, los Sistemas informáticos de infraestructuras críticas son los sistemas automatizados de control industrial y los sistemas de protección contra averías. La seguridad absoluta de las instalaciones industriales depende del correcto y estable funcionamiento de estos sistemas.
Los Sistemas informáticos de infraestructuras críticas se caracterizan por la heterogeneidad de sus aplicaciones y hardware. Una red industrial típica suele constar de servidores SCADA bajo Windows o Linux, servidores de sistemas de gestión de bases de datos (SQL Server u Oracle), un conjunto de controladores lógicos programables (PLC) de diferentes marcas, paneles de operador (HMI), sensores intelectuales y un canal de comunicación con sistemas ERP. Al mismo tiempo, según los resultados de las últimas investigaciones de DHS, cada red tecnológica tiene un promedio de 11 (!) puntos de conexión directa con la red corporativa.
Las características de los Sistemas informáticos de infraestructuras críticas están condicionadas por muchos factores, como la experiencia de los especialistas del integrador de sistemas encargado de su implementación, su noción de la racionalidad económica de los métodos de defensa, las tendencias actuales en el campo de la automatización y muchas cosas más.
En la aplastante mayoría de los casos la protección de los sistemas clave de infraestructura informática no es una prioridad en el proyecto del integrador de sistemas. Por supuesto, estos complejos de software y hardware se someten a certificación, pero que por lo general se reduce a una serie de procedimientos burocráticos.
El problema de las vulnerabilidades
Al hacer una apreciación de las vulnerabilidades de los Sistemas informáticos de infraestructuras críticas, es necesario tener en cuenta su tiempo de explotación, que es de decenas de años. Y que hasta mediados de los años 2000 ni siquiera existía el término de “vulnerabilidad de aplicaciones” y que los problemas de seguridad simplemente no se consideraban durante la fabricación de estos sistemas. La mayor parte de los sistemas de control de procesos tecnológicos industriales que funcionan en el presente fueron creados sin tomar en consideración la posibilidad de ataques cibernéticos. Por ejemplo, la mayoría de los protocolos de intercambio de datos usados por SCADA y PLC no contemplan ningún tipo de autentificación y autorización. Esto hace que cualquier aparato que se conecta a la red tecnológica sea capaz de recibir y enviar instrucciones de control a cualquier otro dispositivo.
Otro problema serio es que debido al largo ciclo de vida de los Sistemas informáticos de infraestructuras críticas, la documentación normativa prohíbe la actualización e instalación de nuevo software en el sistema, o supone grandes dificultades administrativas y tecnológicas. Durante muchos años los Sistemas informáticos de infraestructuras críticas prácticamente no publicaron actualizaciones de software. Al mismo tiempo, es de dominio público una gran cantidad de información sobre las vulnerabilidades de los controladores y los sistemas SCADA, las vulnerabilidades de los sistemas operativos, las bases de datos e incluso de los sensores inteligentes.
Tampoco contribuyen a mejorar la situación de la seguridad cibernética las compañías que producen SCADA y PLC. El archivo de noticias de ICS-CERT es una prueba tangible de que los fabricantes no prestan la atención debida a sus soluciones, tanto de software como de hardware. Los nombres de usuarios y contraseñas predeterminados grabados en los PLC, las llaves SSH y SSL, la posibilidad de hacer ataques mediante desbordamiento del buffer, la posibilidad de sustituir componentes del sistema por otros maliciosos y la realización de ataques DoS y XSS son las vulnerabilidades descubiertas con más frecuencia.
Además, la mayoría de los vendedores incluyen medios de administración remota en sus complejos software-hardware, pero delegan su configuración a los integradores. Por su parte, los integradores pueden prestar poca importancia a estas configuraciones y como resultado los Sistemas informáticos de infraestructuras críticas con frecuencia están expuestos a Internet con el nombre de usuario y contraseña predeterminados. En la red global existen sistemas de búsqueda especializados capaces de descubrir dispositivos cuyo acceso es posible con el nombre de usuario y contraseña predeterminados…, o que no tienen ninguna contraseña. Una vez obtenida esta información, cualquier persona tiene la posibilidad de controlar el sistema de forma remota.
Partiendo de lo expuesto, podemos afirmar que los componentes de los modernos Sistemas informáticos de infraestructuras críticas pueden ser comprometidos, infectados, funcionar incorrectamente y poner fuera de funcionamiento los equipos, dar información incorrecta al operador e inducirlo a tomar decisiones equivocadas, lo que puede resultar en situaciones peligrosas.
Por supuesto, en cada instalación existen sistemas de prevención de accidentes. Pero estos sistemas están destinados a evitar accidentes provocados por factores fortuitos y pueden resultar inútiles contra un ataque dirigido.
Como si esto fuera poco, la aspiración de efectividad económica provoca que la producción de medios de protección contra averías se distribuya entre varias compañías subsidiarias. Y cada una de ellas tiene la posibilidad de incluir funcionalidades ocultas en varios niveles, desde el software de control hasta el chip del microprocesador.
Por tradición, los productores de equipos y software industriales han concentrado sus esfuerzos en la estabilidad y la tolerancia contra fallas de sus soluciones. Hasta hace poco este enfoque, sin duda, estaba justificado, pero ahora ha llegado el momento de prestar una seria atención a la seguridad informática, invitando a colaborar y hacer peritajes de sus productos a compañías especializadas.
De esta manera, hemos llegado a una situación en que, por una parte, algunos países ya cuentan con armas cibernéticas y, por otra parte, los sistemas informáticos vitales de los estados están expuestos a los ataques. Dependiendo del nivel de desarrollo de las tecnologías informáticas en el país y el grado de automatización de las instalaciones industriales en particular, atacarlos puede ser más o menos fácil, pero el ciberataque siempre es posible.
La base de la confianza
En el presente, se ha hecho patente la necesidad de crear soluciones capaces de garantizar una protección fiable a las instalaciones industriales vitales y a las demás instalaciones y organizaciones sensibles a la penetración y la filtración de información. No obstante, sin importar cuan bien funcionen estos sistemas, el uso en los Sistemas informáticos de infraestructuras críticas de sistemas operativos y software vulnerables no permite a los fabricantes de medios de defensa garantizar la seguridad del sistema. En el caso de instalaciones de importancia vital, estas garantías son imprescindibles.
Pero no hay que contar con que todos los desarrolladores de sistemas clave de infraestructura informática se lancen de inmediato a realizar revisiones y actualizaciones totales de todo el software que utilizan, ni que los directores de las empresas actualicen en ese mismo momento las soluciones instaladas. Y si tomamos en cuenta que el ciclo vital de estos sistemas se cuenta en décadas, se hace evidente que, según un escenario de evolución, la implementación de Sistemas informáticos de infraestructuras críticas necesitará realmente mucho tiempo.
Sin embargo, la solución global del problema de las vulnerabilidades no es la única solución capaz de garantizar la seguridad del funcionamiento de las instalaciones industriales.
¿Cuál es el peligro de la presencia de software vulnerable? Las vulnerabilidades son brechas que los programas maliciosos pueden utilizar para penetrar en los sistemas. Cualquier componente de los Sistemas informáticos de infraestructuras críticas se puede infectar. Y el componente infectado puede ejecutar en la red tecnológica acciones maliciosas que pueden conducir a catástrofes y al mismo tiempo desinformar al operador.
En estas situaciones, el operador de un sistema de importancia vital se ve obligado a administrar procesos tecnológicos sin ninguna garantía de que la información que usa para tomar decisiones sea correcta. En esencia, este es uno de los problemas claves de la seguridad de sistemas, porque el precio de los errores en este tipo de instalaciones puede ser muy alto.
Para el funcionamiento seguro de una instalación industrial, es de importancia crítica que el operador reciba información fidedigna para administrar la producción. Esto permite evitar errores de administración y, si es necesario, ayuda a detener a tiempo la producción sin que haya averías.
En el presente no existen sistemas operativos y software que puedan utilizarse en medios industriales y cuyos resultados de funcionamiento sean de confianza absoluta. Y por eso no nos queda otro camino que empezar a desarrollar estos medios por nosotros mismos.
El medio fundamental para garantizar la seguridad es el sistema operativo. Nosotros consideramos que, para controlar la información que circula en la red industrial, en primer lugar hay que utilizar este sistema. Esto garantiza que la información sea correcta, fidedigna y no contenga componentes maliciosos.
Sistema operativo seguro
¿Qué requisitos tiene que cumplir un medio de control de la infraestructura informática completamente seguro?
- El sistema operativo no debe basarse en un código ya existente, por eso debe ser desarrollado desde cero.
- Para garantizar la seguridad, no debe contener errores y vulnerabilidades en el núcleo que controla el resto de los módulos del sistema. Como consecuencia, el núcleo debe verificarse por medios que no permitan la existencia de vulnerabilidades o códigos de doble propósito.
- Por la misma razón, el núcleo debe contener un mínimo crítico de código, y por lo tanto, la cantidad máxima de código, incluyendo los controladores, debe ser controlada por el núcleo y ser manejado con los privilegios restringidos.
- Y por último, en este medio debe estar presente un poderoso y fiable sistema de protección que admita diferentes modelos de seguridad.
De conformidad con esto, estamos creando un sistema operativo propio, cuya peculiaridad fundamental es la absoluta imposibilidad de ejecutar funciones no declaradas.
Sólo basándose en un sistema operativo como éste se puede construir una solución que permita al operador no sólo ver lo que en realidad ocurre en la producción, sino también controlarla. Y esto sin importar quienes sean los fabricantes de sistemas operativos, bases de datos, SCADA y PLC en concreto, sin importar su grado de protección o de si tienen vulnerabilidades. Es más, sin importar su grado de infección.
De hecho, estamos hablando de un sistema de protección inteligente contra averías de nueva generación. Un sistema de protección que tome en cuenta todo el complejo de índices de la empresa al mismo tiempo. Un sistema de seguridad que no permita averías como consecuencia de acciones incorrectas del operador, ni de los errores del software del sistema clave de infraestructura informática, ni de los ataques cibernéticos. Además, el sistema puede complementar los medios tradicionales de protección contra averías, lo que permite hacer un seguimiento de escenarios más complejos.
Esta solución deberá integrarse en los sistemas clave de infraestructura informática ya existentes para protegerlos y garantizar la monitorización fidedigna, o tomarse en cuenta durante el diseño de nuevos sistemas clave de infraestructura informática. En ambos casos, garantizando la aplicación de principios de seguridad modernos.
Conclusión
El mundo ha cambiado. Los gobiernos han empezado a utilizar activamente las armas cibernéticas y esto exige que se contrapongan medios adecuados de defensa. A pesar de que los Sistemas informáticos de infraestructuras críticas tienen una importancia vital, en el presente no existen medios capaces de garantizar su protección.
Es imposible crear medios de defensa de Sistemas informáticos de infraestructuras críticas que realmente funcionen si nos basamos en los sistemas operativos existentes. Crear un nuevo sistema operativo para todos los componentes de sistemas clave de infraestructura informática es una tarea muy compleja y su realización necesitará tiempo. Pero el problema de la seguridad de las instalaciones industriales se debe resolver ahora mismo.
Por eso es necesario encontrar y eliminar en primer lugar los principales problemas de la seguridad informática. Uno de estos problemas consiste en que los sistemas de seguridad informática de las instalaciones industriales se basan en fuentes de información que no son de confianza. Mientras que en la red tecnológica no aparezca un componente en el que el operador o un complejo software de control puedan confiar, no se podrá hablar de la posibilidad de crear un sistema de seguridad. Es necesario crear una “base de confianza”, que sirva de base para crear un sistema de seguridad de clase superior. Esta “base de confianza” exige la existencia de, como mínimo, un sistema operativo de confianza.
Estamos creando un sistema operativo en el que funcionarán los componentes del sistema de seguridad que garantizará la confianza en la información de todos los componentes del Sistema informático de infraestructuras críticas. En la base del sistema operativo hemos puesto una serie de principios fundamentales cuyo cumplimiento permite garantizar que en cualquier momento funcionará de la forma exacta en que la concibió su creador y no podrá funcionar de otra manera. La arquitectura del sistema operativo es tal, que incluso penetrando cualquiera de sus componentes o aplicaciones el enemigo no podrá obtener el control sobre el mismo o ejecutar un código malicioso. Esta manera de abordar el asunto nos permite considerar que este sistema operativo es de confianza y usarlo como fuente de información de confianza, que podrá ser el fundamento para crear sistemas de defensa de un nivel más alto.
La seguridad de los sistemas clave de la infraestructura informática: la base de confianza