Date de publication : 24 mars 2026
Temps de lecture : 13 min
Découvrez le framework de contrôle personnalisé créé par l'équipe Security Compliance de GitLab, qui couvre plusieurs certifications et produits.

L'équipe Security Compliance de GitLab a constaté que les frameworks de contrôle de sécurité existants ne permettaient pas la personnalisation nécessaire pour s'adapter à l'environnement multi-produits et cloud-native. Elle a donc décidé de créer son propre framework.
Découvrez ce que nous avons appris et pourquoi créer son propre framework de contrôle de sécurité personnalisé pourrait convenir à votre programme de conformité.
Lorsque j'ai rejoint l'équipe Security Compliance de GitLab en novembre 2022, nous utilisions le Secure Controls Framework pour gérer les contrôles de nos certifications externes et nos besoins de conformité interne. Mais à mesure que nos exigences augmentaient, nous avons réalisé que nous avions besoin d'une solution plus complète.
Avec l'autorisation Federal Risk and Authorization Management Program (FedRAMP) dans notre roadmap, nous avons choisi d'adopter la norme NIST SP 800-53. Celle-ci comprend plus de 1 000 contrôles, mais son exhaustivité n'est pas entièrement adaptée à l'environnement de GitLab.
Nous n'avions pas besoin d'implémenter chaque contrôle NIST, mais uniquement ceux applicables à nos exigences spécifiques. Nous nous sommes concentrés sur la qualité des contrôles plutôt que la quantité. Implémenter des contrôles inutiles n'améliore pas la sécurité ; en réalité, un nombre excessif de contrôles peut fragiliser la sécurité d'un environnement, car les individus trouvent des moyens de contourner des contrôles trop restrictifs ou non pertinents.
Certains contrôles ne possédaient pas la granularité nécessaire à nos besoins. Par exemple, le contrôle AC-2 « Account Management » de la norme NIST couvre la création et le provisionnement des comptes, la modification et la désactivation des comptes, la suppression et la résiliation des comptes, la gestion des comptes partagés et de groupe, ainsi que la surveillance et la revue des comptes.
En pratique, il s'agit d'au moins six contrôles distincts avec des propriétaires, des procédures de test et des risques différents. Pour des certifications comme SOC 2, chaque activité est testée comme un contrôle séparé, car les exigences en matière de preuves et les contextes opérationnels diffèrent. Le contrôle AC-2 global de la norme NIST ne correspondait pas à la façon dont nous gérions réellement nos contrôles, ni à la façon dont les auditeurs nous évaluaient, et nous avions besoin de contrôles suffisamment granulaires pour refléter notre environnement opérationnel.
Nous nous retrouvions à personnaliser, ajouter et adapter constamment les contrôles NIST à notre environnement. À un moment donné, nous avons réalisé que nous n'utilisions plus vraiment la norme NIST SP 800-53 : nous étions en train de construire notre propre framework. Nous avons décidé qu'un framework de contrôle personnalisé, adapté à l'environnement de GitLab, permettrait de mieux répondre à notre offre multi-produits et aux besoins de conformité spécifiques de chaque produit.
En cinq étapes méthodiques, nous avons construit notre propre framework de contrôles communs : le GitLab Control Framework (GCF).
Nous avons examiné nos contrôles existants et mis en correspondance chaque exigence de nos certifications externes déjà obtenues, les certifications figurant dans notre roadmap et notre programme de conformité interne :
Certifications externes :
Besoins de conformité interne :
Cette première étape nous a permis d'établir la base de référence : quels contrôles doivent exister pour satisfaire nos obligations de conformité.
Ensuite, nous avons comparé nos exigences aux frameworks reconnus dans le secteur :
Étant donné que nous avions déjà adopté des frameworks par le passé, nous souhaitions nous inspirer de leur structure et nous assurer de ne pas négliger des domaines, des contrôles ou des bonnes pratiques de sécurité essentiels.
À la suite de cette analyse, nous avons créé 18 domaines de contrôle personnalisés adaptés à l'environnement de GitLab :
| Abréviation | Domaine | Portée des contrôles |
|---|---|---|
| AAM | Gestion des audits et de la traçabilité | Journalisation, surveillance et tenue des pistes d'audit des activités système |
| AIM | Gestion de l'intelligence artificielle | Développement, déploiement et gouvernance des systèmes d'IA |
| ASM | Gestion des actifs | Identification, suivi et gestion des actifs de l'organisation |
| BCA | Gestion des sauvegardes, de la continuité et de la disponibilité | Continuité d'activité, reprise après sinistre et disponibilité des systèmes |
| CHM | Gestion des changements | Gestion des changements apportés aux systèmes, applications et infrastructures |
| CSR | Gestion de la relation de sécurité côté client | Communication client, transparence et engagements de sécurité |
| DPM | Gestion de la protection des données | Protection de la confidentialité et de l'intégrité des données |
| EPM | Gestion des points d'entrée | Sécurisation des appareils et postes de travail des utilisateurs |
| GPM | Gestion de la gouvernance et des programmes | Gouvernance de sécurité, politiques et supervision du programme |
| IAM | Gestion de l'identité, de l'authentification et des accès | Identité des utilisateurs, mécanismes d'authentification et contrôle des accès |
| INC | Gestion des incidents | Détection, réponse et reprise suite aux incidents de sécurité |
| ISM | Gestion de la sécurité de l'infrastructure | Sécurité du réseau, des serveurs et de l'infrastructure de base |
| PAS | Gestion de la sécurité des produits et applications | Fonctionnalités de sécurité intégrées au produit GitLab, utilisées en interne pour sécuriser le développement de GitLab (protection des branches et scans de sécurité du code) |
| PSM | Gestion de la sécurité du personnel | Sécurité, formation et sensibilisation du personnel |
| SDL | Gestion du cycle de développement logiciel et des acquisitions | Pratiques de développement logiciel sécurisé et acquisition de logiciels tiers |
| SRM | Gestion des risques de sécurité | Évaluation, traitement et gestion des risques |
| TPR | Gestion des risques liés aux tiers | Gestion des risques de sécurité liés aux fournisseurs et prestataires |
| TVM | Gestion des menaces et des vulnérabilités | Identification et remédiation des vulnérabilités de sécurité |
Chaque domaine regroupe des contrôles similaires en familles logiques, alignées sur la façon dont le programme de sécurité de GitLab est réellement organisé et opéré. Cette structure offre une approche méthodique pour ajouter, mettre à jour ou supprimer des contrôles à mesure que nos besoins évoluent.
Une fois nos domaines définis, nous avons fait face à deux défis majeurs : comment appliquer des contrôles pour plusieurs produits sans dupliquer le framework, et comment capturer un contexte de mise en œuvre pertinent pour réellement exploiter et auditer à grande échelle.
GitLab propose plusieurs produits : GitLab.com (SaaS multilocataire sur Google Cloud Platform GCP), GitLab Dedicated (SaaS monolocataire sur AWS) et GitLab Dedicated pour le secteur public (offre FedRAMP monolocataire de GitLab sur AWS). Chaque offre possède une infrastructure, un périmètre de conformité et des exigences d'audit différents. Nous devions prendre en charge des audits spécifiques à chaque produit sans créer des frameworks entièrement séparés.
Nous avons conçu une hiérarchie de contrôles où les contrôles de niveau 1 forment la base du framework et définissent ce qui doit être implémenté au niveau organisationnel. Les contrôles de niveau 2 représentent la mise en œuvre et contiennent les détails spécifiques des produits et la façon dont chaque exigence est réellement satisfaite.
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph TD
accTitle: Hiérarchie des contrôles
accDescr: Les exigences de niveau 1 se déclinent en implémentations de niveau 2.
L1["Niveau 1 : framework<br/>Ce qui doit être implémenté"];
L2A["Niveau 2 : GitLab.com<br/>Façon d'implémenter"];
L2B["Niveau 2 : GitLab Dedicated<br/>Façon d'implémenter"];
L2C["Niveau 2 : GitLab Dedicated sect. publ.<br/>Façon d'implémenter"];
L2D["Niveau 2 : entité<br/>(hérité par tous)"];
L1-->L2A;
L1-->L2B;
L1-->L2C;
L1-->L2D;
Cette séparation nous permet de maintenir un seul framework avec des implémentations spécifiques à chaque produit, plutôt que de gérer des frameworks dupliqués pour chaque offre. Les contrôles d'entité s'appliquent à l'ensemble de l'organisation et sont hérités par GitLab.com, GitLab Dedicated et GitLab Dedicated pour le secteur public.
Les frameworks de contrôle traditionnels ne suivent qu'un minimum d'informations : un identifiant de contrôle, une description et un propriétaire. Le GCF adopte une approche différente et sa force réside dans les métadonnées exhaustives que nous associons à chaque contrôle. Au-delà de la simple description du contrôle ou de la déclaration de mise en œuvre, nous suivons les éléments suivants :
Ce contexte transforme le GCF d'une simple liste de contrôles en un inventaire de contrôles opérationnel.
Grâce à cette structure, nous pouvons répondre à des questions telles que :
Le GCF n'est pas statique et a été conçu pour évoluer avec notre activité et notre environnement de conformité.
Grâce au contexte opérationnel intégré au GCF, nous pouvons rapidement déterminer le périmètre et les lacunes lors de l'obtention de nouvelles certifications (ISMAP, IRAP, C5, etc.) :
Lorsque de nouvelles réglementations émergent ou que des exigences existantes changent :
Le framework s'adapte à divers changements :
Un contrôle de sécurité unique qui permet de se conformer à de nombreuses exigences n'est pas qu'un simple principe : il s'agit d'un processus avec des avantages concrets sur la façon dont nous préparons les audits, accompagnons les propriétaires de contrôles et obtenons de nouvelles certifications. Découvrez les résultats en pratique, en termes de qualité et de chiffres.
Depuis la mise en œuvre du GCF, nous avons constaté des améliorations significatives dans notre gestion de la conformité :
Le GCF nous permet de maintenir un seul framework avec des contrôles associés aux exigences de plusieurs certifications, au lieu de gérer des ensembles de contrôles séparés pour chaque audit. Un seul contrôle peut satisfaire simultanément aux exigences SOC 2, ISO 27001 et PCI DSS.
Grâce au GCF, nous maintenons une seule liste de demandes consolidée au lieu de listes séparées pour chaque audit. Étant donné que les contrôles ont été définis avec un contexte spécifique, nos listes de demandes indiquent « liste des utilisateurs Okta » au lieu d'une mention générique « liste des utilisateurs en production », ce qui élimine toute ambiguïté et interprétation. Nous ne collectons pas de preuves « N/A » et ne laissons pas aux auditeurs le soin d'interpréter ce que « production » signifie dans notre environnement. Tout est déjà adapté à nos systèmes réels.
Cette intégration réduit directement la charge de travail de nos parties prenantes. Les propriétaires de contrôles n'ont besoin de fournir des éléments qu'une seule fois au lieu de répondre à des demandes séparées des auditeurs SOC 2, ISO et PCI. Lorsque nous collectons des preuves pour les contrôles d'accès, celles-ci conviennent simultanément aux exigences SOC 2, ISO 27001 et PCI DSS. Un seul contrôle, un seul test et une seule preuve sont nécessaires pour satisfaire à de multiples certifications et exigences.
Lors de l'obtention de nouvelles certifications ou du lancement de nouvelles fonctionnalités, le contexte opérationnel permet une analyse des lacunes plus efficace. Nous pouvons déterminer quels contrôles existent déjà, ce qui manque et quelle mise en œuvre est nécessaire.
Efficacité des contrôles :
Efficacité des audits :
Échelle du framework :
Le GCF continue d'évoluer à mesure que nous ajoutons des contrôles de sécurité et d'IA, obtenons de nouvelles certifications et affinons notre approche.
Pour les professionnels de la conformité des contrôles de sécurité : n'hésitez pas à créer votre propre framework si les normes du secteur ne vous conviennent pas. L'investissement initial est largement rentabilisé en termes d'évolutivité, d'efficacité et de contrôles véritablement adaptés à votre environnement. Parfois, le meilleur framework est celui que vous concevez vous-même.
Si cet article vous a été utile, consultez notre documentation complète du GitLab Control Framework, où nous détaillons notre méthodologie pour ce framework, nos domaines de contrôle et nos structures de champs.
Cet article de blog vous a plu ? Vous avez des questions ou des retours à nous faire ? Donnez votre avis en créant un nouveau sujet sur le forum de la communauté GitLab.
Faites-nous part de vos commentaires