Suivre le rythme du développement logiciel représente un véritable défi pour les équipes de sécurité, notamment avec des dirigeants qui négligent souvent à tort l'importance de la sécurité dans ce processus et un déséquilibre entre le nombre de développeurs et de professionnels en charge de la sécurité. Désormais bien établie, l'IA accélère encore cette dynamique. La rapidité de développement ne fera qu'augmenter à mesure que les entreprises évolueront. Par conséquent, les outils de sécurité utilisés pour gouverner les processus de développement doivent répondre à cette croissance.
Les équipes de sécurité des applications (AppSec) doivent gérer et hiérarchiser correctement les vulnérabilités. Grâce aux stratégies de sécurité de GitLab, ainsi qu'à notre suite d'outils dédiés, les entreprises peuvent favoriser la collaboration entre leurs équipes AppSec et leurs équipes de développement, facilitant ainsi la détection, la hiérarchisation et la correction des vulnérabilités. Ces stratégies fournissent également un mécanisme pour automatiser la conformité à la sécurité et la gérer à l'échelle de l'entreprise.
Bien que les scans d'un plus grand nombre de sources potentielles de vulnérabilités multiplient les occasions de détection précoce et de résolution des failles, le volume croissant des découvertes de vulnérabilités peut submerger les équipes AppSec. Identifier les données exploitables devient de plus en plus difficile alors même que les scans en plus grand nombre fait gagner en visibilité et fournissent des informations de façon collective.
Processus de priorisation lors du traitement des vulnérabilités
Plusieurs approches courantes sont possibles pour gérer la priorisation des vulnérabilités :
-
Common Vulnerability Scoring System (CVSS) : cette méthode standardisée évalue la gravité d'une vulnérabilité. À partir des scores CVSS, les entreprises peuvent hiérarchiser les vulnérabilités en fonction de leur impact potentiel et allouer des ressources en conséquence.
-
Outils d'évaluation du niveau de risques : ils permettent aux entreprises d'évaluer les vulnérabilités en fonction de la probabilité qu'elles soient exploitées et de leur impact potentiel sur l'activité de l'entreprise. En tenant compte des facteurs contextuels, tels que la valeur des actifs, les capacités des acteurs de la menace et la fréquence à laquelle une faille est exploitée, les entreprises peuvent hiérarchiser efficacement les vulnérabilités.
-
Modélisation des menaces : il s'agit d'une approche qui consiste à identifier et à évaluer les menaces potentielles pesant sur une application ou un système. À partir d'une analyse complète de l'architecture du système, du flux de données et des vecteurs d'attaque potentiels, les entreprises peuvent hiérarchiser les vulnérabilités en fonction de leur pertinence par rapport aux menaces probables. Cette approche permet d'allouer efficacement les ressources en se concentrant sur les vulnérabilités qui sont le plus susceptibles d'être exploitées.
-
Business Impact Analysis (BIA) : cette technique est utilisée pour évaluer l'impact potentiel des vulnérabilités sur les opérations et les objectifs de l'entreprise. Il s'agit d'identifier les actifs critiques, d'évaluer leur importance pour l'entreprise et de quantifier les conséquences potentielles si une attaque réussissait. À partir de l'impact potentiel sur leurs finances, leur réputation et leurs opérations, les entreprises peuvent hiérarchiser les vulnérabilités qui présentent le risque le plus important pour leurs fonctions de base.
À mesure que le code généré par l'IA prolifère, le nombre de vulnérabilités introduites involontairement augmente également. De telles techniques revêtent désormais une importance capitale pour aider les entreprises à classer les vulnérabilités par ordre de priorité. Comment appliquer ces frameworks conceptuels dans le monde réel ? Voyons comment mettre ces techniques en pratique.
Gestion des stratégies de sécurité
Les stratégies de sécurité transforment les stratégies au niveau de l'entreprise et les exigences de conformité en instructions opérationnelles tangibles qui sont intégrées à vos pratiques DevSecOps et au cycle du développement logiciel. En créant des règles dans les stratégies de sécurité de GitLab, les entreprises peuvent définir des critères granulaires pour l'évaluation des vulnérabilités, en veillant à ce que seules les découvertes exploitables soient signalées pour examen.
Les stratégies de sécurité vous permettent de mettre en œuvre vos exigences de sécurité et de conformité, ainsi que vos bonnes pratiques, en les intégrant directement dans votre code. Les stratégies d'exécution des scans imposent aux scanners de s'exécuter dans des projets spécifiques en fonction de vos besoins et exigences, en veillant à ce que les vulnérabilités et risques d'exposition soient détectés avant que le code ne soit fusionné en production.
Vous pouvez également tirer parti des politiques d'approbation des merge requests et créez des workflows personnalisés afin de remédier aux vulnérabilités. Elles évaluent les résultats des scanners de sécurité et de conformité pour empêcher ou bloquer les merge requests, à moins qu'elles n'aient été soigneusement revues et approuvées en fonction des règles que vous avez définies.
Grâce à l'ensemble de ces stratégies de sécurité, vous pouvez ajouter une couche de surveillance à votre processus de développement. Vous avez ainsi la certitude que le code, qu'il ait été écrit par des développeurs ou par l'IA, a été automatiquement scanné. D'autre part, la collaboration entre les équipes d'ingénierie et AppSec se concentre sur les violations des exigences de conformité les plus actionnables.
Définition de règles granulaires dans les politiques d'approbation des merge requests
Pour aller plus loin, vous pouvez définir des règles granulaires dans les stratégies d'approbation des merge requests en fonction des filtres et des attributs partagés ci-dessous. Elles peuvent vous aider à déterminer les vulnérabilités qui requièrent une action immédiate, facilitant ainsi une prise de décision plus rapide et plus efficace :
-
Statut de vulnérabilité : les stratégies de sécurité peuvent être ciblées en fonction du statut d'une vulnérabilité. Elles sont souvent axées sur les vulnérabilités nouvellement détectées qui doivent être hiérarchisées. Il est également possible de créer des règles basées sur des vulnérabilités précédemment détectées en fonction d'une gravité donnée, ou d'inclure/exclure des vulnérabilités si elles ont été rejetées.
-
Branche : ciblez l'implémentation uniquement sur des branches spécifiques, par exemple en concentrant la mise en œuvre sur la branche par défaut des projets critiques, ou en ciblant toutes les branches protégées.
-
Correction disponible : filtrez les résultats des découvertes de vulnérabilités issus de l'analyse des dépendances et des conteneurs lorsqu'une correction n'est pas disponible. Celles-ci dépendent souvent des modifications apportées en amont par des tiers et ne peuvent donc pas être corrigées immédiatement. Il est possible de créer des tickets à partir des vulnérabilités. Une date d'échéance peut être ajoutée pour remédier à la situation lorsqu'un correctif devient disponible.
-
Faux positifs : lorsque nos scanners GitLab déterminent qu'une découverte de vulnérabilités est un faux positif (pour l'analyse des conteneurs et des dépendances), nous mettons à jour le statut de la vulnérabilité en conséquence. Les stratégies de sécurité peuvent ensuite exploiter cette information pour exclure les faux positifs du processus de suivi, ce qui permet aux développeurs et aux ingénieurs AppSec de les ignorer et de fusionner le code sans les prendre en compte. Les vulnérabilités restent toutefois accessibles dans le rapport des vulnérabilités pour une analyse plus approfondie si nécessaire.
-
Accord sur le niveau de service (SLA) ou ancienneté : les entreprises peuvent parfois tolérer certaines vulnérabilités de faible gravité pendant une période définie, à condition qu'elles soient planifiées pour être résolues dans le cadre d'un SLA raisonnable. Par exemple, votre stratégie de sécurité pourrait définir un SLA en fonction de la gravité d'une vulnérabilité et autoriser le merge du code contenant des vulnérabilités de gravité moyenne sans approbation pendant 60 jours, à condition que celles-ci soient résolues à l'aide d'un ticket de suivi comportant une date d'échéance. En revanche, si la vulnérabilité est détectée au-delà des 60 jours accordés par le SLA, les merge requests seront bloquées tant que la vulnérabilité ne sera pas traitée.
Priorisation des résultats critiques dans l'ensemble de l'entreprise
Une approche courante pour gérer de grands volumes de vulnérabilités consiste à aller crescendo et à hiérarchiser les résultats les plus critiques découverts dans votre processus de développement. La mise en place d'un SLA pour le processus de priorisation lors du traitement des vulnérabilités peut vous aider à y parvenir, en définissant des règles qui imposent de résoudre les vulnérabilités en accord avec les termes du SLA et en fonction du niveau de la gravité de la vulnérabilité. Pour en savoir plus, regardez notre vidéo de démonstration rapide de l'utilisation d'une politique d'approbation des merge requests dans GitLab pour appliquer un SLA différent pour chaque niveau de gravité de vulnérabilité. Dans ce cas, si une découverte de vulnérabilités de gravité élevée est détectée, les merge requests ne seront pas bloquées pendant 30 jours, ce qui donnera aux développeurs le temps de résoudre le problème dans la période définie par le SLA.
Séparation des tâches
Les stratégies de sécurité peuvent être gérées de différentes manières, mais il est préférable de les centraliser dans un projet GitLab dédié, qui assure ainsi une séparation claire des responsabilités entre les professionnels de la sécurité et les équipes de développement. Ces stratégies sont stockées dans des fichiers YAML. Cette approche de politique en tant que code donne les moyens nécessaires à votre équipe de sécurité et offre de nombreux avantages Citons notamment : un historique Git de toutes les modifications apportées aux stratégies pour gagner en visibilité, un contrôle de version pour revenir plus facilement en arrière en cas de modifications perturbatrices, une surveillance et des approbations obligatoires pour toutes les modifications apportées aux stratégies (si nécessaire) Ajoutons également l'auditabilité par le biais des événements d'audit de GitLab et des contrôles concrets pouvant être transmis aux auditeurs comme preuves.
Combinaison de tous ces éléments
La gestion de l'afflux sans cesse croissant de vulnérabilités nécessite une approche précise qui associe des scans avec une hiérarchisation et une remédiation efficaces. Les stratégies de sécurité de GitLab fournissent une solution puissante en favorisant la collaboration, en permettant de définir des règles de stratégie flexibles et personnalisées, et en offrant un moyen de mettre en place les exigences et les frameworks de conformité avec précision. En tirant parti des outils de sécurité de GitLab et en appliquant des filtres et des attributs personnalisés, les entreprises sont à même de rationaliser la gestion des vulnérabilités et de concentrer leurs efforts sur la gestion des risques les plus critiques. Elles peuvent ainsi à terme renforcer leur posture de sécurité globale et répondre aux exigences des organismes externes. Si des craintes peuvent planer sur le code généré par l'IA, les trois piliers de la sécurité (personnes, processus et technologie) demeurent inchangés. En intégrant des stratégies de sécurité dans vos processus commerciaux, vous pouvez protéger votre entreprise contre de tels risques.
En plus d'utiliser des stratégies de sécurité pour appliquer une politique en tant que code à grande échelle, la plateforme DevSecOps de GitLab offre une suite robuste d'outils de sécurité. Dans notre Rapport Global DevSecOps 2023, 57 % des professionnels de la sécurité ont déclaré utiliser six outils ou plus pour le développement de logiciels et 69 % des professionnels de la sécurité ont déclaré vouloir consolider leur chaîne d'outils. De nombreux CISO (responsables de la sécurité de l'information) ont pour but de consolider les outils ; GitLab contribue à limiter l'étalement de la chaîne d'outils. Nous proposons les principales solutions de scanning de sécurité : tests statiques de sécurité des applications (y compris pour l'infrastructure en tant que code), détection des secrets, tests dynamiques de la sécurité des applications (y compris pour les API), analyse des dépendances et sécurité des API. Nous simplifions également la gestion des vulnérabilités pour les équipes AppSec en leur fournissant des rapports de vulnérabilité dynamiques. Enfin, nous veillons à la conformité grâce aux frameworks de conformité, aux rapports d'adhésion au framework de conformité et aux événements d'audit.
Découvrez la gestion de la sécurité des applications à l'aide de GitLab.
Pour aller plus loin : Josh Lemos, CISO de GitLab, explique comment remédier aux frustrations les plus courantes en matière de sécurité.