Log de Auditoria

O DefectDojo registra uma trilha de auditoria das alterações em seus dados. Todo objeto rastreado registra automaticamente eventos de criação, atualização e exclusão, e as tabelas de relacionamento (muitos-para-muitos) registram eventos de adição e remoção.

Como funciona

O rastreamento de auditoria é conduzido por triggers de banco de dados registrados por modelo. Para cada objeto rastreado, três tipos de evento podem ser disparados:

Tipo de eventoQuando é disparadoAção
InsertEventUm novo registro é criadoCriação
UpdateEventUm registro é alterado — apenas quando o valor de um campo realmente mudaAtualização
DeleteEventUm registro é excluídoExclusão

As tabelas de relacionamento muitos-para-muitos (tags, revisores, faixas de IP do firewall) rastreiam apenas adição (InsertEvent) e remoção (DeleteEvent) — não existe “atualização” para uma linha de relacionamento.

O que é capturado em cada evento

  • Quem — o usuário que executou a ação, obtido do contexto da requisição.
  • Quando — um timestamp.
  • IP de origem — o endereço remoto, respeitando as cadeias de proxy X-Forwarded-For.
  • Snapshot antes/depois — os valores completos dos campos do registro.
  • Contexto / rótulo — agrupa eventos originados da mesma requisição. O rótulo initial_backfill marca registros históricos importados quando o rastreamento foi ativado pela primeira vez.

Eventos produzidos por jobs em segundo plano são reconectados ao contexto da requisição de origem, de modo que uma ação concluída de forma assíncrona ainda é atribuída ao usuário que a disparou.

Core (Open Source) — ações rastreadas

ObjetoCriaçãoAtualizaçãoExclusãoNotas
Usuáriopassword excluído dos snapshots
Tipo de Produto
Produto
Engajamento
Teste
Achado
Grupo de Achados
Modelo de Achado
Aceitação de risco
Endpoint
Localização
URL
Webhook de Notificaçãoheader_name / header_value excluídos (segredos)

Core — eventos de relacionamento (adição / remoção)

RelacionamentoAdiçãoRemoção
Achado → Revisores
Achado → Tags
Achado → Tags Herdadas
Produto → Tags
Engajamento → Tags
Engajamento → Tags Herdadas
Teste → Tags
Teste → Tags Herdadas
Endpoint → Tags
Endpoint → Tags Herdadas
Modelo de Achado → Tags
App Analysis (Tecnologia) → Tags
Objects/Product → Tags

Pro — ações rastreadas

ObjetoCriaçãoAtualizaçãoExclusãoNotas
Achado AprimoradoComplemento Pro do Achado
RegraMecanismo de regras
Ação de Regra
Condição de Ação de Regra
Entrada de Filtro de Regra
Operação do Mecanismo de Regras
Mensagem de Operação do Mecanismo de Regras
Tarefa Agendada
Execução de Tarefa Agendada
Política de Mitigação
Configuração AjustávelAlterações de configuração do sistema
Estado do Feature FlagAtivação/desativação de flags + fixações do sistema
Definição do Feature FlagMetadados / sincronização de registro
Firewall de NuvemCampo locked excluído
Máscara de IP do Firewall

Pro — RBAC / permissões

ObjetoCriaçãoAtualizaçãoExclusão
Grupo
Papel
Associação a Grupo
Papel Global
Atribuição de Grupo a Produto
Atribuição de Grupo a Tipo de Produto
Membro do Produto
Membro do Tipo de Produto

Pro — eventos de relacionamento (adição / remoção)

RelacionamentoAdiçãoRemoção
Firewall de Nuvem → Faixas de IP

Configuração e retenção (Controles On-Premise)

ConfiguraçãoVariável de ambientePadrãoEfeito
Ativar log de auditoriaDD_ENABLE_AUDITLOGTrueQuando definido como False, todos os triggers de histórico são desativados e nenhum evento é registrado
Período de retençãoDD_AUDITLOG_FLUSH_RETENTION_PERIOD-1 (nunca limpa)Meses de histórico a manter; eventos mais antigos são excluídos em lotes pelo job de limpeza
Tamanho do lote de limpezaDD_AUDITLOG_FLUSH_BATCH_SIZE1000Linhas excluídas por lote durante a limpeza
Máximo de lotes de limpezaDD_AUDITLOG_FLUSH_MAX_BATCHES100Limite do número de lotes por execução de limpeza

Observações e limitações

  • Segredos nunca são capturados. As senhas de usuário e os valores de cabeçalho dos webhooks de notificação são explicitamente excluídos dos snapshots de eventos.
  • As atualizações só são registradas quando há uma mudança real. Um salvamento que não altera nenhum valor de campo não gera um evento de atualização; campos gerenciados automaticamente, como last_updated isoladamente, não disparam um evento.
  • Eventos de autenticação não são capturados aqui. Apenas mudanças de dados. As atividades de login, logout e tentativas de login malsucedidas são tratadas separadamente e não fazem parte deste log de auditoria.