Codea Seguro Codea Seguro
Desarrollo Seguro Dificultad: avanzada

Logging y monitoreo seguro

Qué registrar para detectar ataques sin filtrar secretos ni datos personales.

El fallo de logging y monitoreo está en el OWASP Top 10: sin registros no detectas la brecha, y el tiempo medio de detección se dispara. Pero un log mal hecho es, él mismo, una fuga de datos.

1. Registra los eventos de seguridad

Asegúrate de capturar lo que permite investigar un incidente:

  • Inicios de sesión (éxitos y fallos), logout, cambios de contraseña y de permisos.
  • Fallos de autorización (accesos denegados).
  • Validaciones de entrada rechazadas y errores del servidor.
  • Operaciones sensibles: pagos, exportaciones de datos, acciones de administrador.

Incluye contexto útil: timestamp, identidad, IP de origen, acción y resultado.

2. Nunca registres secretos ni datos sensibles

Este es el error que convierte el logging en vulnerabilidad:

// MAL — la contraseña y el token quedan en los logs para siempre
logger.info('login', { email, password, authToken });

// BIEN — solo lo necesario, con los campos sensibles redactados
logger.info('login_ok', { userId, ip: req.ip });

No registres contraseñas, tokens, números de tarjeta, PII innecesaria ni cuerpos de petición completos. Aplica redacción automática de campos sensibles en el logger.

3. Protege la integridad de los logs

  • Envía los logs a un almacén centralizado y de solo anexado (append-only), fuera del alcance de la app atacada.
  • Controla el acceso de lectura: los logs contienen información valiosa.
  • Define retención acorde a normativa (y bórralos cuando toque).

4. Monitorea y alerta

Los logs sin alertas son arqueología. Define umbrales y detección de anomalías:

  • Picos de fallos de login o de errores 401/403.
  • Accesos a recursos sensibles fuera de patrón.
  • Alertas accionables enrutadas a un canal que alguien vigila.

5. Evita la inyección de logs

Datos del usuario escritos sin sanear pueden falsificar entradas o romper el parser (CRLF injection). Escapa saltos de línea y usa logging estructurado (JSON) en vez de concatenar texto.

Checklist rápida

  • Eventos de seguridad registrados con contexto suficiente.
  • Redacción automática de secretos y PII; sin cuerpos completos de petición.
  • Almacén centralizado, append-only y con acceso controlado.
  • Retención definida según normativa.
  • Alertas accionables sobre anomalías, no solo recolección.
  • Logging estructurado y a prueba de inyección (CRLF).