Flujo de Creación → Resolución Implementado en DefectDojo

✅ Implementación Completada

Se ha implementado el flujo completo de creación → resolución de findings en DefectDojo, permitiendo ver el historial completo de cuándo se crearon y cuándo se resolvieron las vulnerabilidades.

📅 Fechas Utilizadas

Las fechas se han obtenido del historial de Git:

  • CWE-20 (Validación de entrada):

    • Fecha de creación: 2025-11-10 (fecha por defecto)

    • Fecha de resolución: 2025-11-24 (encontrada en git: commit “chore: sincronizar actualizaciones”)

  • CWE-1021 (Clickjacking):

    • Fecha de creación: 2025-11-10 (fecha por defecto)

    • Fecha de resolución: 2025-11-24 (encontrada en git: commit “Configurar nginx principal…”)

🔄 Flujo Implementado

Paso 1: Crear Todos los Findings como Activos

El script init_defectdojo_internal.py ahora crea TODOS los findings inicialmente como activos (active: True, verified: False), incluyendo:

  • CWE-20

  • CWE-1021

  • CWE-1287

  • CWE-843

  • CWE-703

  • CWE-942

Paso 2: Marcar Como Resueltos con Fechas

El script resolve_findings_with_dates.py marca los findings como resueltos con las fechas correctas:

  • Actualiza active = False

  • Actualiza verified = True

  • Establece mitigated_date con la fecha de resolución

  • Actualiza la descripción con el estado “RESUELTO” y la fecha

📝 Scripts Disponibles

1. scripts/resolve_findings_with_dates.py

Script Python que debe ejecutarse dentro del contenedor de DefectDojo. Actualiza los findings CWE-20 y CWE-1021 con:

  • Fecha de creación: 2025-11-10

  • Fecha de resolución: 2025-11-24

2. scripts/mark_findings_resolved_with_dates.sh

Script bash que ejecuta el script Python dentro del contenedor. Usa:

./scripts/mark_findings_resolved_with_dates.sh

🚀 Uso

Flujo Completo

  1. Inicializar DefectDojo (crea todos los findings como activos):

    docker-compose --profile defectdojo up -d
    
  2. Marcar findings como resueltos (con fechas históricas):

    ./scripts/mark_findings_resolved_with_dates.sh
    

Solo Marcar como Resueltos

Si DefectDojo ya está corriendo y solo quieres marcar los findings como resueltos:

./scripts/mark_findings_resolved_with_dates.sh

📊 Resultado en DefectDojo

Después de ejecutar los scripts, en DefectDojo podrás ver:

  1. Historial completo de cada finding:

    • Fecha de creación original

    • Fecha de resolución

    • Cambios de estado

  2. Findings resueltos con información detallada:

    • CWE-20: Resuelto el 2025-11-24

    • CWE-1021: Resuelto el 2025-11-24

  3. Findings pendientes que permanecen activos:

    • CWE-1287

    • CWE-843

    • CWE-703

    • CWE-942

🔍 Verificar en DefectDojo

Accede a DefectDojo en: http://localhost:8080

Para ver los findings:

  • Engagement: http://localhost:8080/engagement/1/

  • Test: http://localhost:8080/test/1/

  • Findings: http://localhost:8080/test/1/findings

En cada finding podrás ver:

  • La fecha de creación

  • La fecha de resolución (si está resuelto)

  • El historial completo de cambios de estado

📝 Notas

  • Las fechas se establecen automáticamente cuando se marca un finding como resuelto

  • El historial se mantiene en DefectDojo automáticamente

  • Los findings creados inicialmente como activos mantienen su fecha de creación original

  • Los findings resueltos muestran la fecha de resolución en el campo mitigated_date

🎯 Beneficios

Trazabilidad completa: Se puede ver cuándo se creó y cuándo se resolvió cada vulnerabilidad ✅ Historial: DefectDojo mantiene el historial automáticamente de los cambios de estado ✅ Transparencia: Muestra el proceso completo de gestión de vulnerabilidades ✅ Fechas reales: Usa las fechas reales encontradas en el historial de git