Las reglas de bloqueo permiten definir las condiciones que impiden fusionar una pull request. De este modo, la base de código cumple los estándares de seguridad y calidad de la organización y se evita la incorporación de cambios que puedan resultar arriesgados o no conformes.Puedes crear dos tipos de reglas de bloqueo:
Reglas de vulnerabilidades de código: Bloquean PR en función de las vulnerabilidades, los hallazgos de calidad del código o ambos
Reglas de vulnerabilidades de dependencias: Bloquean PR en función de las dependencias vulnerables detectadas mediante el escaneo de SCA
Las reglas de bloqueo están diseñadas principalmente para:
Equipos de desarrollo
Gestores de proyecto
Profesionales de la seguridad
Esta función resulta especialmente útil para las organizaciones con requisitos normativos estrictos o que desarrollan aplicaciones críticas en las que la calidad y la seguridad son esenciales.
Define reglas basadas en categorías CWE para bloquear las pull requests que introduzcan determinados tipos de vulnerabilidades o problemas de calidad.
Personalizar niveles de urgencia
Asigna niveles de urgencia (por ejemplo, crítico, alto, medio, bajo) a diferentes tipos de problemas, permitiéndote priorizar y gestionarlos en consecuencia.
Filtrar dependencias por CVSS
En las reglas de vulnerabilidades de dependencias, define un intervalo inclusivo de puntuaciones CVSS para bloquear las dependencias vulnerables que se encuentren dentro de él.
Reglas con alcance de proyectos y etiquetas
Aplica reglas de bloqueo a proyectos específicos, etiquetas de proyecto o a toda tu organización, dándote un control detallado sobre qué proyectos están sujetos a qué reglas.
Gestión de reglas
Crea, edita y elimina fácilmente las reglas de bloqueo a través de una interfaz fácil de usar, asegurando que tus normas se mantengan actualizadas con tus requisitos cambiantes.
Activar o desactivar reglas
Cambia el estado de las reglas para activarlas o desactivarlas temporalmente sin perder su configuración.
Bloquea las pull requests basadas en vulnerabilidades de seguridad, hallazgos de calidad de código o ambos.Configuración:
Selecciona un tipo de hallazgo: Todos, Vulnerabilidades o Calidad del código
Selecciona categorías CWE concretas
Establece niveles de urgencia o gravedad
Utilízalo para evitar problemas como la inyección SQL, XSS, criptografía insegura y otras vulnerabilidades a nivel de código.
Vulnerabilidad de dependencia
Bloquea pull requests en función de las dependencias vulnerables detectadas mediante el análisis de composición de software (SCA).Configuración:
Establece niveles de urgencia o gravedad (crítico, alto, medio o bajo)
O bien establece un intervalo inclusivo de puntuaciones CVSS entre 0,0 y 10,0
Utiliza esto para evitar la introducción de paquetes con vulnerabilidades de seguridad conocidas, asegurando que tu cadena de suministro siga siendo segura.
Requisito previo: Asegúrate de que la integración de Azure DevOps con Corgea esté configurada y de que tengas los permisos necesarios.
1
Envío de pull requests
Un desarrollador envía una pull request con cambios de código en Azure DevOps.
2
Análisis automatizado
El sistema evalúa los cambios según las reglas de bloqueo activas configuradas en Corgea.
3
Validación de reglas
Si se detectan infracciones, la pull request se bloquea automáticamente.
El desarrollador no puede fusionar la PR hasta que se resuelva.
4
Notificación al desarrollador
El desarrollador recibe un enlace a la página del escaneo de Corgea con información detallada sobre los hallazgos que han provocado el fallo.
5
Resolución
El desarrollador debe resolver las infracciones corrijéndolas o marcándolas como Falsos Positivos o Riesgo Aceptado antes de que la fusión pueda continuar.
Vulnerabilidad de código: Bloquea pull requests según los hallazgos de SAST
Vulnerabilidad de dependencia: Bloquea pull requests según los hallazgos de SCA
3
Información básica
Introduce el nombre y la descripción de la regla
4
Configurar ajustes
Para las reglas de Vulnerabilidad del código, elige un Tipo de hallazgo para aplicarlas a Todos los hallazgos, solo a las Vulnerabilidades o solo a los hallazgos de Calidad del código. Todos es el valor predeterminado y conserva el comportamiento de las reglas existentes. Después, selecciona niveles de urgencia (crítico, alto, medio o bajo), categorías CWE o ambas opciones. Debes definir al menos una para que la regla sea válida.Para las reglas de Vulnerabilidad de Dependencia: Elige si filtrar por gravedad o por puntuación CVSS. Selecciona los niveles de urgencia (Crítico, Alto, Medio o Bajo), o introduce una puntuación CVSS mínima y máxima de 0,0 a 10,0 para bloquear dependencias vulnerables dentro de ese rango inclusivo.
5
Definir el ámbito
Selecciona proyectos, etiquetas de proyecto o ambas opciones. La regla se aplica a los proyectos seleccionados directamente o que tengan alguna de las etiquetas seleccionadas. Si no eliges ningún proyecto ni etiqueta, se aplica a todos los proyectos.
Usa la búsqueda para encontrar reglas por nombre o configuración, o usa el filtro de etiquetas de proyecto para mostrar las reglas que se aplican a proyectos con una etiqueta específica. En la tabla de reglas, la columna Proyectos muestra proyectos seleccionados y etiquetas de proyecto como chips; las reglas sin proyecto ni alcance de etiqueta muestran Todos los proyectos, y las listas de alcance más largas se agrupan detrás de una descripción sugerida +N más.
Tipo de regla: Vulnerabilidad del códigoCrea una regla para CWE-326 (solidez de cifrado inadecuada) y CWE-327 (uso de algoritmos criptográficos rotos o de riesgo), con urgencia “Crítica”, para impedir el uso de cifrado débil.
Aplicación de la calidad del código
Tipo de regla: Vulnerabilidad del códigoSelecciona Calidad del código como tipo de hallazgo. Después, crea una regla para CWE-398 (indicador de código de baja calidad) y CWE-477 (uso de funciones obsoletas), con urgencia “Media”, para mantener los estándares del código.
Bloqueo de vulnerabilidades críticas de dependencias
Tipo de regla: Vulnerabilidad de dependenciaCrea una regla con los niveles de urgencia “Crítico” y “Alto” seleccionados para bloquear automáticamente cualquier pull request que introduzca dependencias con vulnerabilidades críticas o de alta gravedad. Esto garantiza que tu cadena de suministro siga siendo segura y evita que los paquetes vulnerables conocidos entren en tu base de código.
Bloquear dependencias por intervalo CVSS
Tipo de regla: Vulnerabilidad de dependenciaCrea una regla que filtre por puntuación CVSS, como de 7.0 a 10.0, para bloquear las pull requests que introducen dependencias vulnerables dentro de ese rango de puntuación.
Empieza con las reglas esenciales y ve ampliando poco a poco
Para reglas de vulnerabilidad de dependencia, comienza solo con gravedad crítica o un rango CVSS enfocado, y luego amplía a medida que tu equipo se ajuste
Para reglas de vulnerabilidad de código, céntrate primero en los CWEs más impactantes (por ejemplo, fallos de inyección, problemas de autenticación)
Revisión y actualizaciones periódicas
Documentación clara y formación del equipo
Fomenta los comentarios y la colaboración
Uso estratégico de los niveles de urgencia
Considera las etiquetas de proyecto cuando la misma regla debería cubrir un grupo de proyectos relacionados