Les règles de blocage sont des garde-fous qui définissent quels résultats doivent faire échouer une vérification de pull request ou un pipeline CI. Cela permet de garantir que votre base de code respecte les normes de sécurité et de qualité de votre organisation.Vous pouvez créer trois types de règles de blocage :
Règles de vulnérabilité du code : bloquent les pull requests selon les vulnérabilités, les problèmes de qualité du code ou les deux
Règles de vulnérabilité des dépendances : bloquent les pull requests selon les dépendances vulnérables détectées par le scan SCA
Règles de License Compliance : bloquent les dépendances avec des licences SPDX spécifiques ou des familles de licences
Les règles de blocage sont principalement conçues pour :
Équipes de développement
Chefs de projet
Professionnels de la sécurité
Cette fonctionnalité est particulièrement utile pour les organisations ayant des exigences strictes en matière de conformité ou celles travaillant sur des applications critiques où la qualité du code et la sécurité sont primordiales.
Définir des règles basées sur les Common Weakness Enumerations (CWE) pour bloquer les pull requests introduisant des types spécifiques de vulnérabilités ou des problèmes de qualité de code.
Personnaliser les niveaux d’urgence
Attribuez des niveaux d’urgence (par exemple, critique, élevé, moyen, bas) à différents types de problèmes, ce qui vous permet de les prioriser et de les gérer en conséquence.
Filtrer les dépendances par score CVSS
Pour les règles de vulnérabilité des dépendances, définissez une plage inclusive de scores CVSS afin de bloquer les dépendances vulnérables selon leur score.
Appliquer la politique de licences
Bloquez les dépendances selon des identifiants de licence SPDX spécifiques ou selon les familles Copyleft, Permissive et Commercial.
Périmètre par projet et tag
Appliquez des règles de blocage à des projets spécifiques, à des tags de projet, ou à l’ensemble de votre organisation, ce qui vous donne un contrôle granulaire sur quels projets sont soumis à quelles règles.
Gestion des règles
Créez, modifiez et supprimez facilement des règles de blocage grâce à une interface conviviale, afin de garantir que vos règles restent à jour avec vos besoins évolutifs.
Activation/désactivation des règles
Activez ou désactivez temporairement les règles de blocage selon vos besoins, sans perdre leur configuration.
Prérequis Vous devez avoir installé et configuré la Corgea GitHub App avec les autorisations de dépôt requises.
1
Soumission de pull request
Le développeur soumet une pull request avec des modifications de code
2
Analyse automatisée
Le système analyse les modifications du code au regard des règles de blocage actives
3
Validation des règles
Si des violations sont détectées, la pull request est automatiquement bloquée
4
Notification au développeur
Le développeur reçoit une notification détaillée concernant les violations des règles
5
Résolution
Avant que la fusion ne soit autorisée, le développeur doit corriger les violations et les marquer comme Fixed, ou les classer comme False Positive ou Accepted Risk
Prérequis Assurez-vous que l’intégration Azure DevOps avec Corgea est configurée et que vous disposez des autorisations nécessaires.
1
Soumission de pull request
Un développeur soumet une pull request avec des modifications de code dans Azure DevOps.
2
Analyse automatisée
Le système évalue les modifications du code selon les règles de blocage actives définies dans Corgea.
3
Validation des règles
Si des violations sont détectées, la pull request est automatiquement bloquée.
Le développeur ne peut pas fusionner la pull request tant que les violations ne sont pas résolues.
4
Notification au développeur
Le développeur reçoit un lien vers les informations détaillées sur les problèmes ayant entraîné l’échec, dans la page de scan Corgea.
5
Résolution
Le développeur doit résoudre les violations en les corrigeant ou en les marquant comme False Positive ou Accepted Risk avant que la fusion puisse se poursuivre.
Code Vulnerability : bloque les pull requests selon les problèmes de sécurité du code (résultats SAST)
Dependency Vulnerability : bloque les pull requests selon les dépendances vulnérables (résultats SCA)
License Compliance : bloque les dépendances selon les licences SPDX refusées ou les familles de licences
3
Informations de base
Saisissez le nom et la description de la règle, puis choisissez Applies To :
Pull Requests applique automatiquement la règle dans les vérifications de pull request.
CI applique la règle uniquement lorsqu’un pipeline la nomme avec corgea scan --block-on <slug>. Les règles CI ne bloquent pas les pull requests.
Les nouvelles règles utilisent Pull Requests par défaut. Corgea génère le slug à partir du nom de la règle et l’affiche dans la liste des règles.
4
Configurer les paramètres
Pour les règles Code Vulnerability : choisissez un Issue Type afin d’appliquer la règle à All les résultats, uniquement aux Vulnerabilities ou uniquement aux résultats de Code Quality. All est la valeur par défaut et préserve le comportement des règles existantes. Sélectionnez ensuite les niveaux d’urgence (Critical, High, Medium ou Low) et/ou les CWE ciblées ; au moins un de ces critères est requis.Pour les règles Dependency Vulnerability : choisissez un filtrage par sévérité ou par score CVSS. Sélectionnez les niveaux d’urgence (Critical, High, Medium ou Low), ou saisissez un score CVSS minimal et maximal compris entre 0,0 et 10,0 afin de bloquer les dépendances vulnérables dans cette plage inclusive.Pour les règles License Compliance : sélectionnez au moins une famille de licences refusée (Copyleft, Permissive ou Commercial) ou saisissez un ou plusieurs identifiants SPDX. Une dépendance est bloquée lorsqu’une licence signalée correspond à une famille sélectionnée ou à un ID spécifique.
5
Définir le périmètre
Choisissez les projets concernés et/ou les tags de projet (optionnel). Une règle s’applique lorsqu’un projet est sélectionné directement ou possède un tag sélectionné. Si aucun projet ou tag n’est sélectionné, la règle s’applique à tous les projets.
Recherchez les règles par nom ou par paramètre, ou filtrez la liste par tag de projet ou par cible Applies To. Le tableau des règles affiche le slug de chaque règle dans la colonne ID et présente le périmètre projet, le type de règle et la cible Pull Requests ou CI sous Triggers On. Sélectionnez un slug pour le copier et l’utiliser dans une commande CI. Les règles sans périmètre de projet ou de tag s’appliquent à tous les projets ; les longues listes sont regroupées derrière une infobulle +N more.
Créez une règle active avec Applies To défini sur CI, puis passez son slug à la commande de scan. Nommez les règles d’après la condition qui les déclenche — par exemple criticals, et non no-criticals — afin que --block-on se lise comme une affirmation directe. --block-on nécessite Corgea CLI 1.10.0 ou une version ultérieure.
corgea scan --block-on criticals
Pour appliquer plusieurs règles CI, fournissez leurs slugs sous forme de liste séparée par des virgules. La commande échoue lorsqu’un résultat viole l’une des règles nommées. Un slug inconnu, une règle inactive ou une règle applicable aux pull requests est traité comme une erreur de configuration et n’est pas ignoré. --block-on n’est pris en charge que par le scanner BLAST et ne peut pas être combiné avec --fail ou --fail-on.
Vous pouvez consulter les règles de blocage qui s’appliquent à vos scans à deux endroits :
Sur la page des détails du scan, vous verrez une section « Blocking Rules » affichant toutes les règles évaluées :
Dans les détails d’un problème, vous pouvez voir les règles de blocage qu’il a déclenchées :
Cela facilite la compréhension des règles qui affectent vos scans et des problèmes spécifiques, vous aidant à identifier pourquoi certains changements peuvent être bloqués.
Type de règle : Code VulnerabilityCréez une règle ciblant CWE-326 (Inadequate Encryption Strength) et CWE-327 (Use of a Broken or Risky Cryptographic Algorithm), avec une urgence « Critical », afin d’empêcher l’utilisation d’un chiffrement faible.
Faire respecter la qualité du code
Type de règle : Code VulnerabilitySélectionnez Code Quality en tant que type de problème, puis établissez une règle pour CWE-398 (Indicator of Poor Code Quality) et CWE-477 (Use of Obsolete Functions) avec une urgence « Medium » pour maintenir les normes de code.
Blocage des vulnérabilités critiques de dépendance
Type de règle : Dependency VulnerabilityCréez une règle avec les niveaux d’urgence « Critical » et « High » pour bloquer automatiquement toute pull request qui introduit des dépendances présentant des vulnérabilités critiques ou de sévérité élevée. Vous protégez ainsi votre chaîne d’approvisionnement contre les paquets vulnérables connus.
Blocage des dépendances par plage CVSS
Type de règle : Dependency VulnerabilityCréez une règle qui filtre par CVSS comme 7.0 à 10.0, pour bloquer les pull requests introduisant des dépendances vulnérables dans cette plage de score.
Blocage des dépendances Copyleft
Type de règle : License ComplianceSélectionnez la famille Copyleft pour bloquer les dépendances dont les licences signalées appartiennent à cette famille. Ajoutez des identifiants SPDX spécifiques lorsque votre politique nécessite une liste de refus plus étroite.
Commencez par les règles essentielles et développez progressivement
Pour les règles Dependency Vulnerability, commencez par la sévérité Critical uniquement ou par une plage CVSS ciblée, puis élargissez les critères à mesure que votre équipe s’adapte
Pour les règles Code Vulnerability, concentrez-vous d’abord sur les CWE les plus impactants (par exemple, failles d’injection, problèmes d’authentification)
Revues régulières et mises à jour
Documentation claire et formation d’équipe
Encourager les retours et la collaboration
Utilisation stratégique des niveaux d’urgence
Considérez les tags de projet lorsque la même règle doit couvrir un groupe de projets liés