FrostyGoop. Una mirada más serena al incidente de Lviv.
Un análisis técnico comparativo del corte de calefacción de Lviv en enero de 2024: qué afirma el informe de Dragos, cómo lo rebate la respuesta de SCADASEC y por qué las evidencias merecen una lectura más atenta.
Última actualización:
FrostyGoop es un malware ICS que habla Modbus TCP. Se vinculó al corte de calefacción de Lviv (Ucrania) en enero de 2024.
Las fuentes no coinciden en su alcance. Dragos lo describe como un ataque sofisticado vinculado a un Estado, mientras que SCADASEC, que cita fuentes ucranianas, interpreta las mismas pruebas como un incidente menor y discutido. Las cifras que siguen se atribuyen a cada fuente, y Trout no las hace suyas.
Sea cual sea su sofisticación real, la lección duradera está en la exposición que aprovechó:
- dispositivos accesibles desde el exterior
- una red plana
- un protocolo de control sin autenticación
La solución pasa por la arquitectura.
Un incidente, dos historias distintas.
Este informe compara el análisis del malware FrostyGoop publicado por Dragos con la respuesta de SCADASEC. Dragos presenta FrostyGoop como un ataque ICS sofisticado, ligado a Rusia, responsable del corte de calefacción de Lviv. SCADASEC ofrece una versión distinta de la atribución y la sofisticación del malware, y sostiene que hacen falta más evidencias para sustentar esas afirmaciones.
Nuestra lectura independiente es que FrostyGoop carece de las características avanzadas que suelen verse en el malware ICS patrocinado por Estados, y puede que no haya participado en el supuesto ataque tal como se describió. Puede tener capacidad disruptiva, pero no alcanza la sofisticación de familias como Triton o Industroyer, así que su nivel de amenaza debería reevaluarse en lugar de aceptarse sin más.
Raro, y presentado como el noveno de su clase.
El malware específico para ICS es raro. Según Dragos, FrostyGoop se suma a una lista corta de familias construidas para llegar a sistemas de control industrial. Se comunica por Modbus TCP, está escrito en Golang y compilado para Windows, lo que encaja con los entornos donde esos protocolos y plataformas son habituales.
- 01Stuxnet
- 02Havex
- 03BlackEnergy2
- 04CrashOverride (Industroyer)
- 05Trisis (Triton)
- 06Industroyer2
- 07PipeDream
- 08Fuxnet
- 09FrostyGoop
Dónde divergen las versiones.
- Un malware ligado a Rusia cortó la calefacción de más de 600 edificios de viviendas durante dos días con temperaturas bajo cero.
- Acceso inicial a través de routers expuestos al exterior; los atacantes degradaron el firmware de los controladores ENCO a una versión sin monitorización.
- FrostyGoop es una amenaza ICS sofisticada, ligada a un Estado, que utiliza Modbus TCP.
- Solo 324 unidades de calefacción individuales afectadas; el suministro se restableció al 50 por ciento en seis horas y al 100 por ciento en trece.
- Los dispositivos ENCO leen sobre todo datos de contadores de calor; no hay pruebas claras de que controlaran procesos físicos.
- El único vínculo con ENCO es una IP codificada que apunta a Rumanía, no a Lviv, y Shodan no mostraba dispositivos ENCO expuestos allí.
El alcalde de Lviv describió el suceso como una avería con sospecha de interferencia externa en investigación, lo que refleja bien el carácter discutido del incidente.
La cadena de Lviv, mapeada.
Este mapa toma la cadena tal como la reportó Dragos y la proyecta sobre las técnicas de MITRE ATT&CK for ICS. Es una lectura de informes públicos, no una afirmación de Trout de que cada paso sea un hecho probado. Donde SCADASEC discute un paso, la fila lo indica.
| Técnica | Etapa ATT&CK | Qué significa aquí |
|---|---|---|
| T0822 / T0883External Remote Services / Internet Accessible Device | Initial access | Según Dragos, el acceso llegó a través de un router expuesto y alcanzable desde internet, no directamente por los dispositivos ENCO. SCADASEC discute hasta qué punto los dispositivos ENCO estuvieron implicados. |
| T0855Unauthorized Command Message | Impair process control | FrostyGoop emite comandos Modbus TCP válidos por el puerto 502 (lectura y escritura de holding registers). Para un controlador son indistinguibles de los de una estación de ingeniería legítima, y ese es precisamente el punto: sin exploit, solo acceso. |
| T0836Modify Parameter | Impair process control | Las escrituras de registros que cambian la posición de una válvula o una consigna de temperatura mueven el proceso físico sin tocar ninguna vulnerabilidad de software. |
| T0857System Firmware | Inhibit response function | Dragos informa de que el firmware de los controladores ENCO se degradó a una versión que eliminaba la monitorización. SCADASEC cuestiona el papel de control de los dispositivos ENCO. Se atribuye tal como se reportó. |
| T0815 / T0829Denial of View / Loss of View | Impair process control / Impact | Sin monitorización, los operadores pierden visibilidad sobre las unidades afectadas. El edificio está siendo manipulado mientras el HMI no muestra nada anormal. |
Lo que habría visto el operador
En la red, la señal es un tráfico Modbus TCP de aspecto normal por el puerto 502: comandos de escritura (código de función 6, escritura de un registro, y 16, escritura de varios registros) que aterrizan en los holding registers que guardan la posición de las válvulas y las consignas de temperatura, desde un origen que solo debería leer. En la consola, la señal es peor, porque no hay ninguna: según Dragos, el firmware del controlador se revirtió a una versión sin monitorización, así que los HMI de las unidades ENCO afectadas se apagan mientras el proceso sigue en marcha. Se está retirando el calor de los edificios y la pantalla sigue pareciendo normal.
La red es la solución, sea cual sea la atribución.
Discutan cuanto quieran sobre la sofisticación de FrostyGoop. El incidente de Lviv señala los mismos puntos débiles de siempre: dispositivos alcanzables desde el exterior, redes planas y protocolos de control como Modbus sin autenticación. Son problemas de arquitectura, y tienen una respuesta de arquitectura.
Segmente la red, ponga identidad en cada ruta hacia un controlador y regístrela, de modo que no se pueda emitir un comando ni alcanzar un dispositivo salvo que la política lo permita de forma explícita. En concreto, en una planta de calefacción urbana: coloque cada controlador ENCO o RTU de contador de calor detrás de su propio enclave, para que la única forma de llegar a él sea una sesión vinculada a una identidad a través de Access Gate. El proveedor de los sistemas de control obtiene una ruta de lectura a los registros del contador de calor y nada más; una escritura de consigna o de firmware exige un ingeniero identificado y queda registrada. Durante una emergencia real con temperaturas bajo cero, el operador conserva una ruta de acceso de emergencia (break-glass) al controlador, autenticada y registrada, así que la seguridad nunca espera a la política.
Si la ruta no existe, el ataque tampoco. Profundice en el modelo de aplicación de políticas en qué es un proxy industrial y seguridad de PLC, y en los detalles del protocolo en proteger Modbus.
Descargue el análisis comparativo.
El informe FrostyGoop completo: los relatos de Dragos y SCADASEC uno junto al otro, el detalle técnico del incidente de Lviv y lo que implica para la forma en que protege sus redes industriales.
Un nuevo enfoque de la seguridad de redes industriales
Access Gate es el overlay Zero Trust sin agentes de Trout para OT. Segmenta los sistemas de control, impone identidad en cada ruta y lo registra todo. Se conecta junto a la red existente: sin agentes, sin cambiar direcciones IP y sin insertar nada en el camino del tráfico.
Sobre este informe
Un análisis comparativo independiente de Trout, publicado en 2024. Contrasta los informes públicos de Dragos y SCADASEC sobre el malware FrostyGoop y el incidente de calefacción de Lviv. Las conclusiones reflejan la lectura que Trout hace de las evidencias disponibles.
FAQ sobre FrostyGoop
Familia de malware específica para ICS conocida, según Dragos
Mapeando la cadena tal como la reportó Dragos: acceso inicial a través de un dispositivo alcanzable desde internet (T0822 External Remote Services, T0883 Internet Accessible Device); comandos Modbus no autorizados por el puerto 502 para alterar el proceso (T0855 Unauthorized Command Message, T0836 Modify Parameter); una degradación de firmware que eliminó la monitorización (T0857 System Firmware); y la consiguiente pérdida de visibilidad del operador (T0815 Denial of View, T0829 Loss of View). SCADASEC discute el papel de control de los dispositivos ENCO, así que trate la cadena como una lectura de informes públicos y no como un hecho probado.
FrostyGoop es un malware poco común del que se ha informado que apunta a sistemas de control industrial. Según Dragos, es la novena familia de malware específica para ICS conocida, junto a Stuxnet, Havex, Industroyer, Triton y otras. Se comunica por Modbus TCP, está escrito en Golang y compilado para Windows, lo que encaja con los entornos donde esos protocolos y plataformas son habituales.
En enero de 2024, Dragos informó de que un malware ligado a Rusia se había usado para cortar la calefacción de más de 600 edificios de viviendas en Lviv, Ucrania, durante unos dos días con temperaturas bajo cero. SCADASEC, citando fuentes oficiales ucranianas, situó el impacto mucho más abajo: 324 unidades de calefacción individuales afectadas, con el suministro restablecido al 50 por ciento en seis horas y al 100 por ciento en trece, no las 48 horas reportadas. El alcalde de Lviv lo describió como una avería con sospecha de interferencia externa en investigación.
Divergen en atribución, sofisticación e impacto. Dragos presenta FrostyGoop como un ataque ICS sofisticado y ligado a un Estado. SCADASEC cuestiona el papel de los dispositivos ENCO (señala que el único vínculo es una IP codificada que apunta a un dispositivo en Rumanía, no en Lviv, y que Shodan no mostraba dispositivos ENCO expuestos allí), la afirmación del control por Modbus, y la escala y duración de la interrupción. Los dos relatos se apoyan en evidencias distintas y leen el mismo incidente de forma muy diferente.
Nuestro análisis independiente es que FrostyGoop carece de las características avanzadas que suelen verse en el malware ICS patrocinado por Estados, y puede que no haya participado en el supuesto ataque tal como se describió. Puede tener cierta capacidad disruptiva, pero no alcanza la sofisticación de malware como Triton o Industroyer, así que su nivel de amenaza global debería reevaluarse en lugar de aceptarse sin más. Es una llamada al rigor con las evidencias, no una minimización del riesgo.
Sea cual sea la sofisticación real de FrostyGoop, el incidente de Lviv apunta a los mismos puntos débiles: dispositivos alcanzables desde el exterior, redes planas y protocolos de control como Modbus sin autenticación. La solución duradera es de arquitectura. Segmente la red, ponga identidad en cada ruta hacia un controlador y regístrela, para que no se pueda emitir un comando ni alcanzar un dispositivo salvo que la política lo permita de forma explícita.