Mise à jour : 9 juin 2025
Lecture : 9 min
Découvrez comment enrichir votre usage de la plateforme DevSecOps en ajoutant des scanners de sécurité personnalisés à vos workflows.
GitLab, la plateforme DevSecOps la plus complète, dispose de toutes les fonctionnalités nécessaires pour planifier, gérer, compiler, déployer, sécuriser, gouverner et surveiller vos applications. Vous pouvez toutefois utiliser en complément des outils tiers ou personnalisés, par exemple si vous devez migrer vers une plateforme DevSecOps à partir de solutions distinctes, évaluer des outils tiers ou intégrer des solutions propriétaires ou personnalisées dans GitLab.
La plateforme DevSecOps de GitLab peut être enrichie de nombreuses façons afin de prendre en charge les fonctionnalités améliorées dont votre entreprise a besoin.
Voici quelques exemples d'intégrations courants :
Consultez notre documentation pour connaître toutes les intégrations disponibles (liste non exhaustive).
Il est possible d'intégrer des scanners de sécurité tiers ou des scanners de sécurité personnalisés dans GitLab. Ces scanners peuvent ainsi alimenter plusieurs sections clés de l'interface GitLab, telles que le widget de sécurité des merges requests, la section Sécurité des pipelines, le rapport de vulnérabilités, les pages de vulnérabilités, le tableau de bord de sécurité ainsi que les politiques d'approbation des merge requests.
Passons en revue chacune de ces intégrations.
Une merge request contient un widget de sécurité qui affiche un résumé des vulnérabilités récemment détectées.
Lorsque vous cliquez sur une vulnérabilité, la fenêtre contextuelle qui s'affiche contient les informations suivantes :
Ces vulnérabilités sont également exploitables, ce qui signifie qu'elles peuvent être rejetées ou qu'un ticket confidentiel peut être créé.
Les résultats d'un scanner personnalisé peuvent être utilisés pour alimenter le widget de sécurité. Les données de vulnérabilité sont renseignées à partir du schéma JSON généré par le scanner.
Tous les scanners de sécurité activés s'exécutent dans le pipeline et génèrent leurs résultats sous forme d'artefacts qui font l'objet d'un traitement (déduplication incluse). Les résultats sont ensuite répertoriés dans l'onglet Sécurité des pipelines. À partir de là, vous pouvez également télécharger les fichiers JSON générés.
Les résultats d'un scanner personnalisé peuvent être utilisés pour alimenter l'onglet Sécurité des pipelines. Les colonnes sont remplies à l'aide du schéma JSON émis par le scanner.
Le rapport de vulnérabilités fournit des informations sur les vulnérabilités issues des scans de la branche par défaut, notamment :
Les résultats d'un scanner personnalisé sur la branche par défaut peuvent être utilisés pour alimenter le rapport de vulnérabilités.
En cliquant sur une vulnérabilité présente dans le rapport de vulnérabilités, vous accédez à une page dédiée comprenant les informations suivantes :
Vous pouvez utiliser les données fournies dans la page de vulnérabilité pour évaluer l’importance du problème et prendre les mesures nécessaires pour corriger la vulnérabilité efficacement.
Les résultats d'un scanner personnalisé peuvent être utilisés pour alimenter la page de vulnérabilité. Les données de vulnérabilité sont renseignées à partir du schéma JSON généré par le scanner.
Les tableaux de bord de sécurité permettent d'évaluer la posture de sécurité de vos applications. GitLab vous fournit un ensemble d'indicateurs, d'évaluations et de graphiques correspondant aux vulnérabilités détectées par les scanners de sécurité exécutés sur votre projet. Le tableau de bord de sécurité fournit différentes données, notamment :
À partir du tableau de bord de sécurité au niveau du groupe, vous pouvez cliquer sur un projet pour accéder au tableau de bord de sécurité associé, qui fournit une vue sur 365 jours.
Les politiques d'approbation des merge requests, anciennement désignées comme stratégies de sécurité basées sur les résultats de scan dans les versions précédentes de GitLab, sont utilisées pour exiger une approbation en fonction des résultats d'un ou de plusieurs jobs de scan de sécurité. L'objectif est d'éviter que du code non sécurisé ne soit fusionné et déployé en production. Ces politiques sont évaluées après l'exécution complète des jobs de scan dans les pipelines CI, en s'appuyant sur les rapports générés par les artefacts de job et publiés dans le pipeline une fois celui-ci terminé.
Par exemple, vous pouvez créer une politique d'approbation des merge requests qui exige l'approbation des chargés de maintenance du projet dans le cas où le scanner de détection de secrets détecte des vulnérabilités. Voici comment procéder :
Dans la barre latérale gauche, cliquez sur Rechercher ou accéder à et recherchez le projet auquel vous souhaitez ajouter une politique.
Dans la barre latérale gauche du projet, accédez à Sécurisation > Politiques
Sélectionnez Nouvelle stratégie de sécurité
Dans la section Politiques d'approbation des merge requests, sélectionnez Sélectionner une stratégie de sécurité.
Renseignez les champs suivants :
Une fois que la politique d'approbation des merge requests a été fusionnée, chaque fois que vous créez une merge request et que les critères définis dans les règles sont remplis, l'action définie est déclenchée. Dans ce cas, au moins une approbation de la part d'un chargé de maintenance sera requise avant que le code puisse être fusionné.
Les résultats d'un scanner personnalisé peuvent être entièrement intégrés aux politiques d'approbation des merge requests. Si le scanner personnalisé détecte une vulnérabilité, une approbation sera alors requise avant que le code puisse être fusionné. Le scanner que vous sélectionnez dans une telle politique doit utiliser le schéma JSON approprié.
Passons maintenant à la partie la plus intéressante : l'intégration d'un scanner de sécurité personnalisé. Dans ce tutoriel, vous apprendrez à créer un scanner de sécurité personnalisé, ainsi qu'à l'intégrer à GitLab. Nous nous appuierons sur les projets suivants :
Pour en savoir plus, consultez la vidéo suivante :
Créons maintenant un scanner personnalisé qui peut être intégré à GitLab. Avant qu'un scanner personnalisé puisse être entièrement intégré à GitLab, il doit respecter les conditions suivantes :
Lorsque le Fern Pattern Scanner est exécuté sur un projet à l'aide du template fourni, il effectue les étapes suivantes :
Une fois le rapport JSON chargé en tant qu'artefact dans GitLab, il alimente le widget de sécurité des merges requests, le rapport de vulnérabilités, les pages de vulnérabilités, les politiques d'approbation des merge requests ainsi que les tableaux de bord de sécurité, comme décrit précédemment.
Une fois que vous avez créé votre scanner personnalisé qui répond à tous les besoins d'intégration, vous pouvez l'exécuter sur GitLab.
Exécuter un scanner personnalisé est aussi simple que d'ajouter un template. Par exemple, le template Fern Pattern Scanner est chargé dans le fichier .gitlab-ci.yml
sur le projet Secret List.
Voici les étapes à suivre :
Créez un fichier .gitlab-ci.yml dans le projet sur lequel vous souhaitez exécuter le scanner.
Incluez le template du scanner personnalisé.
Validez ce fichier dans la branche principale.
Une fois le fichier validé, vous pouvez constater que le scanner personnalisé s'exécute dans votre pipeline. Une fois le pipeline terminé, le scanner alimentera toutes les zones définies ci-dessus dans la section Intégration de scanners de sécurité dans GitLab.
Pour en savoir plus, consultez les ressources ci-dessous et les autres possibilités d'extension de votre plateforme DevSecOps :