lowCWE-778A09:2021

Logging de Seguridad Insuficiente

No loguear eventos de seguridad (logins fallidos, denegaciones de permisos, acciones sospechosas) significa que no puedes detectar ataques en curso ni reconstruir lo que pasó después de una brecha.

Cómo Funciona

OWASP A09 — Fallos de Logging y Monitoreo de Seguridad — está consistentemente en el top 10 porque las organizaciones no pueden detectar brechas sin los logs correctos. Sin logs de eventos de seguridad, un ataque de credential stuffing puede correr durante semanas antes de que alguien lo note.

Código Vulnerable
// MAL: autenticación sin logging de eventos de seguridad
export async function POST(req: Request) {
  const { email, password } = await req.json();
  const user = await validateCredentials(email, password);
  if (!user) return Response.json({ error: 'Inválido' }, { status: 401 });
  // Sin log del intento fallido — el atacante es invisible
  return Response.json({ token: createToken(user) });
}
Código Seguro
// BIEN: loguea eventos de seguridad con suficiente contexto para detectar e investigar
export async function POST(req: Request) {
  const { email, password } = await req.json();
  const user = await validateCredentials(email, password);
  if (!user) {
    securityLog.warn({ event: 'login_failed', email, ip: getIP(req) });
    return Response.json({ error: 'Credenciales inválidas' }, { status: 401 });
  }
  securityLog.info({ event: 'login_success', userId: user.id, ip: getIP(req) });
  return Response.json({ token: createToken(user) });
}

Ejemplo Real

La brecha de Target de 2013 pasó desapercibida durante 3 semanas porque su monitoreo de seguridad no estaba configurado para alertar sobre los patrones específicos de exfiltración de datos que ocurrían. Con logging y alertas adecuadas, la brecha podría haberse detectado en horas.

Cómo Prevenirlo

  • Loguea todos los eventos de autenticación: login exitoso, login fallido, reset de contraseña, eventos MFA
  • Loguea todos los fallos de autorización: requests a recursos a los que el usuario no tiene permiso de acceder
  • Incluye dirección IP, ID de usuario (no username/email), timestamp y acción en cada log de seguridad
  • Configura alertas para patrones anómalos: >10 logins fallidos por minuto, acceso desde nuevos países

Tecnologías Afectadas

Node.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas