Bucket S3 con Acceso Público
Tu bucket de S3 es públicamente legible debido a un ACL público, configuración de Block Public Access deshabilitada o una política de bucket con wildcard — cualquiera en internet puede listar y descargar tus archivos.
Cómo Funciona
Los buckets de AWS S3 son privados por defecto, pero una sola mala configuración los hace legibles por todo el mundo. Esto puede suceder vía un ACL público en el bucket o en objetos individuales, una política de bucket con Principal: '*', o deshabilitando la configuración Block Public Access a nivel de cuenta. Los escáneres automatizados descubren buckets públicos en horas. El resultado: cada archivo que hayas subido es descargable por cualquiera.
// MAL: bucket creado con ACL public-read (Terraform)
resource "aws_s3_bucket_acl" "example" {
bucket = aws_s3_bucket.example.id
acl = "public-read" // hace todos los objetos públicamente legibles
}
// También MAL: deshabilitar block public access
resource "aws_s3_bucket_public_access_block" "example" {
bucket = aws_s3_bucket.example.id
block_public_acls = false // permite ACLs públicos
block_public_policy = false // permite políticas de bucket públicas
}// BIEN: fuerza acceso privado y bloquea todo el acceso público
resource "aws_s3_bucket_public_access_block" "example" {
bucket = aws_s3_bucket.example.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
// Usa pre-signed URLs para dar acceso temporal a objetos específicosEjemplo Real
En 2019, Capital One tuvo 100 millones de registros de clientes expuestos desde un bucket S3 vía una vulnerabilidad SSRF — pero el problema subyacente era que el bucket era accesible desde una instancia EC2 con permisos excesivos. En 2020, la filtración del código fuente de Twitch se atribuyó parcialmente a buckets S3 mal configurados. Los buckets S3 públicos han expuesto datos de cientos de empresas importantes.
Cómo Prevenirlo
- Habilita S3 Block Public Access a nivel de cuenta de AWS — esto previene que cualquier bucket sea hecho público
- Nunca uses ACLs public-read o public-read-write — usa pre-signed URLs para acceso temporal a objetos en su lugar
- Audita las políticas de bucket en busca de Principal: '*' que otorga acceso público
- Habilita el logging de acceso al servidor S3 de AWS y CloudTrail para detectar acceso no autorizado
- Usa la regla de AWS Config s3-bucket-public-read-prohibited para monitorear continuamente los buckets públicos
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
SSRF a Metadata de Cloud
criticalTu app hace fetch de URLs proporcionadas por el usuario sin bloquear endpoints de metadata de cloud como 169.254.169.254, dejando a los atacantes robar tus credenciales cloud vía SSRF.
Credenciales AWS Hardcodeadas
criticalLas 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.
Política IAM Excesivamente Permisiva
highTu 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.
CORS Mal Configurado en Almacenamiento Cloud
mediumTu bucket de S3 o GCS tiene CORS configurado con origin: '*' o AllowedMethods: ['*'], permitiendo que cualquier sitio web lea las respuestas de tu almacenamiento y potencialmente acceda a datos privados.