Veröffentlicht am: 8. August 2026
10 Minuten Lesezeit
Bestehende Frameworks passten nicht zur Multi-Produkt-Umgebung. Also baute GitLabs Security-Compliance-Team ein eigenes für viele Zertifizierungen.

GitLabs Security-Compliance-Team stellte fest, dass die vorhandenen Security-Control-Frameworks sich nicht so weit anpassen ließen, dass sie zur Multi-Produkt- und Cloud-native-Umgebung der Plattform gepasst hätten.
Also haben wir ein eigenes gebaut.
Hier steht, was wir dabei gelernt haben und warum ein eigenes Security-Control-Framework auch für das eigene Compliance-Programm der richtige Schritt sein kann.
Als ich im November 2022 zum Security-Compliance-Team von GitLab kam, verwalteten wir unsere Controls über das Secure Controls Framework, sowohl für externe Zertifizierungen als auch für interne Compliance-Anforderungen. Mit wachsenden Anforderungen zeigte sich jedoch, dass wir etwas Umfassenderes brauchten.
Da die FedRAMP-Autorisierung auf unserer Roadmap stand, entschieden wir uns als Nächstes für NIST SP 800-53. NIST SP 800-53 umfasst mehr als 1.000 Controls, doch diese Vollständigkeit passt nicht ideal zur Umgebung von GitLab.
Wir mussten nicht jedes NIST-Control umsetzen, sondern nur die, die für unsere konkreten Anforderungen gelten. Unser Fokus lag auf der Qualität der Controls, nicht auf ihrer Zahl. Unnötige Controls verbessern die Sicherheit nicht. Im Gegenteil: Zu viele können eine Umgebung unsicherer machen, weil Menschen Wege finden, übermäßig restriktive oder irrelevante Controls zu umgehen.
Manchen Controls fehlte außerdem die nötige Granularität. Das NIST-Control AC-2 "Account Management" etwa deckt Kontoerstellung und Provisionierung ab, Kontoänderung und Deaktivierung, Kontoentfernung und Beendigung, die Verwaltung geteilter Konten und Gruppenkonten sowie Kontoüberwachung und -prüfungen.
In der Praxis sind das mindestens sechs eigenständige Controls mit unterschiedlichen Verantwortlichen, Prüfverfahren und Risiken. Bei Attestierungen wie SOC 2 wird jede dieser Tätigkeiten als eigenes Control geprüft, weil sie unterschiedliche Nachweisanforderungen und operative Kontexte haben. Das allumfassende AC-2 von NIST bildete weder ab, wie wir Controls tatsächlich betreiben, noch wie Auditoren uns tatsächlich bewerten. Wir brauchten Controls, die granular genug sind, um unsere operative Umgebung abzubilden.
So kam es, dass wir NIST-Controls ständig anpassten, ergänzten und umbauten. Irgendwann wurde uns klar: Wir nutzten NIST SP 800-53 gar nicht mehr, wir bauten unser eigenes Framework darauf auf. Wir entschieden, dass ein eigenes, auf die Umgebung von GitLab zugeschnittenes Control-Framework unserem Multi-Produkt-Angebot und den jeweiligen Compliance-Anforderungen jedes Produkts am besten gerecht wird.
In fünf methodischen Schritten haben wir unser eigenes Common-Controls-Framework aufgebaut: das GitLab Control Framework (GCF).
Wir haben unsere bestehenden Controls durchgesehen und jede Anforderung erfasst, die sich aus bereits gehaltenen Zertifizierungen, aus Zertifizierungen auf unserer Roadmap und aus unserem internen Compliance-Programm ergibt:
Externe Zertifizierungen:
Interne Compliance-Anforderungen:
Damit stand die Ausgangsbasis: welche Controls existieren müssen, um unsere Compliance-Pflichten zu erfüllen.
Anschließend haben wir unsere Anforderungen mit anerkannten Frameworks abgeglichen:
Da wir in der Vergangenheit bereits Frameworks eingeführt hatten, wollten wir aus deren Struktur lernen und sicherstellen, dass uns keine wichtigen Sicherheitsdomänen, Controls oder bewährten Vorgehensweisen entgehen.
Aus dieser Analyse heraus haben wir 18 eigene Control-Domänen entwickelt, zugeschnitten auf die Umgebung von GitLab:
| Kürzel | Domäne | Geltungsbereich der Controls |
|---|---|---|
| AAM | Audit & Accountability Management | Protokollierung, Monitoring und Führung von Audit-Trails über Systemaktivitäten |
| AIM | Artificial Intelligence Management | Speziell für Entwicklung, Bereitstellung und Governance von KI-Systemen |
| ASM | Asset Management | Erfassen, Nachverfolgen und Verwalten von Unternehmenswerten |
| BCA | Backups, Contingency, and Availability Management | Geschäftskontinuität, Notfallwiederherstellung und Systemverfügbarkeit |
| CHM | Change Management | Verwaltung von Änderungen an Systemen, Anwendungen und Infrastruktur |
| CSR | Customer Security Relationship Management | Kundenkommunikation, Transparenz und Sicherheitszusagen |
| DPM | Data Protection Management | Schutz von Vertraulichkeit, Integrität und Privatsphäre der Daten |
| EPM | Endpoint Management | Absicherung von Endgeräten und Arbeitsplatzrechnern |
| GPM | Governance & Program Management | Security-Governance, Richtlinien und Programmaufsicht |
| IAM | Identity, Authentication, and Access Management | Identitäten, Authentifizierungsmechanismen und Zugriffskontrolle |
| INC | Incident Management | Erkennen von Sicherheitsvorfällen, Reaktion darauf und Wiederherstellung |
| ISM | Infrastructure Security Management | Sicherheit von Netzwerk, Servern und grundlegender Infrastruktur |
| PAS | Product and Application Security Management | Sicherheitsfunktionen im GitLab-Produkt, die per Dogfooding die eigene Entwicklung absichern, etwa Branch-Schutz und Code-Security-Scanning |
| PSM | People Security Management | Personalsicherheit, Schulung und Sensibilisierung |
| SDL | Software Development & Acquisition Life Cycle Management | Sichere SDLC-Praktiken und Beschaffung von Fremdsoftware |
| SRM | Security Risk Management | Risikobewertung, Risikobehandlung und Risikosteuerung |
| TPR | Third Party Risk Management | Steuerung von Sicherheitsrisiken durch Lieferanten und Dienstleister |
| TVM | Threat & Vulnerability Management | Erkennen und Beheben von Sicherheitsschwachstellen |
Jede Domäne fasst verwandte Controls zu logischen Familien zusammen, die sich daran orientieren, wie das Security-Programm von GitLab tatsächlich organisiert ist und betrieben wird. Diese Struktur gibt uns ein methodisches Vorgehen an die Hand, um Controls zu ergänzen, zu aktualisieren oder zu entfernen, wenn sich unsere Anforderungen ändern.
Mit den definierten Domänen standen zwei zentrale Fragen an: wie sich Controls über mehrere Produkte hinweg abbilden lassen, ohne das Framework zu duplizieren, und wie sich aussagekräftiger Umsetzungskontext erfassen lässt, um im großen Maßstab tatsächlich betreiben und auditieren zu können.
GitLab bietet mehrere Produktvarianten an: GitLab.com (mandantenfähiges SaaS auf GCP), GitLab Dedicated (Single-Tenant-SaaS auf AWS) und GitLab Dedicated for Government (GitLabs Single-Tenant-FedRAMP-Angebot auf AWS). Jede Variante hat eigene Infrastruktur, eigene Compliance-Geltungsbereiche und eigene Audit-Anforderungen. Wir mussten produktspezifische Audits unterstützen, ohne dafür jeweils komplett eigene Frameworks anzulegen.
Wir haben eine Control-Hierarchie entworfen, in der Level-1-Controls das Framework bilden und festlegen, was auf Organisationsebene umgesetzt sein muss. Level-2-Controls sind die Umsetzung und halten produktspezifisch fest, wie die jeweilige Anforderung tatsächlich erfüllt wird.
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph TD
accTitle: Control-Hierarchie
accDescr: Level-1-Anforderungen laufen auf Level-2-Umsetzungen herunter.
L1["Level 1: Framework<br/>Was umgesetzt sein muss"];
L2A["Level 2: GitLab.com<br/>Wie es umgesetzt ist"];
L2B["Level 2: Dedicated<br/>Wie es umgesetzt ist"];
L2C["Level 2: Dedicated for Gov<br/>Wie es umgesetzt ist"];
L2D["Level 2: Entity<br/>(von allen geerbt)"];
L1-->L2A;
L1-->L2B;
L1-->L2C;
L1-->L2D;
Diese Trennung erlaubt es uns, ein einziges Framework mit produktspezifischen Umsetzungen zu pflegen, statt für jede Variante ein eigenes Framework zu verwalten. Entity-Controls gelten organisationsweit und werden von GitLab.com, GitLab Dedicated und GitLab Dedicated for Government geerbt.
Klassische Control-Frameworks führen nur wenige Informationen mit: eine Control-ID, eine Beschreibung und eine verantwortliche Person. Das GCF geht einen anderen Weg, und seine eigentliche Stärke sind die umfangreichen Metadaten, die wir zu jedem Control führen. Über die Control-Beschreibung oder das Implementation Statement hinaus erfassen wir:
Dieser Kontext macht aus dem GCF mehr als eine einfache Control-Liste: ein operationalisiertes Control-Inventar.
Mit dieser Struktur lassen sich Fragen wie diese beantworten:
Das GCF ist nicht statisch, sondern darauf angelegt, sich mit unserem Geschäft und der Compliance-Landschaft weiterzuentwickeln.
Weil der Kontext im GCF operationalisiert ist, lassen sich Geltungsbereich und Lücken bei neuen Zertifizierungen (ISMAP, IRAP, C5 und weitere) rasch bestimmen:
Wenn neue Regulierung entsteht oder sich bestehende Anforderungen ändern:
Das Framework passt sich verschiedenen Veränderungen an:
Einmal absichern und vielfach erfüllen ist nicht bloß ein Prinzip. Es bringt handfeste Vorteile dabei, wie wir Audits vorbereiten, Control-Verantwortliche unterstützen und neue Zertifizierungen angehen. So sieht das in der Praxis aus, qualitativ wie in Zahlen.
Seit der Einführung des GCF haben sich unsere Compliance-Abläufe deutlich verbessert:
Mit dem GCF pflegen wir ein Framework, dessen Controls mehreren Zertifizierungsanforderungen zugeordnet sind, statt für jedes Audit eigene Control-Sets zu verwalten. Ein einziges Control kann Anforderungen aus SOC 2, ISO 27001 und PCI DSS gleichzeitig erfüllen.
Über das GCF pflegen wir eine konsolidierte Anfrageliste statt getrennter Listen je Audit. Weil wir Controls mit konkretem Kontext definiert haben, steht in unseren Anfragelisten "Okta-Nutzerliste" statt eines generischen "Produktions-Nutzerlisten". Das nimmt Mehrdeutigkeit und Auslegungsspielraum heraus. Wir sammeln keine "N/A"-Nachweise und überlassen es nicht den Auditoren, zu deuten, was "Produktion" in unserer Umgebung bedeutet. Alles ist bereits auf unsere tatsächlichen Systeme zugeschnitten.
Diese Integration entlastet unmittelbar alle Beteiligten. Control-Verantwortliche liefern Nachweise einmal, statt auf getrennte Anfragen von SOC-2-, ISO- und PCI-Auditoren zu antworten. Wenn wir Nachweise für Zugriffskontrollen sammeln, erfüllen diese die Anforderungen von SOC 2, ISO 27001 und PCI DSS gleichzeitig. Ein Control, eine Prüfung, ein Nachweis, und mehrere Zertifizierungen und Anforderungen sind erfüllt.
Bei neuen Zertifizierungen oder neuen Funktionen ermöglicht der operationalisierte Kontext eine gezieltere Gap-Analyse. Wir können bestimmen, welche Controls bereits existieren, was fehlt und welche Umsetzung nötig ist.
Control-Effizienz:
Audit-Effizienz:
Umfang des Frameworks:
Das GCF entwickelt sich weiter, während wir Security- und KI-Controls ergänzen, neue Zertifizierungen angehen und unser Vorgehen schärfen.
Für Fachleute in der Security-Compliance: Keine Scheu davor, ein eigenes Framework zu bauen, wenn die Industriestandards nicht passen. Der anfängliche Aufwand zahlt sich in Skalierbarkeit, Effizienz und Controls aus, die für die eigene Umgebung tatsächlich Sinn ergeben. Manchmal ist das beste Framework das selbst entworfene.
Wer tiefer einsteigen möchte, findet in unserer Dokumentation zum GitLab Control Framework die Methodik, die Control-Domänen und die Feldstruktur im Detail.
Hat dir dieser Blogbeitrag gefallen? Hast du Fragen oder Feedback? Erstelle ein neues Diskussionsthema im GitLab-Community-Forum und lass andere an deinen Eindrücken teilhaben.
Feedback teilenBeginne noch heute, schneller zu entwickeln
Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.