El ataque de 2016 a la red eléctrica de Ucrania, que dejó sin suministro a parte de su capital Kiev por una hora, fue en realidad un ciberataque. Desde entonces, investigadores de ESET descubrieron y analizaron muestras de malware detectadas como Win32/Industroyer, capaces de ejecutar ese mismo tipo de acción.
Aún no se ha confirmado si es el mismo malware el que está realmente involucrado en lo que los expertos en ciberseguridad consideraron una prueba a gran escala. De igual forma, el malware es capaz de hacer daño significativo a los sistemas de energía eléctrica y podría ser reajustado para dirigirse a otros tipos de infraestructura crítica.
Industroyer es una amenaza particularmente peligrosa, dado que es capaz de controlar los interruptores de una subestación eléctrica directamente. Para hacerlo, utiliza protocolos de comunicación industrial implementados mundialmente en infraestructuras de suministro de energía eléctrica, sistemas de control de transporte y otros sistemas de infraestructura crítica, como agua y gas.
Estos conmutadores (o switches) y disyuntores son equivalentes digitales a los conmutadores analógicos; técnicamente pueden ser diseñados para realizar varias funciones. Por lo tanto, el impacto potencial puede ir desde simplemente desactivar la distribución de energía hasta fallas en cascada y daños más graves al equipo; la gravedad también puede variar de una subestación a otra. Naturalmente, la interrupción de tales sistemas puede afectar directa o indirectamente el funcionamiento de servicios vitales.
es altamente personalizable y puede ser usado para atacar cualquier sistema de control industrial
La peligrosidad de Industroyer radica en el hecho de que usa los protocolos de la manera en que fueron diseñados para ser usados. El problema es que se crearon hace décadas, y en ese entonces la intención era que los sistemas industriales estuvieran aislados del mundo exterior.
Como consecuencia, su comunicación no fue diseñada con la seguridad en mente. Esto significa que los atacantes no necesitaban buscar vulnerabilidades en los protocolos; todo lo que necesitaban era enseñarle al malware a "hablar" esos protocolos.
El corte de energía más reciente ocurrió el 17 de diciembre de 2016, casi exactamente un año después de aquel ciberataque bien documentado que causó un apagón que afectó a cerca de 250.000 hogares en varias regiones de Ucrania, el 23 de diciembre de 2015.
En aquella ocasión, los atacantes se infiltraron en las redes de distribución eléctrica con el malware BlackEnergy, junto con KillDisk y otros componentes, y luego abusaron de software legítimo de acceso remoto para controlar las estaciones de trabajo de los operadores y cortar el suministro. Además de que apuntaban a la red eléctrica de Ucrania, no hay otras similitudes aparentes entre el código de BlackEnergy y el de Industroyer.
Estructura y funcionalidades clave
el autor tiene un profundo conocimiento del funcionamiento de los sistemas de control industrial
Industroyer es un malware modular. Su componente central es un backdoor usado por los atacantes para gestionar el ataque; instala y controla los otros componentes y se conecta a un servidor remoto para recibir comandos y reportar a los criminales.
Lo que distingue a Industroyer de otros malware que tienen como blanco a la infraestructura es su uso de cuatro componentes maliciosos (payloads), que están diseñados para obtener el control directo de interruptores y disyuntores en una subestación de distribución de electricidad. Cada uno de ellos apunta a protocolos de comunicación particulares, especificados en los siguientes estándares: IEC 60870-5-101, IEC 60870-5-104, IEC 61850 y OLE para Process Control Data Access (OPC DA).
Generalmente, los payloads trabajan en etapas cuyos objetivos son mapear la red, y luego encontrar y emitir los comandos que funcionarán con los dispositivos específicos a atacar. Su disposición muestra el profundo conocimiento que tiene el autor del malware sobre el funcionamiento de los sistemas de control industrial.
El malware contiene algunas funcionalidades adicionales que están diseñadas para permitirle quedarse fuera del radar, para asegurarse la persistencia y para borrar todos los rastros de sí mismo una vez que finalizó su trabajo.
Por ejemplo, la comunicación con los servidores de C&C escondidos en Tor puede estar limitada a horas no laborables. Además, emplea un backdoor adicional, que se hace pasar por la aplicación Notepad (Bloc de Notas), diseñado para volver a obtener acceso a la red objetivo en caso de que el backdoor principal sea detectado o deshabilitado.
Su módulo de borrado está diseñado para eliminar claves de registro cruciales para el sistema y sobrescribir archivos, de manera que el sistema no pueda iniciar y se dificulte la recuperación. Es interesante el escáner de puertos que mapea la red, tratando de encontrar computadoras relevantes: los atacantes hicieron su propia herramienta personalizada en vez de usar software existente.
Finalmente, otro módulo es una herramienta de Denegación de Servicio que explota la vulnerabilidad CVE-2015-5374 en dispositivos Siemens SIPROTEC y puede dejarlos sin respuesta.
Conclusión
Industroyer es un malware altamente personalizable. Si bien es universal, ya que puede ser usado para atacar cualquier sistema de control industrial usando algunos de los protocolos de comunicación de la lista de objetivos, algunos de los componentes de las muestras analizadas estaban diseñados para apuntar a un tipo particular de hardware.
Por ejemplo, el componente de borrado y uno de los payloads están modificados para ser usados contra sistemas que incorporan determinados productos industriales de control de energía de ABB, y el componente DoS funciona específicamente contra dispositivos Siemens SIPROTEC usados en subestaciones eléctricas y otros campos de aplicación relacionados.
Si bien en principio es difícil atribuir ataques a malware sin ejecutar un proceso de respuesta a incidentes en el lugar del hecho, es altamente probable que se haya usado Industroyer en el ataque de diciembre de 2016 a la red eléctrica de Ucrania. Además de que claramente posee las habilidades únicas y distintivas para ejecutar un ataque de ese tipo, tiene una marca de tiempo de activación el 17 de diciembre de 2016, el día del corte de suministro.
El ataque de 2016 a la red eléctrica de Ucrania tuvo mucha menos repercusión que el que ocurrió un año antes. Sin embargo, la herramienta que probablemente se utilizó, Win32/Industroyer, es un malware avanzado en manos de un atacante resuelto y con profundo conocimiento.
Gracias a su habilidad de persistir en el sistema y proveer información valiosa para refinar los payloads personalizables, los atacantes podrían adaptar el malware a cualquier entorno, lo que lo vuelve extremadamente peligroso. Más allá de si el reciente ataque a la red eléctrica de Ucrania fue una prueba o no, debería servir como llamado de atención para los responsables de la seguridad en sistemas críticos de todo el mundo.
Hay más detalles del análisis técnico de este malware y los Indicadores de Sistemas Comprometidos (IoC) en nuestro white paper (en inglés) y en GitHub. Para consultar o envío de muestras relacionadas a este tema, contáctanos en threatintel@eset.com.