De la detecciรณn pasiva a la remediaciรณn activa โ completamente automatizado.
๐ Ver Dashboard en vivo ยท โก Ver Pipeline ยท ๐ Ver PRs automรกticos
SecureDeps es un sistema de anรกlisis de composiciรณn de software (SCA) integrado directamente en el pipeline CI/CD. Detecta vulnerabilidades en dependencias de software, genera correcciones automรกticas y las valida antes de llegar a producciรณn โ sin intervenciรณn humana inicial.
๐ก El problema que resuelve: El 80โ90% del software moderno estรก compuesto por dependencias de terceros. Las herramientas SCA tradicionales solo alertan sobre vulnerabilidades, dejando la correcciรณn como un proceso manual, lento y propenso a errores. SecureDeps cierra ese ciclo automรกticamente.
| # | Objetivo |
|---|---|
| 1 | Configurar una herramienta SCA para identificaciรณn temprana de dependencias vulnerables |
| 2 | Evaluar la viabilidad de remediaciรณn automรกtica mediante Pull Requests |
| 3 | Desarrollar pipelines de CI que ejecuten pruebas automatizadas sobre las propuestas de remediaciรณn |
| 4 | Extraer y analizar mรฉtricas de seguridad (MTTR) para medir la eficiencia del flujo |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ RAMA main โ
โ (dependencias vulnerables) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ push / trigger manual
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ SCA Security Scan (Trivy) โ
โ โ
โ โข Escanea ./app en busca de CVEs conocidos โ
โ โข Genera reporte JSON + SARIF โ
โ โข Publica resultados en GitHub Security tab โ
โ โข Corre tests de la aplicaciรณn con pytest โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ al completar exitosamente
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ค Auto Remediation (PR Generator) โ
โ โ
โ โข Lee el reporte de Trivy โ
โ โข Detecta el lenguaje (Python / Node.js / Java) โ
โ โข Actualiza el archivo de dependencias con versiones seguras โ
โ โข Registra mรฉtricas de detecciรณn (timestamp, CVE, severidad) โ
โ โข Crea rama fix/securedeps-auto-remediation-{run_id} โ
โ โข Abre Pull Request automรกtico hacia develop โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PR abierto
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
Validate Remediation PR โ
โ โ
โ โข Instala las dependencias actualizadas โ
โ โข Ejecuta tests con pytest โ
โ โข Verifica que no queden vulnerabilidades CRITICAL โ
โ โข Calcula el MTTR (tiempo detecciรณn โ validaciรณn) โ
โ โข Actualiza mรฉtricas en security-metrics.json โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ merge a develop
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ Dashboard (GitHub Pages) โ
โ โ
โ โข Muestra vulnerabilidades detectadas y remediadas โ
โ โข MTTR promedio en tiempo real โ
โ โข Estado de cada PR (Pendiente / Validado) โ
โ โข Accesible en: eliza-05.github.io/SecureDeps/dashboard/ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Componente | Tecnologรญa | Propรณsito |
|---|---|---|
| Scanner SCA | Trivy | Detecciรณn de CVEs en dependencias |
| CI/CD | GitHub Actions | Orquestaciรณn del pipeline completo |
| Lenguajes soportados | Python ยท Node.js ยท Java | Anรกlisis multi-lenguaje |
| Remediaciรณn | Python + GitHub API | Generaciรณn automรกtica de PRs |
| Mรฉtricas | JSON + GitHub Pages | Registro y visualizaciรณn de MTTR |
| Dashboard | HTML ยท CSS ยท JavaScript | Interfaz de monitoreo en tiempo real |
| Tests | pytest | Validaciรณn de dependencias actualizadas |
El pipeline se activa en cada push a main. Trivy escanea la carpeta app/ y genera tres tipos de reporte:
- Tabla โ visible en los logs de Actions
- JSON โ usado por los scripts de remediaciรณn
- SARIF โ integrado en la pestaรฑa Security de GitHub
trivy fs ./app --scanners vuln --format json --output trivy-report.jsonEl script remediate.py lee el reporte JSON, detecta el lenguaje del proyecto y actualiza el archivo de dependencias con las versiones seguras disponibles:
requests==2.25.0 โ requests==2.31.0 (CVE-2023-32681 ยท MEDIUM)
flask==2.0.0 โ flask==2.3.2 (CVE-2023-30861 ยท HIGH)
werkzeug==2.0.3 โ werkzeug==2.2.3 (CVE-2023-25577 ยท HIGH)
cryptography==3.4.8 โ cryptography==39.0.1 (CVE-2023-0286 ยท HIGH)
Luego open_pr.py crea una rama y abre el PR automรกticamente con una tabla detallada de todos los cambios.
Cuando se valida el PR, el workflow validate-pr.yml ejecuta dos jobs en secuencia:
Job 1 โ Validate Updated Dependencies
- Instala las dependencias con las versiones corregidas
- Ejecuta la suite de tests con pytest
- Verifica con Trivy que no queden vulnerabilidades CRITICAL
Job 2 โ Security Gate
- Bloquea el merge si quedan vulnerabilidades CRITICAL con fix disponible
- Aprueba si todas las CRITICAL fueron resueltas
Cada vulnerabilidad detectada y remediada queda registrada en metrics/security-metrics.json con:
{
"package": "flask",
"vuln_id": "CVE-2023-30861",
"severity": "HIGH",
"detected_at": "2026-03-31T01:26:23Z",
"pr_validated_at": "2026-03-31T01:30:37Z",
"mttr_minutes": 4.23,
"status": "validated"
}El dashboard en GitHub Pages lee este archivo en tiempo real y muestra:
- Total de vulnerabilidades detectadas
- PRs pendientes y validados
- MTTR promedio โ la mรฉtrica clave de eficiencia
- Historial completo con barras visuales de MTTR por paquete
SecureDeps/
โ
โโโ .github/
โ โโโ workflows/
โ โโโ sca-scan.yml # Escaneo SCA con Trivy
โ โโโ auto-remediate.yml # Generaciรณn automรกtica de PRs
โ โโโ validate-pr.yml # Validaciรณn y Security Gate
โ
โโโ app/
โ โโโ main.py # Aplicaciรณn Flask de ejemplo
โ โโโ requirements.txt # Dependencias vulnerables (demo)
โ
โโโ scripts/
โ โโโ remediate.py # Detecciรณn y actualizaciรณn de dependencias
โ โโโ open_pr.py # Creaciรณn automรกtica de Pull Requests
โ โโโ metrics.py # Registro y cรกlculo de MTTR
โ
โโโ dashboard/
โ โโโ index.html # Dashboard de mรฉtricas (GitHub Pages)
โ
โโโ metrics/
โ โโโ security-metrics.json # Base de datos de mรฉtricas
โ
โโโ tests/
โโโ test_main.py # Tests de la aplicaciรณn
SecureDeps funciona como una herramienta que se instala en cualquier repositorio. Solo se necesitan tres pasos:
1. Copiar los archivos de workflows y scripts al repositorio objetivo
2. Hacer push โ el pipeline se activa automรกticamente
3. Ver los resultados en la pestaรฑa Security y en el dashboard
| Lenguaje | Archivo detectado | Remediaciรณn automรกtica |
|---|---|---|
| Python | requirements.txt |
โ |
| Node.js | package.json |
โ |
| Java | pom.xml |
โ |
| Mรฉtrica | Valor |
|---|---|
| Vulnerabilidades detectadas | 25+ CVEs reales |
| Dependencias remediadas | 5 por ciclo |
| MTTR promedio | ~2.5 minutos |
| Tests automatizados | โ Pasando |
| Security Gate | โ Sin CRITICAL pendientes |
| Integrante | Rol |
|---|---|
| Elizabeth Correa | Desarrollo del pipeline y scripts |
| Marรญa Paula Rodrรญguez | Desarrollo del pipeline y scripts |
| Juan Andrรฉs Suรกrez | Desarrollo del pipeline y scripts |
| Sebastiรกn Ortega | Desarrollo del pipeline y scripts |
- Black Duck OSSRA Report 2024
- What is Software Composition Analysis? โ Black Duck
- SCA in CI/CD โ Sonatype
- Trivy Documentation
- GitHub Dependabot Security Updates
SecureDeps ยท Pipeline SCA automatizado ยท 2026
Escuela Colombiana de Ingenierรญa Julio Garavito