Skip to content

Eliza-05/SecureDeps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

25 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SecureDeps

๐Ÿ”’ SecureDeps

Integraciรณn de SCA en Pipelines CI/CD para Gestiรณn de Vulnerabilidades

De la detecciรณn pasiva a la remediaciรณn activa โ€” completamente automatizado.


SCA Security Scan Auto Remediation Dashboard Python


๐ŸŒ Ver Dashboard en vivo ยท โšก Ver Pipeline ยท ๐Ÿ“‹ Ver PRs automรกticos


๐Ÿ“Œ ยฟQuรฉ es SecureDeps?

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.


๐ŸŽฏ Objetivos del Proyecto

# 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

๐Ÿ—๏ธ Arquitectura del Sistema

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        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/       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โš™๏ธ Stack Tecnolรณgico

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

๐Ÿ”„ Flujo Paso a Paso

Paso 1 โ€” Detecciรณn ๐Ÿ”

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.json

Paso 2 โ€” Remediaciรณn Automรกtica ๐Ÿค–

El 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.


Paso 3 โ€” Validaciรณn Automรกtica โœ…

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

Paso 4 โ€” Mรฉtricas y Dashboard ๐Ÿ“Š

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

๐Ÿ“ Estructura del Repositorio

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

๐Ÿš€ ยฟCรณmo usar SecureDeps en cualquier repositorio?

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

Lenguajes soportados

Lenguaje Archivo detectado Remediaciรณn automรกtica
Python requirements.txt โœ…
Node.js package.json โœ…
Java pom.xml โœ…

๐Ÿ“ˆ Resultados del Demo

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

๐Ÿ‘ฅ Equipo

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

๐Ÿ“š Referencias


SecureDeps ยท Pipeline SCA automatizado ยท 2026

Escuela Colombiana de Ingenierรญa Julio Garavito

About

Automated SCA integration in CI/CD pipelines for vulnerability management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages