Skip to main content

Resumen

Qué hace

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

Para quién es

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.

Características y beneficios principales

Define reglas basadas en categorías CWE para bloquear las pull requests que introduzcan determinados tipos de vulnerabilidades o problemas de calidad.
Asigna niveles de urgencia (por ejemplo, crítico, alto, medio, bajo) a diferentes tipos de problemas, permitiéndote priorizar y gestionarlos en consecuencia.
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.
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.
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.
Cambia el estado de las reglas para activarlas o desactivarlas temporalmente sin perder su configuración.

Tipos de reglas

Las reglas de bloqueo admiten dos tipos:

Vulnerabilidad en el código

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.

Cómo funciona con GitHub

Requisito previo: Debes haber instalado y configurado la aplicación de GitHub de Corgea con los permisos necesarios en el repositorio.
1

Envío de pull requests

El desarrollador envía una pull request con cambios en el código
2

Análisis automatizado

El sistema analiza los cambios según las reglas de bloqueo activas
3

Validación de reglas

Si se detectan infracciones, la pull request se bloquea automáticamente
4

Notificación al desarrollador

El desarrollador recibe información detallada sobre las infracciones de las reglas
5

Resolución

El desarrollador debe corregir las infracciones y marcarlas como Corregidas, o como Falsos Positivos o Riesgo Aceptado antes de permitir la fusión

Cómo funciona con Azure DevOps

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.

Guía de uso

Creación de una nueva regla de bloqueo

1

Iniciar la creación

Haz clic en el botón “Añadir regla de bloqueo”
2

Elegir tipo de regla

Selecciona el tipo de regla:
  • 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.
6

Guardar

Revisa y haz clic en “Crear”

Gestión de las reglas existentes

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.
  1. Localiza la regla en la tabla
  2. Haz clic en “Editar”
  3. Modifica la configuración según sea necesario
  4. Haz clic en “Actualizar” para guardar

Consultar las reglas aplicadas a los escaneos

Puedes ver las reglas de bloqueo que se aplican a tus escaneos en dos lugares:
  1. En la página de detalles del escaneo, verás una sección de “Reglas de bloqueo” que muestra todas las reglas evaluadas:
  1. En cada hallazgo, puedes consultar las reglas de bloqueo activadas desde la vista de detalles:
Esto permite saber qué reglas afectan a cada escaneo y hallazgo, y por qué se han bloqueado determinados cambios.

Ejemplos

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

Mejores prácticas

Consejos de implementació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

Resolución de problemas

Si una pull request se bloquea inesperadamente, verifica primero las reglas activas y sus configuraciones.
  • Comportamiento inesperado de bloqueo
  • Problemas de segmentación de reglas
  • Problemas en el alcance del proyecto
  • Configuraciones de reglas de comprobación
  • Verificar la orientación de CWE
  • Confirmar la configuración del proyecto
  • Contactar con el soporte si es necesario