Logging Cloud con Datos Sensibles
Tu app loguea PII, tokens o credenciales en CloudWatch, Stackdriver u otros servicios de logging cloud, donde persisten indefinidamente y son accesibles para cualquiera con permisos de lectura de logs.
Cómo Funciona
Los logs cloud frecuentemente están menos controlados que tu base de datos. Se comparten con todos los desarrolladores del equipo, son ingestados por herramientas de monitoreo de terceros y se almacenan por meses o años. Cuando tu app loguea cuerpos de requests, headers o info de debug que contiene PII de usuarios, tokens de API o contraseñas, esos datos se vuelven ampliamente accesibles. Las políticas de retención de logs y los controles de acceso suelen ser una ocurrencia de último momento.
// MAL: logueando el cuerpo completo del request que puede contener contraseñas o tokens
export async function POST(req: Request) {
const body = await req.json();
console.log('Cuerpo del request:', JSON.stringify(body)); // puede contener contraseña, token
// ... resto del handler
}// BIEN: loguea solo metadatos seguros y no sensibles
export async function POST(req: Request) {
const body = await req.json();
// Loguea solo el tipo de acción y el ID de usuario — nunca los valores reales
console.log('Request recibido:', { action: body.action, userId: body.userId });
// ... resto del handler
}Ejemplo Real
Una importante empresa fintech descubrió que sus logs de CloudWatch contenían tokens JWT completos en los headers de request que estaban siendo logueados por su cadena de formato de log de acceso de API Gateway. Cualquiera con acceso de lectura a CloudWatch — incluyendo herramientas APM de terceros — tenía acceso a tokens de sesión activos durante meses.
Cómo Prevenirlo
- Audita tus declaraciones de log para asegurarte de que no se logueen PII, contraseñas, tokens ni secretos
- Usa logging estructurado con allowlists explícitos de campos — solo loguea campos que hayas revisado
- Configura redacción de logs en tu librería de logging (Winston, Pino tienen opciones de redact) para nombres de campos sensibles
- Configura períodos de retención de logs apropiados — no almacenes logs sensibles indefinidamente
- Restringe el acceso a logs de CloudWatch/Stackdriver a los equipos que realmente lo necesitan
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Bucket S3 con Acceso Público
criticalTu 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.
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.