[{"data":1,"prerenderedAt":1485},["ShallowReactive",2],{"/de-de/blog/how-to-integrate-custom-security-scanners-into-gitlab":3,"navigation-de-de":704,"banner-de-de":1135,"footer-de-de":1143,"blog-post-authors-de-de-Fernando Diaz":1382,"blog-related-posts-de-de-how-to-integrate-custom-security-scanners-into-gitlab":1397,"blog-promotions-de-de":1422,"next-steps-de-de":1475},{"id":4,"title":5,"authors":6,"body":8,"category":681,"date":682,"description":683,"extension":684,"externalUrl":685,"faq":685,"featured":686,"heroImage":687,"meta":688,"navigation":686,"path":689,"seo":690,"slug":695,"stem":696,"tags":697,"template":701,"updatedDate":702,"__hash__":703},"blogPosts/de-de/blog/how-to-integrate-custom-security-scanners-into-gitlab.md","So integrierst du benutzerdefinierte Sicherheitsscanner in GitLab",[7],"Fernando Diaz",{"type":9,"value":10,"toc":662},"minimark",[11,15,20,97,100,103,120,129,132,146,150,153,160,166,169,195,201,206,209,212,215,221,226,229,232,235,246,252,256,259,262,265,295,298,304,309,312,315,318,329,335,340,343,349,354,357,360,363,401,415,421,426,431,437,442,447,453,458,464,467,473,478,481,484,487,503,506,518,521,524,538,545,550,555,564,572,575,578,581,593,621,628,631,634],[12,13,14],"p",{},"GitLab, die umfassendste DevSecOps-Plattform, bietet alles, was du zum Planen, Verwalten, Erstellen, Bereitstellen, Sichern, Steuern und Überwachen deiner Anwendungen brauchst. Dennoch gibt es Fälle, in denen du GitLab mit Tools von Drittanbietern oder eigenen Tools erweitern möchtest. Du musst zum Beispiel von separaten Lösungen auf eine DevSecOps-Plattform migrieren, Tools von Drittanbietern evaluieren oder eigene oder selbst entwickelte Lösungen in GitLab integrieren.",[16,17,19],"h2",{"id":18},"folgende-themen-werden-hier-behandelt","Folgende Themen werden hier behandelt",[21,22,23,31,37,43,49,55,61,67,73,79,85,91],"ul",{},[24,25,26],"li",{},[27,28,30],"a",{"href":29},"#erweiterbarkeit-der-devsecops-plattform-von-gitlab","Erweiterbarkeit der DevSecOps-Plattform von GitLab",[24,32,33],{},[27,34,36],{"href":35},"#die-gitlab-sicherheitsscanner-integration","Die GitLab-Sicherheitsscanner-Integration",[24,38,39],{},[27,40,42],{"href":41},"#sicherheitswidget-f%C3%BCr-merge-requests","Sicherheitswidget für Merge Requests",[24,44,45],{},[27,46,48],{"href":47},"#pipeline-sicherheitsbereich","Pipeline-Sicherheitsbereich",[24,50,51],{},[27,52,54],{"href":53},"#sicherheitsl%C3%BCckenbericht","Sicherheitslückenbericht",[24,56,57],{},[27,58,60],{"href":59},"#sicherheitsl%C3%BCckenseiten","Sicherheitslückenseiten",[24,62,63],{},[27,64,66],{"href":65},"#sicherheitsdashboard","Sicherheitsdashboard",[24,68,69],{},[27,70,72],{"href":71},"#merge-request-approvalrichtlinien-integration","Merge-Request-Approvalrichtlinien-Integration",[24,74,75],{},[27,76,78],{"href":77},"#tutorial-integration-von-benutzerdefinierten-sicherheitsscannern","Tutorial: Integration von benutzerdefinierten Sicherheitsscannern",[24,80,81],{},[27,82,84],{"href":83},"#erstellen-eines-benutzerdefinierten-sicherheitsscanners","Erstellen eines benutzerdefinierten Sicherheitsscanners",[24,86,87],{},[27,88,90],{"href":89},"#integrieren-eines-benutzerdefinierten-sicherheitsscanners-in-gitlab","Integrieren eines benutzerdefinierten Sicherheitsscanners in GitLab",[24,92,93],{},[27,94,96],{"href":95},"#mehr-erfahren","Mehr erfahren",[16,98,30],{"id":99},"erweiterbarkeit-der-devsecops-plattform-von-gitlab",[12,101,102],{},"GitLab kann auf viele Arten erweitert werden, um erweiterte Funktionen zu unterstützen, die dein Unternehmen benötigt. Einige gängige Beispiele für diese Integrationen sind:",[21,104,105,108,111,114,117],{},[24,106,107],{},"externe Anwendungsintegrationen wie Jenkins und Slack",[24,109,110],{},"externe Integrationen zur Ticketverfolgung wie Bugzilla und Jira",[24,112,113],{},"externe Integrationen von Authentifizierungsanbietern wie LDAP und SAML",[24,115,116],{},"externe Integrationen von Sicherheitsscannern wie Fortify und Checkmarx",[24,118,119],{},"die Möglichkeit, auf durchgesickerte Geheimnisse zu reagieren wie AWS- und GCP-Zugriffsschlüssel",[12,121,122,123,128],{},"Alle verfügbaren Integrationen findest du in der ",[27,124,127],{"href":125,"rel":126},"https://docs.gitlab.com/integration/",[],"Dokumentation zur Integration mit GitLab (nur in englischer Sprache verfügbar)",". (Hinweis: Es sind nicht alle Integrationen in der Dokumentation aufgeführt.)",[16,130,36],{"id":131},"die-gitlab-sicherheitsscanner-integration",[12,133,134,139,140,145],{},[27,135,138],{"href":136,"rel":137},"https://docs.gitlab.com/integration/#security-improvements",[],"Sicherheitsscanner von Drittanbietern"," oder ",[27,141,144],{"href":142,"rel":143},"https://gitlab.com/gitlab-da/tutorials/security-and-governance/custom-scanner-integration",[],"benutzerdefinierte Sicherheitsscanner"," können in GitLab integriert werden, um das Widget für Merge Requests, den Pipeline-Sicherheitsbereich, den Sicherheitslückenbericht, die Sicherheitslückenseiten, das Sicherheitsdashboard und die Merge-Request-Approvalrichtlinien zu füllen. Sehen wir uns die einzelnen Integrationen an.",[147,148,42],"h3",{"id":149},"sicherheitswidget-für-merge-requests",[12,151,152],{},"Ein Merge Request enthält ein Sicherheitswidget, das eine Zusammenfassung der neu entdeckten Sicherheitslücken anzeigt.",[12,154,155],{},[156,157],"img",{"alt":158,"src":159},"Integration von Sicherheitsscannern – Bild 1","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097088837.png",[161,162,163],"center",{},[164,165,42],"i",{},[12,167,168],{},"Wenn du auf eine Sicherheitslücke klickst, wird ein Popup-Fenster angezeigt, das folgende Informationen enthält:",[21,170,171,174,177,180,183,186,189,192],{},[24,172,173],{},"Status",[24,175,176],{},"Beschreibung",[24,178,179],{},"Projekt",[24,181,182],{},"Datei",[24,184,185],{},"Bezeichner",[24,187,188],{},"Schweregrad",[24,190,191],{},"Tool",[24,193,194],{},"Scanner-Anbieter",[12,196,197],{},[156,198],{"alt":199,"src":200},"Integration von Sicherheitsscannern – Bild 2","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097088838.png",[161,202,203],{},[164,204,205],{},"Sicherheitslücken mit Details, die behoben werden können",[12,207,208],{},"Die Ergebnisse eines benutzerdefinierten Scanners können in das Sicherheitswidget eingefügt werden. Die Daten zu den Sicherheitslücken werden aus dem JSON-Schema, das der Scanner ausgibt, zusammengesetzt.",[147,210,48],{"id":211},"pipeline-sicherheitsbereich",[12,213,214],{},"Alle aktivierten Sicherheitsanalysatoren werden in der Pipeline ausgeführt und geben ihre Ergebnisse als Artefakte aus. Diese Artefakte werden verarbeitet, unter anderem durch Deduplizierung, und die Ergebnisse werden auf der Registerkarte „Pipelinesicherheit“ aufgelistet. Von hier aus kannst du auch die resultierenden JSON-Dateien herunterladen.",[12,216,217],{},[156,218],{"alt":219,"src":220},"Integration von Sicherheitsscannern – Bild 3","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image11_aHR0cHM6_1750097088840.png",[161,222,223],{},[164,224,225],{},"Registerkarte „Pipelinesicherheit“",[12,227,228],{},"Die Ergebnisse eines benutzerdefinierten Scanners können in die Registerkarte „Pipelinesicherheit“ eingefügt werden. Die Spalten werden anhand des JSON-Schemas, das der Scanner ausgibt, ausgefüllt.",[147,230,54],{"id":231},"sicherheitslückenbericht",[12,233,234],{},"Der Sicherheitslückenbericht enthält Informationen zu Sicherheitslücken aus Scans des default-Branch, einschließlich:",[21,236,237,240,243],{},[24,238,239],{},"der Gesamtanzahl der Sicherheitslücken pro Schweregrad",[24,241,242],{},"Filtern für gängige Attribute für Sicherheitslücken",[24,244,245],{},"Details zu jeder Sicherheitslücke in einer Tabelle",[12,247,248],{},[156,249],{"alt":250,"src":251},"Integration von Sicherheitsscannern – Bild 4","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097088842.png",[161,253,254],{},[164,255,54],{},[12,257,258],{},"Die Ergebnisse eines benutzerdefinierten Scanners für den default-Branch können für den Sicherheitslückenbericht verwendet werden.",[147,260,60],{"id":261},"sicherheitslückenseiten",[12,263,264],{},"Wenn du im Sicherheitslückenbericht auf eine Sicherheitslücke klickst, gelangst du zur Sicherheitslückenseite. Für jede Sicherheitslücke in einem Projekt gibt es eine Seite, auf der du Details findest, z. B:",[21,266,267,269,272,275,278,281,284,287,290,292],{},[24,268,176],{},[24,270,271],{},"Wann sie erkannt wurde",[24,273,274],{},"Aktueller Status",[24,276,277],{},"Wo sie erkannt wurde",[24,279,280],{},"Verfügbare Aktionen",[24,282,283],{},"Verknüpfte Tickets",[24,285,286],{},"Aktionsprotokoll",[24,288,289],{},"Lösungen",[24,291,185],{},[24,293,294],{},"Training",[12,296,297],{},"Du kannst die Daten auf der Seite mit den Sicherheitslücken nutzen, um eine entdeckte Sicherheitslücke einzugrenzen und sie zu beheben.",[12,299,300],{},[156,301],{"alt":302,"src":303},"Integration von Sicherheitsscannern – Bild 5","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097088844.png",[161,305,306],{},[164,307,308],{},"Sicherheitslückenseite für Sicherheitslücken, bei denen Geheimnisse erkannt wurden",[12,310,311],{},"Die Ergebnisse eines benutzerdefinierten Scanners können in die Sicherheitslückenseite eingefügt werden. Die Daten zu den Sicherheitslücken werden aus dem JSON-Schema, das der Scanner ausgibt, zusammengesetzt.",[147,313,66],{"id":314},"sicherheitsdashboard",[12,316,317],{},"Sicherheitsdashboards werden verwendet, um den Sicherheitsstatus deiner Anwendungen zu bewerten. GitLab stellt dir eine Sammlung von Metriken, Bewertungen und Diagrammen für die Sicherheitslücken zur Verfügung, die von den Sicherheitsscannern in deinem Projekt entdeckt wurden. Das Sicherheitsdashboard liefert Daten wie:",[21,319,320,323,326],{},[24,321,322],{},"Trends bei Sicherheitslücken über einen Zeitraum von 30, 60 oder 90 Tagen für alle Projekte in einer Gruppe",[24,324,325],{},"Eine Bewertung in Buchstaben für jedes Projekt, basierend auf dem Schweregrad der Sicherheitslücke",[24,327,328],{},"Die Gesamtzahl der in den letzten 365 Tagen entdeckten Sicherheitslücken und deren Schweregrad",[12,330,331],{},[156,332],{"alt":333,"src":334},"Integration von Sicherheitsscannern – Bild 6","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097088846.png",[161,336,337],{},[164,338,339],{},"Sicherheitsdashboard auf Gruppenebene",[12,341,342],{},"Im Sicherheitsdashboard auf Gruppenebene kannst du auf ein Projekt klicken, um auf das spezifische Sicherheitsdashboard zuzugreifen. So erhältst du die 365-Tage-Ansicht.",[12,344,345],{},[156,346],{"alt":347,"src":348},"Integration von Sicherheitsscannern – Bild 7","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097088847.png",[161,350,351],{},[164,352,353],{},"Sicherheitsdashboard auf Projektebene",[147,355,72],{"id":356},"merge-request-approvalrichtlinien-integration",[12,358,359],{},"Merge-Request-Approvalrichtlinien werden verwendet, um eine Genehmigung auf der Grundlage der Ergebnisse eines oder mehrerer Sicherheitsscanaufträge zu verlangen. Dies kann verhindern, dass unsicherer Code in die Produktion übernommen wird. Merge-Request-Approvalrichtlinien werden nach der vollständigen Ausführung eines CI-Scanauftrags ausgewertet, wobei die Richtlinien auf der Grundlage der Job-Artefaktberichte, die in der abgeschlossenen Pipeline veröffentlicht werden, bewertet werden.",[12,361,362],{},"Du kannst beispielsweise eine Richtlinie für Merge-Request-Approvalrichtlinien erstellen, die die Genehmigung von Projektbetreuer(inne)n erfordert, wenn ein Scanner zur Erkennung von Geheimnissen Sicherheitslücken findet. Das geht so:",[364,365,366,374,381,388,398],"ol",{},[24,367,368,369,373],{},"Wähle in der linken Seitenleiste ",[370,371,372],"strong",{},"Suchen oder aufrufen"," aus und suche nach dem Projekt, dem du eine Richtlinie hinzufügen möchtest.",[24,375,376,377,380],{},"Gehe in der linken Seitenleiste des Projekts zu ",[370,378,379],{},"Sicherheit > Richtlinien",".",[24,382,383,384,387],{},"Wähle ",[370,385,386],{},"Neue Richtlinie"," aus.",[24,389,390,391,394,395,387],{},"Wähle im Abschnitt ",[370,392,393],{},"Merge-Request-Approvalrichtlinien"," ",[370,396,397],{},"Richtlinie auswählen",[24,399,400],{},"Fülle die Felder aus:",[21,402,403,406,409,412],{},[24,404,405],{},"Name: der Name der Richtlinie",[24,407,408],{},"Beschreibung: die Beschreibung der Richtlinie",[24,410,411],{},"Richtlinienstatus: ob sie aktiviert ist oder nicht",[24,413,414],{},"Regeln: die Bedingungen, die erfüllt sein müssen, damit eine Aktion (Approval erforderlich) ausgeführt wird",[12,416,417],{},[156,418],{"alt":419,"src":420},"Integration von Sicherheitsscannern – Bild 8","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097088849.png",[161,422,423],{},[164,424,425],{},"Regeln für Merge-Request-Approvalrichtlinien",[21,427,428],{},[24,429,430],{},"Aktionen: die Aktion, die ausgeführt werden soll, wenn die Bedingungen in den Regeln (definierte Schwachstellen/erkannte Lizenzen) erfüllt sind",[12,432,433],{},[156,434],{"alt":435,"src":436},"Integration von Sicherheitsscannern – Bild 9","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image9_aHR0cHM6_1750097088850.png",[161,438,439],{},[164,440,441],{},"Aktionen für Merge-Request-Approvalrichtlinien",[21,443,444],{},[24,445,446],{},"Überschreiben von Projekt-Approvaleinstellungen: Wenn diese Option ausgewählt ist, überschreiben die folgenden Optionen die Projekteinstellungen. Dies wirkt sich jedoch nur auf die in der Richtlinie ausgewählten Branches aus.",[12,448,449],{},[156,450],{"alt":451,"src":452},"Integration von Sicherheitsscannern – Bild 11","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097088851.png",[161,454,455],{},[164,456,457],{},"Einstellungen für Merge-Request-Approvalrichtlinien",[364,459,461],{"start":460},6,[24,462,463],{},"Klicke auf die Schaltfläche „Mit einem Merge Request konfigurieren“.",[12,465,466],{},"Sobald die Merge-Request-Approvalrichtlinie zusammengeführt wurde, wird die definierte Aktion ausgelöst, wenn du einen Merge Request erstellst und die in den Regeln definierten Kriterien erfüllt sind. In diesem Fall ist mindestens die Zustimmung einer Person erforderlich, bevor der Code zusammengeführt werden kann.",[12,468,469],{},[156,470],{"alt":471,"src":472},"Integrierter Sicherheitsscanner – Bild 10","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097089/Blog/Content%20Images/Blog/Content%20Images/image10_aHR0cHM6_1750097088852.png",[161,474,475],{},[164,476,477],{},"Merge Request aufgrund erkannter Sicherheitslücken blockiert",[12,479,480],{},"Die Ergebnisse eines benutzerdefinierten Scanners können vollständig in die Merge-Request-Approvalrichtlinien integriert werden. Wenn der benutzerdefinierte Scanner eine Sicherheitslücke entdeckt, ist ein Approval erforderlich, bevor der Code zusammengeführt werden kann. Der Scanner, den du in einer Merge-Request-Approvalrichtlinie auswählst, muss das entsprechende JSON-Schema verwenden.",[16,482,78],{"id":483},"tutorial-integration-von-benutzerdefinierten-sicherheitsscannern",[12,485,486],{},"Jetzt kommen wir zum spannenden Teil: der Integration eines benutzerdefinierten Sicherheitsscanners. In diesem Tutorial lernst du, wie du einen benutzerdefinierten Sicherheitsscanner erstellst und wie du ihn in GitLab integrierst. Wir werden die folgenden Projekte nutzen:",[21,488,489],{},[24,490,491,496,497,502],{},[27,492,495],{"href":493,"rel":494},"https://gitlab.com/gitlab-da/tutorials/security-and-governance/custom-scanner-integration/fern-pattern-scanner",[],"Fern Pattern Scanner",": Er durchsucht deine Dateien nach bestimmten Mustern wie Passwörtern, privaten Schlüsseln und Sozialversicherungsnummern.\n– ",[27,498,501],{"href":499,"rel":500},"https://gitlab.com/gitlab-da/tutorials/security-and-governance/custom-scanner-integration/secret-list",[],"Secret List",": Enthält eine Liste von Benutzerpasswörtern, Clients und Schlüsseln. Dieses Projekt wird verwendet, um zu zeigen, wie ein benutzerdefinierter Sicherheitsscanner in GitLab integriert werden kann.",[12,504,505],{},"Im folgenden Video kannst du dir ansehen, wie die Anwendung erstellt wurde und wie sie im Detail verwendet wird:",[507,508,511,512],"figure",{"className":509},[510],"video_container","\n  ",[513,514,394],"iframe",{"src":515,"frameBorder":516,"allowFullScreen":517},"https://www.youtube.com/embed/timMbl5SP-w?si=R2DKtZ5MmBR1rQFL","0","true",[147,519,84],{"id":520},"erstellen-eines-benutzerdefinierten-sicherheitsscanners",[12,522,523],{},"Jetzt erstellen wir einen benutzerdefinierten Scanner, der in GitLab integriert werden kann. Bevor ein benutzerdefinierter Scanner vollständig in GitLab integriert werden kann, muss der Scanner:",[21,525,526,529,532,535],{},[24,527,528],{},"Ein Verzeichnis nach definierten Mustern scannen",[24,530,531],{},"Eine JSON-Datei nach dem entsprechenden Schema ausgeben",[24,533,534],{},"Containerisiert und zugänglich sein",[24,536,537],{},"Eine Vorlage bereitstellen, damit er in einem anderen Projekt ausgeführt werden kann",[12,539,540,541,544],{},"Wenn der ",[27,542,495],{"href":493,"rel":543},[]," in einem Projekt mit der bereitgestellten Vorlage ausgeführt wird, führt er die folgenden Schritte aus:",[364,546,547],{},[24,548,549],{},"Er lädt einen Satz von Regeln, die Muster (Regex) definieren, die erkannt werden sollen.",[21,551,552],{},[24,553,554],{},"Die Regeln können konfiguriert werden, um den sich ändernden Anforderungen deines Unternehmens gerecht zu werden.",[364,556,558,561],{"start":557},2,[24,559,560],{},"Er scannt Dateien auf definierte Muster.",[24,562,563],{},"Er gibt einen JSON-Bericht aus, der dem Schema zur Erkennung von Geheimnissen folgt.",[21,565,566,569],{},[24,567,568],{},"In diesem Projekt werden Go-Vorlagen verwendet, um eine JSON-Datei zu erstellen.",[24,570,571],{},"Stelle sicher, dass du das entsprechende Schema verwendest, je nachdem, wonach dein Scanner sucht.",[12,573,574],{},"Sobald der JSON-Bericht als Artefakt in GitLab geladen wurde, werden das Merge-Request-Widget, der Sicherheitslückenbericht, die Sicherheitslückenseiten, die Merge-Request-Approvalrichtlinien und die Sicherheitsdashboards wie oben definiert befüllt.",[147,576,90],{"id":577},"integrieren-eines-benutzerdefinierten-sicherheitsscanners-in-gitlab",[12,579,580],{},"Sobald du deinen benutzerdefinierten Scanner erstellt hast, der alle Anforderungen für die Integration erfüllt, kannst du ihn in GitLab ausführen.",[12,582,583,584,588,589,592],{},"Das Ausführen eines benutzerdefinierten Scanners ist so einfach wie das Hinzufügen einer Vorlage. Wir können sehen, wie die Vorlage für den Fern Pattern Scanner geladen wird, indem wir uns die Datei ",[585,586,587],"code",{},".gitlab-ci.yml"," im Projekt ",[27,590,501],{"href":499,"rel":591},[]," ansehen.",[364,594,595,604,618],{},[24,596,597,598,603],{},"Erstelle eine ",[27,599,602],{"href":600,"rel":601},"https://docs.gitlab.com/ci/quick_start/#create-a-gitlab-ciyml-file",[],".gitlab-ci.yml-Datei (Anleitung nur in englischer Sprache verfügbar)"," in dem Projekt, in dem du den Scanner ausführen möchtest.",[24,605,606,607,612,613],{},"Füge die ",[27,608,611],{"href":609,"rel":610},"https://docs.gitlab.com/ci/yaml/includes/",[],"Vorlage für einen benutzerdefinierten Scanner"," hinzu.\n",[21,614,615],{},[24,616,617],{},"Du solltest die Vorlage auch mit Umgebungsvariablen konfigurieren können.",[24,619,620],{},"Committe die Datei in den Main-Branch.",[12,622,623,624,627],{},"Sobald die Datei übergeben wurde, kannst du sehen, dass der benutzerdefinierte Scanner in deiner Pipeline ausgeführt wird. Sobald die Pipeline abgeschlossen ist, befüllt der Scanner alle oben im Abschnitt ",[27,625,36],{"href":626},"#gitlab-security-scanner-integration"," definierten Bereiche.",[16,629,96],{"id":630},"mehr-erfahren",[12,632,633],{},"In diesen englischsprachigen Ressourcen erfährst du mehr über GitLab und die anderen Möglichkeiten, wie du deine DevSecOps-Plattform erweitern kannst:",[21,635,636,643,649,655],{},[24,637,638],{},[27,639,642],{"href":640,"rel":641},"https://docs.gitlab.com/development/integrations/secure/",[],"GitLab-Integration für Sicherheitsscanner",[24,644,645],{},[27,646,648],{"href":125,"rel":647},[],"GitLab-Partnerintegrationen",[24,650,651],{},[27,652,654],{"href":142,"rel":653},[],"Gruppe für benutzerdefinierte Sicherheitsscanner-Projekte",[24,656,657],{},[27,658,661],{"href":659,"rel":660},"https://docs.gitlab.com/user/application_security/secret_detection/automatic_response/",[],"Automatische Reaktion auf die Veröffentlichung von Geheimnissen",{"title":663,"searchDepth":557,"depth":557,"links":664},"",[665,666,667,676,680],{"id":18,"depth":557,"text":19},{"id":99,"depth":557,"text":30},{"id":131,"depth":557,"text":36,"children":668},[669,671,672,673,674,675],{"id":149,"depth":670,"text":42},3,{"id":211,"depth":670,"text":48},{"id":231,"depth":670,"text":54},{"id":261,"depth":670,"text":60},{"id":314,"depth":670,"text":66},{"id":356,"depth":670,"text":72},{"id":483,"depth":557,"text":78,"children":677},[678,679],{"id":520,"depth":670,"text":84},{"id":577,"depth":670,"text":90},{"id":630,"depth":557,"text":96},"security","2024-02-27","Erfahre, wie du die DevSecOps-Plattform erweiterst, indem du benutzerdefinierte Sicherheitsscanner in deine Workflows einfügst (einschließlich Tutorial).","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097082/Blog/Hero%20Images/Blog/Hero%20Images/securitycheck_securitycheck.png_1750097081856.png",{},"/de-de/blog/how-to-integrate-custom-security-scanners-into-gitlab",{"title":5,"description":683,"ogTitle":5,"ogDescription":683,"noIndex":691,"ogImage":687,"ogUrl":692,"ogSiteName":693,"ogType":694,"canonicalUrls":692},false,"https://about.gitlab.com/blog/how-to-integrate-custom-security-scanners-into-gitlab","https://about.gitlab.com","article","how-to-integrate-custom-security-scanners-into-gitlab","de-de/blog/how-to-integrate-custom-security-scanners-into-gitlab",[698,681,699,700],"tutorial","testing","DevSecOps platform","BlogPost","2025-06-10","gSWIaQHeVbEzB9uKd-x3InFzgTnE3bvRoudAVcyE1Rs",{"logo":705,"freeTrial":710,"sales":715,"login":720,"items":725,"search":1053,"minimal":1087,"duo":1105,"switchNav":1114,"pricingDeployment":1125},{"config":706},{"href":707,"dataGaName":708,"dataGaLocation":709},"/de-de/","gitlab logo","header",{"text":711,"config":712},"Kostenlose Testversion anfordern",{"href":713,"dataGaName":714,"dataGaLocation":709},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":716,"config":717},"Demo anfordern",{"href":718,"dataGaName":719,"dataGaLocation":709},"/de-de/sales/?contact-topic=request-demo","sales",{"text":721,"config":722},"Anmelden",{"href":723,"dataGaName":724,"dataGaLocation":709},"https://gitlab.com/users/sign_in/","sign in",[726,754,856,861,975,1031],{"text":727,"config":728,"menu":730},"Plattform",{"dataNavLevelOne":729},"platform",{"type":731,"columns":732},"cards",[733,739,747],{"title":727,"description":734,"link":735},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":736,"config":737},"Die Plattform erkunden",{"href":738,"dataGaName":729,"dataGaLocation":709},"/de-de/platform/",{"title":740,"description":741,"link":742},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":743,"config":744},"Lerne GitLab Duo kennen",{"href":745,"dataGaName":746,"dataGaLocation":709},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":748,"description":749,"link":750},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":96,"config":751},{"href":752,"dataGaName":753,"dataGaLocation":709},"/de-de/why-gitlab/","why gitlab",{"text":755,"left":686,"config":756,"menu":758},"Produkt",{"dataNavLevelOne":757},"solutions",{"type":759,"link":760,"columns":764,"feature":835},"lists",{"text":761,"config":762},"Alle Lösungen anzeigen",{"href":763,"dataGaName":757,"dataGaLocation":709},"/de-de/solutions/",[765,790,813],{"title":766,"description":767,"link":768,"items":773},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":769},{"icon":770,"href":771,"dataGaName":772,"dataGaLocation":709},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[774,778,781,786],{"text":775,"config":776},"CI/CD",{"href":777,"dataGaLocation":709,"dataGaName":775},"/de-de/solutions/continuous-integration/",{"text":740,"config":779},{"href":745,"dataGaLocation":709,"dataGaName":780},"gitlab duo agent platform - product menu",{"text":782,"config":783},"Quellcodeverwaltung",{"href":784,"dataGaLocation":709,"dataGaName":785},"/de-de/solutions/source-code-management/","Source Code Management",{"text":787,"config":788},"Automatische Softwarebereitstellung",{"href":771,"dataGaLocation":709,"dataGaName":789},"Automated software delivery",{"title":791,"description":792,"link":793,"items":798},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":794},{"href":795,"dataGaName":796,"dataGaLocation":709,"icon":797},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[799,803,808],{"text":800,"config":801},"Anwendungssicherheitstests",{"href":795,"dataGaName":802,"dataGaLocation":709},"Application security testing",{"text":804,"config":805},"Schutz der Software-Lieferkette",{"href":806,"dataGaLocation":709,"dataGaName":807},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":809,"config":810},"Software-Compliance",{"href":811,"dataGaName":812,"dataGaLocation":709},"/de-de/solutions/software-compliance/","software compliance",{"title":814,"link":815,"items":820},"Messung",{"config":816},{"icon":817,"href":818,"dataGaName":819,"dataGaLocation":709},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[821,825,830],{"text":822,"config":823},"Sichtbarkeit und Messung",{"href":818,"dataGaLocation":709,"dataGaName":824},"Visibility and Measurement",{"text":826,"config":827},"Wertstrommanagement",{"href":828,"dataGaLocation":709,"dataGaName":829},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":831,"config":832},"Analysen und Einblicke",{"href":833,"dataGaLocation":709,"dataGaName":834},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":836,"type":759,"items":837},"GitLab für",[838,844,850],{"text":839,"config":840},"Enterprise",{"icon":841,"href":842,"dataGaLocation":709,"dataGaName":843},"Building","/de-de/enterprise/","enterprise",{"text":845,"config":846},"Kleinunternehmen",{"icon":847,"href":848,"dataGaLocation":709,"dataGaName":849},"Work","/de-de/small-business/","small business",{"text":851,"config":852},"Öffentlicher Sektor",{"icon":853,"href":854,"dataGaLocation":709,"dataGaName":855},"Organization","/de-de/solutions/public-sector/","public sector",{"text":857,"config":858},"Preise",{"href":859,"dataGaName":860,"dataGaLocation":709,"dataNavLevelOne":860},"/de-de/pricing/","pricing",{"text":862,"config":863,"menu":865},"Ressourcen",{"dataNavLevelOne":864},"resources",{"type":759,"link":866,"columns":870,"feature":964},{"text":867,"config":868},"Alle Ressourcen anzeigen",{"href":869,"dataGaName":864,"dataGaLocation":709},"/de-de/resources/",[871,904,931],{"title":872,"items":873},"Erste Schritte",[874,879,884,889,894,899],{"text":875,"config":876},"Installieren",{"href":877,"dataGaName":878,"dataGaLocation":709},"/de-de/install/","install",{"text":880,"config":881},"Kurzanleitungen",{"href":882,"dataGaName":883,"dataGaLocation":709},"/de-de/get-started/","quick setup checklists",{"text":885,"config":886},"Lernen",{"href":887,"dataGaLocation":709,"dataGaName":888},"https://university.gitlab.com/","learn",{"text":890,"config":891},"Produktdokumentation",{"href":892,"dataGaName":893,"dataGaLocation":709},"https://docs.gitlab.com/","product documentation",{"text":895,"config":896},"Best-Practice-Videos",{"href":897,"dataGaName":898,"dataGaLocation":709},"/de-de/getting-started-videos/","best practice videos",{"text":900,"config":901},"Integrationen",{"href":902,"dataGaName":903,"dataGaLocation":709},"/de-de/integrations/","integrations",{"title":905,"items":906},"Entdecken",[907,912,917,922,926],{"text":908,"config":909},"Kundenerfolge",{"href":910,"dataGaName":911,"dataGaLocation":709},"/de-de/customers/","customer success stories",{"text":913,"config":914},"Blog",{"href":915,"dataGaName":916,"dataGaLocation":709},"/de-de/blog/","blog",{"text":918,"config":919},"Demo-Hub",{"href":920,"dataGaName":921,"dataGaLocation":709},"/de-de/demo-hub/","demo hub",{"text":923,"config":924},"The Source",{"href":925,"dataGaName":916,"dataGaLocation":709},"/de-de/the-source/",{"text":927,"config":928},"Remote",{"href":929,"dataGaName":930,"dataGaLocation":709},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":932,"items":933},"Vernetzen",[934,939,944,949,954,959],{"text":935,"config":936},"GitLab-Services",{"href":937,"dataGaName":938,"dataGaLocation":709},"/de-de/services/","services",{"text":940,"config":941},"Beitragen",{"href":942,"dataGaName":943,"dataGaLocation":709},"https://contributors.gitlab.com","contribute",{"text":945,"config":946},"Community",{"href":947,"dataGaName":948,"dataGaLocation":709},"/community/","community",{"text":950,"config":951},"Forum",{"href":952,"dataGaName":953,"dataGaLocation":709},"https://forum.gitlab.com/","forum",{"text":955,"config":956},"Veranstaltungen",{"href":957,"dataGaName":958,"dataGaLocation":709},"/events/","events",{"text":960,"config":961},"Partner",{"href":962,"dataGaName":963,"dataGaLocation":709},"/de-de/partners/","partners",{"config":965,"title":968,"text":969,"link":970},{"background":966,"textColor":967},"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":971,"config":972},"Aktuelle Nachrichten",{"href":973,"dataGaName":974,"dataGaLocation":709},"/de-de/whats-new/","whats new",{"text":976,"config":977,"menu":979},"Unternehmen",{"dataNavLevelOne":978},"company",{"type":759,"columns":980},[981],{"items":982},[983,988,994,996,1001,1006,1011,1016,1021,1026],{"text":984,"config":985},"Über",{"href":986,"dataGaName":987,"dataGaLocation":709},"/de-de/company/","about",{"text":989,"config":990,"footerGa":993},"Karriere",{"href":991,"dataGaName":992,"dataGaLocation":709},"/jobs/","jobs",{"dataGaName":992},{"text":955,"config":995},{"href":957,"dataGaName":958,"dataGaLocation":709},{"text":997,"config":998},"Geschäftsführung",{"href":999,"dataGaName":1000,"dataGaLocation":709},"/company/team/e-group/","leadership",{"text":1002,"config":1003},"Handbuch",{"href":1004,"dataGaName":1005,"dataGaLocation":709},"https://handbook.gitlab.com/","handbook",{"text":1007,"config":1008},"Investor Relations",{"href":1009,"dataGaName":1010,"dataGaLocation":709},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1012,"config":1013},"Trust Center",{"href":1014,"dataGaName":1015,"dataGaLocation":709},"/de-de/security/","trust center",{"text":1017,"config":1018},"AI Transparency Center",{"href":1019,"dataGaName":1020,"dataGaLocation":709},"/de-de/ai-transparency-center/","ai transparency center",{"text":1022,"config":1023},"Newsletter",{"href":1024,"dataGaName":1025,"dataGaLocation":709},"/company/contact/#contact-forms","newsletter",{"text":1027,"config":1028},"Presse",{"href":1029,"dataGaName":1030,"dataGaLocation":709},"/press/","press",{"text":1032,"config":1033,"menu":1034},"Kontakt",{"dataNavLevelOne":978},{"type":759,"columns":1035},[1036],{"items":1037},[1038,1043,1048],{"text":1039,"config":1040},"Vertrieb kontaktieren",{"href":1041,"dataGaName":1042,"dataGaLocation":709},"/de-de/sales/","talk to sales",{"text":1044,"config":1045},"Support-Portal",{"href":1046,"dataGaName":1047,"dataGaLocation":709},"https://support.gitlab.com/hc/en-us","support portal",{"text":1049,"config":1050},"Kundenportal",{"href":1051,"dataGaName":1052,"dataGaLocation":709},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1054,"login":1055,"suggestions":1062},"Schließen",{"text":1056,"link":1057},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":1058,"config":1059},"gitlab.com",{"href":723,"dataGaName":1060,"dataGaLocation":1061},"search login","search",{"text":1063,"default":1064},"Vorschläge",[1065,1067,1072,1074,1079,1084],{"text":740,"config":1066},{"href":745,"dataGaName":740,"dataGaLocation":1061},{"text":1068,"config":1069},"Codevorschläge (KI)",{"href":1070,"dataGaName":1071,"dataGaLocation":1061},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":775,"config":1073},{"href":777,"dataGaName":775,"dataGaLocation":1061},{"text":1075,"config":1076},"GitLab auf AWS",{"href":1077,"dataGaName":1078,"dataGaLocation":1061},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1080,"config":1081},"GitLab auf Google Cloud",{"href":1082,"dataGaName":1083,"dataGaLocation":1061},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":748,"config":1085},{"href":752,"dataGaName":1086,"dataGaLocation":1061},"Why GitLab?",{"freeTrial":1088,"mobileIcon":1093,"desktopIcon":1098,"secondaryButton":1101},{"text":1089,"config":1090},"Kostenlos testen",{"href":1091,"dataGaName":714,"dataGaLocation":1092},"https://gitlab.com/-/trials/new/","nav",{"altText":1094,"config":1095},"GitLab-Symbol",{"src":1096,"dataGaName":1097,"dataGaLocation":1092},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1094,"config":1099},{"src":1100,"dataGaName":1097,"dataGaLocation":1092},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":872,"config":1102},{"href":1103,"dataGaName":1104,"dataGaLocation":1092},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1106,"mobileIcon":1110,"desktopIcon":1112},{"text":1107,"config":1108},"Mehr über GitLab Duo erfahren",{"href":745,"dataGaName":1109,"dataGaLocation":1092},"gitlab duo",{"altText":1094,"config":1111},{"src":1096,"dataGaName":1097,"dataGaLocation":1092},{"altText":1094,"config":1113},{"src":1100,"dataGaName":1097,"dataGaLocation":1092},{"button":1115,"mobileIcon":1120,"desktopIcon":1122},{"text":1116,"config":1117},"/Option",{"href":1118,"dataGaName":1119,"dataGaLocation":1092},"#contact","switch",{"altText":1094,"config":1121},{"src":1096,"dataGaName":1097,"dataGaLocation":1092},{"altText":1094,"config":1123},{"src":1124,"dataGaName":1097,"dataGaLocation":1092},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1126,"mobileIcon":1131,"desktopIcon":1133},{"text":1127,"config":1128},"Zurück zur Preisübersicht",{"href":859,"dataGaName":1129,"dataGaLocation":1092,"icon":1130},"back to pricing","GoBack",{"altText":1094,"config":1132},{"src":1096,"dataGaName":1097,"dataGaLocation":1092},{"altText":1094,"config":1134},{"src":1100,"dataGaName":1097,"dataGaLocation":1092},{"title":1136,"button":1137,"config":1141},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":96,"config":1138},{"href":1139,"dataGaName":1140,"dataGaLocation":709},"/de-de/gitlab-orbit/","orbit",{"layout":1142,"disabled":691},"release",{"data":1144},{"text":1145,"source":1146,"edit":1152,"contribute":1157,"config":1162,"items":1167,"minimal":1371},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1147,"config":1148},"Quelltext der Seite anzeigen",{"href":1149,"dataGaName":1150,"dataGaLocation":1151},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1153,"config":1154},"Diese Seite bearbeiten",{"href":1155,"dataGaName":1156,"dataGaLocation":1151},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1158,"config":1159},"Beteilige dich",{"href":1160,"dataGaName":1161,"dataGaLocation":1151},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1163,"facebook":1164,"youtube":1165,"linkedin":1166},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1168,1212,1265,1306,1338],{"title":857,"links":1169,"subMenu":1184},[1170,1174,1179],{"text":1171,"config":1172},"Tarife anzeigen",{"href":859,"dataGaName":1173,"dataGaLocation":1151},"view plans",{"text":1175,"config":1176},"Vorteile von Premium",{"href":1177,"dataGaName":1178,"dataGaLocation":1151},"/de-de/pricing/premium/","why premium",{"text":1180,"config":1181},"Vorteile von Ultimate",{"href":1182,"dataGaName":1183,"dataGaLocation":1151},"/de-de/pricing/ultimate/","why ultimate",[1185],{"title":1032,"links":1186},[1187,1189,1191,1193,1197,1202,1207],{"text":1039,"config":1188},{"href":1041,"dataGaName":719,"dataGaLocation":1151},{"text":1044,"config":1190},{"href":1046,"dataGaName":1047,"dataGaLocation":1151},{"text":1049,"config":1192},{"href":1051,"dataGaName":1052,"dataGaLocation":1151},{"text":173,"config":1194},{"href":1195,"dataGaName":1196,"dataGaLocation":1151},"https://status.gitlab.com/","status",{"text":1198,"config":1199},"Nutzungsbedingungen",{"href":1200,"dataGaName":1201,"dataGaLocation":1151},"/terms/","terms of use",{"text":1203,"config":1204},"Datenschutzerklärung",{"href":1205,"dataGaName":1206,"dataGaLocation":1151},"/de-de/privacy/","privacy statement",{"text":1208,"config":1209},"Cookie-Einstellungen",{"dataGaName":1210,"dataGaLocation":1151,"id":1211,"isOneTrustButton":686},"cookie preferences","ot-sdk-btn",{"title":755,"links":1213,"subMenu":1222},[1214,1218],{"text":1215,"config":1216},"DevSecOps-Plattform",{"href":738,"dataGaName":1217,"dataGaLocation":1151},"devsecops platform",{"text":1219,"config":1220},"KI-unterstützte Entwicklung",{"href":745,"dataGaName":1221,"dataGaLocation":1151},"ai-assisted development",[1223],{"title":1224,"links":1225},"Themen",[1226,1230,1235,1240,1245,1250,1255,1260],{"text":775,"config":1227},{"href":1228,"dataGaName":1229,"dataGaLocation":1151},"/de-de/topics/ci-cd/","cicd",{"text":1231,"config":1232},"GitOps",{"href":1233,"dataGaName":1234,"dataGaLocation":1151},"/de-de/topics/gitops/","gitops",{"text":1236,"config":1237},"DevOps",{"href":1238,"dataGaName":1239,"dataGaLocation":1151},"/de-de/topics/devops/","devops",{"text":1241,"config":1242},"Versionskontrolle",{"href":1243,"dataGaName":1244,"dataGaLocation":1151},"/de-de/topics/version-control/","version control",{"text":1246,"config":1247},"DevSecOps",{"href":1248,"dataGaName":1249,"dataGaLocation":1151},"/de-de/topics/devsecops/","devsecops",{"text":1251,"config":1252},"Cloud-nativ",{"href":1253,"dataGaName":1254,"dataGaLocation":1151},"/de-de/topics/cloud-native/","cloud native",{"text":1256,"config":1257},"KI für das Programmieren",{"href":1258,"dataGaName":1259,"dataGaLocation":1151},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1261,"config":1262},"Agentische KI",{"href":1263,"dataGaName":1264,"dataGaLocation":1151},"/de-de/topics/agentic-ai/","agentic ai",{"title":289,"links":1266},[1267,1270,1272,1277,1281,1284,1287,1290,1292,1294,1296,1301],{"text":800,"config":1268},{"href":795,"dataGaName":1269,"dataGaLocation":1151},"Application Security Testing",{"text":787,"config":1271},{"href":771,"dataGaName":772,"dataGaLocation":1151},{"text":1273,"config":1274},"Agile Entwicklung",{"href":1275,"dataGaName":1276,"dataGaLocation":1151},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1278,"config":1279},"SCM",{"href":784,"dataGaName":1280,"dataGaLocation":1151},"source code management",{"text":775,"config":1282},{"href":777,"dataGaName":1283,"dataGaLocation":1151},"continuous integration & delivery",{"text":826,"config":1285},{"href":828,"dataGaName":1286,"dataGaLocation":1151},"value stream management",{"text":1231,"config":1288},{"href":1289,"dataGaName":1234,"dataGaLocation":1151},"/de-de/solutions/gitops/",{"text":839,"config":1291},{"href":842,"dataGaName":843,"dataGaLocation":1151},{"text":845,"config":1293},{"href":848,"dataGaName":849,"dataGaLocation":1151},{"text":851,"config":1295},{"href":854,"dataGaName":855,"dataGaLocation":1151},{"text":1297,"config":1298},"Bildungswesen",{"href":1299,"dataGaName":1300,"dataGaLocation":1151},"/de-de/solutions/education/","education",{"text":1302,"config":1303},"Finanzdienstleistungen",{"href":1304,"dataGaName":1305,"dataGaLocation":1151},"/de-de/solutions/finance/","financial services",{"title":862,"links":1307},[1308,1310,1312,1314,1317,1319,1322,1324,1326,1328,1330,1332,1334,1336],{"text":875,"config":1309},{"href":877,"dataGaName":878,"dataGaLocation":1151},{"text":880,"config":1311},{"href":882,"dataGaName":883,"dataGaLocation":1151},{"text":885,"config":1313},{"href":887,"dataGaName":888,"dataGaLocation":1151},{"text":890,"config":1315},{"href":892,"dataGaName":1316,"dataGaLocation":1151},"docs",{"text":913,"config":1318},{"href":915,"dataGaName":916,"dataGaLocation":1151},{"text":1320,"config":1321},"Neuerungen",{"href":973,"dataGaName":974,"dataGaLocation":1151},{"text":908,"config":1323},{"href":910,"dataGaName":911,"dataGaLocation":1151},{"text":927,"config":1325},{"href":929,"dataGaName":930,"dataGaLocation":1151},{"text":935,"config":1327},{"href":937,"dataGaName":938,"dataGaLocation":1151},{"text":940,"config":1329},{"href":942,"dataGaName":943,"dataGaLocation":1151},{"text":945,"config":1331},{"href":947,"dataGaName":948,"dataGaLocation":1151},{"text":950,"config":1333},{"href":952,"dataGaName":953,"dataGaLocation":1151},{"text":955,"config":1335},{"href":957,"dataGaName":958,"dataGaLocation":1151},{"text":960,"config":1337},{"href":962,"dataGaName":963,"dataGaLocation":1151},{"title":976,"links":1339},[1340,1342,1344,1346,1348,1350,1355,1360,1362,1364,1366],{"text":984,"config":1341},{"href":986,"dataGaName":978,"dataGaLocation":1151},{"text":989,"config":1343},{"href":991,"dataGaName":992,"dataGaLocation":1151},{"text":997,"config":1345},{"href":999,"dataGaName":1000,"dataGaLocation":1151},{"text":1002,"config":1347},{"href":1004,"dataGaName":1005,"dataGaLocation":1151},{"text":1007,"config":1349},{"href":1009,"dataGaName":1010,"dataGaLocation":1151},{"text":1351,"config":1352},"Nachhaltigkeit",{"href":1353,"dataGaName":1354,"dataGaLocation":1151},"/sustainability/","Sustainability",{"text":1356,"config":1357},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1358,"dataGaName":1359,"dataGaLocation":1151},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1012,"config":1361},{"href":1014,"dataGaName":1015,"dataGaLocation":1151},{"text":1022,"config":1363},{"href":1024,"dataGaName":1025,"dataGaLocation":1151},{"text":1027,"config":1365},{"href":1029,"dataGaName":1030,"dataGaLocation":1151},{"text":1367,"config":1368},"Transparenzerklärung zu moderner Sklaverei",{"href":1369,"dataGaName":1370,"dataGaLocation":1151},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1372},[1373,1376,1379],{"text":1374,"config":1375},"Terms",{"href":1200,"dataGaName":1201,"dataGaLocation":1151},{"text":1377,"config":1378},"Cookies",{"dataGaName":1210,"dataGaLocation":1151,"id":1211,"isOneTrustButton":686},{"text":1380,"config":1381},"Datenschutz",{"href":1205,"dataGaName":1206,"dataGaLocation":1151},[1383],{"id":1384,"title":7,"body":685,"config":1385,"content":1387,"description":685,"extension":1391,"meta":1392,"navigation":686,"path":1393,"seo":1394,"stem":1395,"__hash__":1396},"blogAuthors/en-us/blog/authors/fernando-diaz.yml",{"template":1386},"BlogAuthor",{"name":7,"config":1388},{"headshot":1389,"ctfId":1390},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659556/Blog/Author%20Headshots/fern_diaz.png","fjdiaz","yml",{},"/en-us/blog/authors/fernando-diaz",{},"en-us/blog/authors/fernando-diaz","lxRJIOydP4_yzYZvsPcuQevP9AYAKREF7i8QmmdnOWc",[1398,1406,1414],{"title":1399,"description":1400,"heroImage":1401,"category":681,"date":1402,"authors":1403,"slug":1405,"externalUrl":685},"Wie GitLab Schwachstellen über Refactorings hinweg verfolgt","Das verbesserte Scope+Offset-Fingerprinting hält das Tracking stabil, wenn Kommentare, Leerzeilen oder Reformatierungen dazukommen.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1759320418/xjmqcozxzt4frx0hori3.png","2026-08-12",[1404],"Julian Thome","improved-scope-offset-fingerprinting",{"title":1407,"description":1408,"heroImage":1401,"category":681,"date":1409,"authors":1410,"slug":1413,"externalUrl":685},"GitLab Secrets Manager unterstützt ESO, Terraform und API","GitLab Secrets Manager liefert Secrets sicher an Kubernetes, Terraform und externe Workflows, aus einer einzigen Quelle für die gesamte Toolchain.","2026-08-06",[1411,1412],"Erick Bajao","Joe Randazzo","gitlab-secrets-manager-add-eso-terraform-api-support",{"title":1415,"description":1416,"heroImage":1417,"category":681,"date":1418,"authors":1419,"slug":1421,"externalUrl":685},"Mit Claude und GitLab jeden Commit bis zur Produktion absichern","Claude Security findet Schwachstellen in der Coding-Session. GitLab übernimmt danach: Scans, Policy-Durchsetzung und Audit-Nachweise im Lebenszyklus.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756122536/akivvcnafog9c4dhhzkp.png","2026-08-03",[1420],"Alisa Ho","claude-security-and-gitlab",{"promotions":1423},[1424,1438,1450,1461],{"id":1425,"categories":1426,"header":1428,"text":1429,"button":1430,"image":1435},"ai-modernization",[1427],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1431,"config":1432},"Ermittle deinen KI-Reifegrad",{"href":1433,"dataGaName":1434,"dataGaLocation":916},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1436},{"src":1437},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1439,"categories":1440,"header":1442,"text":1429,"button":1443,"image":1447},"devops-modernization",[1441,1249],"product","Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1444,"config":1445},"Ermittle deinen DevOps-Reifegrad",{"href":1446,"dataGaName":1434,"dataGaLocation":916},"/de-de/assessments/devops-modernization-assessment/",{"config":1448},{"src":1449},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1451,"categories":1452,"header":1453,"text":1429,"button":1454,"image":1458},"security-modernization",[681],"Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1455,"config":1456},"Ermittle deinen Sicherheitsreifegrad",{"href":1457,"dataGaName":1434,"dataGaLocation":916},"/de-de/assessments/security-modernization-assessment/",{"config":1459},{"src":1460},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1462,"paths":1463,"header":1466,"text":1467,"button":1468,"image":1473},"github-azure-migration",[1464,1465],"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":1469,"config":1470},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1471,"dataGaName":1472,"dataGaLocation":916},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1474},{"src":1449},{"header":1476,"blurb":1477,"button":1478,"secondaryButton":1483},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1479,"config":1480},"Kostenlosen Test starten",{"href":1481,"dataGaName":714,"dataGaLocation":1482},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":1039,"config":1484},{"href":1041,"dataGaName":719,"dataGaLocation":1482},1786803749568]