mediumCWE-532OWASP A09:2021

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.

Código Vulnerable
// 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
}
Código Seguro
// 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

Node.jsPython

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas