Skip to content

MrCabss69/Sandworm-Spain-04-2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Investigación del Apagón Ibérico (28-04-2025): Análisis de Datos Públicos

en

Este repositorio documenta el análisis técnico en curso sobre el apagón masivo ocurrido en la Península Ibérica el 28 de abril de 2025.


Puedes leer directamente resultados y conclusiones en Medium


ACTUALIZACIÓN (29-04-2025):

Ha transcurrido un día desde el incidente. Si bien las investigaciones oficiales están en curso y aún no hay conclusiones definitivas, la hipótesis central que guía este análisis, basada en los datos públicos disponibles hasta ahora, sugiere la posibilidad de un evento coordinado y complejo, que va más allá de una simple cascada de fallos técnicos. Se explora la consistencia de los eventos observados con TTPs (Tácticas, Técnicas y Procedimientos) de actores avanzados, como el grupo conocido como Sandworm.

Contexto y Comunicaciones Oficiales (Resumen)

  • España:
    • El gobierno indica que "no descarta ninguna hipótesis" y menciona que las centrales nucleares (que realizaron paradas de seguridad automáticas) fueron "un problema".
    • La Audiencia Nacional ha iniciado una investigación por posible sabotaje (incluyendo ciberataque).
    • Red Eléctrica de España (REE) ha comunicado no haber sufrido ciberataques en sus sistemas y sitúa el inicio del evento principal a las 12:33 CEST (10:33 UTC), con una pérdida de 15 GW en segundos.
  • Portugal:
    • Reportes iniciales y datos de REN sugieren que la perturbación eléctrica pudo originarse en la red portuguesa minutos antes del evento principal en España.
    • El gobierno portugués ha solicitado una investigación a nivel de la UE.

La narrativa inicial más difundida apuntaba a una cascada de fallos técnicos. Sin embargo, el análisis detallado de datos públicos de energía y conectividad revela patrones y anomalías significativas que merecen una investigación más profunda:

  1. Degradación Temprana de Conectividad: Datos de IODA muestran una disminución notable en la conectividad a internet (active probing) en ambas redes, española y portuguesa, antes (~10:20-10:25 UTC) del colapso eléctrico principal registrado en España (10:33 UTC). IODA

  2. Origen Portugués del Evento Eléctrico: Datos del operador portugués (REN) indican un colapso significativo en la generación eléctrica portuguesa alrededor de las 10:30 UTC, precediendo al evento español. REN

  3. Colapso Sincronizado en España: Datos de REE confirman una caída casi vertical y simultánea (~10:33 UTC) de diversas fuentes de generación (Nuclear, Solar PV, Eólica, Ciclo Combinado) en España. REE

Estos hallazgos preliminares, especialmente la desconexión temporal entre los problemas de conectividad y el fallo eléctrico principal en España, junto con el origen portugués de la perturbación eléctrica, justifican la exploración de hipótesis más complejas, incluyendo la posibilidad de un ataque coordinado multi-vector (Telecom + Energía).


Metodología y Trazabilidad

Este análisis sigue un enfoque estructurado para garantizar la claridad y reproducibilidad:

  1. Recolección de Datos Crudos: Se utilizan scripts (scripts/scraper*.py) para obtener datos de Downdetector y se recopilan datos públicos de REE, REN, IODA y otras FUENTES. Estos datos se almacenan sin modificar en resources/raw/.
  2. Preprocesamiento: Scripts (scripts/preprocess_raw_csvs.py) y funciones auxiliares (utils.py) limpian y estandarizan los datos crudos, generando los datasets procesados ubicados fuera de la carpeta raw/ (e.g., en resources/energy/spain/, resources/ioda/).
  3. Análisis Exploratorio de Datos (EDA): Se realizan análisis individuales por fuente de datos en notebooks Jupyter (notebooks/):
    • energia_es.ipynb: Análisis de datos de generación, demanda y almacenamiento en España (REE).
    • ioda.ipynb: Análisis de datos de conectividad a Internet (IODA) para España y Portugal.
    • downdetector.ipynb: Análisis de reportes de usuarios sobre caídas de servicios (Downdetector España).
    • (Nota: Análisis de datos de REN Portugal integrado donde es relevante, basado en datos de resources/raw/energy/portugal)
  4. Correlación y Síntesis: Se trabaja en la integración y comparación temporal de los hallazgos de los diferentes EDAs para construir una línea de tiempo detallada del incidente, identificando correlaciones y discrepancias. (El notebook combined_sources.ipynb puede contener trabajo en progreso para esta síntesis).
  5. Investigación Contextual: Se recopila información adicional en docs/ sobre la infraestructura energética y de telecomunicaciones ibérica, TTPs de actores relevantes (Sandworm), informes técnicos (e.g., Industroyer_Report.pdf) y el estado del arte (SOTA.md) para contextualizar los hallazgos técnicos.
  6. Visualización: Se utilizan bibliotecas como Plotly y Matplotlib para generar gráficos interactivos y estáticos que ilustran patrones, anomalías y comparaciones temporales. Los plots generados se almacenan en las subcarpetas plots/ dentro de resources/.

Estructura del Repositorio

.
├── docs/                     # Documentación, Investigación Contextual, Resúmenes
│   ├── Industroyer_Report.pdf  # Ejemplo de informe técnico relevante
│   ├── SOTA.md               # Estado del arte, TTPs relevantes
│   ├── sources.md            # Lista detallada de fuentes de datos e información
│   └── summary.md            # Resumen ejecutivo de hallazgos y análisis - Redactado por Gemini
├── notebooks/                # Jupyter Notebooks para análisis exploratorio y síntesis
│   ├── downdetector.ipynb
│   ├── energia_es.ipynb
│   └── ioda.ipynb
├── resources/                # Datos procesados, visualizaciones y datos crudos
│   ├── downdetector/         # Datos procesados y plots de Downdetector
│   │   ├── es-28-04-2025.json
│   │   └── plots/
│   ├── energy/               # Datos procesados y plots de Energía (España y Portugal)
│   │   ├── portugal/
│   │   │   └── ren_eletricity_28_04.png # Plot procesado REN
│   │   └── spain/
│   │       ├── almacenamiento.csv # Ejemplo dato procesado REE
│   │       ├── demanda.csv
│   │       ├── generacion.csv
│   │       ├── energy.html      # Ejemplo visualización interactiva
│   │       └── plots/           # Plots estáticos REE
│   ├── ioda/                 # Datos procesados y plots de IODA
│   │   ├── ioda_portugal.csv
│   │   ├── ioda_spain.csv
│   │   └── plots/
│   └── raw/                  # Datos CRUDOS originales, sin modificar
│       ├── downdetector/
│       ├── energy/
│       ├── ioda/
│       └── nuclear_prod.txt # Ejemplo otros datos relevantes
├── scripts/                  # Scripts Python reutilizables para tareas específicas
│   ├── preprocess_raw_csvs.py # Limpieza y preparación de datos crudos
│   ├── scraper_pt.py          # Scraper específico (si aplica)
│   └── scraper.py            # Scraper principal (e.g., Downdetector)
├── .gitignore                # Archivos y carpetas a ignorar por Git
├── README.md                 # Este archivo (versión en Español)
├── README_en.md              # Versión en Inglés del README
├── requirements.txt          # Dependencias del proyecto Python
└── utils.py                  # Funciones auxiliares compartidas

Instalación y Uso

  1. Clonar el repositorio:
    git clone https://github.com/MrCabss69/Sandworm-Spain-04-2025
    cd Sandworm-Spain-04-2025
  2. Crear un entorno virtual (recomendado):
    python -m venv .venv
    source .venv/bin/activate  # En Windows: .venv\Scripts\activate
  3. Instalar dependencias:
    pip install -r requirements.txt
  4. Ejecutar los análisis:
    • Puedes ejecutar los notebooks Jupyter (notebooks/*.ipynb) utilizando Jupyter Lab o Jupyter Notebook para explorar los análisis paso a paso.
    • Los scripts en scripts/ pueden ejecutarse directamente si es necesario (e.g., para actualizar datos o reprocesar). Consulta el código para detalles específicos.

Contribuciones / Contacto

Este es un análisis independiente y en curso. Si tienes información adicional, encuentras errores o deseas discutir los hallazgos, puedes abrir un "Issue" en este repositorio o contactar directamente conmigo. ¡Contribuciones y puntos de vista constructivos son bienvenidos!


Disclaimer: Este análisis se basa exclusivamente en datos disponibles públicamente y representa una interpretación independiente. Las hipótesis presentadas, particularmente en relación con un posible ciberataque y actores específicos, son especulativas y requerirían confirmación a través de investigaciones forenses oficiales.