leaked-key-impact
Cinco claves de AWS filtradas adrede. 1.301 ataques en 33 días.
El problema
La mayoría de los datos sobre velocidad de explotación de credenciales filtradas vienen de honeypots genéricos o de informes de vendor con incentivos para exagerar. Quería números propios: ¿cuánto tarda realmente alguien en encontrar y usar una clave de AWS pública? Monté el experimento desde cero, con infraestructura mía y logging real desde el minuto uno.
Los datos
5 claves IAM con permisos mínimos (iam:GetUser exclusivamente), distribuidas en canales con distinta audiencia y visibilidad: GitHub, Pastebin y foros de seguridad. Logging completo con CloudTrail sin ningún filtrado previo. 1.301 eventos de API capturados en 33 días de monitorización activa.
Enfoque
- Permisos deliberadamente nulos: las claves no podían hacer nada útil, solo autenticarse — los ataques son reales pero el riesgo de coste es cero
- Logging con CloudTrail exportado a S3, procesado y normalizado en Python (pandas + geopandas)
- Enrichment OSINT por IP: geolocalización, lookup de ASN, identificación de proveedores de VPN y proxies conocidos
- Fingerprinting de user-agents para distinguir herramientas automatizadas de accesos manuales
- Mapeo de cada técnica observada a MITRE ATT&CK (TA0006 Credential Access, TA0009 Collection)
- Modelo de coste contrafactual: qué hubiera costado en dólares si las claves tuvieran permisos de producción
- Dashboard en Streamlit con timeline interactivo, desglose geográfico y clasificación por técnica
Herramientas
Resultado
El primer intento llegó en menos de 2 minutos desde la publicación. El 80% de los 1.301 ataques ocurrieron dentro de las primeras 24 horas — el decaimiento posterior es brusco y predecible. El origen más frecuente fueron rangos de IP de proveedores cloud (EC2, GCP Compute), no máquinas residenciales. Coste simulado con permisos reales de producción: 6.187 $/día.
Próximos pasos
El experimento está diseñado para extenderse. Las líneas de trabajo más directas son ampliar los canales de distribución (paquetes npm o PyPI con claves embebidas, commits en repos públicos), añadir tipos de credencial adicionales (GCP service accounts, tokens de GitHub Actions) y automatizar la clasificación de comportamiento con un modelo de clustering sobre los patrones de llamada a la API. El objetivo es construir un dataset longitudinal que permita comparar la velocidad de explotación entre canales y tipos de credencial de forma sistemática.