CrashOverride: El malware para SCI ataca de nuevo
Abrimos el año 2017 con un artículo en el blog de CERTSI sobre un posible nuevo ataque al sistema de distribución eléctrica de Ucrania, y hoy, medio año después volvemos a hablar de este incidente después de la publicación de varios artículos sobre un nuevo malware denominado CrashOverride. Según los informes publicados por las empresas Dragos y ESET, que han hecho público su análisis, este malware habría sido el causante de ese incidente en Ucrania.
Descripción de CrashOverride
Según los análisis conocidos, CrashOverride es un malware modular focalizado en organizaciones que utilizan los protocolos IEC101, IEC104, IEC61850 y OPC.
Las particularidades de este malware industrial son:
- Envía comandos directamente a las RTU utilizando protocolos industriales, entre los que se incluye la apertura y cierre de breakers (interruptores de las subestaciones) de forma rápida y continuada al igual que BlackEnergy.
- Bloquea los puertos series de equipos Windows, impidiendo las comunicaciones de los dispositivos legítimos con los equipos afectados.
- Realiza un descubrimiento de red mediante el protocolo OPC y través de un escáner de puertos, mejorando notablemente la probabilidad de éxito.
- Tiene la capacidad para explotar una vulnerabilidad conocida de los relés de Siemens SIPROTEC, que puede provocar una denegación de servicio.
- Incluye un módulo wipe (elimina registros y cualquier otro fichero con el que pueda ser rastreado, o ficheros concretos) que deja los sistemas Windows inservibles y se requiere de una reconstrucción o de una copia de respaldo para volver a ponerlo en funcionamiento.
Funcionamiento
CrashOverride aprovecha funcionalidades de los tres principales malware para sistemas de control aparecidos hasta la fecha, y que se incluían en el artículo sobre familias de malware en este ámbito que publicamos en CERTSI:
- Copia a STUXNET en la forma en que entiende y representa el conocimiento del proceso industrial, codificándolo para interrumpir operaciones.
- La arquitectura del sistema se mapea mediante el protocolo OPC, tal y como hizo HAVEX/ Dragonfly.
- Y también sigue la estela de BlackEnergy2 a la hora de revisar librerías y archivos de configuración de HMI para comprender el entorno y tratar de conectarse a internet cuando sea posible.
Este malware se compone de una puerta trasera inicial, un módulo de carga y numerosos módulos adyacentes, entre los que se encuentran los módulos para aprovecharse de los protocolos industriales. La puerta trasera proporciona el principal acceso y permite gestionar la instalación de puertas traseras adicionales así como la comunicación con el centro de control. Esta puerta trasera también se encarga de ejecutar el módulo de carga. El módulo de carga ejecuta los módulos con los payload de los protocolos industriales, así como otro de wipe.
-Modo de funcionamiento de CrashOverride-
El módulo wipe se encarga de borrar todas las claves de registro asociadas con servicios del sistema, además de borrar ficheros de configuración del disco duro y las unidades de red que haya podido identificar. Está especialmente parametrizado para atacar a los ficheros de configuración del dispositivo PCM600 de ABB. También sobrescribe ficheros genéricos de Windows, haciendo el sistema inutilizable.
-Principales extensiones buscadas por el módulo wipe-
Hasta el momento, los únicos módulos con payload de protocolos localizados están relacionados con el sector eléctrico europeo (utiliza principalmente los protocolos IEC101 e IEC104), pero pueden surgir nuevos módulos que permitan su utilización con otros protocolos, como el protocolo DNP3 utilizado en EE.UU,) o en otros sectores (módulos para otros protocolos industriales).
El funcionamiento de los módulos IEC101 e IEC104 consiste en finalizar la comunicación entre el maestro y el equipo de la víctima y suplantar al maestro de la comunicación, mandando una serie de comandos determinados entre los que se encuentran la continua apertura de breakers o el cambio continuo de estado abierto a cerrado y viceversa.
El módulo específico para Siemens SIPROTEC envía paquetes UDP al puerto 50000 para aprovechar la vulnerabilidad CVE-2015-5374.
En el caso de OPC (versión Data Access u OPC DA) e IEC61850 se ha creado un módulo especial que engloba a los dos protocolos y también puede ejecutarse como herramienta autónoma. La parte de IEC61850 permite identificar ficheros de configuración y rutas. El módulo OPC trata de enumerar todos los servidores OPC que se están ejecutando y sus ítems o variables.
El malware hasta ahora analizado también incluía un módulo capaz de realizar escaneos de puertos que permite seleccionar el rango de red y de puertos a escanear para encontrar equipos relevantes en la red.
Vector de ataque y propagación
Los informes publicados hasta la fecha no dan indicaciones del modo de entrada del malware al sistema, pero dados los antecedentes de malwares similares todo hace pensar a que se requiere algún tipo de phishing para engañar a los operadores de la subestación.
En las muestras que se han analizado no se ha comprobado que el malware se propague a otros equipos. El módulo de carga es el encargado de ejecutar los módulos correspondientes a los protocolos para que realicen sus acciones y activar un temporizador de 2 horas. Transcurrido este tiempo se ejecuta el módulo wipe para dejar el sistema inutilizable.
Implicaciones
La utilización exitosa de este malware, como ha podido ser el caso en las centrales eléctricas de Ucrania del invierno pasado, puede provocar apagones en determinadas regiones. Esto lo conseguiría enviando de forma continuada comandos de apertura a un gran número de breakers, de manera que si el operador trata de cerrarlos nuevamente desde el HMI se sobrescriban todas las peticiones y sigan en estado abiertos, desobedeciendo las órdenes del operador desde el HMI.
La otra opción de ataque es tratar de crear zonas de distribución eléctrica aisladas o islas. Para ello, el malware aprovecha la opción de enviar mensajes de apertura y cierre de forma continuada, y tratar de activar los mecanismos de seguridad de la subestación para que se desconecte de la red. La intención es generar una inestabilidad de la red y que el efecto se propague a otras subestaciones.
Estos dos ataques persiguen la parada de una o más subestaciones, dejando sin energía a una región que puede ser más o menos extensa.
Mediante el módulo OPC se pueden llevar a cabo modificaciones de valores mediante fuerza bruta, lo que conllevaría a informes erróneos e información inexacta para el operador.
El módulo de Siemens trataría de crear una denegación de servicio en los relés de protección, neutralizando la protección automática de la subestación. Esta deshabilitación de la protección permitiría conseguir de forma más eficiente el ataque de creación de islas.
Medidas de protección
Las medidas de seguridad típicas siempre son adecuadas para elevar el nivel de seguridad de un sistema, pero en este caso concreto el uso de diodos de datos, soluciones antivirus o incluso disponer de AIR-GAP no son soluciones válidas. Por ello hay que realizar otra serie de acciones, entre las que se encuentran:
- Revisar el uso de los protocolos IEC101 e IEC104, e investigar cualquier tipo de incremento de tráfico. Esta medida debe ampliarse también a otros protocolos que pudieran ser objetivo a corto plazo, como DNP3.
- Comprobar las comunicaciones de los protocolos y asegurarse de que no se inician nuevas comunicaciones con dispositivos con los que no se disponía de ellas.
- Monitorizar las comunicaciones OPC, poniendo especial énfasis en la localización de posibles descubrimientos de red llevados a cabo mediante este protocolo.
- Asegurarse de disponer de copias de respaldo que no puedan ser modificadas o invalidadas por este u otro malware.
- Preparar un plan de respuesta ante este ataque y llevar a cabo ejercicios de entrenamiento entre todos los departamentos que se puedan ver afectados, tanto de TI como de TO.
- Utilizar un sistema de detección y prevención de intrusos que permita hacer una inspección profunda del tráfico intercambiado, permitiendo detectar nuevas funciones en los protocolos o descubrimientos de red.
- Utilizar las reglas de YARA y los indicadores de compromiso publicados para comprobar si nuestro sistema está infectado.
Este no es el primero ni será el último de los malwares que afectaran a los sistemas de control. Cada vez se hacen más dirigidos y específicos y aunque, de momento, todos hayan ido dirigidos al sector eléctrico, el resto de entornos no deben escatimar en sus programas de ciberseguridad.