[{"data":1,"prerenderedAt":1569},["ShallowReactive",2],{"/de-de/blog/how-gitlab-built-a-security-control-framework-from-scratch":3,"navigation-de-de":785,"banner-de-de":1217,"footer-de-de":1225,"blog-post-authors-de-de-Davoud Tu":1466,"blog-related-posts-de-de-how-gitlab-built-a-security-control-framework-from-scratch":1481,"blog-promotions-de-de":1506,"next-steps-de-de":1559},{"id":4,"title":5,"authors":6,"body":8,"category":766,"date":767,"description":768,"extension":769,"externalUrl":770,"faq":770,"featured":771,"heroImage":772,"meta":773,"navigation":447,"path":774,"seo":775,"slug":778,"stem":779,"tags":780,"template":783,"updatedDate":770,"__hash__":784},"blogPosts/de-de/blog/how-gitlab-built-a-security-control-framework-from-scratch.md","Wie GitLab ein eigenes Security-Control-Framework gebaut hat",[7],"Davoud Tu",{"type":9,"value":10,"toc":751},"minimark",[11,15,18,21,26,36,45,48,51,54,57,61,64,69,72,78,109,114,122,125,129,132,145,148,152,155,376,379,383,386,391,394,405,508,511,515,518,541,544,547,558,562,565,569,572,586,590,593,607,611,614,625,629,632,636,645,649,652,656,659,663,672,676,679,683,688,696,701,709,714,725,729,732,738,747],[12,13,14],"p",{},"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.",[12,16,17],{},"Also haben wir ein eigenes gebaut.",[12,19,20],{},"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.",[22,23,25],"h2",{"id":24},"der-weg-durch-die-frameworks","Der Weg durch die Frameworks",[12,27,28,29,35],{},"Als ich im November 2022 zum Security-Compliance-Team von GitLab kam, verwalteten wir unsere Controls über das ",[30,31,34],"a",{"href":32,"rel":33},"https://securecontrolsframework.com/",[],"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.",[12,37,38,39,44],{},"Da die FedRAMP-Autorisierung auf unserer Roadmap stand, entschieden wir uns als Nächstes für ",[30,40,43],{"href":41,"rel":42},"https://csrc.nist.gov/pubs/sp/800/53/r5/upd1/final",[],"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.",[12,46,47],{},"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.",[12,49,50],{},"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.",[12,52,53],{},"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.",[12,55,56],{},"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.",[22,58,60],{"id":59},"das-gitlab-control-framework-aufbauen","Das GitLab Control Framework aufbauen",[12,62,63],{},"In fünf methodischen Schritten haben wir unser eigenes Common-Controls-Framework aufgebaut: das GitLab Control Framework (GCF).",[65,66,68],"h3",{"id":67},"_1-analysieren-was-wir-brauchen","1. Analysieren, was wir brauchen",[12,70,71],{},"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:",[12,73,74],{},[75,76,77],"strong",{},"Externe Zertifizierungen:",[79,80,81,89,97,100,103,106],"ul",{},[82,83,84],"li",{},[30,85,88],{"href":86,"rel":87},"https://about.gitlab.com/de-de/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab/",[],"SOC 2 Type II",[82,90,91,96],{},[30,92,95],{"href":93,"rel":94},"https://about.gitlab.com/de-de/blog/how-gitlab-can-support-your-iso-compliance-journey/",[],"ISO 27001",", ISO 27017, ISO 27018, ISO 42001",[82,98,99],{},"PCI DSS",[82,101,102],{},"TISAX",[82,104,105],{},"Cyber Essentials",[82,107,108],{},"FedRAMP",[12,110,111],{},[75,112,113],{},"Interne Compliance-Anforderungen:",[79,115,116,119],{},[82,117,118],{},"Controls für unternehmenskritische Systeme, die nicht im Geltungsbereich externer Zertifizierungen liegen",[82,120,121],{},"Controls für Systeme mit Zugriff auf sensible Daten",[12,123,124],{},"Damit stand die Ausgangsbasis: welche Controls existieren müssen, um unsere Compliance-Pflichten zu erfüllen.",[65,126,128],{"id":127},"_2-von-etablierten-frameworks-lernen","2. Von etablierten Frameworks lernen",[12,130,131],{},"Anschließend haben wir unsere Anforderungen mit anerkannten Frameworks abgeglichen:",[79,133,134,136,139,142],{},[82,135,43],{},[82,137,138],{},"NIST Cybersecurity Framework (CSF)",[82,140,141],{},"Secure Controls Framework (SCF)",[82,143,144],{},"Common Controls Framework (CCF) von Adobe und Cisco",[12,146,147],{},"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.",[65,149,151],{"id":150},"_3-eigene-control-domänen-schaffen","3. Eigene Control-Domänen schaffen",[12,153,154],{},"Aus dieser Analyse heraus haben wir 18 eigene Control-Domänen entwickelt, zugeschnitten auf die Umgebung von GitLab:",[156,157,158,174],"table",{},[159,160,161],"thead",{},[162,163,164,168,171],"tr",{},[165,166,167],"th",{},"Kürzel",[165,169,170],{},"Domäne",[165,172,173],{},"Geltungsbereich der Controls",[175,176,177,189,200,211,222,233,244,255,266,277,288,299,310,321,332,343,354,365],"tbody",{},[162,178,179,183,186],{},[180,181,182],"td",{},"AAM",[180,184,185],{},"Audit & Accountability Management",[180,187,188],{},"Protokollierung, Monitoring und Führung von Audit-Trails über Systemaktivitäten",[162,190,191,194,197],{},[180,192,193],{},"AIM",[180,195,196],{},"Artificial Intelligence Management",[180,198,199],{},"Speziell für Entwicklung, Bereitstellung und Governance von KI-Systemen",[162,201,202,205,208],{},[180,203,204],{},"ASM",[180,206,207],{},"Asset Management",[180,209,210],{},"Erfassen, Nachverfolgen und Verwalten von Unternehmenswerten",[162,212,213,216,219],{},[180,214,215],{},"BCA",[180,217,218],{},"Backups, Contingency, and Availability Management",[180,220,221],{},"Geschäftskontinuität, Notfallwiederherstellung und Systemverfügbarkeit",[162,223,224,227,230],{},[180,225,226],{},"CHM",[180,228,229],{},"Change Management",[180,231,232],{},"Verwaltung von Änderungen an Systemen, Anwendungen und Infrastruktur",[162,234,235,238,241],{},[180,236,237],{},"CSR",[180,239,240],{},"Customer Security Relationship Management",[180,242,243],{},"Kundenkommunikation, Transparenz und Sicherheitszusagen",[162,245,246,249,252],{},[180,247,248],{},"DPM",[180,250,251],{},"Data Protection Management",[180,253,254],{},"Schutz von Vertraulichkeit, Integrität und Privatsphäre der Daten",[162,256,257,260,263],{},[180,258,259],{},"EPM",[180,261,262],{},"Endpoint Management",[180,264,265],{},"Absicherung von Endgeräten und Arbeitsplatzrechnern",[162,267,268,271,274],{},[180,269,270],{},"GPM",[180,272,273],{},"Governance & Program Management",[180,275,276],{},"Security-Governance, Richtlinien und Programmaufsicht",[162,278,279,282,285],{},[180,280,281],{},"IAM",[180,283,284],{},"Identity, Authentication, and Access Management",[180,286,287],{},"Identitäten, Authentifizierungsmechanismen und Zugriffskontrolle",[162,289,290,293,296],{},[180,291,292],{},"INC",[180,294,295],{},"Incident Management",[180,297,298],{},"Erkennen von Sicherheitsvorfällen, Reaktion darauf und Wiederherstellung",[162,300,301,304,307],{},[180,302,303],{},"ISM",[180,305,306],{},"Infrastructure Security Management",[180,308,309],{},"Sicherheit von Netzwerk, Servern und grundlegender Infrastruktur",[162,311,312,315,318],{},[180,313,314],{},"PAS",[180,316,317],{},"Product and Application Security Management",[180,319,320],{},"Sicherheitsfunktionen im GitLab-Produkt, die per Dogfooding die eigene Entwicklung absichern, etwa Branch-Schutz und Code-Security-Scanning",[162,322,323,326,329],{},[180,324,325],{},"PSM",[180,327,328],{},"People Security Management",[180,330,331],{},"Personalsicherheit, Schulung und Sensibilisierung",[162,333,334,337,340],{},[180,335,336],{},"SDL",[180,338,339],{},"Software Development & Acquisition Life Cycle Management",[180,341,342],{},"Sichere SDLC-Praktiken und Beschaffung von Fremdsoftware",[162,344,345,348,351],{},[180,346,347],{},"SRM",[180,349,350],{},"Security Risk Management",[180,352,353],{},"Risikobewertung, Risikobehandlung und Risikosteuerung",[162,355,356,359,362],{},[180,357,358],{},"TPR",[180,360,361],{},"Third Party Risk Management",[180,363,364],{},"Steuerung von Sicherheitsrisiken durch Lieferanten und Dienstleister",[162,366,367,370,373],{},[180,368,369],{},"TVM",[180,371,372],{},"Threat & Vulnerability Management",[180,374,375],{},"Erkennen und Beheben von Sicherheitsschwachstellen",[12,377,378],{},"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.",[65,380,382],{"id":381},"_4-kontext-und-daten-ergänzen","4. Kontext und Daten ergänzen",[12,384,385],{},"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.",[387,388,390],"h4",{"id":389},"über-mehrere-produkte-hinweg-skalieren","Über mehrere Produkte hinweg skalieren",[12,392,393],{},"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.",[12,395,396,397,400,401,404],{},"Wir haben eine Control-Hierarchie entworfen, in der ",[75,398,399],{},"Level-1-Controls das Framework bilden"," und festlegen, was auf Organisationsebene umgesetzt sein muss. ",[75,402,403],{},"Level-2-Controls sind die Umsetzung"," und halten produktspezifisch fest, wie die jeweilige Anforderung tatsächlich erfüllt wird.",[406,407,412],"pre",{"className":408,"code":409,"language":410,"meta":411,"style":411},"language-mermaid shiki shiki-themes github-light","%%{init: { \"fontFamily\": \"GitLab Sans\" }}%%\ngraph TD\n  accTitle: Control-Hierarchie\n  accDescr: Level-1-Anforderungen laufen auf Level-2-Umsetzungen herunter.\n\n  L1[\"Level 1: Framework\u003Cbr/>Was umgesetzt sein muss\"];\n  L2A[\"Level 2: GitLab.com\u003Cbr/>Wie es umgesetzt ist\"];\n  L2B[\"Level 2: Dedicated\u003Cbr/>Wie es umgesetzt ist\"];\n  L2C[\"Level 2: Dedicated for Gov\u003Cbr/>Wie es umgesetzt ist\"];\n  L2D[\"Level 2: Entity\u003Cbr/>(von allen geerbt)\"];\n\n  L1-->L2A;\n  L1-->L2B;\n  L1-->L2C;\n  L1-->L2D;\n","mermaid","",[413,414,415,424,430,436,442,449,455,461,467,473,479,484,490,496,502],"code",{"__ignoreMap":411},[416,417,420],"span",{"class":418,"line":419},"line",1,[416,421,423],{"class":422},"sgsFI","%%{init: { \"fontFamily\": \"GitLab Sans\" }}%%\n",[416,425,427],{"class":418,"line":426},2,[416,428,429],{"class":422},"graph TD\n",[416,431,433],{"class":418,"line":432},3,[416,434,435],{"class":422},"  accTitle: Control-Hierarchie\n",[416,437,439],{"class":418,"line":438},4,[416,440,441],{"class":422},"  accDescr: Level-1-Anforderungen laufen auf Level-2-Umsetzungen herunter.\n",[416,443,445],{"class":418,"line":444},5,[416,446,448],{"emptyLinePlaceholder":447},true,"\n",[416,450,452],{"class":418,"line":451},6,[416,453,454],{"class":422},"  L1[\"Level 1: Framework\u003Cbr/>Was umgesetzt sein muss\"];\n",[416,456,458],{"class":418,"line":457},7,[416,459,460],{"class":422},"  L2A[\"Level 2: GitLab.com\u003Cbr/>Wie es umgesetzt ist\"];\n",[416,462,464],{"class":418,"line":463},8,[416,465,466],{"class":422},"  L2B[\"Level 2: Dedicated\u003Cbr/>Wie es umgesetzt ist\"];\n",[416,468,470],{"class":418,"line":469},9,[416,471,472],{"class":422},"  L2C[\"Level 2: Dedicated for Gov\u003Cbr/>Wie es umgesetzt ist\"];\n",[416,474,476],{"class":418,"line":475},10,[416,477,478],{"class":422},"  L2D[\"Level 2: Entity\u003Cbr/>(von allen geerbt)\"];\n",[416,480,482],{"class":418,"line":481},11,[416,483,448],{"emptyLinePlaceholder":447},[416,485,487],{"class":418,"line":486},12,[416,488,489],{"class":422},"  L1-->L2A;\n",[416,491,493],{"class":418,"line":492},13,[416,494,495],{"class":422},"  L1-->L2B;\n",[416,497,499],{"class":418,"line":498},14,[416,500,501],{"class":422},"  L1-->L2C;\n",[416,503,505],{"class":418,"line":504},15,[416,506,507],{"class":422},"  L1-->L2D;\n",[12,509,510],{},"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.",[387,512,514],{"id":513},"controls-mit-kontext-anreichern","Controls mit Kontext anreichern",[12,516,517],{},"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:",[79,519,520,523,526,529,532,535,538],{},[82,521,522],{},"Control-Verantwortung: Wer trägt die Verantwortung für das Control und sein Risiko?",[82,524,525],{},"Umgebung: Gilt es organisationsweit (Entity, von allen Produktvarianten geerbt), für GitLab.com oder für Dedicated?",[82,527,528],{},"Assets: Welche konkreten Systeme deckt dieses Control ab?",[82,530,531],{},"Häufigkeit: Wie oft wird das Control durchgeführt oder geprüft?",[82,533,534],{},"Art: Manuell, teilautomatisiert oder vollautomatisiert?",[82,536,537],{},"Klassifizierung: Dient es externen Zertifizierungen oder dem internen Risikomanagement?",[82,539,540],{},"Prüfdetails: Wie bewerten wir es? Welche Nachweise sammeln wir?",[12,542,543],{},"Dieser Kontext macht aus dem GCF mehr als eine einfache Control-Liste: ein operationalisiertes Control-Inventar.",[12,545,546],{},"Mit dieser Struktur lassen sich Fragen wie diese beantworten:",[79,548,549,552,555],{},[82,550,551],{},"Welche Controls gelten für unser SOC-2-Audit für GitLab.com und welche für GitLab Dedicated? → Nach Umgebung filtern: GitLab.com",[82,553,554],{},"Welche Controls verantwortet das Infrastructure-Team? → Nach Verantwortung filtern",[82,556,557],{},"Welche Controls lassen sich automatisieren? → Nach Art filtern: manuell",[65,559,561],{"id":560},"_5-iterieren-reifen-lassen-und-skalieren","5. Iterieren, reifen lassen und skalieren",[12,563,564],{},"Das GCF ist nicht statisch, sondern darauf angelegt, sich mit unserem Geschäft und der Compliance-Landschaft weiterzuentwickeln.",[387,566,568],{"id":567},"neue-zertifizierungen-angehen","Neue Zertifizierungen angehen",[12,570,571],{},"Weil der Kontext im GCF operationalisiert ist, lassen sich Geltungsbereich und Lücken bei neuen Zertifizierungen (ISMAP, IRAP, C5 und weitere) rasch bestimmen:",[79,573,574,577,580,583],{},[82,575,576],{},"Geltungsbereich bestimmen: Welches Produkt hat den geschäftlichen Bedarf (GitLab.com, GitLab Dedicated oder beide)?",[82,578,579],{},"Anforderungen zuordnen: Decken bestehende Controls die neuen Zertifizierungsanforderungen bereits ab?",[82,581,582],{},"Lücken erkennen: Welche neuen Controls müssen entstehen?",[82,584,585],{},"Zuordnungen aktualisieren: Bestehende Controls mit den neuen Zertifizierungsanforderungen verknüpfen.",[387,587,589],{"id":588},"auf-neue-regulierung-reagieren","Auf neue Regulierung reagieren",[12,591,592],{},"Wenn neue Regulierung entsteht oder sich bestehende Anforderungen ändern:",[79,594,595,598,601,604],{},[82,596,597],{},"Bestehende Controls prüfen: Deckt ein vorhandenes Control die neue Anforderung bereits ab?",[82,599,600],{},"Aktualisieren oder neu anlegen: Entweder den Wortlaut eines bestehenden Controls anpassen oder ein neues Control anlegen.",[82,602,603],{},"Die strengste Fassung anwenden: Wenn mehrere Zertifizierungen ähnliche Anforderungen stellen, setzen wir die strengste um. Einmal absichern, vielfach erfüllen.",[82,605,606],{},"Über Zertifizierungen hinweg zuordnen: Das Control mit allen einschlägigen Zertifizierungsanforderungen verknüpfen.",[387,608,610],{"id":609},"den-control-lebenszyklus-steuern","Den Control-Lebenszyklus steuern",[12,612,613],{},"Das Framework passt sich verschiedenen Veränderungen an:",[79,615,616,619,622],{},[82,617,618],{},"Geänderte Anforderungen: Aktualisieren Zertifizierungen ihre Anforderungen, prüfen wir die betroffenen Controls und passen Beschreibungen oder Zuordnungen an.",[82,620,621],{},"Abgekündigte Controls: Entfällt eine Anforderung oder wird ein Control nicht mehr gebraucht, markieren wir es als deprecated und nehmen es aus dem Monitoring-Plan.",[82,623,624],{},"Neu erkannte Risiken: Risikobewertungen können Lücken aufzeigen, die neue interne Controls erfordern.",[22,626,628],{"id":627},"die-stärke-gemeinsamer-controls-ein-control-mehrere-anforderungen","Die Stärke gemeinsamer Controls: ein Control, mehrere Anforderungen",[12,630,631],{},"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.",[65,633,635],{"id":634},"qualitative-ergebnisse","Qualitative Ergebnisse",[12,637,638,639,644],{},"Seit der Einführung des GCF haben sich unsere ",[30,640,643],{"href":641,"rel":642},"https://about.gitlab.com/de-de/blog/automated-compliance-management/",[],"Compliance-Abläufe"," deutlich verbessert:",[387,646,648],{"id":647},"integrierter-audit-ansatz","Integrierter Audit-Ansatz",[12,650,651],{},"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.",[387,653,655],{"id":654},"schnellere-audit-vorbereitung","Schnellere Audit-Vorbereitung",[12,657,658],{},"Ü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.",[387,660,662],{"id":661},"weniger-aufwand-für-beteiligte","Weniger Aufwand für Beteiligte",[12,664,665,666,671],{},"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 ",[30,667,670],{"href":668,"rel":669},"https://about.gitlab.com/de-de/blog/automating-role-based-access-control-rbac-at-scale/",[],"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.",[387,673,675],{"id":674},"effizientere-gap-analysen","Effizientere Gap-Analysen",[12,677,678],{},"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.",[65,680,682],{"id":681},"quantifizierbare-ergebnisse","Quantifizierbare Ergebnisse",[12,684,685],{},[75,686,687],{},"Control-Effizienz:",[79,689,690,693],{},[82,691,692],{},"SOC-Controls um 58 % reduziert (200 Controls → 84) für GitLab.com und um 55 % (181 → 82) für GitLab Dedicated",[82,694,695],{},"Ein Framework trägt inzwischen 8+ Zertifizierungen",[12,697,698],{},[75,699,700],{},"Audit-Effizienz:",[79,702,703,706],{},[82,704,705],{},"4 Audit-Anfragelisten zu einer konsolidiert, Anfragen um 44 % reduziert (415 → 231)",[82,707,708],{},"95 % Evidence-Acceptance-Rate vor dem Fieldwork bei den jüngsten PCI-Audits",[12,710,711],{},[75,712,713],{},"Umfang des Frameworks:",[79,715,716,719,722],{},[82,717,718],{},"220+ aktive Controls über 18 eigene Domänen",[82,720,721],{},"Zugeordnet zu 1.300+ Zertifizierungsanforderungen",[82,723,724],{},"Trägt mehrere Produktvarianten",[22,726,728],{"id":727},"wie-es-weitergeht","Wie es weitergeht",[12,730,731],{},"Das GCF entwickelt sich weiter, während wir Security- und KI-Controls ergänzen, neue Zertifizierungen angehen und unser Vorgehen schärfen.",[12,733,734,737],{},[75,735,736],{},"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.",[12,739,740,741,746],{},"Wer tiefer einsteigen möchte, findet in unserer ",[30,742,745],{"href":743,"rel":744},"https://handbook.gitlab.com/handbook/security/security-assurance/security-compliance/sec-controls/",[],"Dokumentation zum GitLab Control Framework"," die Methodik, die Control-Domänen und die Feldstruktur im Detail.",[748,749,750],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":411,"searchDepth":426,"depth":426,"links":752},[753,754,761,765],{"id":24,"depth":426,"text":25},{"id":59,"depth":426,"text":60,"children":755},[756,757,758,759,760],{"id":67,"depth":432,"text":68},{"id":127,"depth":432,"text":128},{"id":150,"depth":432,"text":151},{"id":381,"depth":432,"text":382},{"id":560,"depth":432,"text":561},{"id":627,"depth":426,"text":628,"children":762},[763,764],{"id":634,"depth":432,"text":635},{"id":681,"depth":432,"text":682},{"id":727,"depth":426,"text":728},"security-labs","2026-08-08","Bestehende Frameworks passten nicht zur Multi-Produkt-Umgebung. Also baute GitLabs Security-Compliance-Team ein eigenes für viele Zertifizierungen.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772630163/akp8ly2mrsfrhsb0liyb.png",{},"/de-de/blog/how-gitlab-built-a-security-control-framework-from-scratch",{"config":776,"title":5,"description":777},{"noIndex":771},"GitLabs Security-Compliance-Team hat ein eigenes Control-Framework entwickelt, das mehrere Zertifizierungen und Produkte trägt. Warum und wie.","how-gitlab-built-a-security-control-framework-from-scratch","de-de/blog/how-gitlab-built-a-security-control-framework-from-scratch",[781,782],"security","tutorial","BlogPost","6fVeBINeBmrTbVa3E6EUZxUui-YAG5uWj97SWGWQ6zk",{"logo":786,"freeTrial":791,"sales":796,"login":801,"items":806,"search":1135,"minimal":1169,"duo":1187,"switchNav":1196,"pricingDeployment":1207},{"config":787},{"href":788,"dataGaName":789,"dataGaLocation":790},"/de-de/","gitlab logo","header",{"text":792,"config":793},"Kostenlose Testversion anfordern",{"href":794,"dataGaName":795,"dataGaLocation":790},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":797,"config":798},"Demo anfordern",{"href":799,"dataGaName":800,"dataGaLocation":790},"/de-de/sales/?contact-topic=request-demo","sales",{"text":802,"config":803},"Anmelden",{"href":804,"dataGaName":805,"dataGaLocation":790},"https://gitlab.com/users/sign_in/","sign in",[807,836,938,943,1057,1113],{"text":808,"config":809,"menu":811},"Plattform",{"dataNavLevelOne":810},"platform",{"type":812,"columns":813},"cards",[814,820,828],{"title":808,"description":815,"link":816},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":817,"config":818},"Die Plattform erkunden",{"href":819,"dataGaName":810,"dataGaLocation":790},"/de-de/platform/",{"title":821,"description":822,"link":823},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":824,"config":825},"Lerne GitLab Duo kennen",{"href":826,"dataGaName":827,"dataGaLocation":790},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":829,"description":830,"link":831},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":832,"config":833},"Mehr erfahren",{"href":834,"dataGaName":835,"dataGaLocation":790},"/de-de/why-gitlab/","why gitlab",{"text":837,"left":447,"config":838,"menu":840},"Produkt",{"dataNavLevelOne":839},"solutions",{"type":841,"link":842,"columns":846,"feature":917},"lists",{"text":843,"config":844},"Alle Lösungen anzeigen",{"href":845,"dataGaName":839,"dataGaLocation":790},"/de-de/solutions/",[847,872,895],{"title":848,"description":849,"link":850,"items":855},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":851},{"icon":852,"href":853,"dataGaName":854,"dataGaLocation":790},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[856,860,863,868],{"text":857,"config":858},"CI/CD",{"href":859,"dataGaLocation":790,"dataGaName":857},"/de-de/solutions/continuous-integration/",{"text":821,"config":861},{"href":826,"dataGaLocation":790,"dataGaName":862},"gitlab duo agent platform - product menu",{"text":864,"config":865},"Quellcodeverwaltung",{"href":866,"dataGaLocation":790,"dataGaName":867},"/de-de/solutions/source-code-management/","Source Code Management",{"text":869,"config":870},"Automatische Softwarebereitstellung",{"href":853,"dataGaLocation":790,"dataGaName":871},"Automated software delivery",{"title":873,"description":874,"link":875,"items":880},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":876},{"href":877,"dataGaName":878,"dataGaLocation":790,"icon":879},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[881,885,890],{"text":882,"config":883},"Anwendungssicherheitstests",{"href":877,"dataGaName":884,"dataGaLocation":790},"Application security testing",{"text":886,"config":887},"Schutz der Software-Lieferkette",{"href":888,"dataGaLocation":790,"dataGaName":889},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":891,"config":892},"Software-Compliance",{"href":893,"dataGaName":894,"dataGaLocation":790},"/de-de/solutions/software-compliance/","software compliance",{"title":896,"link":897,"items":902},"Messung",{"config":898},{"icon":899,"href":900,"dataGaName":901,"dataGaLocation":790},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[903,907,912],{"text":904,"config":905},"Sichtbarkeit und Messung",{"href":900,"dataGaLocation":790,"dataGaName":906},"Visibility and Measurement",{"text":908,"config":909},"Wertstrommanagement",{"href":910,"dataGaLocation":790,"dataGaName":911},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":913,"config":914},"Analysen und Einblicke",{"href":915,"dataGaLocation":790,"dataGaName":916},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":918,"type":841,"items":919},"GitLab für",[920,926,932],{"text":921,"config":922},"Enterprise",{"icon":923,"href":924,"dataGaLocation":790,"dataGaName":925},"Building","/de-de/enterprise/","enterprise",{"text":927,"config":928},"Kleinunternehmen",{"icon":929,"href":930,"dataGaLocation":790,"dataGaName":931},"Work","/de-de/small-business/","small business",{"text":933,"config":934},"Öffentlicher Sektor",{"icon":935,"href":936,"dataGaLocation":790,"dataGaName":937},"Organization","/de-de/solutions/public-sector/","public sector",{"text":939,"config":940},"Preise",{"href":941,"dataGaName":942,"dataGaLocation":790,"dataNavLevelOne":942},"/de-de/pricing/","pricing",{"text":944,"config":945,"menu":947},"Ressourcen",{"dataNavLevelOne":946},"resources",{"type":841,"link":948,"columns":952,"feature":1046},{"text":949,"config":950},"Alle Ressourcen anzeigen",{"href":951,"dataGaName":946,"dataGaLocation":790},"/de-de/resources/",[953,986,1013],{"title":954,"items":955},"Erste Schritte",[956,961,966,971,976,981],{"text":957,"config":958},"Installieren",{"href":959,"dataGaName":960,"dataGaLocation":790},"/de-de/install/","install",{"text":962,"config":963},"Kurzanleitungen",{"href":964,"dataGaName":965,"dataGaLocation":790},"/de-de/get-started/","quick setup checklists",{"text":967,"config":968},"Lernen",{"href":969,"dataGaLocation":790,"dataGaName":970},"https://university.gitlab.com/","learn",{"text":972,"config":973},"Produktdokumentation",{"href":974,"dataGaName":975,"dataGaLocation":790},"https://docs.gitlab.com/","product documentation",{"text":977,"config":978},"Best-Practice-Videos",{"href":979,"dataGaName":980,"dataGaLocation":790},"/de-de/getting-started-videos/","best practice videos",{"text":982,"config":983},"Integrationen",{"href":984,"dataGaName":985,"dataGaLocation":790},"/de-de/integrations/","integrations",{"title":987,"items":988},"Entdecken",[989,994,999,1004,1008],{"text":990,"config":991},"Kundenerfolge",{"href":992,"dataGaName":993,"dataGaLocation":790},"/de-de/customers/","customer success stories",{"text":995,"config":996},"Blog",{"href":997,"dataGaName":998,"dataGaLocation":790},"/de-de/blog/","blog",{"text":1000,"config":1001},"Demo-Hub",{"href":1002,"dataGaName":1003,"dataGaLocation":790},"/de-de/demo-hub/","demo hub",{"text":1005,"config":1006},"The Source",{"href":1007,"dataGaName":998,"dataGaLocation":790},"/de-de/the-source/",{"text":1009,"config":1010},"Remote",{"href":1011,"dataGaName":1012,"dataGaLocation":790},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1014,"items":1015},"Vernetzen",[1016,1021,1026,1031,1036,1041],{"text":1017,"config":1018},"GitLab-Services",{"href":1019,"dataGaName":1020,"dataGaLocation":790},"/de-de/services/","services",{"text":1022,"config":1023},"Beitragen",{"href":1024,"dataGaName":1025,"dataGaLocation":790},"https://contributors.gitlab.com","contribute",{"text":1027,"config":1028},"Community",{"href":1029,"dataGaName":1030,"dataGaLocation":790},"/community/","community",{"text":1032,"config":1033},"Forum",{"href":1034,"dataGaName":1035,"dataGaLocation":790},"https://forum.gitlab.com/","forum",{"text":1037,"config":1038},"Veranstaltungen",{"href":1039,"dataGaName":1040,"dataGaLocation":790},"/events/","events",{"text":1042,"config":1043},"Partner",{"href":1044,"dataGaName":1045,"dataGaLocation":790},"/de-de/partners/","partners",{"config":1047,"title":1050,"text":1051,"link":1052},{"background":1048,"textColor":1049},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":1053,"config":1054},"Aktuelle Nachrichten",{"href":1055,"dataGaName":1056,"dataGaLocation":790},"/de-de/whats-new/","whats new",{"text":1058,"config":1059,"menu":1061},"Unternehmen",{"dataNavLevelOne":1060},"company",{"type":841,"columns":1062},[1063],{"items":1064},[1065,1070,1076,1078,1083,1088,1093,1098,1103,1108],{"text":1066,"config":1067},"Über",{"href":1068,"dataGaName":1069,"dataGaLocation":790},"/de-de/company/","about",{"text":1071,"config":1072,"footerGa":1075},"Karriere",{"href":1073,"dataGaName":1074,"dataGaLocation":790},"/jobs/","jobs",{"dataGaName":1074},{"text":1037,"config":1077},{"href":1039,"dataGaName":1040,"dataGaLocation":790},{"text":1079,"config":1080},"Geschäftsführung",{"href":1081,"dataGaName":1082,"dataGaLocation":790},"/company/team/e-group/","leadership",{"text":1084,"config":1085},"Handbuch",{"href":1086,"dataGaName":1087,"dataGaLocation":790},"https://handbook.gitlab.com/","handbook",{"text":1089,"config":1090},"Investor Relations",{"href":1091,"dataGaName":1092,"dataGaLocation":790},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1094,"config":1095},"Trust Center",{"href":1096,"dataGaName":1097,"dataGaLocation":790},"/de-de/security/","trust center",{"text":1099,"config":1100},"AI Transparency Center",{"href":1101,"dataGaName":1102,"dataGaLocation":790},"/de-de/ai-transparency-center/","ai transparency center",{"text":1104,"config":1105},"Newsletter",{"href":1106,"dataGaName":1107,"dataGaLocation":790},"/company/contact/#contact-forms","newsletter",{"text":1109,"config":1110},"Presse",{"href":1111,"dataGaName":1112,"dataGaLocation":790},"/press/","press",{"text":1114,"config":1115,"menu":1116},"Kontakt",{"dataNavLevelOne":1060},{"type":841,"columns":1117},[1118],{"items":1119},[1120,1125,1130],{"text":1121,"config":1122},"Vertrieb kontaktieren",{"href":1123,"dataGaName":1124,"dataGaLocation":790},"/de-de/sales/","talk to sales",{"text":1126,"config":1127},"Support-Portal",{"href":1128,"dataGaName":1129,"dataGaLocation":790},"https://support.gitlab.com/hc/en-us","support portal",{"text":1131,"config":1132},"Kundenportal",{"href":1133,"dataGaName":1134,"dataGaLocation":790},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1136,"login":1137,"suggestions":1144},"Schließen",{"text":1138,"link":1139},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":1140,"config":1141},"gitlab.com",{"href":804,"dataGaName":1142,"dataGaLocation":1143},"search login","search",{"text":1145,"default":1146},"Vorschläge",[1147,1149,1154,1156,1161,1166],{"text":821,"config":1148},{"href":826,"dataGaName":821,"dataGaLocation":1143},{"text":1150,"config":1151},"Codevorschläge (KI)",{"href":1152,"dataGaName":1153,"dataGaLocation":1143},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":857,"config":1155},{"href":859,"dataGaName":857,"dataGaLocation":1143},{"text":1157,"config":1158},"GitLab auf AWS",{"href":1159,"dataGaName":1160,"dataGaLocation":1143},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1162,"config":1163},"GitLab auf Google Cloud",{"href":1164,"dataGaName":1165,"dataGaLocation":1143},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":829,"config":1167},{"href":834,"dataGaName":1168,"dataGaLocation":1143},"Why GitLab?",{"freeTrial":1170,"mobileIcon":1175,"desktopIcon":1180,"secondaryButton":1183},{"text":1171,"config":1172},"Kostenlos testen",{"href":1173,"dataGaName":795,"dataGaLocation":1174},"https://gitlab.com/-/trials/new/","nav",{"altText":1176,"config":1177},"GitLab-Symbol",{"src":1178,"dataGaName":1179,"dataGaLocation":1174},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1176,"config":1181},{"src":1182,"dataGaName":1179,"dataGaLocation":1174},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":954,"config":1184},{"href":1185,"dataGaName":1186,"dataGaLocation":1174},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1188,"mobileIcon":1192,"desktopIcon":1194},{"text":1189,"config":1190},"Mehr über GitLab Duo erfahren",{"href":826,"dataGaName":1191,"dataGaLocation":1174},"gitlab duo",{"altText":1176,"config":1193},{"src":1178,"dataGaName":1179,"dataGaLocation":1174},{"altText":1176,"config":1195},{"src":1182,"dataGaName":1179,"dataGaLocation":1174},{"button":1197,"mobileIcon":1202,"desktopIcon":1204},{"text":1198,"config":1199},"/Option",{"href":1200,"dataGaName":1201,"dataGaLocation":1174},"#contact","switch",{"altText":1176,"config":1203},{"src":1178,"dataGaName":1179,"dataGaLocation":1174},{"altText":1176,"config":1205},{"src":1206,"dataGaName":1179,"dataGaLocation":1174},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1208,"mobileIcon":1213,"desktopIcon":1215},{"text":1209,"config":1210},"Zurück zur Preisübersicht",{"href":941,"dataGaName":1211,"dataGaLocation":1174,"icon":1212},"back to pricing","GoBack",{"altText":1176,"config":1214},{"src":1178,"dataGaName":1179,"dataGaLocation":1174},{"altText":1176,"config":1216},{"src":1182,"dataGaName":1179,"dataGaLocation":1174},{"title":1218,"button":1219,"config":1223},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":832,"config":1220},{"href":1221,"dataGaName":1222,"dataGaLocation":790},"/de-de/gitlab-orbit/","orbit",{"layout":1224,"disabled":771},"release",{"data":1226},{"text":1227,"source":1228,"edit":1234,"contribute":1239,"config":1244,"items":1249,"minimal":1455},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1229,"config":1230},"Quelltext der Seite anzeigen",{"href":1231,"dataGaName":1232,"dataGaLocation":1233},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1235,"config":1236},"Diese Seite bearbeiten",{"href":1237,"dataGaName":1238,"dataGaLocation":1233},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1240,"config":1241},"Beteilige dich",{"href":1242,"dataGaName":1243,"dataGaLocation":1233},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1245,"facebook":1246,"youtube":1247,"linkedin":1248},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1250,1295,1348,1390,1422],{"title":939,"links":1251,"subMenu":1266},[1252,1256,1261],{"text":1253,"config":1254},"Tarife anzeigen",{"href":941,"dataGaName":1255,"dataGaLocation":1233},"view plans",{"text":1257,"config":1258},"Vorteile von Premium",{"href":1259,"dataGaName":1260,"dataGaLocation":1233},"/de-de/pricing/premium/","why premium",{"text":1262,"config":1263},"Vorteile von Ultimate",{"href":1264,"dataGaName":1265,"dataGaLocation":1233},"/de-de/pricing/ultimate/","why ultimate",[1267],{"title":1114,"links":1268},[1269,1271,1273,1275,1280,1285,1290],{"text":1121,"config":1270},{"href":1123,"dataGaName":800,"dataGaLocation":1233},{"text":1126,"config":1272},{"href":1128,"dataGaName":1129,"dataGaLocation":1233},{"text":1131,"config":1274},{"href":1133,"dataGaName":1134,"dataGaLocation":1233},{"text":1276,"config":1277},"Status",{"href":1278,"dataGaName":1279,"dataGaLocation":1233},"https://status.gitlab.com/","status",{"text":1281,"config":1282},"Nutzungsbedingungen",{"href":1283,"dataGaName":1284,"dataGaLocation":1233},"/terms/","terms of use",{"text":1286,"config":1287},"Datenschutzerklärung",{"href":1288,"dataGaName":1289,"dataGaLocation":1233},"/de-de/privacy/","privacy statement",{"text":1291,"config":1292},"Cookie-Einstellungen",{"dataGaName":1293,"dataGaLocation":1233,"id":1294,"isOneTrustButton":447},"cookie preferences","ot-sdk-btn",{"title":837,"links":1296,"subMenu":1305},[1297,1301],{"text":1298,"config":1299},"DevSecOps-Plattform",{"href":819,"dataGaName":1300,"dataGaLocation":1233},"devsecops platform",{"text":1302,"config":1303},"KI-unterstützte Entwicklung",{"href":826,"dataGaName":1304,"dataGaLocation":1233},"ai-assisted development",[1306],{"title":1307,"links":1308},"Themen",[1309,1313,1318,1323,1328,1333,1338,1343],{"text":857,"config":1310},{"href":1311,"dataGaName":1312,"dataGaLocation":1233},"/de-de/topics/ci-cd/","cicd",{"text":1314,"config":1315},"GitOps",{"href":1316,"dataGaName":1317,"dataGaLocation":1233},"/de-de/topics/gitops/","gitops",{"text":1319,"config":1320},"DevOps",{"href":1321,"dataGaName":1322,"dataGaLocation":1233},"/de-de/topics/devops/","devops",{"text":1324,"config":1325},"Versionskontrolle",{"href":1326,"dataGaName":1327,"dataGaLocation":1233},"/de-de/topics/version-control/","version control",{"text":1329,"config":1330},"DevSecOps",{"href":1331,"dataGaName":1332,"dataGaLocation":1233},"/de-de/topics/devsecops/","devsecops",{"text":1334,"config":1335},"Cloud-nativ",{"href":1336,"dataGaName":1337,"dataGaLocation":1233},"/de-de/topics/cloud-native/","cloud native",{"text":1339,"config":1340},"KI für das Programmieren",{"href":1341,"dataGaName":1342,"dataGaLocation":1233},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1344,"config":1345},"Agentische KI",{"href":1346,"dataGaName":1347,"dataGaLocation":1233},"/de-de/topics/agentic-ai/","agentic ai",{"title":1349,"links":1350},"Lösungen",[1351,1354,1356,1361,1365,1368,1371,1374,1376,1378,1380,1385],{"text":882,"config":1352},{"href":877,"dataGaName":1353,"dataGaLocation":1233},"Application Security Testing",{"text":869,"config":1355},{"href":853,"dataGaName":854,"dataGaLocation":1233},{"text":1357,"config":1358},"Agile Entwicklung",{"href":1359,"dataGaName":1360,"dataGaLocation":1233},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1362,"config":1363},"SCM",{"href":866,"dataGaName":1364,"dataGaLocation":1233},"source code management",{"text":857,"config":1366},{"href":859,"dataGaName":1367,"dataGaLocation":1233},"continuous integration & delivery",{"text":908,"config":1369},{"href":910,"dataGaName":1370,"dataGaLocation":1233},"value stream management",{"text":1314,"config":1372},{"href":1373,"dataGaName":1317,"dataGaLocation":1233},"/de-de/solutions/gitops/",{"text":921,"config":1375},{"href":924,"dataGaName":925,"dataGaLocation":1233},{"text":927,"config":1377},{"href":930,"dataGaName":931,"dataGaLocation":1233},{"text":933,"config":1379},{"href":936,"dataGaName":937,"dataGaLocation":1233},{"text":1381,"config":1382},"Bildungswesen",{"href":1383,"dataGaName":1384,"dataGaLocation":1233},"/de-de/solutions/education/","education",{"text":1386,"config":1387},"Finanzdienstleistungen",{"href":1388,"dataGaName":1389,"dataGaLocation":1233},"/de-de/solutions/finance/","financial services",{"title":944,"links":1391},[1392,1394,1396,1398,1401,1403,1406,1408,1410,1412,1414,1416,1418,1420],{"text":957,"config":1393},{"href":959,"dataGaName":960,"dataGaLocation":1233},{"text":962,"config":1395},{"href":964,"dataGaName":965,"dataGaLocation":1233},{"text":967,"config":1397},{"href":969,"dataGaName":970,"dataGaLocation":1233},{"text":972,"config":1399},{"href":974,"dataGaName":1400,"dataGaLocation":1233},"docs",{"text":995,"config":1402},{"href":997,"dataGaName":998,"dataGaLocation":1233},{"text":1404,"config":1405},"Neuerungen",{"href":1055,"dataGaName":1056,"dataGaLocation":1233},{"text":990,"config":1407},{"href":992,"dataGaName":993,"dataGaLocation":1233},{"text":1009,"config":1409},{"href":1011,"dataGaName":1012,"dataGaLocation":1233},{"text":1017,"config":1411},{"href":1019,"dataGaName":1020,"dataGaLocation":1233},{"text":1022,"config":1413},{"href":1024,"dataGaName":1025,"dataGaLocation":1233},{"text":1027,"config":1415},{"href":1029,"dataGaName":1030,"dataGaLocation":1233},{"text":1032,"config":1417},{"href":1034,"dataGaName":1035,"dataGaLocation":1233},{"text":1037,"config":1419},{"href":1039,"dataGaName":1040,"dataGaLocation":1233},{"text":1042,"config":1421},{"href":1044,"dataGaName":1045,"dataGaLocation":1233},{"title":1058,"links":1423},[1424,1426,1428,1430,1432,1434,1439,1444,1446,1448,1450],{"text":1066,"config":1425},{"href":1068,"dataGaName":1060,"dataGaLocation":1233},{"text":1071,"config":1427},{"href":1073,"dataGaName":1074,"dataGaLocation":1233},{"text":1079,"config":1429},{"href":1081,"dataGaName":1082,"dataGaLocation":1233},{"text":1084,"config":1431},{"href":1086,"dataGaName":1087,"dataGaLocation":1233},{"text":1089,"config":1433},{"href":1091,"dataGaName":1092,"dataGaLocation":1233},{"text":1435,"config":1436},"Nachhaltigkeit",{"href":1437,"dataGaName":1438,"dataGaLocation":1233},"/sustainability/","Sustainability",{"text":1440,"config":1441},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1442,"dataGaName":1443,"dataGaLocation":1233},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1094,"config":1445},{"href":1096,"dataGaName":1097,"dataGaLocation":1233},{"text":1104,"config":1447},{"href":1106,"dataGaName":1107,"dataGaLocation":1233},{"text":1109,"config":1449},{"href":1111,"dataGaName":1112,"dataGaLocation":1233},{"text":1451,"config":1452},"Transparenzerklärung zu moderner Sklaverei",{"href":1453,"dataGaName":1454,"dataGaLocation":1233},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1456},[1457,1460,1463],{"text":1458,"config":1459},"Terms",{"href":1283,"dataGaName":1284,"dataGaLocation":1233},{"text":1461,"config":1462},"Cookies",{"dataGaName":1293,"dataGaLocation":1233,"id":1294,"isOneTrustButton":447},{"text":1464,"config":1465},"Datenschutz",{"href":1288,"dataGaName":1289,"dataGaLocation":1233},[1467],{"id":1468,"title":7,"body":770,"config":1469,"content":1472,"description":770,"extension":1475,"meta":1476,"navigation":447,"path":1477,"seo":1478,"stem":1479,"__hash__":1480},"blogAuthors/en-us/blog/authors/davoud-tu.yml",{"template":1470,"gitlabHandle":1471},"BlogAuthor","davoudtu",{"name":7,"config":1473},{"headshot":1474},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1756481763/pfdaqbndnstiqlmxh3ee.png","yml",{},"/en-us/blog/authors/davoud-tu",{},"en-us/blog/authors/davoud-tu","g3EuLKEcyBU5loLkmS7jRVfSPRPMXXqb9GwZgteyNIA",[1482,1490,1497],{"title":1483,"description":1484,"heroImage":1485,"category":766,"date":1486,"authors":1487,"slug":1489,"externalUrl":770},"Eine Sandbox ist so dicht wie das, was der Agent erreicht","Ein KI-Agent steckte ohne Ausweg in einer Evaluierung fest und entkam binnen einer Stunde über den einen Dienst auf seiner Allowlist. Das ist die Lücke.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786468880/uxouffutvvwsbxzikhyc.png","2026-08-12",[1488],"Daniel Abeles","ai-agent-sandbox",{"title":1491,"description":1492,"heroImage":772,"category":766,"date":1493,"authors":1494,"slug":1496,"externalUrl":770},"Shai-Hulud-Copycat-Kampagne zielt auf Python-Entwickler durch PyPI-Typosquatting","GitLabs Vulnerability Research-Team hat einen Python-Supply-Chain-Angriff auf PyPI entdeckt: Der Shai-Hulud-Wurm stiehlt Credentials aus CI/CD-Systemen.","2026-06-09",[1495,1488],"Dinesh Bolkensteyn","shai-hulud-copycat-campaign-targets-python-developers",{"title":1498,"description":1499,"heroImage":1500,"category":766,"date":1501,"authors":1502,"slug":1505,"externalUrl":770},"Contagious Interview: IDE-Angriffe erkennen und verhindern","Benutzerdefinierte Kontrollen zur Erkennung und Prävention von Malware-Kampagnen wie Contagious Interview – und Deployment in der eigenen Umgebung.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774375772/kpaaaiqhokevxxeoxvu0.png","2026-05-04",[1503,1504],"Josh Feehs","Austin Bollinger","how-to-detect-and-prevent-contagious-interview-ide-attacks",{"promotions":1507},[1508,1522,1534,1545],{"id":1509,"categories":1510,"header":1512,"text":1513,"button":1514,"image":1519},"ai-modernization",[1511],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1515,"config":1516},"Ermittle deinen KI-Reifegrad",{"href":1517,"dataGaName":1518,"dataGaLocation":998},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1520},{"src":1521},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1523,"categories":1524,"header":1526,"text":1513,"button":1527,"image":1531},"devops-modernization",[1525,1332],"product","Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1528,"config":1529},"Ermittle deinen DevOps-Reifegrad",{"href":1530,"dataGaName":1518,"dataGaLocation":998},"/de-de/assessments/devops-modernization-assessment/",{"config":1532},{"src":1533},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1535,"categories":1536,"header":1537,"text":1513,"button":1538,"image":1542},"security-modernization",[781],"Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1539,"config":1540},"Ermittle deinen Sicherheitsreifegrad",{"href":1541,"dataGaName":1518,"dataGaLocation":998},"/de-de/assessments/security-modernization-assessment/",{"config":1543},{"src":1544},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1546,"paths":1547,"header":1550,"text":1551,"button":1552,"image":1557},"github-azure-migration",[1548,1549],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":1553,"config":1554},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1555,"dataGaName":1556,"dataGaLocation":998},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1558},{"src":1533},{"header":1560,"blurb":1561,"button":1562,"secondaryButton":1567},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1563,"config":1564},"Kostenlosen Test starten",{"href":1565,"dataGaName":795,"dataGaLocation":1566},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":1121,"config":1568},{"href":1123,"dataGaName":800,"dataGaLocation":1566},1786728651037]