criticalCWE-798OWASP A02:2021

Credenciales AWS Hardcodeadas

Las claves de acceso de AWS (que empiezan con AKIA) o las claves de acceso secretas están hardcodeadas en tu código fuente, dando a cualquiera que lea el código acceso completo a tu cuenta de AWS.

Cómo Funciona

Las claves de acceso de AWS son esencialmente un par de usuario (AKIA...) y contraseña con acceso a nivel API a tu cuenta cloud. Hardcodéalas en el código y hazles commit a GitHub, y escáneres automatizados como GitGuardian las encuentran en segundos. Los atacantes luego las usan para levantar instancias EC2 de minería de crypto, exfiltrar datos de S3 o acumular facturas de AWS. AWS tiene detección automatizada pero no es instantánea — los breaches suceden en ese lapso.

Código Vulnerable
// MAL: credenciales AWS hardcodeadas en el código
const s3 = new S3Client({
  region: 'us-east-1',
  credentials: {
    accessKeyId: 'AKIAIOSFODNN7EXAMPLE',      // hardcodeado — NUNCA hagas esto
    secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
  }
});
Código Seguro
// BIEN: usa variables de entorno o roles IAM (preferido en AWS)
const s3 = new S3Client({
  region: process.env.AWS_REGION
  // En EC2/Lambda/ECS: sin credenciales necesarias — el SDK usa el rol IAM automáticamente
  // Localmente: configura las variables de entorno AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY
});

Ejemplo Real

AWS publica un reporte de investigación de amenazas anualmente. Las credenciales hardcodeadas en repos públicos de GitHub son la fuente #1 de compromiso inicial de cuentas AWS. Línea de tiempo típica del ataque: commit con credenciales → push a GitHub → GitGuardian o escáner malicioso detecta en 30 segundos → exfiltración de S3 o instancias de minería EC2 lanzadas en 5 minutos.

Cómo Prevenirlo

  • Usa roles IAM para EC2/Lambda/ECS — el SDK recoge las credenciales automáticamente sin claves en el código
  • Para desarrollo local, usa aws configure para almacenar credenciales en ~/.aws/credentials (fuera de tu repo)
  • Si necesitas claves de larga duración (CI/CD), almacénalas como secretos cifrados en GitHub Actions / tu proveedor de CI
  • Habilita GitGuardian o usa git-secrets como pre-commit hook para prevenir commits de claves
  • Rota todas las claves de AWS inmediatamente si alguna vez fueron commiteadas — luego audita CloudTrail para detectar mal uso

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas