mediumCWE-311OWASP A02:2021

Almacenamiento Cloud Sin Cifrar

Tu bucket de S3 o GCS no tiene cifrado del lado del servidor habilitado, lo que significa que los datos se almacenan en texto plano en la infraestructura de AWS/Google.

Cómo Funciona

Sin cifrado del lado del servidor (SSE), tus archivos se almacenan tal cual en infraestructura cloud compartida. Aunque AWS asegura físicamente el hardware, SSE proporciona una capa adicional: incluso si alguien obtuviera acceso no autorizado a la capa de almacenamiento (empleado de AWS, amenaza interna, robo de hardware), los datos serían ilegibles sin la clave de cifrado. Muchos marcos de cumplimiento (PCI-DSS, HIPAA, SOC 2) requieren cifrado en reposo.

Código Vulnerable
// MAL: bucket S3 sin cifrado del lado del servidor (Terraform)
resource "aws_s3_bucket" "data" {
  bucket = "my-app-data"
  // Sin bloque server_side_encryption_configuration
  // Los datos se almacenan en texto plano en la infraestructura de AWS
}
Código Seguro
// BIEN: habilita cifrado AES-256 del lado del servidor por defecto
resource "aws_s3_bucket_server_side_encryption_configuration" "data" {
  bucket = aws_s3_bucket.data.id
  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"  // o "aws:kms" para claves administradas por KMS
    }
    bucket_key_enabled = true  // reduce costos de KMS
  }
}

Ejemplo Real

AWS ahora habilita SSE-S3 (AES-256) por defecto para todos los nuevos buckets S3 desde enero de 2023. Sin embargo, los buckets creados antes de esta fecha o con configuraciones personalizadas de Terraform pueden seguir sin tener cifrado. Las auditorías de cumplimiento frecuentemente señalan buckets S3 sin cifrar — es una solución rápida.

Cómo Prevenirlo

  • Habilita cifrado del lado del servidor en todos los buckets S3 — AWS S3 ahora habilita SSE-S3 por defecto, pero verifica los buckets más antiguos
  • Para datos sensibles (PII, registros de salud), usa SSE-KMS con claves administradas por el cliente para auditoría
  • Habilita políticas de bucket 'Denegar si no está cifrado' para rechazar cargas sin cifrar
  • Usa la regla de AWS Config s3-bucket-server-side-encryption-enabled para auditar el cumplimiento
  • Asegúrate de que el cifrado también se aplique a servicios respaldados por S3 como logs de CloudFront, logs de acceso de ELB y CloudTrail

Tecnologías Afectadas

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas