Verificando autenticación…

Saltar al contenido principal

GitLab Duo Workflow - Flujo para Vulnerabilidades de Seguridad

· 7 min de lectura
Raúl Linares
Cybersecurity Chapter @ ANDES Engineering Platform

¿Cansado de gastar tiempo actualizando librerías o remediando vulnerabilidades en tu árbol de dependencias?

Te presentamos el ANDES Dependency Manager, un agente GitLab personalizado para LATAM que automatiza el análisis y la corrección de vulnerabilidades en las dependencias de tus proyectos.

¿Qué es el ANDES Dependency Manager?

El ANDES Dependency Manager es un asistente de inteligencia artificial personalizado que detecta vulnerabilidades en las dependencias de tu repositorio, genera un análisis detallado y puede crear automáticamente un Merge Request con las actualizaciones necesarias para remediarlas—apenas mencionas el bot @ai-andes-dependency-manager-latam-airlines en un issue o MR.

Sin esperas, sin procesos manuales: Simplemente escribe un comentario y el agente hace el trabajo.

Requisito previo: Activación del agente

Antes de usar el ANDES Dependency Manager, un Owner o Maintainer del repositorio debe activar esta capacidad en GitLab. Esto se hace a nivel de repositorio o subgrupo para habilitar el acceso a @ai-andes-dependency-manager-latam-airlines.

Contacta a tu líder técnico o al equipo de ANDES para solicitar la activación si aún no está disponible en tu proyecto.


Cómo usar: Sintaxis base

La sintaxis es simple. En un issue o Merge Request, escribe:

@ai-andes-dependency-manager-latam-airlines [descripción] [parámetros opcionales]

Parámetros disponibles

ParámetroTipoDescripción
issue #NNNRequeridoIID del issue donde se publicará el comentario con el resultado
target_branch: RAMAOpcionalRama destino del MR. Por defecto: main
report_onlyOpcionalGenera solo el reporte sin crear branch ni MR

Los parámetros son independientes y pueden combinarse en cualquier orden.


Paso a paso: Cómo ejecutar el flujo

Paso 1️⃣: Menciona el agente en tu issue o MR

Crea un issue técnico o MR donde necesites analizar y corregir vulnerabilidades. Luego, en los comentarios, menciona al agente con tu comando:

@ai-andes-dependency-manager-latam-airlines Fix dependency vulnerabilities. issue #42

El flujo comienza a trabajar inmediatamente. Demorará algunos minutos en completar el análisis.

Mentioning the agent

El agente confirmará que ha iniciado y comenzará a analizar todas las dependencias de tu proyecto.


Paso 2️⃣: Recibe el reporte de vulnerabilidades

Dependiendo de qué opción hayas elegido, recibirás diferentes resultados:

Opción A: Solo reporte (report_only)

Si usaste la opción report_only:

@ai-andes-dependency-manager-latam-airlines report_only. issue #31

El flujo generará un reporte completo sin crear cambios. Verás algo como esto:

Vulnerability Report Summary

Contenido del reporte:

  • Summary: tabla con severidades (CRITICAL, HIGH, MEDIUM)
  • Root Cause: análisis de la causa raíz de cada vulnerabilidad
  • Impact: qué componentes son afectados
  • Número total de vulnerabilidades detectadas y su estado

Esto es ideal si quieres:

  • ✅ Hacer una auditoría de seguridad
  • ✅ Revisar el impacto antes de aplicar cambios
  • ✅ Evaluar el riesgo con tu equipo

Luego, si decides aplicar los cambios, puedes ejecutar el mismo flujo sin report_only.


Opción B: Flujo completo (crear MR automático)

Si usaste el flujo sin report_only:

@ai-andes-dependency-manager-latam-airlines Fix vulnerabilities. issue #55. target_branch: develop

El agente creará automáticamente un Merge Request con todas las vulnerabilidades corregidas. Verás una respuesta como esta:

MR Created with Security Updates

Lo que el flujo hace:

  • ✅ Crea un branch security/deps-update-* desde tu rama especificada
  • ✅ Actualiza todas las dependencias vulnerables
  • ✅ Abre un MR con cambios propuestos
  • ✅ Publica un comentario en el issue indicando el progreso

Paso 3️⃣: Revisa los cambios en el MR

Dentro del Merge Request abierto, encontrarás toda la información técnica:

Technical Changes in MR

En el MR encontrarás:

  • Total de vulnerabilidades corregidas (ej: 100 CRITICAL, 4 HIGH, 51 MEDIUM)
  • Lista de dependencias actualizadas:
    • Nombre del paquete
    • Versión anterior → Versión nueva
    • Ejemplo: tomcat-embed-core: 9.0.53 → 9.0.117

Paso 4️⃣: Análisis de priorización de mitigación

Lo mejor: el reporte incluye una priorización inteligente basada en:

  • Contexto de tu infraestructura (si está disponible en el repositorio)
  • Indicadores de explotabilidad conocidos (EPSS)
  • Severidad técnica (CVSS)

Mitigation Prioritization

Esta priorización te ayuda a:

  • 🎯 Entender qué vulnerabilidades son más críticas en TU contexto específico
  • 📊 Ver la probabilidad de explotación activa
  • ⚡ Tomar decisiones informadas sobre qué actualizar primero

Indicadores de riesgo en el reporte

Cada vulnerabilidad reportada incluye dos indicadores de riesgo cuando están disponibles:

CVSS Score (0–10)

Severidad técnica de la vulnerabilidad según el Common Vulnerability Scoring System. Valores más altos = riesgo crítico.

  • 0-3.9: Bajo
  • 4.0-6.9: Medio
  • 7.0-8.9: Alto
  • 9.0-10: Crítico

EPSS Score (0.0–1.0)

Exploit Prediction Scoring System: probabilidad de que la vulnerabilidad esté siendo explotada activamente en el mundo real.

  • 0.0-0.3: Probabilidad baja de explotación
  • 0.3-0.7: Probabilidad moderada
  • 0.7-1.0: Alta probabilidad de explotación activa

Tabla de referencia rápida

CasoParámetros¿Crea MR?¿Comenta?
Flujo completo (main)issue #NNNSí → main
Flujo rama customissue #NNN + target_branch: XSí → X
Solo reportereport_only + issue #NNNNo
Reporte + rama customreport_only + target_branch: X + issue #NNNNo

Casos de uso detallados

Caso 1: Flujo completo con rama principal

Analiza vulnerabilidades, actualiza dependencias, crea un branch desde main y abre un MR:

@ai-andes-dependency-manager-latam-airlines Fix dependency vulnerabilities. issue #42

Resultado esperado:

  • ✅ Branch creado desde main
  • ✅ Commit con dependencias actualizadas
  • ✅ MR abierto hacia main
  • ✅ Comentario en issue #42

Caso 2: Flujo completo con rama personalizada

Para proyectos con trunk distinto a main (como develop, release/x.x, staging):

@ai-andes-dependency-manager-latam-airlines Fix vulnerabilities. issue #55. target_branch: develop

También aceptamos estos formatos:

@ai-andes-dependency-manager-latam-airlines Analizar deps. issue #12. branch: release/2.3
@ai-andes-dependency-manager-latam-airlines Security scan. issue #99. merge into staging

Caso 3: Solo reporte (sin MR)

Genera un reporte completo sin crear cambios. Ideal para auditorías o revisar el impacto primero:

@ai-andes-dependency-manager-latam-airlines report_only. issue #31

También acepta:

  • solo reporte
  • only report
  • no mr
  • sin merge request

Caso 4: Reporte sobre rama personalizada

Combina report_only con target_branch para ver qué pasaría en una rama específica:

@ai-andes-dependency-manager-latam-airlines report_only. target_branch: develop. issue #88

Notas importantes

Re-ejecución

Si ya existe un branch security/deps-update-*, el agente genera uno nuevo con timestamp automáticamente.

Rama no encontrada

Si la rama indicada no existe, verifica que exista antes de ejecutar el flujo.

Issue IID vs MR IID

El comentario siempre se publica en el issue/MR indicado con issue #NNN. Asegúrate de usar el IID correcto del proyecto.

Cambiar de reporte a MR

Ejecuta el flujo nuevamente sin report_only sobre el mismo issue para aplicar los cambios recomendados en el reporte anterior.


Ejemplo práctico completo

Escenario: Tu proyecto usa develop como rama principal. Quieres analizar y corregir vulnerabilidades.

  1. Abre un issue técnico con nombre: "Actualizar dependencias inseguras"

  2. En el issue, comenta:

    @ai-andes-dependency-manager-latam-airlines Please analyze and fix security vulnerabilities.
    issue #123. target_branch: develop
  3. El flujo trabaja (demorará algunos minutos):

    • ✅ Analiza todas las dependencias
    • ✅ Identifica vulnerabilidades
    • ✅ Crea un branch security/deps-update-* desde develop
    • ✅ Actualiza package.json, package-lock.json, etc.
    • ✅ Abre MR hacia develop
    • ✅ Publica un comentario en issue #123 con el reporte detallado
  4. Revisa y aprueba:

    • Revisa el reporte en el comentario
    • Abre el MR y verifica los cambios técnicos
    • Revisa la priorización de mitigación
    • Aprueba el MR
  5. ¡Listo! Tu proyecto está más seguro. Las dependencias vulnerables han sido actualizadas.


Próximos pasos

  • ✅ Solicita la activación del flow a tu Owner o Maintainer
  • 🚀 Comienza a usar @ai-andes-dependency-manager-latam-airlines en tus issues y MRs
  • 📋 Usa report_only primero si quieres revisar antes de hacer cambios
  • 📚 Para soporte o preguntas, consulta la documentación de ANDES

Seguridad automática. Sin fricción. Desde hoy.


Powered by LATAM Security & GitLab Duo Workflow