Roles IAM Sobre-privilegiados
Darle a funciones serverless o servicios más permisos IAM de los necesarios convierte una brecha menor en un compromiso total de la cuenta.
Cómo Funciona
Si una función solo lee de un bucket S3 pero tiene AdministratorAccess, una inyección de código en esa función le da al atacante control total de la cuenta de AWS. Los atacantes buscan específicamente funciones Lambda con roles demasiado amplios porque son una ruta confiable de escalada de privilegios.
// MAL: función Lambda con acceso de admin cuando solo necesita leer S3
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}// BIEN: otorga solo las acciones exactas en los recursos exactos necesarios
{
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::mi-bucket/reportes/*"
}Ejemplo Real
La brecha de Capital One (2019) involucró una vulnerabilidad SSRF en una instancia EC2 con un rol IAM sobre-privilegiado. El atacante consultó el metadata service y usó el rol para descargar 100 millones de registros de clientes de S3.
Cómo Prevenirlo
- Sigue el principio de mínimo privilegio — otorga solo los permisos que la función realmente usa
- Usa IAM Access Analyzer para identificar políticas demasiado permisivas
- Revisa y ajusta los roles IAM cada trimestre usando los reportes de credenciales de AWS IAM
- Nunca uses AdministratorAccess ni Action: '*' para roles de aplicaciones
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Abuso de Timeout de Función
mediumLas funciones serverless sin timeout configurado pueden mantenerse corriendo indefinidamente con requests maliciosas, drenando tu presupuesto.
Variables de Entorno en Logs
highLoguear process.env vuelca todos tus secrets — API keys, contraseñas de base de datos, claves de firma — directamente en tu sistema de logs.
Estado Compartido en /tmp
mediumLas funciones serverless reutilizan entornos de ejecución entre invocaciones, por lo que archivos sensibles escritos en /tmp pueden ser leídos por requests posteriores de otros usuarios.
Fuga de Estado en Cold Start
mediumLas variables globales en funciones serverless persisten entre invocaciones en el mismo entorno de ejecución, filtrando datos de usuarios entre requests.