Las reglas de bloqueo son barreras de control que definen qué hallazgos deben hacer fallar una comprobación de pull request o un pipeline de CI. Así se garantiza que la base de código cumpla los estándares de seguridad y calidad de la organización.Puedes crear tres 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
Reglas de License Compliance: Bloquean dependencias con licencias SPDX concretas o familias de licencias
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.
Aplicar la política de licencias
Bloquea dependencias por identificadores SPDX concretos o por las familias de licencias Copyleft, Permissive y Commercial.
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.
Las reglas de bloqueo admiten tres tipos distintos para una cobertura de seguridad completa:
Code Vulnerability
Bloquea las pull requests basadas en vulnerabilidades de seguridad, hallazgos de calidad de código o ambos.Configuración:
Selecciona un tipo de hallazgo: All, Vulnerabilities o Code Quality
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.
Dependency Vulnerability
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 (Critical, High, Medium, Low)
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.
License Compliance
Bloquea pull requests o pipelines de CI cuando una dependencia usa una licencia denegada.Configuración:
Selecciona una o más familias de licencias: Copyleft, Permissive o Commercial
Introduce identificadores SPDX concretos, como AGPL-3.0
Úsalo para aplicar la política de licencias open source y comerciales de tu organización.
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 corrigiéndolas o marcándolas como False Positive o Accepted Risk antes de que la fusión pueda continuar.
Code Vulnerability: Bloquea pull requests según los hallazgos de SAST
Dependency Vulnerability: Bloquea pull requests según los hallazgos de SCA
License Compliance: Bloquea dependencias según licencias SPDX denegadas o familias de licencias
3
Información básica
Introduce el nombre y la descripción de la regla y elige Applies To:
Pull Requests aplica automáticamente la regla en las comprobaciones de pull request.
CI aplica la regla solo cuando un pipeline la nombra con corgea scan --block-on <slug>. Las reglas de CI no bloquean pull requests.
Las reglas nuevas usan Pull Requests por defecto. Corgea genera el slug a partir del nombre de la regla y lo muestra en la lista de reglas.
4
Configurar ajustes
Para las reglas de Code Vulnerability, elige un Issue Type para aplicarlas a All los hallazgos, solo a Vulnerabilities o solo a los hallazgos de Code Quality. All es el valor predeterminado y conserva el comportamiento de las reglas existentes. Después, selecciona niveles de urgencia (Critical, High, Medium o Low), categorías CWE o ambas opciones. Debes definir al menos una para que la regla sea válida.Para las reglas de Dependency Vulnerability: Elige si filtrar por gravedad o por puntuación CVSS. Selecciona los niveles de urgencia (Critical, High, Medium o Low), 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.Para las reglas de License Compliance: Selecciona al menos una familia de licencias denegada (Copyleft, Permissive o Commercial) o introduce uno o más identificadores SPDX. Una dependencia se bloquea cuando alguna licencia notificada coincide con una familia seleccionada o con un ID concreto.
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 filtra la lista por etiqueta de proyecto o por el destino de Applies To. La tabla de reglas muestra el slug de cada regla en la columna ID y presenta el alcance del proyecto, el tipo de regla y el destino Pull Requests o CI en Triggers On. Selecciona un slug para copiarlo y usarlo en un comando de CI. Las reglas sin alcance de proyecto o etiqueta se aplican a todos los proyectos, y las listas de alcance más largas se agrupan detrás de un tooltip +N more.
Crea una regla activa con Applies To establecido en CI y pasa su slug al comando de escaneo. Nombra las reglas según la condición que las dispara — por ejemplo criticals, no no-criticals — para que --block-on se lea como una afirmación directa. --block-on requiere Corgea CLI 1.10.0 o posterior.
corgea scan --block-on criticals
Para aplicar varias reglas de CI, proporciona sus slugs como una lista separada por comas. El comando falla cuando un hallazgo incumple cualquiera de las reglas nombradas. Un slug desconocido, una regla inactiva o una regla que se aplica a pull requests se tratan como error de configuración y no se omiten. --block-on solo es compatible con el escáner BLAST y no se puede combinar con --fail ni --fail-on.
Tipo de regla: Code VulnerabilityCrea una regla para CWE-326 (Inadequate Encryption Strength) y CWE-327 (Use of a Broken or Risky Cryptographic Algorithm), con urgencia “Critical”, para impedir el uso de cifrado débil.
Aplicación de la calidad del código
Tipo de regla: Code VulnerabilitySelecciona Code Quality como tipo de hallazgo. Después, crea una regla para CWE-398 (Indicator of Poor Code Quality) y CWE-477 (Use of Obsolete Functions), con urgencia “Medium”, para mantener los estándares del código.
Bloqueo de vulnerabilidades críticas de dependencias
Tipo de regla: Dependency VulnerabilityCrea una regla con los niveles de urgencia “Critical” y “High” 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: Dependency VulnerabilityCrea 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.
Bloquear dependencias Copyleft
Tipo de regla: License ComplianceSelecciona la familia Copyleft para bloquear dependencias cuyas licencias notificadas pertenecen a esa familia. Añade identificadores SPDX concretos cuando tu política necesite una lista de denegación más estrecha.