Registro de auditoría

DefectDojo registra un rastro de auditoría de los cambios en sus datos. Cada objeto rastreado registra automáticamente eventos de creación, actualización y eliminación, y las tablas de relación (muchos a muchos) registran eventos de agregado y eliminación.

Cómo funciona

El rastreo de auditoría está impulsado por disparadores de base de datos registrados por modelo. Para cada objeto rastreado, pueden dispararse tres tipos de eventos:

Tipo de eventoCuándo se disparaAcción
InsertEventSe crea un nuevo registroCreación
UpdateEventUn registro cambia — solo cuando el valor de un campo real realmente cambiaActualización
DeleteEventSe elimina un registroEliminación

Las tablas de relación muchos a muchos (etiquetas, revisores, rangos de IP de firewall) rastrean solo agregado (InsertEvent) y eliminación (DeleteEvent) — no existe una “actualización” para una fila de relación.

Qué se captura con cada evento

  • Quién — el usuario que realiza la acción, tomado del contexto de la solicitud.
  • Cuándo — una marca de tiempo.
  • IP de origen — la dirección remota, respetando las cadenas de proxy X-Forwarded-For.
  • Instantánea antes/después — los valores completos de los campos del registro.
  • Contexto / etiqueta — agrupa los eventos originados en la misma solicitud. La etiqueta initial_backfill marca los registros históricos importados cuando se habilitó el rastreo por primera vez.

Los eventos producidos por trabajos en segundo plano se vuelven a vincular al contexto de la solicitud de origen, de modo que una acción completada de forma asíncrona sigue atribuyéndose al usuario que la originó.

Core (Open Source) — acciones rastreadas

ObjetoCreaciónActualizaciónEliminaciónNotas
Usuario✅✅✅password excluido de las instantáneas
Tipo de producto✅✅✅
Producto✅✅✅
Compromiso✅✅✅
Test✅✅✅
Hallazgo✅✅✅
Grupo de hallazgos✅✅✅
Plantilla de hallazgo✅✅✅
Aceptación de riesgo✅✅✅
Endpoint✅✅✅
Ubicación✅✅✅
URL✅✅✅
Webhook de notificación✅✅✅header_name / header_value excluidos (secretos)

Core — eventos de relación (agregado / eliminación)

RelaciónAgregadoEliminación
Hallazgo → Revisores✅✅
Hallazgo → Etiquetas✅✅
Hallazgo → Etiquetas heredadas✅✅
Producto → Etiquetas✅✅
Compromiso → Etiquetas✅✅
Compromiso → Etiquetas heredadas✅✅
Test → Etiquetas✅✅
Test → Etiquetas heredadas✅✅
Endpoint → Etiquetas✅✅
Endpoint → Etiquetas heredadas✅✅
Plantilla de hallazgo → Etiquetas✅✅
Análisis de aplicaciones (Tecnología) → Etiquetas✅✅
Objetos/Producto → Etiquetas✅✅

Pro — acciones rastreadas

ObjetoCreaciónActualizaciónEliminaciónNotas
Hallazgo mejorado✅✅✅Complemento Pro de Hallazgo
Regla✅✅✅Motor de reglas
Acción de regla✅✅✅
Condición de acción de regla✅✅✅
Entrada de filtro de regla✅✅✅
Operación del motor de reglas✅✅✅
Mensaje de operación del motor de reglas✅✅✅
Tarea programada✅✅✅
Ejecución de tarea programada✅✅✅
Política de mitigación✅✅✅
Ajuste configurable✅✅✅Cambios de configuración del sistema
Estado de indicador de función✅✅✅Activaciones/desactivaciones + fijaciones del sistema
Definición de indicador de función✅✅✅Metadatos / sincronización de registro
Firewall en la nube✅✅✅Campo locked excluido
Máscara de IP de firewall✅✅✅

Pro — RBAC / permisos

ObjetoCreaciónActualizaciónEliminación
Grupo✅✅✅
Rol✅✅✅
Membresía de grupo✅✅✅
Rol global✅✅✅
Asignación de grupo a producto✅✅✅
Asignación de grupo a tipo de producto✅✅✅
Miembro de producto✅✅✅
Miembro de tipo de producto✅✅✅

Pro — eventos de relación (agregado / eliminación)

RelaciónAgregadoEliminación
Firewall en la nube → Rangos de IP✅✅

Configuración y retención (controles on-premise)

AjusteVariable de entornoPredeterminadoEfecto
Habilitar el registro de auditoríaDD_ENABLE_AUDITLOGTrueCuando es False, todos los disparadores de historial se deshabilitan y no se registra ningún evento
Período de retenciónDD_AUDITLOG_FLUSH_RETENTION_PERIOD-1 (nunca purgar)Meses de historial a conservar; los eventos más antiguos se eliminan por lotes mediante el trabajo de purga
Tamaño de lote de purgaDD_AUDITLOG_FLUSH_BATCH_SIZE1000Filas eliminadas por lote durante la limpieza
Máximo de lotes de purgaDD_AUDITLOG_FLUSH_MAX_BATCHES100Límite en la cantidad de lotes por ejecución de purga

Notas y limitaciones

  • Los secretos nunca se capturan. Las contraseñas de usuario y los valores de encabezado de los webhooks de notificación se excluyen explícitamente de las instantáneas de eventos.
  • Las actualizaciones solo se registran ante un cambio real. Un guardado que no altera ningún valor de campo no genera ningún evento de actualización; los campos autogestionados, como last_updated por sí solo, no disparan uno.
  • Los eventos de autenticación no se capturan aquí. Solo cambios de datos. El inicio de sesión, el cierre de sesión y los intentos fallidos de inicio de sesión se gestionan por separado y no forman parte de este registro de auditoría.