Bajo la licencia GPLv3 se ha publicado la plataforma ICSForge — una herramienta open-source para validar la cobertura de las medidas de ciberseguridad en sistemas de control industrial (ICS). La plataforma genera tráfico industrial realista y archivos PCAP, y vincula cada escenario a la matriz MITRE ATT&CK for ICS v18. La cobertura declarada es de 68 técnicas de 83, o el 82 %.

En la versión 0.62 se admiten diez protocolos industriales: Modbus/TCP, DNP3, IEC-104 (IEC 60870-5-104), S7comm, OPC UA, EtherNet/IP, BACnet/IP, MQTT, IEC 61850 GOOSE y PROFINET DCP. Para cada uno se han implementado entre 5 y 36 variantes de tráfico, sumando un total de 536 escenarios individuales y 11 cadenas de ataque multietapa listas para usar.

Cómo funciona

La plataforma se basa en dos componentes que interactúan entre sí — un emisor y un receptor. El emisor genera el tráfico y embebe en cada paquete un marcador de correlación. El receptor, desplegado en el segmento bajo prueba, busca ese marcador y devuelve un recibo. Si el recibo llega, el paquete ha alcanzado su destino por el cable. Si el sistema de monitorización desplegado en el mismo segmento ha reaccionado al tráfico, la detección funciona. Así se registra una cadena inequívoca: ejecutado → entregado → detectado. Para los casos en que la propia presencia del marcador contamina la limpieza del experimento, hay un modo encubierto — en el cable se generan tramas byte a byte realistas, sin ninguna huella de ICSForge.

Arquitectura de ICSForge: emisor ↔ receptor
Fig. 1. Arquitectura de ICSForge: emisor ↔ receptor.

Qué es MITRE ATT&CK for ICS

MITRE ATT&CK for ICS es una base de conocimiento abierta mantenida desde 2020 por MITRE, una corporación estadounidense sin ánimo de lucro. Es un catálogo estructurado de las técnicas que utiliza un adversario al atacar sistemas de control industrial, basado en el análisis de incidentes reales en energía, petróleo y gas, abastecimiento de agua y manufactura. MITRE ATT&CK for ICS es una base de conocimiento abierta mantenida desde 2020 por MITRE, una corporación estadounidense sin ánimo de lucro. Es un catálogo estructurado de las técnicas que utiliza un adversario al atacar sistemas de control industrial, basado en el análisis de incidentes reales en energía, petróleo y gas, abastecimiento de agua y manufactura.

La base se divide en 12 tácticas — categorías de los objetivos del atacante: obtener acceso inicial (Initial Access), lograr persistencia (Persistence), evadir la detección (Evasion), inhibir las protecciones (Inhibit Response Function), afectar el proceso (Impair Process Control), etc. Dentro de cada táctica hay técnicas concretas que describen cómo conseguirla: por ejemplo, T0855 "Unauthorized Command Message" — comando no autorizado de consigna o de control, T0832 "Manipulation of View" — falsificación de los datos mostrados al operador. A día de hoy la matriz describe 83 técnicas únicas.

Para el sector, la matriz se ha convertido en el lenguaje estándar para describir amenazas y evaluar la postura de seguridad. Los monitores pasivos modernos (NSM), los cortafuegos de ICS y los sistemas SIEM etiquetan sus reglas de detección con identificadores de las técnicas ATT&CK — así se pueden comparar productos y estructurar el programa de protección sobre una rejilla de coordenadas clara. ICSForge usa esa misma rejilla desde el otro lado: para cada técnica que se puede reproducir a nivel de red, la plataforma ofrece uno o varios escenarios listos.

Matriz MITRE ATT&CK for ICS — esquema conceptual de cobertura por escenarios ICSForge
Fig. 2. Matriz MITRE ATT&CK for ICS — esquema conceptual de cobertura por escenarios ICSForge.

De las 83 técnicas, en la plataforma están implementadas 68. Las 15 restantes son técnicas que requieren acceso físico o no dejan huella observable en la red: los autores las clasifican honestamente como "no implementables a nivel de red" y dan una justificación de cada una en un archivo de configuración abierto. Esa transparencia es poco habitual entre las herramientas de esta clase.

Cadenas de ataque listas

Además de las técnicas individuales, ICSForge contiene 11 escenarios multietapa que modelan ataques públicamente conocidos. Entre ellos — Industroyer2 (combinación de IEC-104 y S7comm), cadenas al estilo TRITON (centradas en sistemas instrumentados de seguridad), Stuxnet (manipulación del programa de un PLC Siemens), un escenario basado en el incidente de Oldsmar (modificación de consignas de tratamiento de agua), así como la "cadena completa ICS Kill Chain" — desde el reconocimiento hasta el impacto.

Qué es Industroyer

Industroyer (también conocido como CrashOverride) es el primer malware públicamente conocido desarrollado específicamente para atacar instalaciones eléctricas. Se utilizó en diciembre de 2016 durante el apagón parcial del norte de Kiev, y soportaba los protocolos IEC 60870-5-101, IEC 60870-5-104, IEC 61850 y OPC DA — es decir, el mismo conjunto que se usa habitualmente en la automatización de subestaciones. Industroyer2 es una variante descubierta en abril de 2022 durante un intento de ataque al sistema eléctrico ucraniano: contenía configuraciones cableadas en duro para una instalación concreta y operaba exclusivamente sobre IEC-104. Reproducir el tráfico de red característico de estos ataques en un entorno controlado es una tarea estándar de la evaluación de la preparación de un SOC, y ICSForge proporciona para ello una herramienta que no requiere ni muestras reales de malware ni acceso a ellas.

Capacidades adicionales y seguridad

Además de generar tráfico, ICSForge produce automáticamente reglas de detección para los sistemas Suricata y Sigma en tres niveles — desde reglas de laboratorio que detectan el propio marcador de la plataforma, hasta reglas semánticas pensadas para uso en producción y que disparan ante códigos de función y servicios específicos del nivel de aplicación.

Para evitar un disparo accidental en una red real, por defecto se permite el envío sólo a direcciones RFC 1918, loopback y TEST-NET; el acceso a direcciones públicas está bloqueado. La autenticación en la interfaz web es obligatoria, las contraseñas se almacenan con scrypt y la entrega de recibos está protegida por un token específico. Los autores subrayan expresamente: ICSForge no explota vulnerabilidades, no modifica el estado de dispositivos reales y no modela impacto físico sobre el proceso — es una herramienta para evaluar la calidad de la detección, no para atacar.

La plataforma está escrita en Python 3.10+, admite despliegue desde el código fuente y mediante Docker Compose; la línea de comandos tiene paridad completa con la interfaz web.

El repositorio del proyecto está disponible aquí.