GitLab Container Scanning est un outil essentiel pour maintenir la sécurité et l'intégrité des applications conteneurisées. Il est d'autant plus important de se familiariser avec cette technique et de l'utiliser que les entreprises s'orientent vers l'adoption de la conteneurisation pour le déploiement de logiciels.
Cet article traite en détail du scanning des conteneurs GitLab, de son fonctionnement, des formats de conteneurs pris en charge et de la manière dont les meilleures pratiques et les exemples concrets peuvent faciliter sa mise en place dans le cadre de projets. En mettant en avant les meilleures pratiques, ce guide permet de comprendre le scanning des conteneurs GitLab, qui garantit des processus de développement sécurisés et un flux de travail fluide.
Comprendre le scan des conteneurs GitLab
Comprendre le scan des conteneurs GitLab est essentiel pour ceux qui souhaitent sécuriser des applications conteneurisées à l'aide de GitLab ou qui cherchent à le faire à l'aide d'autres plateformes de conteneurisation telles que Docker. GitLab Container Scanning sert de contrôle de sécurité, vérifiant chaque composant de votre logiciel à la recherche de vulnérabilités que des pirates pourraient exploiter, agissant comme un antivirus sur ses éléments constitutifs !
L'inspection consiste à examiner de près les logiciels contenus dans les conteneurs afin de détecter tout problème ou risque potentiel qui pourrait exister à l'intérieur. Cette étape est cruciale lors du développement de logiciels modernes ; les conteneurs sont généralement constitués de composants disparates provenant de plusieurs sources qui doivent tous respecter les normes de sécurité afin de maintenir l'intégrité de votre application.
GitLab Container Scanning peut s'avérer inestimable pour le développement de logiciels, en fournissant une protection essentielle aux applications logicielles conteneurisées. L'identification précoce des vulnérabilités contribue à maintenir la sécurité des systèmes, ce qui apporte une tranquillité d'esprit aux développeurs et aux parties prenantes.
Comment fonctionne GitLab Container Scanning ?
GitLab Container Scanning peut identifier et résoudre automatiquement les vulnérabilités au sein des images de conteneurs, vous garantissant ainsi que toutes les vulnérabilités présentes dans ces images ont été traitées rapidement et de manière fiable. Voici un aperçu de son fonctionnement :
GitLab Container Scanning s'intègre facilement au pipeline d'intégration continue/déploiement continu (CI/CD), faisant du processus d'analyse une partie intégrante de chaque build et push, et non un événement isolé. Cela garantit que les contrôles de sécurité font partie intégrante du développement plutôt que d'être effectués une seule fois.
Utilisation de bases de données de vulnérabilités
Cet outil compare les composants à des bases de données de vulnérabilités connues afin de détecter les vulnérabilités connues dans les progiciels ou les bibliothèques utilisés dans les conteneurs. Cela permet d'identifier facilement les menaces connues qui pourraient y exister.
Génération d'un rapport
GitLab Container Scanning génère un rapport complet à la fin du processus, décrivant toutes les vulnérabilités découvertes et leur niveau de gravité, et suggérant des correctifs ou des stratégies d'atténuation si nécessaire.
Automatisation des réponses
GitLab Container Scanning permet aux utilisateurs de définir des réponses automatiques en fonction de sa configuration. Il peut s'agir de créer des tickets à traiter par les équipes de développement ou même d'arrêter le pipeline CI/CDCI/CD pipeline si des vulnérabilités critiques sont découvertes, afin de s'assurer qu'aucun code non sécurisé ne soit jamais utilisé en production.
Correction et surveillance continue
Notre outil de surveillance continue facilite la correction continue en analysant en permanence les mises à jour des conteneurs à mesure qu'elles sont disponibles, en vérifiant automatiquement les vulnérabilités qui pourraient apparaître lors de la mise en œuvre des modifications et en assurant une protection continue contre les nouvelles vulnérabilités qui apparaissent au fil du temps.
Guide du marché du CNAPP
Obtenez des informations clés sur l'état du marché CNAPP dans ce Gartner Market Guide for Cloud-Native Application Protection Platforms.
Lire le guideFormats de conteneurs pris en charge par GitLab
Lorsque nous faisons référence à la prise en charge par GitLab de l'analyse de conteneurs de certains formats de conteneurs, nous entendons par là l'examen de leur structure spécifique et de la disposition des données qu'ils contiennent. Les outils d'analyse Trivy et Grype offrent une prise en charge étendue sur différentes distributions Linux, ce qui permet d'identifier rapidement les vulnérabilités dans tous les environnements.
Outils d'analyse open source :
- Trivy (scanner de vulnérabilités open source pour conteneurs et systèmes d'exploitation) : Trivy est un scanner de vulnérabilités open source bien établi, spécialement conçu pour les conteneurs et les systèmes d'exploitation. Il offre des capacités d'analyse légères mais approfondies pour identifier les vulnérabilités dans de nombreuses distributions Linux.
- Grype : Grype fournit des données précises sur les vulnérabilités des images de conteneurs. En tant qu'outil d'analyse, Grype complète Trivy en examinant de manière approfondie les menaces de sécurité à l'aide de données précises et exploitables sur les vulnérabilités.
Distributions Linux prises en charge
Il est extrêmement important de comprendre la distinction entre le format de conteneur et les distributions. Les conteneurs stockent des données à l'intérieur des conteneurs, tandis que les distributions font référence à différentes variantes du système d'exploitation Linux qui permettent aux services Trivy et Grype de GitLab d'être pris en charge. GitLab prend en charge une liste impressionnante de distributions ; en voici un bref aperçu :
- Alma Linux : analysé à l'aide de Trivy
- Alpine Linux : pris en charge à la fois par Grype et Trivy
- Amazon Linux : pris en charge à la fois par Grype et Trivy
- BusyBox : analysé par Grype
- CentOS : pris en charge à la fois par Grype et Trivy
- CBL-Mariner : Analysé à l'aide de Trivy
- Debian : pris en charge à la fois par Grype et Trivy
- Distroless : pris en charge à la fois par Grype et Trivy
- Oracle Linux : pris en charge à la fois par Grype et Trivy
- Photon OS : Analysé par Trivy
- Red Hat (RHEL) : pris en charge par Grype et Trivy
- Rocky Linux : analysé à l'aide de Trivy
- SUSE : analysé par Trivy
- Ubuntu : pris en charge à la fois par Grype et Trivy
L'importance d'une large prise en charge des distributions
Chez GitLab Container Scanning, nous comprenons que l'importance d'une prise en charge étendue des distributions devient de plus en plus cruciale à mesure que les applications conteneurisées gagnent en popularité auprès des développeurs, qui choisissent souvent différentes distributions Linux en fonction des performances, de la sécurité, de la compatibilité ou de leurs préférences personnelles. En prenant en charge plusieurs distributions simultanément, GitLab Container Scanning garantit aux développeurs de pouvoir continuer à assurer la sécurité des applications, quel que soit l'environnement choisi, renforçant ainsi notre engagement à offrir une sécurité holistique pour les charges de travail conteneurisées.
Comment configurer GitLab pour Container Scanning ?
La mise en œuvre de GitLab pour Container Scanning est un processus efficace qui facilite l'analyse automatique des vulnérabilités de vos applications conteneurisées. Voici un aperçu général de la manière dont vous pouvez y parvenir :
1. Activer l'analyse des conteneurs via une demande de fusion automatique
GitLab 14.9 permet d'activer facilement et rapidement l'analyse des conteneurs via une demande de fusion automatisée. Voici comment procéder :
- Accédez au projet souhaité.
- Accédez à Sécuriser > Configuration de la sécurité.
- Dans la ligne Analyse des conteneurs, sélectionnez Configurer avec une demande de fusion.
Une fois activé, ce processus générera une demande de fusion automatique contenant toutes les modifications nécessaires pour activer l'analyse des conteneurs. Il vous suffit de la vérifier avant de la fusionner pour terminer la configuration de l'analyse des conteneurs.
2. Configuration via le fichier .gitlab-ci.yml :
La configuration manuelle de l'analyse des conteneurs nécessite l'ajout du modèle approprié à votre fichier .gitlab-ci.yml
include: - template: Security/Container-Scanning.gitlab-ci.yml Ce modèle ajoute une tâche container_scanning à votre pipeline CI/CD qui analyse les images Docker à la recherche de vulnérabilités et enregistre ses résultats sous forme d'artefact de rapport d'analyse de conteneurs.
Voici un exemple de fichier .gitlab-ci.yml qui compile et analyse les images Docker.
include: - template: Jobs/Build.gitlab-ci.yml - template: Security/Container-Scanning.gitlab-ci.yml container_scanning: variables: CS_DEFAULT_BRANCH_IMAGE: $CI_REGISTRY_IMAGE/$CI_DEFAULT_BRANCH:$CI_COMMIT_SHA 3. Personnalisation des paramètres d'analyse des conteneurs
GitLab vous permet d'adapter la manière dont les conteneurs sont analysés à vos besoins spécifiques, depuis l'amélioration des résultats et de l'authentification avec le registre spécifique jusqu'à la fourniture de résultats plus granulaires.
Pour activer la sortie détaillée, par exemple, modifiez votre fichier .gitlab-ci.yml en conséquence :
include: - template: Security/Container-Scanning.gitlab-ci.yml variables: SECURE_LOG_LEVEL: 'debug' 4. Analyse d'une image dans un registre distant :
Vous pouvez également analyser des images situées dans un registre autre que les projets en utilisant la configuration suivante :
include: - template: Security/Container-Scanning.gitlab-ci.yml container_scanning: variables: CS_IMAGE: example.com/user/image:tag La mise en place de GitLab Container Scanning est une expérience intuitive et conviviale, depuis les demandes de fusion automatisées jusqu'à la configuration manuelle. GitLab intègre les contrôles de sécurité dans le workflow de développement des développeurs grâce à ses puissants outils d'analyse, faisant de GitLab un élément essentiel du développement logiciel moderne et sécurisé.
Meilleures pratiques pour GitLab Container Scanning
1. Mettre régulièrement à jour les outils d'analyse
Il est essentiel que les outils d'analyse tels que Trivy et Grype restent à jour afin de pouvoir détecter les nouvelles vulnérabilités dès leur apparition, tout en restant compatibles avec les modifications apportées par les distributions prises en charge. Des mises à jour régulières permettent d'y parvenir.
2. Intégrez l'analyse dès le début du développement
Plus tôt l'analyse des conteneurs sera intégrée à votre cycle de développement, plus tôt les vulnérabilités pourront être identifiées et corrigées. L'intégration de GitLab Container Scanning dans votre pipeline d'intégration continue (CI) (CI) garantit que les analyses seront automatiquement effectuées à chaque poussée de code, s'intégrant ainsi à votre workflow de développement et contribuant à une identification et une résolution plus rapides des vulnérabilités.
3. Adaptez les analyses à vos besoins
Tous les projets ne nécessitent pas des analyses identiques. Les adapter aux exigences de votre projet (en termes de niveaux de verbosité, de ciblage de certains registres ou de définition de variables) peut rendre l'analyse beaucoup plus rapide et efficace. Utilisez les fonctionnalités de personnalisation du fichier .gitlab-ci.yml pour affiner vos analyses avec précision.
4. Consultez régulièrement les rapports d'analyse et prenez les mesures qui s'imposent
Il ne suffit pas d'effectuer des analyses, il faut également examiner et traiter rapidement les résultats. L'examen régulier des artefacts du rapport d'analyse des conteneurs, associé à une correction systématique, garantit que les vulnérabilités sont rapidement identifiées et traitées en conséquence. L'intégration du workflow de correction dans les processus de développement existants peut faciliter cette tâche essentielle.
Workflow de correction avec GitLab Container Scanning
Le workflow de correction de GitLab Container Scanningcomprend plusieurs étapes conçues pour identifier les vulnérabilités des images de conteneurs et les résoudre de manière efficace et systématique. Un workflow type pourrait ressembler à ceci :
- Déterminer les vulnérabilités : GitLab fournit la fonctionnalité Container Scanning et l'analyse de sécurité avec Trivy ou Grype ; une fois les vulnérabilités découvertes, un rapport détaillé les répertoriant toutes sera généré dans le cadre de cette étape.
- Analyse des résultats : au cours de cette étape, un examen approfondi des résultats des rapports d'analyse des conteneurs doit être effectué afin de fournir des détails sur la gravité, le type et la source des vulnérabilités qui nécessitent une attention immédiate. Il convient de hiérarchiser les problèmes urgents afin de les résoudre immédiatement.
- Hiérarchisation des mesures correctives : Sur la base de cette évaluation, les problèmes doivent être classés par ordre de priorité. Les problèmes hautement prioritaires concernent généralement les vulnérabilités qui constituent une menace immédiate pour les applications, mais des facteurs tels que l'impact et la facilité d'exploitation peuvent également jouer un rôle.
- Élaborer un plan de correction : après avoir hiérarchisé les vulnérabilités, un plan de correction efficace doit être élaboré afin de traiter chacune d'entre elles. Ce plan comprend les mesures nécessaires pour atténuer efficacement chaque vulnérabilité – cela peut impliquer l'installation de mises à jour, l'apport de modifications ou l'altération directe de certaines parties du code.
- Mettre en œuvre les correctifs : Une fois le plan établi, les mesures correctives doivent être mises en œuvre à l'aide de demandes de fusion GitLab qui modifient le code, les paramètres de configuration ou les dépendances affectant les bases de code concernées. La collaboration entre les développeurs, les équipes de sécurité et d'autres acteurs clés s'avère souvent essentielle pour mener à bien ce processus.
- Tester les mesures correctives : après l'application des correctifs, il est essentiel d'effectuer des vérifications supplémentaires pour s'assurer qu'ils corrigent efficacement les vulnérabilités sans créer de nouveaux problèmes. Une nouvelle analyse des images de conteneurs ou la réalisation de tests supplémentaires peuvent aider à vérifier si les mesures correctives ont permis d'éliminer les vulnérabilités et de créer des failles de sécurité.
- Surveillance et amélioration continue : les workflows de correction ne se font pas du jour au lendemain ; une surveillance, une analyse et une révision continues garantissent leur viabilité à long terme. L'adoption d'une approche itérative garantit sa viabilité à long terme.
Exemples concrets et cas d'utilisation
1. Banque
La sécurité des applications bancaires est d'une importance capitale. Les méthodes traditionnelles de détection des vulnérabilités sont souvent insuffisantes pour détecter les problèmes en temps opportun. En ajoutant GitLab Container Scanning au pipeline d'intégration continue/déploiement continu des applications bancaires, il est possible d'effectuer des inspections et des corrections en temps réel, ce qui permet d'obtenir une solution beaucoup plus robuste qui non seulement renforce la sécurité globale, mais favorise également la confiance et la conformité dans l'ensemble du secteur.
2. Santé
Les systèmes de santé traitent des données sensibles qui doivent être protégées conformément à des directives réglementaires strictes, mais les contrôles manuels peuvent souvent s'avérer fastidieux et sources d'erreurs. En adoptant GitLab Container Scanning pour les évaluations de vulnérabilité et dans le cadre de processus continus de reporting de conformité, les organismes de santé peuvent rationaliser GitLab Container Scanning pour se protéger contre les violations tout en rendant le processus de reporting beaucoup moins complexe qu'auparavant.
3. Start-ups technologiques
Les start-ups technologiques ont souvent du mal à trouver un équilibre entre un développement rapide et le respect des normes de sécurité. GitLab Container Scanning peut aider les entreprises à aligner ces deux processus ; l'analyse continue des vulnérabilités des applications conteneurisées permet d'accélérer les cycles de développement tout en protégeant la sécurité, ce qui donne aux start-ups la souplesse nécessaire pour innover tout en maintenant une sécurité renforcée.
Voir SentinelOne en action
Découvrez comment la sécurité du cloud alimentée par l'IA peut protéger votre organisation lors d'une démonstration individuelle avec un expert produit de SentinelOne.
Obtenir une démonstrationConclusion
GitLab Container Scanning est devenu un élément indispensable du paysage moderne du développement, offrant aux organisations un moyen simple de détecter rapidement et de manière fiable les vulnérabilités au sein des applications conteneurisées. En s'intégrant de manière transparente dans leurs pipelines de développement et en offrant une visibilité sur les vulnérabilités dès les premières étapes du processus de développement, les organisations sont en mesure d'intégrer la sécurité dans leur processus de développement, ce qui leur permet d'atténuer les risques tout en renforçant leur posture de sécurité globale.
GitLab Container Scanning est un élément essentiel d'une stratégie DevSecOps efficace, qui favorise un environnement d'amélioration continue de la sécurité. Cet atout précieux garantit que la sécurité reste au premier plan de l'innovation, qu'il s'agisse de se conformer à la réglementation, de protéger les données des clients, de maintenir des cycles de développement agiles ou de répondre à divers besoins de sécurité dans différents secteurs ou cas d'utilisation.
"FAQ sur l'analyse des conteneurs GitLab
GitLab Container Scanning effectue une vérification des vulnérabilités de vos images de conteneur pendant le processus CI/CD. Il utilise des scanners tels que Trivy pour examiner chaque couche, des paquets du système d'exploitation de base aux dépendances des applications, avant que les images n'atteignent la production. Vous pouvez l'activer en incluant le modèle CI Container-Scanning de GitLab ou via une demande de fusion en un clic.
Les résultats s'affichent sous forme d'artefacts JSON et dans l'onglet Sécurité de votre pipeline, signalant les CVE à risque et les versions expirées du système d'exploitation.
Il détecte les CVE connus dans votre image de base et vos paquets OS, ainsi que, s'ils sont activés, les failles de bibliothèques spécifiques à un langage (par exemple, les paquets Java ou Python). Il signale également les systèmes d'exploitation en fin de vie qui ne reçoivent plus de mises à jour de sécurité. Le scanner Trivy sous-jacent s'appuie sur des sources d'avis telles que NVD, les trackers de sécurité des distributions et la propre base de données d'avis de GitLab pour identifier et classer les vulnérabilités en fonction du score CVSS et de leur exploitabilité.
Ajoutez le modèle intégré de GitLab à votre .gitlab-ci.yml.
include:
- template: Jobs/Container-Scanning.gitlab-ci.yml
Vous pouvez également vous rendre dans Secure > Security configuration (Sécurité > Configuration de la sécurité) dans votre projet, cliquer sur Configure with a merge request (Configurer avec une demande de fusion) et fusionner. Cela injecte les tâches nécessaires dans votre pipeline. Aucun script supplémentaire n'est nécessaire si vous avez déjà créé et poussé votre image Docker vers le registre du projet
Une fois votre pipeline exécuté, ouvrez Build > Pipelines, sélectionnez l'exécution, puis l'onglet Security. Vous y trouverez la gravité de chaque résultat, le score CVSS, la probabilité d'exploitation (EPSS) et des conseils de correction. Le rapport d'analyse brut (gl-container-scanning-report.json), ainsi qu'un SBOM CycloneDX (gl-sbom-report.cdx.json), sont disponibles sous Job Artifacts.
Dans le niveau Ultimate, vous pouvez également voir les résultats en ligne dans les demandes de fusion et un rapport de vulnérabilité consolidé sur la branche par défaut.
Oui. Chaque entrée de vulnérabilité comprend une description expliquant le problème, son impact et les mesures correctives recommandées, telles que les mises à niveau de paquets ou les modifications de configuration. Dans le niveau Ultimate, GitLab peut même générer des correctifs de correction automatique, c'est-à-dire des demandes de fusion qui mettent à jour votre fichier Dockerfile ou votre manifeste de paquet vers des versions corrigées.
Créez un fichier vulnerability-allowlist.yml à la racine de votre dépôt. Répertoriez les identifiants CVE (au niveau global ou par image) que vous avez confirmés comme étant des faux positifs. GitLab exclut alors ces CVE des futurs rapports d'analyse et les marque comme " Approuvés " dans le journal des tâches. Cela permet à votre onglet Sécurité de se concentrer sur les risques réels sans masquer les véritables problèmes.

