APT29 (Cozy Bear): SVR, SolarWinds y Operaciones en la Nube
Perfil técnico de APT29 (Cozy Bear/Midnight Blizzard/Nobelium): SVR ruso. El grupo detrás de SolarWinds, ataques a cloud/Azure AD, herramientas (WellMess, EnvyScout, MagicWeb), y el nivel de sofisticación más alto entre los APTs rusos.
APT29 es el grupo de espionaje del SVR ruso y el autor del ataque a la cadena de suministro más sofisticado de la historia
APT29 (Cozy Bear) pertenece al SVR (Sluzhba Vneshney Razvedki), el servicio de inteligencia exterior de Rusia. Mientras APT28 (GRU) es agresivo y a veces ruidoso, APT29 es paciente, meticuloso e invisible. Su operación contra SolarWinds demostró un nivel de sofisticación que redefinió lo que un APT puede hacer.
Ficha del grupo
| Campo | Detalle |
|---|---|
| MITRE ID | G0016 |
| Nombres | Cozy Bear, Midnight Blizzard, Nobelium, The Dukes, Dark Halo, UNC2452, Yttrium, BlueBravo |
| Atribución | SVR (Servicio de Inteligencia Exterior de Rusia) |
| País | Rusia |
| Motivación | Espionaje político, diplomático, tecnológico |
| Activo desde | 2008 (posiblemente 2006) |
| Nivel | Tier 1 (elite): supply chain, cloud-native, OPSEC excepcional |
| Sectores | Gobierno, diplomático, think tanks, tech/cloud, energía, salud (COVID vaccines) |
| Regiones | EEUU, Europa, OTAN, Ucrania |
Herramientas y malware
| Herramienta | Tipo | Nota |
|---|---|---|
| SUNBURST | Supply chain backdoor | Insertado en SolarWinds Orion (2020) |
| TEARDROP | Memory-only dropper | Cargador en memoria para Cobalt Strike post-SUNBURST |
| SUNSPOT | Build implant | Modificaba código fuente de Orion durante compilación |
| MagicWeb | AD FS backdoor | Manipula tokens SAML para acceso persistente a M365/Azure |
| FoggyWeb | AD FS backdoor | Exfiltra config de AD FS y descifra tokens |
| WellMess | Backdoor | Go/C++, usado contra investigadores de vacunas COVID |
| WellMail | Backdoor | Complemento de WellMess para exfiltración |
| EnvyScout | HTML smuggler | HTML attachment que reconstruye ISO/payload en navegador |
| BoomBox | Downloader | Descarga payloads desde Dropbox |
| NativeZone/VaporRage | Shellcode loader | Loaders en campañas 2021+ |
| GraphicalNeutrino | Backdoor | Usa Notion API como C2 (2023) |
Patrón evolutivo
2008-2015: The Dukes era (CozyDuke, MiniDuke, CosmicDuke)
→ Backdoors modulares, phishing dirigido
2016-2019: Transición (DNC, operaciones contra OTAN)
→ Phishing sofisticado, credential harvesting
2020: SolarWinds (SUNBURST/SUNSPOT)
→ Supply chain attack, nuevo paradigma
2021-2023: Cloud-native (MagicWeb, FoggyWeb, EnvyScout)
→ Ataques a Azure AD, M365, SAML token manipulation
2024-2026: Servicios legítimos como C2 (Notion, Teams, OneDrive)
→ C2 sobre APIs de servicios cloud legítimos
SolarWinds: anatomía del ataque más sofisticado
FASE 1: SUPPLY CHAIN COMPROMISE (oct 2019 - feb 2020)
APT29 accede al entorno de desarrollo de SolarWinds
Inserta SUNSPOT: modifica código fuente durante build
SUNBURST se compila en actualizaciones legítimas de Orion
FASE 2: DISTRIBUCIÓN (mar 2020 - dic 2020)
Actualización troyanizada distribuida a 18.000 organizaciones
SUNBURST se activa tras 12-14 días de latencia (anti-sandbox)
Verifica: no estar en sandbox, dominio de la víctima es interesante
FASE 3: SELECCIÓN DE TARGETS
De 18.000 organizaciones, APT29 selecciona menos de 100
Criterio: agencias gobierno US, tech companies, think tanks
Víctimas confirmadas: Treasury, State Dept, DHS, FireEye, Microsoft
FASE 4: POST-EXPLOTACIÓN
SUNBURST → descarga TEARDROP → Cobalt Strike beacon
Movimiento lateral dentro de la organización
Objetivo: acceso a email ejecutivos, documentos clasificados
FASE 5: CLOUD PIVOT
Desde AD on-prem → SAML token forge → acceso a M365/Azure
MagicWeb/FoggyWeb en AD FS para persistencia cloud
Lectura de emails sin tocar endpoints (cloud-to-cloud)
DETECCIÓN: dic 2020 por FireEye (13-14 meses después del inicio)
Técnicas ATT&CK principales
| Táctica | Técnica | ID | Uso específico |
|---|---|---|---|
| Initial Access | Supply Chain Compromise | T1195.002 | SolarWinds, 3CX-like |
| Initial Access | Phishing | T1566.001 | EnvyScout HTML smuggling |
| Execution | Cloud Admin Command | T1651 | Azure PowerShell, Graph API |
| Persistence | SAML Token Forge | T1606.002 | Golden SAML con MagicWeb |
| Persistence | AD FS Compromise | T1556.006 | FoggyWeb, MagicWeb |
| Credential Access | Steal Application Token | T1528 | OAuth app tokens |
| Defense Evasion | Use Alternate Auth Material | T1550.001 | Tokens SAML forjados |
| C2 | Web Service | T1102 | Dropbox, Notion, OneDrive como C2 |
| C2 | Application Layer Protocol | T1071.001 | HTTPS a Microsoft Graph API |
| Exfiltration | Over C2 Channel | T1041 | Datos via canal C2 existente |
Detección
Indicadores de operaciones cloud APT29
Señales en Azure AD/M365:
- Nuevas aplicaciones OAuth con permisos de lectura de email
- Modificaciones en AD FS signing certificates
- Service principals creados por usuarios no admin
- Consent grants para aplicaciones desconocidas
- Acceso a emails via Graph API desde IPs no corporativas
- SAML token anomalies (lifetime, claims)
Señales on-premise:
- Modificaciones en AD FS configuration database
- DLLs inesperadas cargadas por AD FS service
- Acceso a certificados de firma AD FS (private key export)
- Tráfico a servicios cloud (Dropbox, Notion, OneDrive) desde servidores
Prevención prioritaria
- Proteger AD FS: monitorizar cambios en configuración, firmas, y DLLs cargadas
- Conditional Access: policies que restrinjan acceso cloud por IP, dispositivo, riesgo
- Application consent: restringir quién puede aprobar OAuth apps
- SolarWinds/Orion: si usas, parchear y monitorizar con prioridad crítica
- SAML monitoring: detectar tokens con claims anómalos o lifetimes inusuales
- Cloud logs: habilitar Unified Audit Log en M365, Cloud App Security
APT29 vs APT28: comparativa
| Aspecto | APT29 (SVR) | APT28 (GRU) |
|---|---|---|
| Agencia | SVR (inteligencia exterior) | GRU (inteligencia militar) |
| Estilo | Sigiloso, paciente, invisible | Agresivo, rápido, a veces ruidoso |
| Sofisticación | Tier 1 (elite) | Tier 2 (avanzado) |
| Supply chain | Sí (SolarWinds) | No documentado |
| Cloud-native | Sí (Azure AD, M365, SAML) | Limitado |
| OPSEC | Excepcional (meses-años sin detección) | Bueno pero a veces descuidado |
| Dwell time | 6-18 meses | 1-6 meses |
| Operaciones públicas | Evita (prefiere no ser atribuido) | Algunas deliberadamente públicas (WADA, DNC leaks) |
| Herramientas | Custom, evolución constante | Custom + públicas |
Conclusión
APT29 representa el techo de lo que un APT puede lograr: comprometer cadenas de suministro de software global, operar en entornos cloud con maestría, y permanecer sin detectar durante más de un año. Para defensores, APT29 es el adversario que valida si tu seguridad cloud (AD FS, OAuth, SAML, Conditional Access) es real o es teatro. El siguiente perfil cubre APT41, el grupo chino que combina espionaje con cibercrimen.
Fuentes y referencias
- MITRE ATT&CK: APT29 (G0016)
- Microsoft: "Midnight Blizzard" threat profile
- Mandiant: "SolarWinds Supply Chain Attack" (2020)
- CISA: Alert AA21-008A (SolarWinds)
- CrowdStrike: "StellarParticle" campaign analysis
- Microsoft: "MagicWeb" and "FoggyWeb" technical analyses
Preguntas frecuentes
Artículos relacionados
APT28 (Fancy Bear): GRU Unit 26165, Herramientas y Campañas
Turla (Snake): 25 Años de Espionaje del FSB Ruso
ATT&CK para Cloud: Técnicas en IaaS y SaaS
Cloud Threats Retrospective 2026: Hallazgos Clave del Informe Wiz
Hunting de Exfiltracion de Datos: Detectar Transferencias, DNS Exfil y Cloud Upload
Atribución y Niveles de Confianza: Framework para Analistas CTI
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.