[{"data":1,"prerenderedAt":760},["ShallowReactive",2],{"/de-de/blog/tutorial-security-scanning-in-air-gapped-environments":3,"navigation-de-de":41,"banner-de-de":444,"footer-de-de":454,"blog-post-authors-de-de-Fernando Diaz":659,"blog-related-posts-de-de-tutorial-security-scanning-in-air-gapped-environments":673,"assessment-promotions-de-de":711,"next-steps-de-de":750},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":27,"isFeatured":12,"meta":28,"navigation":12,"path":29,"publishedDate":20,"seo":30,"stem":36,"tagSlugs":37,"__hash__":40},"blogPosts/de-de/blog/tutorial-security-scanning-in-air-gapped-environments.yml","Tutorial Security Scanning In Air Gapped Environments",[7],"fernando-diaz",null,"security",{"slug":11,"featured":12,"template":13},"tutorial-security-scanning-in-air-gapped-environments",true,"BlogPost",{"title":15,"description":16,"authors":17,"heroImage":19,"date":20,"body":21,"category":9,"tags":22},"Security-Scanning in Air-Gapped-Umgebungen mit GitLab","Tutorial für Security-Scanner in luftspaltgesicherten Umgebungen: Offline-Installation und Vulnerability-Detection ohne externe Abhängigkeiten.",[18],"Fernando Diaz","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099301/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1097303277_6gTk7M1DNx0tFuovupVFB1_1750099300786.jpg","2025-02-05","Air-Gapped-Umgebungen (luftspaltgesicherte Systeme) sind Computer-Netzwerke oder Systeme, die physisch von unsicheren Netzwerken isoliert sind – beispielsweise vom öffentlichen Internet oder unsicheren lokalen Netzwerken. Diese Isolation dient als Sicherheitsmaßnahme zum Schutz sensibler Daten und kritischer Systeme vor externen Cyberbedrohungen:\n\n* **Erhöhte Sicherheit:** Durch physische Isolation von externen Netzwerken verhindern Air-Gapped-Umgebungen Remote-Angriffe, Malware-Infektionen und unbefugten Datenzugriff – entscheidend für hochsensible Daten und kritische Systeme.\n* **Datenschutz:** Air-Gapping bietet den stärksten Schutz gegen Datenexfiltration, da keine direkte Verbindung existiert, die Angreifer zum Datendiebstahl nutzen können.\n* **Schutz kritischer Infrastrukturen:** Für Systeme, die vitale Infrastruktur steuern (beispielsweise Kraftwerke, Wasseraufbereitungsanlagen oder militärische Systeme), verhindert Air-Gapping potenziell katastrophale Cyberangriffe.\n* **Compliance-Anforderungen:** Viele regulatorische Frameworks verlangen Air-Gapping für bestimmte Arten sensibler Daten oder kritischer Systeme, insbesondere in Behörden, Gesundheitswesen und Finanzsektor.\n* **Malware-Schutz:** Ohne Netzwerkverbindung sind Systeme vor netzwerkbasierten Malware-Infektionen und Ransomware-Angriffen geschützt.\n\n## Für deutsche Unternehmen könnte dies folgende Themen betreffen:\n\nTeams, die Security-Scanning in isolierten Umgebungen implementieren, adressieren möglicherweise auch regulatorische Anforderungen – beispielsweise in Bereichen wie Schwachstellenmanagement und kritische Infrastruktur.\n\nRegulatorische Frameworks wie NIS2, ISO 27001 und BSI IT-Grundschutz behandeln ähnliche Air-Gapped-Security-Themen. Für konkrete Compliance-Anforderungen empfiehlt sich Rücksprache mit entsprechender Fachberatung.\n\n## GitLab Security-Scanner für Air-Gapped-Umgebungen\n\nGitLab bietet verschiedene Security-Scanner für den gesamten Application-Lifecycle. Die folgenden Scanner unterstützen Air-Gapped-Umgebungen:\n\n* Static Application Security Testing (SAST)\n* Dynamic Application Security Testing (DAST)\n* Secret Detection\n* Container Scanning\n* Dependency Scanning\n* API Fuzzing\n* License Scanning\n\n> **📖 Scanner-Dokumentation**  \n> Detaillierte Konfigurationsanleitungen für jeden Scanner finden sich in der GitLab-Dokumentation (englischsprachig):\n> * [SAST Offline Configuration](https://docs.gitlab.com/ee/user/application_security/sast/index.html#running-sast-in-an-offline-environment)\n> * [DAST Offline Configuration](https://docs.gitlab.com/ee/user/application_security/dast/browser/configuration/offline_configuration.html)\n> * [Secret Detection Offline](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/index.html#offline-configuration)\n> * [Container Scanning Offline](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html#running-container-scanning-in-an-offline-environment)\n> * [Dependency Scanning Offline](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#offline-environment)\n> * [API Fuzzing Offline](https://docs.gitlab.com/ee/user/application_security/api_fuzzing/configuration/offline_configuration.html)\n> * [License Scanning Offline](https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/index.html#running-in-an-offline-environment)\n\n## Problem: Standard-Deployment funktioniert offline nicht\n\nStandardmäßig laden GitLab Self-Managed-Instanzen Security-Scanner-Images aus der öffentlichen GitLab Container Registry (registry.gitlab.com) und speichern diese in der integrierten lokalen GitLab Container Registry. Der folgende Workflow demonstriert dies anhand einer Pipeline, die auf einem Sample-Projekt nach Secrets scannt:\n```yaml\n    include:\n      - template: Jobs/Secret-Detection.gitlab-ci.yml\n```\n\nBei Ausführung in einer internetverbundenen GitLab-Instanz ist der Job erfolgreich:\n\n![GitLab Runner mit Internet-Zugriff lädt erfolgreich aus externer Registry](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/pass-1_aHR0cHM6_1750099328577.png)\n\n\u003Ccenter>\u003Ci>GitLab Runner mit Internet-Zugriff lädt erfolgreich aus externer Registry\u003C/i>\u003C/center>\n\n\u003Cbr>\u003C/br>\n\nWenn jedoch der Internet-Zugriff zur VM mit GitLab deaktiviert wird, schlägt der `secret-detection`-Job fehl, da das Container-Image nicht heruntergeladen werden kann:\n\n![GitLab Runner ohne Internet-Zugriff kann nicht aus externer Registry laden](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/fail-1_aHR0cHM6_1750099328577.png)\n\n\u003Ccenter>\u003Ci>GitLab Runner ohne Internet-Zugriff kann nicht aus externer Registry laden\u003C/i>\u003C/center>\n\n\u003Cbr>\u003C/br>\n\nDie Cache-Strategie bietet eine Teillösung: Bei Pull-Image-Policy `if-not-present` statt `always` lässt sich die gecachte Scanner-Version laden, falls diese zuvor bei Internet-Zugriff ausgeführt wurde:\n\n![GitLab Runner ohne Internet-Zugriff lädt erfolgreich aus internem Registry-Cache](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099329/Blog/Content%20Images/Blog/Content%20Images/pass-2_aHR0cHM6_1750099328579.png)\n\n\u003Ccenter>\u003Ci>GitLab Runner ohne Internet-Zugriff lädt erfolgreich aus internem Registry-Cache\u003C/i>\u003C/center>\n\n\u003Cbr>\u003C/br>\n\nDiese Cache-Strategie ist jedoch nicht systematisch reproduzierbar für echte Air-Gapped-Umgebungen. Die folgende Lösung zeigt den vollständigen Offline-Deployment-Workflow.\n\n## Voraussetzungen für Offline-Scanning\n\nDie Ausführung von Security-Scannern in Air-Gapped-Umgebungen erfordert:\n\n* GitLab Ultimate Subscription\n* Offline Cloud License\n* GitLab Self-Managed Cluster\n\nDieses Tutorial lässt sich in jeder GitLab Self-Managed EE-Instanz nachvollziehen (auch solchen, die nicht luftspaltgesichert sind), um Image-Transfer und -Ausführung in Air-Gapped-Umgebungen zu erlernen.\n\n## Lösung: Systematischer Offline-Scanner-Deployment\n\nDer Prozess zum Laden von Security-Scannern in Air-Gapped-Umgebungen umfasst drei Schritte:\n\n1. Container-Images aus öffentlichem Internet herunterladen und paketieren\n2. Images in Offline-Umgebung transferieren\n3. Transferierte Images in Offline-Container-Registry laden\n\n### Schritt 1: Air-Gapped-Testumgebung erstellen\n\nFür dieses Tutorial wird eine GitLab-EE-Instanz in einer Google Compute VM verwendet, bei der durch Firewall-Regeln der gesamte ausgehende Internet-Traffic blockiert wird:\n```bash\n    # Egress-Firewall-Regel zum Blockieren allen ausgehenden Internet-Traffics\n    $ gcloud compute firewall-rules create deny-internet-egress \\\n        --direction=EGRESS \\\n        --priority=1000 \\\n        --network=default \\\n        --action=DENY \\\n        --rules=all \\\n        --destination-ranges=0.0.0.0/0 \\\n        --target-tags=no-internet\n\n    # Allow-Regel für internen Traffic mit höherer Priorität\n    $ gcloud compute firewall-rules create allow-internal-egress \\\n        --direction=EGRESS \\\n        --priority=900 \\\n        --network=default \\\n        --action=ALLOW \\\n        --rules=all \\\n        --destination-ranges=10.0.0.0/8,192.168.0.0/16,172.16.0.0/12 \\\n        --target-tags=no-internet\n\n    # Tag auf VM anwenden\n    $ gcloud compute instances add-tags YOUR_VM_NAME \\\n        --zone=YOUR_ZONE \\\n        --tags=no-internet\n```\n\n**Validierung der Isolation:** Nach SSH-Verbindung zur VM lässt sich verifizieren, dass keine Verbindung zu registry.gitlab.com möglich ist:\n```bash\n    # Nachweis: Kein Zugriff auf GitLab Container Registry\n    $ ping registry.gitlab.com\n    PING registry.gitlab.com (35.227.35.254) 56(84) bytes of data.\n    ^C\n    --- registry.gitlab.com ping statistics ---\n    3 packets transmitted, 0 received, 100% packet loss, time 2031ms\n```\n\n**Hinweis:** Ingress ist weiterhin erlaubt, um Dateien zu kopieren und per SSH auf die Maschine zuzugreifen.\n\n### Schritt 2: Container-Images herunterladen und paketieren\n\nIn einer separaten Umgebung mit Internet-Zugang wird das Container-Image für Secret Detection heruntergeladen. Für dieses Beispiel wird Podman Desktop verwendet, alternativ lassen sich Docker Desktop oder andere Tools nutzen.\n\n**Container-Image pullen:**\n```bash\n    $ podman pull registry.gitlab.com/security-products/secrets:6\n    Trying to pull registry.gitlab.com/security-products/secrets:6...\n    Getting image source signatures\n    Copying blob sha256:999745130ac045f2b1c29ecce088b43fc4a95bbb82b7960fb7b8abe0e3801bf8\n    Copying blob sha256:a4f7c013bb259c146cd8455b7c3943df7ed84b157e42a2348eef16546d8179b1\n    Copying blob sha256:1f3e46996e2966e4faa5846e56e76e3748b7315e2ded61476c24403d592134f0\n    Copying blob sha256:400a41f248eb3c870bd2b07073632c49f1e164c8efad56ea3b24098a657ec625\n    Copying blob sha256:9090f17a5a1bb80bcc6f393b0715210568dd0a7749286e3334a1a08fb32d34e6\n    Copying blob sha256:c7569783959081164164780f6c1b0bbe1271ee8d291d3e07b2749ae741621ea3\n    Copying blob sha256:20c7ca6108f808ad5905f6db4f7e3c02b21b69abdea8b45abfa34c0a2ba8bdb5\n    Copying blob sha256:e8645a00be64d77c6ff301593ce34cd8c17ffb2b36252ca0f2588009a7918d2e\n    Copying config sha256:0235ed43fc7fb2852c76e2d6196601968ae0375c72a517bef714cd712600f894\n    Writing manifest to image destination\n    WARNING: image platform (linux/amd64) does not match the expected platform (linux/arm64)\n    0235ed43fc7fb2852c76e2d6196601968ae0375c72a517bef714cd712600f894\n\n    $ podman images\n    REPOSITORY                                                  TAG     IMAGE ID      CREATED      SIZE\n    registry.gitlab.com/security-products/secrets               6       0235ed43fc7f  4 hours ago  85.3 MB\n```\n\n**Image als Tarball speichern:**\n```bash\n    $ podman save -o secret-detection.tar registry.gitlab.com/security-products/secrets:6\n    $ chmod +r secret-detection.tar\n    $ ls -al secret-detection.tar\n    -rw-r--r--@ 1 fern  staff  85324800 Jan 10 10:25 secret-detection.tar\n```\n\n> **Alternative Methode**  \n> Das offizielle GitLab-Template lässt sich in einer Umgebung mit Internet-Zugang verwenden, um Container-Images herunterzuladen und als Job-Artefakte zu speichern oder in die Container Registry des Projekts zu pushen. Details in der [Offline Deployments Dokumentation](https://docs.gitlab.com/ee/user/application_security/offline_deployments/#using-the-official-gitlab-template).\n\n### Schritt 3: Images in Offline-Umgebung transferieren\n\nDer Tarball-Transfer in die Air-Gapped-Umgebung lässt sich auf verschiedene Weisen durchführen:\n\n* Physische Medien (USB, externe Festplatten)\n* Data Diodes (unidirektionale Netzwerkverbindungen)\n* Guard Systems (kontrollierte Transfer-Gateways)\n* Cross-Domain Solutions (CDS)\n\nFür dieses Tutorial wird SCP (Secure Copy Protocol) verwendet, um das Tarball direkt auf die VM zu übertragen, die keinen Egress-Zugriff hat, aber Ingress erlaubt. **Wichtig:** In Produktionsumgebungen sollten die Sicherheitsrichtlinien und Transfer-Verfahren der eigenen Organisation für Air-Gapped-Umgebungen konsultiert werden.\n\n**Cache-Status verifizieren:**\n\nVor dem Transfer werden Docker-Images für Secret Detection auf der GitLab-Instanz gelöscht, um sicherzustellen, dass die Lösung ohne Cache funktioniert:\n```bash\n    $ docker images\n    REPOSITORY                                            TAG              IMAGE ID       CREATED        SIZE\n    registry.gitlab.com/security-products/secrets         6                0235ed43fc7f   9 hours ago    84.8MB\n    registry.gitlab.com/security-products/secrets         \u003Cnone>           16d88433af61   17 hours ago   74.9MB\n\n    $ docker image rmi 16d88433af61 -f\n    Untagged: registry.gitlab.com/security-products/secrets@sha256:f331da6631d791fcd58d3f23d868475a520f50b02d64000e2faf1def66c75d48\n    Deleted: sha256:16d88433af618f0b405945031de39fe40b3e8ef1bddb91ca036de0f5b32399d7\n    Deleted: sha256:1bb06f72f06810e95a70039e797481736e492201f51a03b02d27db055248ab6f\n    Deleted: sha256:a5ef2325ce4be9b39993ce301f8ed7aad1c854d7ee66f26a56a96967c6606510\n    Deleted: sha256:f7cdac818a36d6c023763b76a6589c0db7609ca883306af4f38b819e62f29471\n    Deleted: sha256:5eabf4d47287dee9887b9692d55c8b5f848b50b3b7248f67913036014e74a0e9\n    Deleted: sha256:51b7cb600604c0737356f17bc02c22bac3a63697f0bf95ba7bacb5b421fdb7da\n    Deleted: sha256:1546193b011d192aa769a15d3fdd55eb4e187f201f5ff7506243abb02525dc06\n    Deleted: sha256:1ea72408d0484c3059cc0008539e6f494dc829caa1a97d156795687d42d9cb57\n    Deleted: sha256:1313ee9da7716d85f63cfdd1129f715e9bbb6c9c0306e4708ee73672b3e40f26\n    Deleted: sha256:954ebfd83406f0dfed93eb5157ba841af5426aa95d4054174fff45095fd873a1\n\n    $ docker image rmi 0235ed43fc7f -f\n    Untagged: registry.gitlab.com/security-products/secrets:6\n    Deleted: sha256:0235ed43fc7fb2852c76e2d6196601968ae0375c72a517bef714cd712600f894\n    Deleted: sha256:f05f85850cf4fac79e279d93afb6645c026de0223d07b396fce86c2f76096c1f\n    Deleted: sha256:7432b0766b885144990edd3166fbabed081be71d28d186f4d525e52729f06b1f\n    Deleted: sha256:2c6e3361c2ee2f43bd75fb9c7c12d981ce06df2d51a134965fa47754760efff0\n    Deleted: sha256:7ad7f7245b45fbe758ebd5788e0ba268a56829715527a9a4bc51708c21af1c7f\n    Deleted: sha256:3b73a621115a59564979f41552181dce07f3baa17e27428f7fff2155042a1901\n    Deleted: sha256:78648c2606a7c4c76885806ed976b13e4d008940bd3d7a18b52948a6be71b60d\n    Deleted: sha256:383d4a6dc5be9914878700809b4a3925379c80ab792dfe9e79d14b0c1d6b5fad\n```\n\n**Problem demonstrieren:** Der Job wird erneut ausgeführt, um den Fehler zu zeigen:\n\n![GitLab Runner ohne Internet-Zugriff schlägt beim Laden aus internem Registry-Cache fehl](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750099328580.png)\n\n\u003Ccenter>\u003Ci>GitLab Runner ohne Internet-Zugriff schlägt beim Laden aus internem Registry-Cache fehl\u003C/i>\u003C/center>\n\n### Schritt 4: Tarball auf GitLab-Instanz übertragen\n\nVon der lokalen Maschine wird die Datei per SCP auf die GitLab-Instanz übertragen:\n```bash\n    $ gcloud compute scp secret-detection.tar INSTANCE:~ --zone=ZONE\n    secret-detection.tar                                  100%   81MB  21.5MB/s   00:03\n```\n\n### Schritt 5: Image in Offline-Container-Registry laden\n\nPer SSH auf die VM verbinden und das Docker-Image laden:\n```bash\n    $ gcloud compute ssh INSTANCE --zone=ZONE\n\n    $ sudo docker load -i secret-detection.tar\n    c3c8e454c212: Loading layer [==================================================>]  2.521MB/2.521MB\n    51e93afaeedc: Loading layer [==================================================>]  32.55MB/32.55MB\n    e8a25e39bb30: Loading layer [==================================================>]  221.2kB/221.2kB\n    390704968493: Loading layer [==================================================>]  225.8kB/225.8kB\n    76cf57e75f63: Loading layer [==================================================>]  17.64MB/17.64MB\n    c4c7a681fd10: Loading layer [==================================================>]  4.608kB/4.608kB\n    f0690f406157: Loading layer [==================================================>]  24.01MB/24.01MB\n    Loaded image: registry.gitlab.com/security-products/secrets:6\n```\n\n### Schritt 6: Scanner ausführen\n\nDie Pipeline wird manuell erneut ausgeführt. Der Scanner wird aus dem Cache geladen, und nach Abschluss zeigt sich der erfolgreiche Secret-Detection-Job:\n\n![GitLab Runner ohne Internet-Zugriff lädt erfolgreich aus internem Registry-Cache nach Image-Loading](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750099328581.png)\n\n\u003Ccenter>\u003Ci>GitLab Runner ohne Internet-Zugriff lädt erfolgreich aus internem Registry-Cache nach Image-Loading\u003C/i>\u003C/center>\n\n## Konfigurationsoptionen\n\nFalls das Image von einem anderen Standort geladen oder Images anders getaggt werden sollen, lässt sich die Konfiguration anpassen:\n```yaml\n    include:\n      - template: Jobs/Secret-Detection.gitlab-ci.yml\n\n    variables:\n      SECURE_ANALYZERS_PREFIX: \"localhost:5000/analyzers\"\n```\n\n> **Weitere Konfigurationsdetails**  \n> Die vollständige Offline-Environments-Dokumentation bietet zusätzliche Optionen: [Offline Deployments Guide](https://docs.gitlab.com/ee/user/application_security/offline_deployments/)\n\n## Scanner-Ergebnisse anzeigen\n\nNach Abschluss des Scanners im Default-Branch wird der Vulnerability Report mit allen Findings befüllt. Der Zugriff erfolgt über die Seitenleiste: **Secure > Vulnerability Report**\n\n![GitLab Vulnerability Report mit Secret-Detection-Findings](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099328/Blog/Content%20Images/Blog/Content%20Images/vulnerability_report_aHR0cHM6_1750099328581.png)\n\n\u003Ccenter>\u003Ci>GitLab Vulnerability Report mit Secret-Detection-Findings\u003C/i>\u003C/center>\n\n\u003Cbr>\u003C/br>\n\nDer Vulnerability Report bietet:\n\n* Gesamt-Vulnerabilities pro Severity-Level\n* Filter für gängige Vulnerability-Attribute\n* Details jeder Vulnerability im Tabellenformat\n* Zeitstempel der letzten Aktualisierung mit Link zur aktuellen Pipeline\n\nZwei Vulnerabilities wurden vom Secret-Detection-Scanner erkannt. Ein Klick auf eine Vulnerability öffnet die Vulnerability-Seite:\n\n![GitLab Vulnerability Page mit detaillierten Insights](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099329/Blog/Content%20Images/Blog/Content%20Images/insights_aHR0cHM6_1750099328582.png)\n\n\u003Ccenter>\u003Ci>GitLab Vulnerability Page mit detaillierten Insights\u003C/i>\u003C/center>\n\n\u003Cbr>\u003C/br>\n\nDie Vulnerability-Seite bietet Details für Triage und Remediation:\n\n* Description\n* Erkennungszeitpunkt\n* Aktueller Status\n* Verfügbare Aktionen\n* Verknüpfte Issues\n* Actions-Log\n* Dateiname und Zeilennummer (falls verfügbar)\n* Severity\n\n## Weitere Security-Scanner implementieren\n\nDer in diesem Tutorial gezeigte Workflow lässt sich auf alle GitLab-Security-Scanner anwenden, die Air-Gapped-Umgebungen unterstützen. Jeder Scanner erfordert das Herunterladen des entsprechenden Container-Images, Transfer in die Offline-Umgebung und Loading in die lokale Registry.\n\n---\n\n> **📚 Weiterführende Ressourcen**\n>\n> Die folgenden GitLab-Ressourcen sind in englischer Sprache verfügbar:\n>\n> **Produktinformationen:**\n> * [GitLab Ultimate](https://about.gitlab.com/pricing/ultimate/)\n> * [Security and Compliance Solutions](https://about.gitlab.com/solutions/application-security-testing/)\n>\n> **Technische Dokumentation:**\n> * [Offline Deployments Guide](https://docs.gitlab.com/ee/user/application_security/offline_deployments/)\n> * [Application Security Documentation](https://docs.gitlab.com/ee/user/application_security/)\n> * [Scanner-spezifische Offline-Konfigurationen](https://docs.gitlab.com/ee/user/application_security/offline_deployments/#scanner-images) (SAST, DAST, Container Scanning, etc.)\n",[23,9,24,25,26],"tutorial","public sector","DevSecOps platform","features","yml",{},"/de-de/blog/tutorial-security-scanning-in-air-gapped-environments",{"title":15,"description":31,"ogTitle":15,"ogDescription":31,"noIndex":32,"ogImage":19,"ogUrl":33,"ogSiteName":34,"ogType":35,"canonicalUrls":33},"Security-Scanner-Deployment in luftspaltgesicherten Umgebungen: Offline-Installation, systematische Vulnerability-Detection ohne externe Abhängigkeiten.",false,"https://about.gitlab.com/blog/tutorial-security-scanning-in-air-gapped-environments","https://about.gitlab.com","article","de-de/blog/tutorial-security-scanning-in-air-gapped-environments",[23,9,38,39,26],"public-sector","devsecops-platform","KHWiusNp4nDClwcwJd8awRa3V4RM0fL7mabBxBCAmco",{"data":42},{"logo":43,"freeTrial":48,"sales":53,"login":58,"items":63,"search":371,"minimal":406,"duo":424,"pricingDeployment":434},{"config":44},{"href":45,"dataGaName":46,"dataGaLocation":47},"/de-de/","gitlab logo","header",{"text":49,"config":50},"Kostenlose Testversion anfordern",{"href":51,"dataGaName":52,"dataGaLocation":47},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":54,"config":55},"Vertrieb kontaktieren",{"href":56,"dataGaName":57,"dataGaLocation":47},"/de-de/sales/","sales",{"text":59,"config":60},"Anmelden",{"href":61,"dataGaName":62,"dataGaLocation":47},"https://gitlab.com/users/sign_in/","sign in",[64,91,186,191,292,352],{"text":65,"config":66,"cards":68},"Plattform",{"dataNavLevelOne":67},"platform",[69,75,83],{"title":65,"description":70,"link":71},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":72,"config":73},"Erkunde unsere Plattform",{"href":74,"dataGaName":67,"dataGaLocation":47},"/de-de/platform/",{"title":76,"description":77,"link":78},"GitLab Duo Agent Platform","Agentische KI für den gesamten Softwareentwicklungszyklus",{"text":79,"config":80},"Lerne GitLab Duo kennen",{"href":81,"dataGaName":82,"dataGaLocation":47},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":84,"description":85,"link":86},"Gründe, die für GitLab sprechen","Erfahre, warum Unternehmen auf GitLab setzen",{"text":87,"config":88},"Mehr erfahren",{"href":89,"dataGaName":90,"dataGaLocation":47},"/de-de/why-gitlab/","why gitlab",{"text":92,"left":12,"config":93,"link":95,"lists":99,"footer":169},"Produkt",{"dataNavLevelOne":94},"solutions",{"text":96,"config":97},"Alle Lösungen anzeigen",{"href":98,"dataGaName":94,"dataGaLocation":47},"/de-de/solutions/",[100,125,147],{"title":101,"description":102,"link":103,"items":108},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":104},{"icon":105,"href":106,"dataGaName":107,"dataGaLocation":47},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[109,113,116,121],{"text":110,"config":111},"CI/CD",{"href":112,"dataGaLocation":47,"dataGaName":110},"/de-de/solutions/continuous-integration/",{"text":76,"config":114},{"href":81,"dataGaLocation":47,"dataGaName":115},"gitlab duo agent platform - product menu",{"text":117,"config":118},"Quellcodeverwaltung",{"href":119,"dataGaLocation":47,"dataGaName":120},"/de-de/solutions/source-code-management/","Source Code Management",{"text":122,"config":123},"Automatisierte Softwarebereitstellung",{"href":106,"dataGaLocation":47,"dataGaName":124},"Automated software delivery",{"title":126,"description":127,"link":128,"items":133},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":129},{"href":130,"dataGaName":131,"dataGaLocation":47,"icon":132},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[134,138,143],{"text":135,"config":136},"Application Security Testing",{"href":130,"dataGaName":137,"dataGaLocation":47},"Application security testing",{"text":139,"config":140},"Schutz der Software-Lieferkette",{"href":141,"dataGaLocation":47,"dataGaName":142},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":144,"config":145},"Software Compliance",{"href":146,"dataGaName":144,"dataGaLocation":47},"/de-de/solutions/software-compliance/",{"title":148,"link":149,"items":154},"Bewertung",{"config":150},{"icon":151,"href":152,"dataGaName":153,"dataGaLocation":47},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[155,159,164],{"text":156,"config":157},"Sichtbarkeit und Bewertung",{"href":152,"dataGaLocation":47,"dataGaName":158},"Visibility and Measurement",{"text":160,"config":161},"Wertstrommanagement",{"href":162,"dataGaLocation":47,"dataGaName":163},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":165,"config":166},"Analysen und Einblicke",{"href":167,"dataGaLocation":47,"dataGaName":168},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":170,"items":171},"GitLab für",[172,177,182],{"text":173,"config":174},"Enterprise",{"href":175,"dataGaLocation":47,"dataGaName":176},"/de-de/enterprise/","enterprise",{"text":178,"config":179},"Kleinunternehmen",{"href":180,"dataGaLocation":47,"dataGaName":181},"/de-de/small-business/","small business",{"text":183,"config":184},"den öffentlichen Sektor",{"href":185,"dataGaLocation":47,"dataGaName":24},"/de-de/solutions/public-sector/",{"text":187,"config":188},"Preise",{"href":189,"dataGaName":190,"dataGaLocation":47,"dataNavLevelOne":190},"/de-de/pricing/","pricing",{"text":192,"config":193,"link":195,"lists":199,"feature":279},"Ressourcen",{"dataNavLevelOne":194},"resources",{"text":196,"config":197},"Alle Ressourcen anzeigen",{"href":198,"dataGaName":194,"dataGaLocation":47},"/de-de/resources/",[200,233,251],{"title":201,"items":202},"Erste Schritte",[203,208,213,218,223,228],{"text":204,"config":205},"Installieren",{"href":206,"dataGaName":207,"dataGaLocation":47},"/de-de/install/","install",{"text":209,"config":210},"Kurzanleitungen",{"href":211,"dataGaName":212,"dataGaLocation":47},"/de-de/get-started/","quick setup checklists",{"text":214,"config":215},"Lernen",{"href":216,"dataGaLocation":47,"dataGaName":217},"https://university.gitlab.com/","learn",{"text":219,"config":220},"Produktdokumentation",{"href":221,"dataGaName":222,"dataGaLocation":47},"https://docs.gitlab.com/","product documentation",{"text":224,"config":225},"Best-Practice-Videos",{"href":226,"dataGaName":227,"dataGaLocation":47},"/de-de/getting-started-videos/","best practice videos",{"text":229,"config":230},"Integrationen",{"href":231,"dataGaName":232,"dataGaLocation":47},"/de-de/integrations/","integrations",{"title":234,"items":235},"Entdecken",[236,241,246],{"text":237,"config":238},"Kundenerfolge",{"href":239,"dataGaName":240,"dataGaLocation":47},"/de-de/customers/","customer success stories",{"text":242,"config":243},"Blog",{"href":244,"dataGaName":245,"dataGaLocation":47},"/de-de/blog/","blog",{"text":247,"config":248},"Remote",{"href":249,"dataGaName":250,"dataGaLocation":47},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":252,"items":253},"Vernetzen",[254,259,264,269,274],{"text":255,"config":256},"GitLab-Services",{"href":257,"dataGaName":258,"dataGaLocation":47},"/de-de/services/","services",{"text":260,"config":261},"Community",{"href":262,"dataGaName":263,"dataGaLocation":47},"/community/","community",{"text":265,"config":266},"Forum",{"href":267,"dataGaName":268,"dataGaLocation":47},"https://forum.gitlab.com/","forum",{"text":270,"config":271},"Veranstaltungen",{"href":272,"dataGaName":273,"dataGaLocation":47},"/events/","events",{"text":275,"config":276},"Partner",{"href":277,"dataGaName":278,"dataGaLocation":47},"/de-de/partners/","partners",{"backgroundColor":280,"textColor":281,"text":282,"image":283,"link":287},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":284,"config":285},"the source promo card",{"src":286},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":288,"config":289},"Lies die News",{"href":290,"dataGaName":291,"dataGaLocation":47},"/de-de/the-source/","the source",{"text":293,"config":294,"lists":296},"Unternehmen",{"dataNavLevelOne":295},"company",[297],{"items":298},[299,304,310,312,317,322,327,332,337,342,347],{"text":300,"config":301},"Über",{"href":302,"dataGaName":303,"dataGaLocation":47},"/de-de/company/","about",{"text":305,"config":306,"footerGa":309},"Karriere",{"href":307,"dataGaName":308,"dataGaLocation":47},"/jobs/","jobs",{"dataGaName":308},{"text":270,"config":311},{"href":272,"dataGaName":273,"dataGaLocation":47},{"text":313,"config":314},"Geschäftsführung",{"href":315,"dataGaName":316,"dataGaLocation":47},"/company/team/e-group/","leadership",{"text":318,"config":319},"Team",{"href":320,"dataGaName":321,"dataGaLocation":47},"/company/team/","team",{"text":323,"config":324},"Handbuch",{"href":325,"dataGaName":326,"dataGaLocation":47},"https://handbook.gitlab.com/","handbook",{"text":328,"config":329},"Investor Relations",{"href":330,"dataGaName":331,"dataGaLocation":47},"https://ir.gitlab.com/","investor relations",{"text":333,"config":334},"Trust Center",{"href":335,"dataGaName":336,"dataGaLocation":47},"/de-de/security/","trust center",{"text":338,"config":339},"AI Transparency Center",{"href":340,"dataGaName":341,"dataGaLocation":47},"/de-de/ai-transparency-center/","ai transparency center",{"text":343,"config":344},"Newsletter",{"href":345,"dataGaName":346,"dataGaLocation":47},"/company/contact/#contact-forms","newsletter",{"text":348,"config":349},"Presse",{"href":350,"dataGaName":351,"dataGaLocation":47},"/press/","press",{"text":353,"config":354,"lists":355},"Kontakt",{"dataNavLevelOne":295},[356],{"items":357},[358,361,366],{"text":54,"config":359},{"href":56,"dataGaName":360,"dataGaLocation":47},"talk to sales",{"text":362,"config":363},"Support-Portal",{"href":364,"dataGaName":365,"dataGaLocation":47},"https://support.gitlab.com","support portal",{"text":367,"config":368},"Kundenportal",{"href":369,"dataGaName":370,"dataGaLocation":47},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":372,"login":373,"suggestions":380},"Schließen",{"text":374,"link":375},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":376,"config":377},"gitlab.com",{"href":61,"dataGaName":378,"dataGaLocation":379},"search login","search",{"text":381,"default":382},"Vorschläge",[383,385,390,392,397,402],{"text":76,"config":384},{"href":81,"dataGaName":76,"dataGaLocation":379},{"text":386,"config":387},"Code Suggestions (KI)",{"href":388,"dataGaName":389,"dataGaLocation":379},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":110,"config":391},{"href":112,"dataGaName":110,"dataGaLocation":379},{"text":393,"config":394},"GitLab auf AWS",{"href":395,"dataGaName":396,"dataGaLocation":379},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":398,"config":399},"GitLab auf Google Cloud",{"href":400,"dataGaName":401,"dataGaLocation":379},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":403,"config":404},"Warum GitLab?",{"href":89,"dataGaName":405,"dataGaLocation":379},"Why GitLab?",{"freeTrial":407,"mobileIcon":412,"desktopIcon":417,"secondaryButton":420},{"text":408,"config":409},"Kostenlos testen",{"href":410,"dataGaName":52,"dataGaLocation":411},"https://gitlab.com/-/trials/new/","nav",{"altText":413,"config":414},"GitLab-Symbol",{"src":415,"dataGaName":416,"dataGaLocation":411},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":413,"config":418},{"src":419,"dataGaName":416,"dataGaLocation":411},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":201,"config":421},{"href":422,"dataGaName":423,"dataGaLocation":411},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/compare/gitlab-vs-github/","get started",{"freeTrial":425,"mobileIcon":430,"desktopIcon":432},{"text":426,"config":427},"Erfahre mehr über GitLab Duo",{"href":428,"dataGaName":429,"dataGaLocation":411},"/de-de/gitlab-duo/","gitlab duo",{"altText":413,"config":431},{"src":415,"dataGaName":416,"dataGaLocation":411},{"altText":413,"config":433},{"src":419,"dataGaName":416,"dataGaLocation":411},{"freeTrial":435,"mobileIcon":440,"desktopIcon":442},{"text":436,"config":437},"Zurück zur Preisübersicht",{"href":189,"dataGaName":438,"dataGaLocation":411,"icon":439},"back to pricing","GoBack",{"altText":413,"config":441},{"src":415,"dataGaName":416,"dataGaLocation":411},{"altText":413,"config":443},{"src":419,"dataGaName":416,"dataGaLocation":411},{"title":445,"button":446,"config":451},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":447,"config":448},"GitLab Transcend jetzt ansehen",{"href":449,"dataGaName":450,"dataGaLocation":47},"/de-de/events/transcend/virtual/","transcend event",{"layout":452,"icon":453},"release","AiStar",{"data":455},{"text":456,"source":457,"edit":463,"contribute":468,"config":473,"items":478,"minimal":651},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":458,"config":459},"Quelltext der Seite anzeigen",{"href":460,"dataGaName":461,"dataGaLocation":462},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":464,"config":465},"Diese Seite bearbeiten",{"href":466,"dataGaName":467,"dataGaLocation":462},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":469,"config":470},"Beteilige dich",{"href":471,"dataGaName":472,"dataGaLocation":462},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":474,"facebook":475,"youtube":476,"linkedin":477},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[479,502,557,584,618],{"title":65,"links":480,"subMenu":485},[481],{"text":482,"config":483},"DevSecOps-Plattform",{"href":74,"dataGaName":484,"dataGaLocation":462},"devsecops platform",[486],{"title":187,"links":487},[488,492,497],{"text":489,"config":490},"Tarife anzeigen",{"href":189,"dataGaName":491,"dataGaLocation":462},"view plans",{"text":493,"config":494},"Vorteile von Premium",{"href":495,"dataGaName":496,"dataGaLocation":462},"/de-de/pricing/premium/","why premium",{"text":498,"config":499},"Vorteile von Ultimate",{"href":500,"dataGaName":501,"dataGaLocation":462},"/de-de/pricing/ultimate/","why ultimate",{"title":503,"links":504},"Lösungen",[505,510,513,515,520,525,529,532,535,540,542,544,547,552],{"text":506,"config":507},"Digitale Transformation",{"href":508,"dataGaName":509,"dataGaLocation":462},"/de-de/topics/digital-transformation/","digital transformation",{"text":511,"config":512},"Sicherheit und Compliance",{"href":130,"dataGaName":137,"dataGaLocation":462},{"text":122,"config":514},{"href":106,"dataGaName":107,"dataGaLocation":462},{"text":516,"config":517},"Agile Entwicklung",{"href":518,"dataGaName":519,"dataGaLocation":462},"/de-de/solutions/agile-delivery/","agile delivery",{"text":521,"config":522},"Cloud-Transformation",{"href":523,"dataGaName":524,"dataGaLocation":462},"/de-de/topics/cloud-native/","cloud transformation",{"text":526,"config":527},"SCM",{"href":119,"dataGaName":528,"dataGaLocation":462},"source code management",{"text":110,"config":530},{"href":112,"dataGaName":531,"dataGaLocation":462},"continuous integration & delivery",{"text":160,"config":533},{"href":162,"dataGaName":534,"dataGaLocation":462},"value stream management",{"text":536,"config":537},"GitOps",{"href":538,"dataGaName":539,"dataGaLocation":462},"/de-de/solutions/gitops/","gitops",{"text":173,"config":541},{"href":175,"dataGaName":176,"dataGaLocation":462},{"text":178,"config":543},{"href":180,"dataGaName":181,"dataGaLocation":462},{"text":545,"config":546},"Öffentlicher Sektor",{"href":185,"dataGaName":24,"dataGaLocation":462},{"text":548,"config":549},"Bildungswesen",{"href":550,"dataGaName":551,"dataGaLocation":462},"/de-de/solutions/education/","education",{"text":553,"config":554},"Finanzdienstleistungen",{"href":555,"dataGaName":556,"dataGaLocation":462},"/de-de/solutions/finance/","financial services",{"title":192,"links":558},[559,561,563,565,568,570,572,574,576,578,580,582],{"text":204,"config":560},{"href":206,"dataGaName":207,"dataGaLocation":462},{"text":209,"config":562},{"href":211,"dataGaName":212,"dataGaLocation":462},{"text":214,"config":564},{"href":216,"dataGaName":217,"dataGaLocation":462},{"text":219,"config":566},{"href":221,"dataGaName":567,"dataGaLocation":462},"docs",{"text":242,"config":569},{"href":244,"dataGaName":245,"dataGaLocation":462},{"text":237,"config":571},{"href":239,"dataGaName":240,"dataGaLocation":462},{"text":247,"config":573},{"href":249,"dataGaName":250,"dataGaLocation":462},{"text":255,"config":575},{"href":257,"dataGaName":258,"dataGaLocation":462},{"text":260,"config":577},{"href":262,"dataGaName":263,"dataGaLocation":462},{"text":265,"config":579},{"href":267,"dataGaName":268,"dataGaLocation":462},{"text":270,"config":581},{"href":272,"dataGaName":273,"dataGaLocation":462},{"text":275,"config":583},{"href":277,"dataGaName":278,"dataGaLocation":462},{"title":293,"links":585},[586,588,590,592,594,596,598,602,607,609,611,613],{"text":300,"config":587},{"href":302,"dataGaName":295,"dataGaLocation":462},{"text":305,"config":589},{"href":307,"dataGaName":308,"dataGaLocation":462},{"text":313,"config":591},{"href":315,"dataGaName":316,"dataGaLocation":462},{"text":318,"config":593},{"href":320,"dataGaName":321,"dataGaLocation":462},{"text":323,"config":595},{"href":325,"dataGaName":326,"dataGaLocation":462},{"text":328,"config":597},{"href":330,"dataGaName":331,"dataGaLocation":462},{"text":599,"config":600},"Sustainability",{"href":601,"dataGaName":599,"dataGaLocation":462},"/sustainability/",{"text":603,"config":604},"Vielfalt, Inklusion und Zugehörigkeit",{"href":605,"dataGaName":606,"dataGaLocation":462},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":333,"config":608},{"href":335,"dataGaName":336,"dataGaLocation":462},{"text":343,"config":610},{"href":345,"dataGaName":346,"dataGaLocation":462},{"text":348,"config":612},{"href":350,"dataGaName":351,"dataGaLocation":462},{"text":614,"config":615},"Transparenzerklärung zu moderner Sklaverei",{"href":616,"dataGaName":617,"dataGaLocation":462},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":619,"links":620},"Nimm Kontakt auf",[621,624,629,631,636,641,646],{"text":622,"config":623},"Sprich mit einem Experten/einer Expertin",{"href":56,"dataGaName":57,"dataGaLocation":462},{"text":625,"config":626},"Support",{"href":627,"dataGaName":628,"dataGaLocation":462},"/support/","get help",{"text":367,"config":630},{"href":369,"dataGaName":370,"dataGaLocation":462},{"text":632,"config":633},"Status",{"href":634,"dataGaName":635,"dataGaLocation":462},"https://status.gitlab.com/","status",{"text":637,"config":638},"Nutzungsbedingungen",{"href":639,"dataGaName":640,"dataGaLocation":462},"/terms/","terms of use",{"text":642,"config":643},"Datenschutzerklärung",{"href":644,"dataGaName":645,"dataGaLocation":462},"/de-de/privacy/","privacy statement",{"text":647,"config":648},"Cookie-Einstellungen",{"dataGaName":649,"dataGaLocation":462,"id":650,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":652},[653,655,657],{"text":637,"config":654},{"href":639,"dataGaName":640,"dataGaLocation":462},{"text":642,"config":656},{"href":644,"dataGaName":645,"dataGaLocation":462},{"text":647,"config":658},{"dataGaName":649,"dataGaLocation":462,"id":650,"isOneTrustButton":12},[660],{"id":661,"title":18,"body":8,"config":662,"content":664,"description":8,"extension":27,"meta":668,"navigation":12,"path":669,"seo":670,"stem":671,"__hash__":672},"blogAuthors/en-us/blog/authors/fernando-diaz.yml",{"template":663},"BlogAuthor",{"name":18,"config":665},{"headshot":666,"ctfId":667},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659556/Blog/Author%20Headshots/fern_diaz.png","fjdiaz",{},"/en-us/blog/authors/fernando-diaz",{},"en-us/blog/authors/fernando-diaz","lxRJIOydP4_yzYZvsPcuQevP9AYAKREF7i8QmmdnOWc",[674,688,700],{"content":675,"config":686},{"title":676,"description":677,"authors":678,"heroImage":681,"date":682,"body":683,"category":9,"tags":684},"Schwachstellen-Behebung mit dem aktualisierten GitLab Security Dashboard verfolgen","Behebungsmaßnahmen in risikoreichen Projekten priorisieren und Fortschritte mit Schwachstellen-Insights messen.",[679,680],"Alisa Ho","Mike Clausen","https://res.cloudinary.com/about-gitlab-com/image/upload/v1771438388/t6sts5qw4z8561gtlxiq.png","2026-02-19","Security-Teams und Entwicklungsteams kennen das Problem: Tausende von Schwachstellen, die Aufmerksamkeit erfordern – ohne die nötigen Informationen zur Priorisierung der Behebung. Wo konzentriert sich das Risiko, und wie schnell wird es behoben? Wo hat die Behebung die größte Wirkung? Das aktualisierte GitLab Security Dashboard beantwortet diese Fragen mit Trend-Tracking, Altersverteilung von Schwachstellen und projektbezogenem Risiko-Scoring.\n\n## Behebung messen, nicht nur Erkennung\nApplication-Security-Teams haben selten Schwierigkeiten, Schwachstellen zu finden – die Herausforderung liegt im Einordnen. Die meisten Dashboards zeigen rohe Zählwerte ohne Kontext und zwingen Teams dazu, stundenlang Behebungsmaßnahmen nachzuverfolgen, ohne zu verstehen, welche Schwachstellen das größte Risiko darstellen.\n\nDas [GitLab Security Dashboard](https://docs.gitlab.com/user/application_security/security_dashboard/#new-security-dashboards) fasst alle Schwachstellendaten in einer Ansicht zusammen, die Projekte, Gruppen und Geschäftsbereiche übergreift.\n\nIn Version 18.6 wurde die erste Version des aktualisierten Security Dashboards eingeführt, mit der Teams Schwachstellen im Zeitverlauf anzeigen und nach Projekt oder Berichtstyp filtern können. Mit dem [18.9-Release](https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/) stehen neue Filter und Diagramme zur Verfügung, die es erleichtern, Daten nach Schweregrad, Status, Scanner oder Projekt aufzuschlüsseln und Trends wie offene Schwachstellen, Behebungsgeschwindigkeit, Altersverteilung von Schwachstellen und Risiko-Score im Zeitverlauf zu visualisieren.\n\nRisiko-Scores helfen dabei, die kritischsten Schwachstellen vorrangig zu beheben. Der Risiko-Score wird anhand von Faktoren wie dem Alter der Schwachstelle, dem Exploit Prediction Scoring System (EPSS) und Known Exploited Vulnerability (KEV)-Scores für die betreffenden Repositories und deren Sicherheitsstatus berechnet. Auf dieser Grundlage lassen sich die Bereiche identifizieren, die am dringendsten Aufmerksamkeit benötigen.\n\nDas GitLab Security Dashboard unterstützt Application-Security- und Entwicklungsteams dabei:\n* **Programm-Effektivität verfolgen**: Behebungsgeschwindigkeit, Scanner-Nutzung und Risikostatus überwachen, um messbare Verbesserungen nachzuweisen.\n* **Gezielte Behebung priorisieren**: Schwachstellen beheben, die das größte Risiko für Produktionssysteme darstellen.\n* **Schulungsbedarf identifizieren**: Teams erkennen, die bei der Behebung von Schwachstellen gemäß unternehmensinterner Richtlinien Schwierigkeiten haben, und gezielt in Weiterbildung investieren.\n* **Manuelles Reporting reduzieren**: Externe Dashboards und Tabellen ersetzen, indem alles direkt in GitLab nachverfolgt wird.\n\nDieses Update unterstreicht GitLabs Ansatz, Sicherheit messbar, kontextbezogen und in die täglichen Entwicklungsabläufe integriert zu gestalten. Das GitLab Security Dashboard verwandelt rohe Befunde in handlungsrelevante Erkenntnisse und gibt Security- und Entwicklungsteams die Grundlage, um zu priorisieren, Risiken zu reduzieren und den Fortschritt zu belegen.\n\n## Das Security Dashboard in der Praxis\nEine Application-Security-Führungskraft, die ein Executive Briefing vorbereitet, kann nun anhand klarer Trendlinien zeigen, ob Investitionen die Risikolage verbessern: sinkende Anzahl offener Schwachstellen, abnehmendes Schwachstellenalter, rückläufige ehemals häufige CWE-Typen und ein stabiler Risiko-Score. Statt roher Zählwerte lässt sich demonstrieren, wie der Rückstand abgebaut wird und wie sich die Sicherheitslage Quartal für Quartal verbessert.\n\nGleichzeitig sehen Entwicklungsteams im selben Dashboard die kritischen Schwachstellen in ihren aktiven Projekten – und können Behebungsmaßnahmen priorisieren, ohne Daten zu exportieren oder zwischen mehreren Tools zu wechseln.\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1166108924?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Security-Dashboard-Demo-Final\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n> Weitere Informationen zum Einstieg in das GitLab Security Dashboard in der [Dokumentation](https://docs.gitlab.com/user/application_security/security_dashboard/).",[9,685,26],"product",{"featured":32,"template":13,"slug":687},"track-vulnerability-remediation-with-the-updated-gitlab-security-dashboard",{"content":689,"config":698},{"title":690,"description":691,"authors":692,"heroImage":693,"date":694,"category":9,"tags":695,"body":697},"OWASP Top 10 2025: Was sich geändert hat und warum es wichtig ist","Neue Supply-Chain- und Error-Handling-Risiken, Ranking-Verschiebungen und Remediation-Strategien für alle 10 Kategorien.",[18],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1759320418/xjmqcozxzt4frx0hori3.png","2026-02-17",[9,696],"open source","Die OWASP Foundation hat die [achte Edition ihrer einflussreichen „Top 10 Security Risks\"-Liste für 2025](https://owasp.org/Top10/2025/0x00_2025-Introduction/) veröffentlicht und führt bedeutende Änderungen ein, die die sich entwickelnde Landschaft der Applikationssicherheit widerspiegeln. Basierend auf der Analyse von mehr als 175.000 Common Vulnerabilities and Exposures (CVEs) und Feedback von Security-Praktikern weltweit adressiert dieses Update moderne Angriffsvektoren. Im Folgenden wird erläutert, was sich geändert hat, warum diese Änderungen wichtig sind und wie Systeme geschützt werden können.\n\n\n> :bulb: Am 10. Februar hat GitLab auf der Transcend gezeigt, wie Agentic AI Software Delivery transformiert – mit Kunden-Einblicken und Impulsen zur Modernisierung. [Mehr erfahren.](https://about.gitlab.com/de-de/events/transcend/virtual/)\n\n\n## Was ist neu in 2025?\n\nDie Verschiebung von 2021 (als die Liste zuletzt erschien) zu 2025 stellt mehr als kleine Anpassungen dar – es ist ein fundamentaler Wandel in der Applikationssicherheit. Zwei vollständig neue Kategorien wurden in die Liste aufgenommen und eine Kategorie in eine andere konsolidiert, was aufkommende Risiken hervorhebt, die traditionelle Tests oft übersehen.\n\nDiese Ergänzungen und Verschiebungen sind in der folgenden Grafik zu sehen:\n\n![OWASP Top 10 - Changes from 2021 to 2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767639428/tbekzibeqylorwqrkdau.png)\n\n\n### Zwei neue Kategorien\n\n- **A03: Software Supply Chain Failures**: Erweitert die 2021-Kategorie „Vulnerable and Outdated Components\" um die gesamte Software-Supply-Chain, einschließlich Dependencies, Build-Systeme und Distributions-Infrastruktur. Trotz der geringsten Vorkommen in Testdaten hat diese Kategorie die höchsten durchschnittlichen Exploit- und Impact-Scores aus CVEs.\n\n- **A10: Mishandling of Exceptional Conditions**: Fokussiert auf fehlerhafte Error-Behandlung, logische Fehler und Failing-Open-Szenarien. Diese Kategorie adressiert, wie Systeme auf abnormale Bedingungen reagieren.\n\n### Wesentliche Ranking-Änderungen\n\n- Security Misconfiguration stieg von #5 (2021) auf #2 (2025) und betrifft nun 3 % der getesteten Applikationen.\n- Server-Side Request Forgery (SSRF) wurde in A01: Broken Access Control konsolidiert.\n- Cryptographic Failures fielen von #2 auf #4.\n- Injection fiel von #3 auf #5.\n- Insecure Design verschob sich von #4 auf #6.\n\n## Warum diese Änderungen vorgenommen wurden\n\nDie OWASP-Methodik kombiniert datengetriebene Analyse mit Community-Einblicken. Die 2025-Edition analysierte 589 Common Weakness Enumerations (CWEs) – eine substanzielle Steigerung gegenüber den etwa 400 CWEs in 2021. Diese Erweiterung reflektiert die wachsende Komplexität moderner Software-Systeme und die Notwendigkeit, aufkommende Bedrohungen zu erfassen.\n\nDie Community-Survey-Komponente adressiert eine fundamentale Einschränkung: Testdaten schauen im Wesentlichen in die Vergangenheit. Bis Security-Forschende Testmethoden entwickeln und in automatisierte Tools integrieren, können Jahre vergangen sein. Die beiden community-voted Kategorien stellen sicher, dass aufkommende Risiken, die von Praktikern an vorderster Front identifiziert wurden, eingeschlossen werden – selbst wenn sie noch nicht in automatisierten Testdaten verbreitet sind.\n\nDer Anstieg von Security Misconfiguration hebt einen Branchentrend zur konfigurationsbasierten Sicherheit hervor, während Software Supply Chain Failures den Anstieg ausgefeilter Angriffe auf kompromittierte Packages widerspiegelt.\n\n## GitLab Ultimate für Vulnerability-Detection und -Management nutzen\n\nGitLab Ultimate bietet umfassendes [Security-Scanning](https://docs.gitlab.com/user/application_security/detect/) zur Erkennung von Risiken über alle OWASP-Top-10-2025-Kategorien hinweg. Die End-to-End-Plattform analysiert Quellcode, Dependencies und Infrastrukturdefinitionen von Projekten. [Advanced Static Application Security Testing (SAST)](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/) erkennt Injection-Schwachstellen, Cryptographic Failures und unsichere Design-Patterns im Quellcode. [Infrastructure as Code (IaC) Scanning](https://docs.gitlab.com/user/application_security/iac_scanning/) findet Security-Fehlkonfigurationen in Deployment-Definitionen. [Secret Detection](https://docs.gitlab.com/user/application_security/secret_detection/) verhindert das Leaken von Credentials, und [Dependency Scanning](https://docs.gitlab.com/user/application_security/dependency_scanning/) deckt Bibliotheken mit bekannten Schwachstellen in der Software-Supply-Chain auf – und adressiert damit direkt die neue A03-Kategorie für Software Supply Chain Failures.\n\nDarüber hinaus:\n\n* [Dynamic Application Security Testing (DAST)](https://docs.gitlab.com/user/application_security/dast/) testet die deployten Applikationen auf Broken Access Control, Authentication Failures und Injection-Schwachstellen durch Simulation von Angriffsvektoren.\n* [API Security Testing](https://docs.gitlab.com/user/application_security/api_security/) prüft API-Endpoints auf Input-Validation-Schwächen und Authentication-Bypasses.\n* [Web API Fuzz Testing](https://docs.gitlab.com/user/application_security/api_fuzzing/) deckt auf, wie Applikationen mit Ausnahmebedingungen umgehen, indem unerwartete Inputs generiert werden – und adressiert damit direkt die neue A10-Kategorie für Mishandling of Exceptional Conditions.\n\nSecurity-Scanning integriert sich nahtlos in die [CI/CD-Pipeline](https://about.gitlab.com/de-de/topics/ci-cd/) und läuft beim Push von einem Feature-Branch, sodass Entwicklungsteams Schwachstellen beheben können, bevor sie Production erreichen. Security-Ergebnisse werden im [Vulnerability Report](https://docs.gitlab.com/user/application_security/vulnerability_report/) konsolidiert, wo Security-Teams triagieren, analysieren und die Behebung nachverfolgen können. GitLab ermöglicht außerdem den Einsatz von KI-Agents wie dem [Security Analyst Agent](https://about.gitlab.com/de-de/blog/vulnerability-triage-made-simple-with-gitlab-security-analyst-agent/) in der GitLab Duo Agent Platform, um die kritischsten Schwachstellen und die erforderlichen Maßnahmen schnell zu identifizieren.\n\nZusätzliche Kontrollen lassen sich über [Merge-Request-Approval-Policies](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/) und [Pipeline-Execution-Policies](https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/) durchsetzen, um sicherzustellen, dass Security-Scanning konsistent in der gesamten Organisation ausgeführt wird. Customer-Success- und Professional-Services-Teams bei GitLab unterstützen dabei, den Wert einer GitLab-Investition zeitnah zu realisieren.\n\nSichere Software mit Security-Testing in derselben Plattform bereitstellen, die Entwicklungsteams bereits nutzen. Mehr dazu auf der [Application Security Testing Solutions-Seite](https://about.gitlab.com/de-de/solutions/application-security-testing/).\n\n## Die OWASP Top 10 2025: Vollständige Aufschlüsselung\n\n### A01: Broken Access Control\n\n##### Was es ist\n\nFehler bei der Durchsetzung von Richtlinien, die verhindern, dass Nutzende außerhalb ihrer vorgesehenen Berechtigungen handeln – was zu unbefugtem Zugriff führt.\n\n##### Auswirkungen auf das System\n\n- Unbefugte Informationsoffenlegung\n- Vollständige Datenzerstörung oder -modifikation\n- Privilege Escalation (Nutzende erlangen Admin-Rechte)\n- Einsehen oder Bearbeiten der Accounts anderer Nutzender\n- API-Zugriff von nicht autorisierten oder nicht vertrauenswürdigen Quellen\n\n##### Relevante CWEs\n\n- [CWE-22: Path Traversal](https://cwe.mitre.org/data/definitions/22.html)\n- [CWE-200: Exposure of Sensitive Information to an Unauthorized Actor](https://cwe.mitre.org/data/definitions/200.html)\n- [CWE-352: Cross-Site Request Forgery (CSRF)](https://cwe.mitre.org/data/definitions/352.html)\n\n### A02: Security Misconfiguration\n\n##### Was es ist\n\nSysteme, Applikationen oder Cloud-Services, die aus Security-Perspektive fehlerhaft konfiguriert sind.\n\n##### Auswirkungen auf das System\n\n- Offenlegung sensibler Informationen durch Fehlermeldungen\n- Unbefugter Zugriff über Default-Accounts\n- Unnötige Services oder Features aktiviert\n- Veraltete Security-Patches\n- Server sendet keine Security-Header oder -Direktiven\n\n##### Relevante CWEs\n\n- [CWE-16: Configuration](https://cwe.mitre.org/data/definitions/16.html)\n- [CWE-521: Weak Password Requirements](https://cwe.mitre.org/data/definitions/521.html)\n- [CWE-798: Use of Hard-coded Credentials](https://cwe.mitre.org/data/definitions/798.html)\n\n### A03: Software Supply Chain Failures\n\n##### Was es ist\n\nAusfälle oder Kompromittierungen beim Erstellen, Verteilen oder Aktualisieren von Software – durch Schwachstellen oder böswillige Änderungen in Dependencies, Tools oder Build-Prozessen.\n\n##### Auswirkungen auf das System\n\n- Kompromittierte Packages, die Backdoors einschleusen\n- Schädlicher Code, der während Build-Prozessen injiziert wird\n- Verwundbare Dependencies, die sich durch die Applikation kaskadieren\n- Nutzung von Komponenten aus nicht vertrauenswürdigen Quellen in Production\n- Änderungen in der Supply Chain werden nicht nachverfolgt\n\n##### Relevante CWEs\n\n- [CWE-1395: Dependency on Vulnerable Third-Party Component](https://cwe.mitre.org/data/definitions/1395.html)\n- [CWE-1104: Use of Unmaintained Third Party Components](https://cwe.mitre.org/data/definitions/1104.html)\n\n### A04: Cryptographic Failures\n\n##### Was es ist\n\nFehler im Zusammenhang mit fehlender Kryptographie, unzureichend starker Kryptographie, Leaking von kryptographischen Schlüsseln und verwandten Fehlern.\n\n##### Auswirkungen auf das System\n\n- Offenlegung sensibler Daten (Passwörter, Kreditkarten, Gesundheitsdaten)\n- Man-in-the-Middle-Angriffe\n- Datenpanne durch schwache Verschlüsselung\n- Schlüssel-Kompromittierung mit systemweiter Exposition\n- Verstoß gegen regulatorische Compliance-Anforderungen (DSGVO, PCI DSS)\n\n##### Relevante CWEs\n\n- [CWE-327: Use of a Broken or Risky Cryptographic Algorithm](https://cwe.mitre.org/data/definitions/327.html)\n- [CWE-330: Use of Insufficiently Random Values](https://cwe.mitre.org/data/definitions/330.html)\n\n### A05: Injection\n\n##### Was es ist\n\nSystemschwachstellen, die es Angreifenden ermöglichen, Schadcode oder -befehle (SQL, NoSQL, OS-Befehle, LDAP usw.) in Programme einzuschleusen.\n\n##### Auswirkungen auf das System\n\n- Datenverlust oder -korruption durch SQL-Injection\n- Vollständige Datenbank-Kompromittierung\n- Server-Übernahme durch Command-Injection\n- Cross-Site-Scripting-(XSS)-Angriffe\n- Informationsoffenlegung\n- Denial of Service\n\n##### Relevante CWEs\n\n- [CWE-89: SQL Injection](https://cwe.mitre.org/data/definitions/89.html)\n- [CWE-78: OS Command Injection](https://cwe.mitre.org/data/definitions/78.html)\n\n### A06: Insecure Design\n\n##### Was es ist\n\nSchwächen im Design, die verschiedene Fehler repräsentieren – ausgedrückt als fehlendes oder unwirksames Kontrolldesign. Architekturelle Mängel statt Implementierungs-Bugs.\n\n##### Auswirkungen auf das System\n\n- Schwache Passwort-Reset-Flows\n- Fehlende Autorisierungsschritte\n- Fehlerhafte Business-Logik, die Umgehungen ermöglicht\n- Unzureichendes Threat Modeling, das blinde Flecken erzeugt\n- Design-Patterns, die unter Angriffsszenarien versagen\n\n##### Relevante CWEs\n\n- [CWE-209: Generation of Error Messages Containing Sensitive Information](https://cwe.mitre.org/data/definitions/209.html)\n- [CWE-522: Insufficiently Protected Credentials](https://cwe.mitre.org/data/definitions/522.html)\n- [CWE-656: Reliance on Security Through Obscurity](https://cwe.mitre.org/data/definitions/656.html)\n\n### A07: Authentication Failures\n\n##### Was es ist\n\nSchwachstellen, die es Angreifenden ermöglichen, Systeme dazu zu bringen, ungültige oder fehlerhafte Identitäten als legitim zu erkennen.\n\n##### Auswirkungen auf das System\n\n- Account-Übernahme und Credential Stuffing\n- Session Hijacking\n- Erfolgreiche Brute-Force-Angriffe\n- Ausnutzung schwacher Passwort-Recovery-Mechanismen\n- Multi-Faktor-Authentifizierungs-Bypass\n\n##### Relevante CWEs\n\n- [CWE-287: Improper Authentication](https://cwe.mitre.org/data/definitions/287.html)\n- [CWE-306: Missing Authentication for Critical Function](https://cwe.mitre.org/data/definitions/306.html)\n- [CWE-521: Weak Password Requirements](https://cwe.mitre.org/data/definitions/521.html)\n\n### A08: Software or Data Integrity Failures\n\n##### Was es ist\n\nCode und Infrastruktur, die nicht verhindern, dass ungültiger oder nicht vertrauenswürdiger Code/Daten als vertrauenswürdig und valide behandelt werden.\n\n##### Auswirkungen auf das System\n\n- Unsignierte Updates, die Schadcode-Injection ermöglichen\n- Insecure Deserialization, die zu Remote Code Execution führt\n- CI/CD-Pipeline-Kompromittierung\n- Ausnutzung von Auto-Update-Mechanismen\n- Manipulierte Software-Artefakte\n\n##### Relevante CWEs\n\n- [CWE-345: Insufficient Verification of Data Authenticity](https://cwe.mitre.org/data/definitions/345.html)\n- [CWE-346: Origin Validation Error](https://cwe.mitre.org/data/definitions/346.html)\n- [CWE-347: Improper Verification of Cryptographic Signature](https://cwe.mitre.org/data/definitions/347.html)\n\n### A09: Security Logging & Alerting Failures\n\n##### Was es ist\n\nUnzureichendes Logging und Monitoring mit inadäquatem Alerting, was schnelle Reaktion erschwert.\n\n##### Auswirkungen auf das System\n\n- Angriffe bleiben über längere Zeiträume unentdeckt\n- Breach-Investigation wird unmöglich\n- Compliance-Verstöße durch fehlende Audit-Trails\n- Verzögerte Incident-Response\n- Unfähigkeit, das Ausmaß einer Kompromittierung zu bestimmen\n\n##### Relevante CWEs\n\n- [CWE-117: Improper Output Neutralization for Logs](https://cwe.mitre.org/data/definitions/117.html)\n- [CWE-532: Insertion of Sensitive Information into Log File](https://cwe.mitre.org/data/definitions/532.html)\n- [CWE-778: Insufficient Logging](https://cwe.mitre.org/data/definitions/778.html)\n\n### A10: Mishandling of Exceptional Conditions\n\n##### Was es ist\n\nProgramme, die ungewöhnliche und unvorhersehbare Situationen nicht verhindern, erkennen und darauf reagieren – was zu Abstürzen, unerwartetem Verhalten oder Schwachstellen führt.\n\n##### Auswirkungen auf das System\n\n- Informationsoffenlegung durch zu detaillierte Fehlermeldungen\n- Denial of Service durch unbehandelte Exceptions\n- Zustandskorruption durch fehlerhafte Error-Behandlung\n- Ausnutzung von Race Conditions\n- Systeme, die bei Fehlern offen statt geschlossen schalten\n- Applikationsabstürze, die sensible Daten exponieren\n\n##### Relevante CWEs\n\n- [CWE-248: Uncaught Exception](https://cwe.mitre.org/data/definitions/248.html)\n- [CWE-390: Detection of Error Condition Without Action](https://cwe.mitre.org/data/definitions/390.html)\n- [CWE-391: Unchecked Error Condition](https://cwe.mitre.org/data/definitions/391.html)\n\n## Best Practices für Prävention und Remediation\n\nGitLab bietet Tools, die nicht nur das schnelle Finden und Beheben von Schwachstellen innerhalb der OWASP Top 10 ermöglichen, sondern auch deren Eintritt in das Production-System verhindern. Durch Befolgen dieser Best Practices lässt sich die Security-Posture verbessern und aufrechterhalten:\n\n#### Automatisiertes Security-Scanning für alle Repositories\n\n- [SAST-Scanning](https://docs.gitlab.com/user/application_security/sast/) durchführen, um unsichere Design-Patterns wie Klartext-Passwortspeicherung, inadäquates Error-Handling und fehlende Verschlüsselung während Code-Reviews zu erkennen – Design-Fehler werden früh im Entwicklungszyklus aufgefangen.\n- [Secret Detection](https://docs.gitlab.com/user/application_security/secret_detection/) durchführen, um Credentials in Konfigurationsdateien, Umgebungsvariablen und Code zu identifizieren – dies verhindert Klartext-Passwortspeicherung und stellt sicher, dass Secrets ordnungsgemäß über GitLab-CI/CD-Variablen mit Masking und Verschlüsselung verwaltet werden.\n- [DAST-Scanning](https://docs.gitlab.com/user/application_security/dast/) durchführen, um Broken-Access-Control-Schwachstellen zu erkennen.\n- [Dependency Scanning](https://docs.gitlab.com/user/application_security/dependency_scanning/) durchführen, um Projekt-Dependencies gegen Schwachstellen-Datenbanken zu scannen und bekannte CVEs in direkten und transitiven Dependencies über mehrere Package-Manager (npm, pip, Maven usw.) zu identifizieren.\n- [Container Scanning](https://docs.gitlab.com/user/application_security/container_scanning/) durchführen, um Docker-Images auf verwundbare Base-Layer und Packages zu analysieren und die Container-Supply-Chain-Sicherheit vor dem Deployment sicherzustellen.\n- [IaC-Scanning](https://docs.gitlab.com/user/application_security/iac_scanning/) durchführen, um Infrastruktur-Definitionsdateien auf bekannte Schwachstellen zu prüfen.\n- [API-Security-Tools](https://docs.gitlab.com/user/application_security/api_security/) nutzen, um Web-APIs vor unbefugtem Zugriff, Missbrauch und Angriffen zu schützen.\n- [Web API Fuzz Testing](https://docs.gitlab.com/user/application_security/api_fuzzing/) durchführen, um Bugs und potenzielle Schwachstellen zu entdecken, die andere QA-Prozesse übersehen könnten.\n\n![Security Results in MR](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767639431/zs6xh8hz6mud3vuig3dy.png)\n\u003Cp>\u003C/p>\n\u003Ccenter>\u003Ci>Erkannte Schwachstellen im MR mit Diff von Feature-Branch zu Main-Branch anzeigen.\u003C/i>\u003C/center>\n\n#### Die Security-Posture verstehen\n\n- Eine [Software Bill of Materials (SBOM)](https://docs.gitlab.com/user/application_security/dependency_list/) generieren für vollständige Dependency-Transparenz und Compliance-Anforderungen.\n- Den [Vulnerability Report](https://docs.gitlab.com/user/application_security/vulnerability_report/) nutzen, um Schwachstellen über eine konsolidierte Ansicht der im Codebase gefundenen Security-Vulnerabilities zu triagieren.\n- Mit [detaillierter Remediation-Anleitung](https://docs.gitlab.com/user/application_security/vulnerabilities/) und [Risk-Assessment-Daten](https://docs.gitlab.com/user/application_security/vulnerabilities/risk_assessment_data/) schnell auf Schwachstellen reagieren.\n- [Security Inventory](https://docs.gitlab.com/user/application_security/security_inventory/) nutzen, um zu visualisieren, welche Assets geschützt werden müssen und welche Maßnahmen zur Verbesserung der Sicherheit erforderlich sind.\n- [Compliance Center](https://docs.gitlab.com/user/compliance/compliance_center/) nutzen, um Compliance-Standards-Adherence-Reporting, Violations-Reporting und Compliance-Frameworks zu verwalten.\n\n![Security Inventory](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767639429/e9vnakc8yiyjbjm8aj7s.png)\n\u003Cp>\u003C/p>\n\u003Ccenter>\u003Ci>Security Inventory nutzen, um aktivierte Security-Scanner und Schwachstellen einzusehen.\u003C/i>\u003C/center>\n\n#### Prävention einrichten und Dokumentation pflegen\n\n- [Security Policies](https://docs.gitlab.com/user/application_security/policies/) konfigurieren, um Merges oder Deployments zu blockieren, wenn hochgradig kritische Schwachstellen in Dependencies erkannt werden – Security-Standards werden automatisch durchgesetzt.\n- [Compliance Frameworks](https://docs.gitlab.com/user/compliance/compliance_frameworks/) nutzen, um organisationsweite Security-Standards durch automatisierte Policy-Checks durchzusetzen, die Verschlüsselungsanforderungen, Credential-Management-Praktiken und sichere Workflow-Implementierungen verifizieren.\n- GitLab Wiki und Repository-Dokumentation nutzen, um Security-Design-Prinzipien, genehmigte Patterns und Architectural Decision Records zu pflegen, die Entwicklungsteams zu [Secure-by-Design-Implementierungen](https://about.gitlab.com/de-de/blog/last-year-we-signed-the-secure-by-design-pledge-heres-our-progress/) anleiten.\n- Merge-Request-Approval-Rules implementieren, die ein Security-Architect-Review für Features erfordern, die Authentication, Authorization, Verschlüsselung oder sensible Datenverarbeitung betreffen – so wird Security-Validierung auf Design-Ebene sichergestellt.\n- Tests erstellen, um Input-Validation und Allowlist-Ansätze für Dateipfade zu verifizieren.\n- GitLab Issues und Epics nutzen, um Security-Anforderungen und Threat Models in der Design-Phase zu dokumentieren – dies schafft eine nachvollziehbare Aufzeichnung von Security-Entscheidungen und stellt sicher, dass Security-Überlegungen vor Implementierungsbeginn adressiert werden.\n\n![Security Policy Dashboard](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767639429/q4eelq3rqt0oonzhwoyb.png)\n\u003Ccenter>\u003Ci>Security Policies auf Instanz-, Gruppen- oder Projektebene anzeigen und festlegen.\u003C/i>\u003C/center>\n\n#### KI nutzen\n\n- [Code Suggestions](https://docs.gitlab.com/user/project/repository/code_suggestions/) für proaktive Guidance während der Entwicklung nutzen – mit Vorschlägen für sichere Design-Patterns wie korrektes Password-Hashing (bcrypt, Argon2), verschlüsselte Speichermechanismen und angemessenes Error-Handling, das keine sensiblen Informationen preisgibt.\n- [Security Analyst Agent](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/) nutzen, um erkannte Insecure-Design-Schwachstellen im Kontext zu bewerten – mit Erklärung der architekturellen Implikationen, Risikobewertung basierend auf dem Threat Model der Applikation und Remediation-Strategien, die grundlegende Design-Fehler statt nur Symptome adressieren.\n- [Code mit KI reviewen lassen](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code), um konsistente Code-Review-Standards im Projekt sicherzustellen.\n\n![GitLab Security Analyst Agent](https://res.cloudinary.com/about-gitlab-com/image/upload/v1767639430/kqvgagepwleabt5zdkco.png)\n\u003Cp>\u003C/p>\n\u003Ccenter>\u003Ci>Security Analyst Agent nutzen, um Security-Schwachstellen schnell zu triagieren und zu bewerten.\u003C/i>\u003C/center>\n\n## Kernaussagen für Entwicklungsteams\n\n- **Supply-Chain-Sicherheit ist entscheidend**: Mit der Aufnahme von A03 und den hohen Impact-Scores ist die Absicherung der Software-Supply-Chain keine Option mehr. SBOM-Tracking, Dependency-Scanning und Integritätsprüfung sollten durchgängig in der Pipeline implementiert werden.\n- **Konfiguration ist wichtiger denn je**: Der Aufstieg auf #2 zeigt, dass konfigurationsbasierte Sicherheit nun ein primärer Angriffsvektor ist. Konfigurationsverifizierung automatisieren und IaC mit integrierter Security implementieren.\n- **Traditionelle Bedrohungen bestehen fort**: Obwohl Injection und Cryptographic Failures im Ranking gefallen sind, bleiben sie kritisch. Die Priorisierung nicht reduzieren, nur weil sie in der Liste gefallen sind.\n- **Error-Handling ist Security**: Die neue A10-Kategorie unterstreicht, dass der Umgang der Applikation mit Fehlern ein Security-Thema ist. Sicheres Error-Handling von Beginn an implementieren.\n- **Testing muss sich weiterentwickeln**: Die erweiterte CWE-Abdeckung (589 vs. 400 in 2021) bedeutet, dass Testing-Strategien umfassend sein müssen. SAST, DAST, Quellcode-Analyse und manuelles Penetration-Testing für effektive Abdeckung kombinieren.\n\n> Die [GitLab Security and Governance Solutions](https://about.gitlab.com/de-de/solutions/application-security-testing/) und die [Security-Scanning-Dokumentation](https://docs.gitlab.com/ee/user/application_security/) bieten weitere Informationen zur Stärkung der Security-Posture.\n",{"slug":699,"featured":32,"template":13},"2025-owasp-top-10-whats-changed-and-why-it-matters",{"content":701,"config":709},{"title":702,"description":703,"authors":704,"heroImage":706,"date":707,"body":708,"category":9},"SSO und SCIM mit Azure Entra ID – Zentralisiertes Identity-Management","Single Sign-On und SCIM-Benutzerbereitstellung einrichten – SAML-Konfiguration für GitLab mit Azure Entra ID.",[705],"Rob Jackson","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098047/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1097303277_6gTk7M1DNx0tFuovupVFB1_1750098046895.jpg","2026-01-12","Mit wachsender Unternehmensgröße wird es zunehmend schwierig und kritisch, sicherzustellen, dass die richtigen Teammitglieder Zugriff auf die richtigen Gruppen und Projekte haben. GitLab bietet leistungsstarke Methoden zur Zugriffsverwaltung, insbesondere mit [Custom Roles](https://about.gitlab.com/blog/how-to-tailor-gitlab-access-with-custom-roles/). Die manuelle Verwaltung über eine Benutzeroberfläche kann jedoch bei großem Umfang frustrierend sein. Security Assertion Markup Language (SAML) und System for Cross-domain Identity Management (SCIM) bieten eine Lösung.\n\n\n## Was SSO und SCIM bieten\n\n\n**Single Sign-On (SSO) mit SAML** ermöglicht Benutzern, sich einmal bei einem zentralen Identity Provider – wie Azure Entra ID – zu authentifizieren und dann auf mehrere verbundene Anwendungen zuzugreifen, ohne erneute Anmeldung. **SCIM** automatisiert die Benutzerverwaltung: Wenn Benutzer im Identity Provider erstellt, Gruppen zugewiesen oder deaktiviert werden, synchronisiert SCIM diese Änderungen automatisch mit GitLab – einschließlich Berechtigungen basierend auf Gruppenmitgliedschaften.\n\n\n### Vorteile für Unternehmen\n\n\n**Sicherheit:** Zentralisierte Authentifizierung reduziert Passwort-Müdigkeit und Credential-Stuffing-Risiken. Multi-Faktor-Authentifizierung lässt sich auf Identity-Provider-Ebene erzwingen und gilt automatisch für alle verbundenen Anwendungen. Wenn ein Benutzer das Unternehmen verlässt, entfernt die Deaktivierung im Identity Provider sofort den Zugriff auf alle Systeme.\n\n\n**Effizienz:** Automatisierte Benutzerbereitstellung reduziert Onboarding-Zeit von Stunden auf Minuten. Gruppenmitgliedschaften in Azure Entra ID synchronisieren automatisch mit GitLab-Berechtigungen. Identitäten werden einmal im Identity Provider verwaltet und propagieren automatisch – kein manuelles Erstellen, Aktualisieren oder Löschen von Konten in jeder Anwendung erforderlich.\n\n\n**Compliance:** Zentralisiertes Identity-Management mit SSO und SCIM unterstützt Zugriffskontroll-Anforderungen aus Frameworks wie NIS2 (Artikel 21.2(i,j) Zugriffskontrolle und Multi-Faktor-Authentifizierung), ISO 27001 (A.5.15-17 Identitätsverwaltung) und BSI IT-Grundschutz (ORP.4). SSO-Authentifizierungs-Logs bieten zentralisierte Aufzeichnungen für GDPR-Artikel-30-Verarbeitungsdokumentation und Incident-Response.\n\n\n## Implementierung\n\n\nDie Konfiguration von GitLab Single Sign-On mit SAML und SCIM erfordert:\n\n\n- Azure Entra ID Tenant mit Administrator-Zugriff\n\n- GitLab Premium oder Ultimate mit Top-Level-Gruppe\n\n- Konfiguration auf beiden Plattformen (Parameter-Austausch, Attribut-Mappings, SCIM-Token)\n\n\n**Vollständige Schritt-für-Schritt-Anleitung:**\n\n\n→ [How-to: GitLab Single Sign-on with SAML, SCIM and Azure's Entra ID](https://about.gitlab.com/blog/how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id/)\n\n\nDie englische Anleitung bietet:\n\n\n- 15 detaillierte UI-Screenshots für Azure Entra ID und GitLab\n\n- Vollständige Attribut-Mapping-Tabellen (SAML Claims, SCIM Provisioning)\n\n- Parameter-Austausch zwischen Plattformen (Identifier, Reply URL, Certificate, SCIM Token)\n\n- Fehlerbehebung für häufige Probleme (Email-Attribut-Fehler, NameID-Mismatch)\n\n\n**Kostenlose Testversionen:** [Azure Entra ID](https://azure.microsoft.com/de-de/free/) | [GitLab](https://about.gitlab.com/free-trial/devsecops/)\n\n\n## Weiterführende Informationen\n\n\n- [The ultimate guide to enabling SAML and SSO on GitLab.com](https://about.gitlab.com/blog/the-ultimate-guide-to-enabling-saml/)\n\n- [SAML SSO for GitLab.com groups documentation](https://docs.gitlab.com/ee/user/group/saml_sso/)\n",{"slug":710,"featured":32,"template":13},"how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id",{"promotions":712},[713,727,739],{"id":714,"categories":715,"header":717,"text":718,"button":719,"image":724},"ai-modernization",[716],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":720,"config":721},"Get your AI maturity score",{"href":722,"dataGaName":723,"dataGaLocation":245},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":725},{"src":726},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":728,"categories":729,"header":731,"text":718,"button":732,"image":736},"devops-modernization",[685,730],"devsecops","Are you just managing tools or shipping innovation?",{"text":733,"config":734},"Get your DevOps maturity score",{"href":735,"dataGaName":723,"dataGaLocation":245},"/assessments/devops-modernization-assessment/",{"config":737},{"src":738},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":740,"categories":741,"header":742,"text":718,"button":743,"image":747},"security-modernization",[9],"Are you trading speed for security?",{"text":744,"config":745},"Get your security maturity score",{"href":746,"dataGaName":723,"dataGaLocation":245},"/assessments/security-modernization-assessment/",{"config":748},{"src":749},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":751,"blurb":752,"button":753,"secondaryButton":758},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":754,"config":755},"Kostenlosen Test starten",{"href":756,"dataGaName":52,"dataGaLocation":757},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":54,"config":759},{"href":56,"dataGaName":57,"dataGaLocation":757},1772652066255]