highCWE-269OWASP A01:2021

Política IAM Excesivamente Permisiva

Tu política IAM usa Action: '*' o Resource: '*', otorgando muchos más permisos de los necesarios y convirtiendo cualquier fuga de credenciales en una toma de control completa de la cuenta.

Cómo Funciona

El principio de mínimos privilegios significa dar a cada rol exactamente los permisos que necesita — nada más. Action: '*' con Resource: '*' es básicamente acceso de administrador. Cuando estas credenciales son robadas (vía SSRF, claves hardcodeadas o phishing), el atacante puede hacer cualquier cosa: borrar bases de datos, exfiltrar todos los datos de S3, crear nuevos usuarios admin, deshabilitar el logging de CloudTrail. Los mínimos privilegios limitan el radio de impacto de cualquier compromiso de credenciales.

Código Vulnerable
// MAL: política IAM con wildcard (Terraform)
resource "aws_iam_role_policy" "app_policy" {
  role = aws_iam_role.app.id
  policy = jsonencode({
    Statement = [{
      Effect   = "Allow"
      Action   = "*"        // puede hacer CUALQUIER COSA
      Resource = "*"        // en CUALQUIER recurso
    }]
  })
}
Código Seguro
// BIEN: permisos mínimos con alcance a recursos específicos
resource "aws_iam_role_policy" "app_policy" {
  role = aws_iam_role.app.id
  policy = jsonencode({
    Statement = [{
      Effect   = "Allow"
      Action   = ["s3:GetObject", "s3:PutObject"]  // solo lo que la app necesita
      Resource = "arn:aws:s3:::my-app-bucket/*"    // solo este bucket
    }]
  })
}

Ejemplo Real

La brecha de Capital One de 2019 escaló de una vulnerabilidad SSRF a un dump completo de datos porque la instancia EC2 comprometida tenía un rol IAM con s3:GetObject en Resource: '*' — no solo los buckets específicos que la app necesitaba. Un alcance apropiado habría limitado la brecha a un solo bucket.

Cómo Prevenirlo

  • Empieza con cero permisos y agrega solo lo necesario — nunca empieces con '*' y restrinjas después
  • Usa AWS IAM Access Analyzer para identificar políticas excesivamente permisivas en tu cuenta
  • Limita Resource a ARNs específicos (arn:aws:s3:::mi-bucket/*) en lugar de '*'
  • Usa las políticas administradas de AWS solo como punto de partida — crea políticas personalizadas para cargas de trabajo en producción
  • Audita las políticas IAM trimestralmente usando el Informe de Credenciales IAM de AWS y Access Advisor

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas