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.
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 evento
Cuándo se dispara
Acción
InsertEvent
Se crea un nuevo registro
Creación
UpdateEvent
Un registro cambia — solo cuando el valor de un campo real realmente cambia
Actualización
DeleteEvent
Se elimina un registro
Eliminació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.
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ó.
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.