GitHub Dependabot-Warnungen und Sicherheitsupdates implementieren
GitHub Dependabot bietet automatisierte Abhängigkeitsverwaltung, die direkt in GitHub-Repositorys integriert ist. Dependabot überwacht Abhängigkeiten auf Sicherheitsrisiken und veraltete Versionen, Warnung von Repository-Betreuern und automatisches Erstellen von Pullanforderungen zum Aktualisieren anfälliger oder veralteter Abhängigkeiten. Diese Integration macht die Abhängigkeitssicherheit für alle GitHub-Benutzer zugänglich, ohne dass separate Tools erforderlich sind.
Grundlegendes zu GitHub Dependabot
GitHub Dependabot besteht aus drei Hauptfunktionen, die zusammenarbeiten, um Abhängigkeiten zu sichern:
Dependabot-Warnungen
Dependabot-Warnungen benachrichtigen Repository-Betreuer, wenn anfällige Abhängigkeiten erkannt werden. GitHub überwacht kontinuierlich die GitHub Advisory Database und andere Sicherheitsrisikoquellen, die sie mit Abhängigkeiten vergleichen, die in Repositorys verwendet werden.
Warnungstrigger:
- Neue Offenlegung von Sicherheitsrisiken: Warnungen werden erstellt, wenn der GitHub-Advisory-Datenbank neue Sicherheitsrisiken hinzugefügt werden.
- Empfehlungsupdates: Vorhandene Warnungen werden aktualisiert, wenn sich Sicherheitsrisikeninformationen ändern (Schweregrad, betroffene Versionen, Patches).
- Änderungen des Abhängigkeitsdiagramms: Neue Warnungen werden generiert, wenn Codeänderungen anfällige Abhängigkeiten einführen.
- Mend-Sicherheitsrisikodaten: Zusätzliche Sicherheitsrisikointelligenz von Mend (früher WhiteSource) ergänzt die GitHub Advisory Database.
Warnungsinformationen umfassen:
- Beschreibung der Sicherheitsanfälligkeit: Ausführliche Erläuterung des Sicherheitsproblems.
- Schweregrad: CVSS-Bewertung und Schweregradklassifizierung (kritisch, hoch, mittel, niedrig).
- Betroffene Versionen: Welche Abhängigkeitsversionen die Sicherheitsanfälligkeit enthalten.
- Gepatchte Versionen: Welche Versionen die Sicherheitsanfälligkeit beheben.
- CVE-Kennung: Identifizierung von Common Vulnerabilities and Exposures (CVE), wenn verfügbar.
- CWE-Klassifizierung: Common Weakness Enumeration (CWE)-Typ kategorisiert die Sicherheitsanfälligkeit.
- GitHub-Sicherheitsempfehlungslink: Link zu vollständigen Beratungen mit zusätzlichen Details.
Dependabot-Sicherheitsupdates
Sicherheitsupdates von Dependabot erstellen automatisch Pullanforderungen, um anfällige Abhängigkeiten für sichere Versionen zu aktualisieren. Wenn Dependabot-Warnungen Sicherheitsrisiken mit verfügbaren Patches erkennen, können Sicherheitsupdates automatisch Pullanforderungen generieren, die die Sicherheitsanfälligkeiten beheben.
Automatische Erstellung der Pull-Anforderung:
- Sicherheitsrisiko ausgelöst: Sicherheitsupdates erstellen Pullanforderungen nur, wenn Sicherheitsrisiken erkannt werden, nicht für jedes Abhängigkeitsupdate.
- Minimale Versionsaktualisierungen: Pull-Anfragen aktualisieren Abhängigkeiten auf die Mindestversion, die Sicherheitsanfälligkeiten behebt und die Kompatibilität beibehält.
- Kompatibilitätsbewertungen: GitHub berechnet Kompatibilitätsbewertungen, die vorhersagen, ob Updates vorhandene Funktionen unterbrechen.
- Release-Hinweise: Pull-Anfragen umfassen Release-Hinweise und Änderungsprotokollinformationen von aktualisierten Abhängigkeiten.
Pull-Request-Funktionen:
- Automatisierte Tests: Pullanforderungen lösen vorhandene CI/CD-Pipelines aus, um zu überprüfen, ob Updates die Funktionalität nicht unterbrechen.
- Lösung von Sicherheitsrisiken: Beschreibungen der Pull-Anforderung erläutern, welche Sicherheitsrisiken durch das Update behoben werden.
- Aktualisierungsbefehle: Spezielle Kommentare ermöglichen es Betreuern, den Zeitpunkt des Zusammenführens zu steuern, Pull-Requests neu zu basieren oder bestimmte Updates zu ignorieren.
- Gruppierte Updates: Bei Bedarf können mehrere anfällige Abhängigkeiten in einer einzelnen Pullanforderung aktualisiert werden.
Dependabot-Versionsupdates
Versionsupdates von Dependabot halten Abhängigkeiten auf dem neuesten Stand, auch wenn keine Sicherheitsrisiken vorhanden sind. Im Gegensatz zu Sicherheitsupdates, die nur anfällige Abhängigkeiten aktualisieren, aktualisieren Versionsupdates proaktiv Abhängigkeiten auf die neuesten Versionen basierend auf konfigurierten Zeitplänen.
Geplante Updates:
- Konfigurierbare Häufigkeit: Updates können täglich, wöchentlich oder monatlich geplant werden.
- Strategien aktualisieren: Konfigurieren Sie, ob alle Abhängigkeiten, nur direkte Abhängigkeiten oder bestimmte Abhängigkeitsgruppen aktualisiert werden sollen.
- Versionsbeschränkungen: Beachten Sie semantische Versionsverwaltungseinschränkungen, die in Manifestdateien definiert sind.
- Grenzwerte für Pull Requests: Kontrollieren Sie, wie viele offene Pull Requests von Dependabot erstellt werden, um die Betreuer nicht übermäßig zu belasten.
Aktivieren von Dependabot-Warnungen
Dependabot-Warnungen sind standardmäßig für öffentliche Repositorys aktiviert, müssen jedoch manuell für private Repositorys aktiviert sein.
Aktivieren von Warnungen für ein Repository
Navigation:
- Navigieren Sie zu dem Repository auf GitHub.
- Klicken Sie im Repositorymenü auf "Einstellungen ".
- Klicken Sie in der linken Randleiste auf "Sicherheit und Analyse ".
- Suchen Sie den Abschnitt "Dependabot-Warnungen ".
- Klicken Sie auf "Aktivieren ", um Die Benachrichtigungen von Dependabot zu aktivieren.
Abhängigkeitsdiagrammanforderung: Dependabot-Warnungen erfordern, dass das Abhängigkeitsdiagramm aktiviert ist. Das Abhängigkeitsdiagramm wird automatisch für öffentliche Repositorys aktiviert, benötigt aber möglicherweise eine manuelle Aktivierung für private Repositorys.
Abhängigkeitsdiagramm aktivieren:
- Suchen Sie in den Einstellungen → Sicherheits- und Analysediagrammnach Abhängigkeitsdiagramm.
- Klicken Sie auf "Aktivieren ", wenn das Abhängigkeitsdiagramm noch nicht aktiv ist.
- GitHub beginnt mit der Analyse von Repositoryabhängigkeiten, um das Abhängigkeitsdiagramm zu erstellen.
Organisationsweite Aktivierung
Organisationsadministratoren können Dependabot-Warnungen in allen Repositorys aktivieren:
Organisationseinstellungen:
- Navigieren Sie zu den Organisationseinstellungen.
- Klicken Sie in der linken Randleiste auf "Sicherheit und Analyse ".
- Klicken Sie auf "Alle aktivieren" neben "Dependabot-Warnungen", um Warnungen für alle aktuellen und zukünftigen Repositorys zu aktivieren.
- Wählen Sie optional "Automatisch aktivieren" für neue Repositorys aus, um Warnungen für neu erstellte Repositorys zu aktivieren.
Unterstützte Paketökosysteme
Dependabot-Warnungen unterstützen zahlreiche Paketökosysteme, darunter:
Unterstützte Ökosysteme:
- JavaScript: npm (package.json, package-lock.json), Yarn (yarn.lock).
- Python: pip (requirements.txt, Pipfile, Pipfile.lock), Poetry (poetry.lock).
- Ruby: Bundler (Gemfile, Gemfile.lock).
- Java: Maven (pom.xml), Gradle (build.gradle, build.gradle.kts).
- .NET: NuGet (*.csproj, packages.config, paket.dependencies).
- Go: Go-Module (go.mod, go.sum).
- PHP: Composer (composer.json, composer.lock).
- Rust: Cargo (Cargo.toml, Cargo.lock).
- Elixier: Mix (mix.exs, mix.lock).
- Dart/Flutter: pub (pubspec.yaml, pubspec.lock).
- Docker: Dockerfiles (Basisabbildverweise).
- GitHub-Aktionen: Workflowdateien (Aktionsversionen).
- Terraform: Terraform-Konfiguration (Modulversionen).
Konfigurieren von Dependabot-Sicherheitsupdates
Dependabot-Sicherheitsupdates erfordern explizite Aktivierung, auch wenn Warnungen aktiviert sind.
Aktivieren von Sicherheitsupdates
Repositorykonfiguration:
- Navigieren Sie zu "Einstellungen" → Sicherheits- und Analyseanalyse.
- Suchen Sie die Sicherheitsupdates von Dependabot.
- Klicken Sie auf "Aktivieren ", um Pullanforderungen für automatische Sicherheitsupdates zu aktivieren.
- Dependabot beginnt mit der Überwachung anfälliger Abhängigkeiten und dem Erstellen von Pullanforderungen, wenn Patches verfügbar sind.
Organisationsweite Konfiguration:
- Navigieren Sie zu den Organisationseinstellungen → Sicherheits- und Analyse.
- Klicken Sie auf "Alle aktivieren " neben den Sicherheitsupdates von Dependabot.
- Wählen Sie "Automatisch für neue Repositorys aktivieren", um die Funktion für künftige Repositorys automatisch zu aktivieren.
Verhalten von Sicherheitsupdates
Automatische Erstellung der Pull-Anforderung:
- Erkennung von Sicherheitsrisiken: Wenn Dependabot-Warnungen eine anfällige Abhängigkeit mit einem verfügbaren Patch erkennen, erstellen Sicherheitsupdates eine Pull-Anforderung.
- Minimale Updates: Pullanforderungen werden nur auf die Mindestversion aktualisiert, die die Sicherheitsanfälligkeit behebt.
- Semantische Versionierung: Updates respektieren die semantische Versionierung und bevorzugen Patch-Updates nach Möglichkeit statt Klein- oder Hauptupdates.
- Testen der Integration: Pullanforderungen lösen vorhandene CI/CD-Prüfungen aus, um Updates zu überprüfen.
Kompatibilitätsbewertungen: GitHub berechnet Kompatibilitätsbewertungen, die die Wahrscheinlichkeit angeben, dass Updates vorhandene Funktionen unterbrechen:
- Hohe Kompatibilität: Das Update ist wahrscheinlich auf der Grundlage der Analyse ähnlicher Repositorys sicher.
- Mittlere Kompatibilität: Das Update führt möglicherweise zu schwerwiegenden Änderungen, die eine Überprüfung erfordern.
- Geringe Kompatibilität: Das Update umfasst wahrscheinlich einschneidende Änderungen, die Codeanpassungen erfordern.
- Unbekannte Kompatibilität: Unzureichende Daten zur Bewertung der Kompatibilität.
Pull-Anforderungsverwaltung:
- Automatisches Neubasieren: Von Dependabot werden Pullanforderungen automatisch neu gebaset, wenn sich die Basisverzweigung ändert.
- Konfliktbeilegung: Pullanforderungen werden geschlossen, wenn Konflikte die automatische Neubasierung verhindern.
- Ersetzende Updates: Neue Pull-Requests ersetzen ältere, wenn neuere Versionen veröffentlicht werden.
- Geplante Updates: Pull-Anfragen werden gemäß konfigurierten Zeitplänen erstellt, um die Maintainer nicht zu überlasten.
Konfigurieren von Dependabot-Versionsupdates
Versionsupdates erfordern eine Konfigurationsdatei, die Updatezeitpläne und -verhalten definiert.
Erstellen Sie die dependabot.yml-Konfiguration
Versionsupdates werden mithilfe einer .github/dependabot.yml Datei im Repository konfiguriert:
Grundlegende Konfiguration:
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
Konfigurationsoptionen:
- Version: Konfigurationsdateischemaversion (immer 2).
- Aktualisierungen: Array von Updatekonfigurationen für verschiedene Paketökosysteme.
- Paketökosystem: Paket-Manager, der überwacht werden soll (npm, pip, bundler, maven, nuget usw.).
- Verzeichnis: Speicherort der Paketmanifestdateien (/für Stamm- oder Unterverzeichnispfad).
- schedule.interval: Aktualisierungshäufigkeit (täglich, wöchentlich, monatlich).
- open-pull-requests-limit: Die maximale Anzahl geöffneter Pullanforderungen wird von Dependabot erstellt (Standard 5).
Beispiel für erweiterte Konfiguration:
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "08:00"
timezone: "America/New_York"
open-pull-requests-limit: 10
reviewers:
- "team/frontend-developers"
assignees:
- "dependency-manager"
labels:
- "dependencies"
- "npm"
commit-message:
prefix: "npm"
include: "scope"
ignore:
- dependency-name: "lodash"
versions: ["4.x"]
allow:
- dependency-type: "production"
Erweiterte Optionen:
- schedule.day: Wochentag für wöchentliche Updates (Montag bis Sonntag).
- schedule.time: Tageszeit für Updates (24-Stunden-Format).
- schedule.timezone: Zeitzone für Zeitplan (IANA Timezone Identifier).
- rezensenten: GitHub-Benutzer oder -Teams wurden automatisch für Pull-Anforderungsüberprüfungen angefordert.
- Zuständige: GitHub-Benutzer, die Pull-Anfragen automatisch zugewiesen werden.
- etiketten: Bezeichnungen, die automatisch auf Pullanforderungen angewendet werden.
- commit-message.prefix: Präfix für Commitnachrichten (hilfreich für herkömmliche Commits).
- ignorieren: Abhängigkeiten, die ignoriert werden sollen, optional mit bestimmten Versionsbereichen.
- erlauben: Abhängigkeitstypen, die aktualisiert werden sollen (Produktion, Entwicklung, alle).
Mehrere Paketökosysteme
Repositorys mit mehreren Sprachökosystemen erfordern separate Updatekonfigurationen:
Konfiguration des Multiökosystems:
version: 2
updates:
- package-ecosystem: "npm"
directory: "/frontend"
schedule:
interval: "weekly"
- package-ecosystem: "pip"
directory: "/backend"
schedule:
interval: "weekly"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
Diese Konfiguration überwacht npm-Abhängigkeiten in /frontend, Python-Abhängigkeiten in /backend, Docker-Basisimages im gesamten Repository und GitHub Actions-Versionen in Workflows.
Verwalten von Dependabot-Pullanforderungen
Dependabot-Pullanforderungen unterstützen spezielle Befehle zum Verwalten von Updates.
Pull Request-Befehle
Kommentarbefehle:
-
@dependabot rebase: Führen Sie Rebase für den Pull Request mit dem aktuellen Basisbranch aus. -
@dependabot recreate: Erstellen Sie die Pullanforderung neu, und überschreiben Sie alle manuellen Bearbeitungen. -
@dependabot merge: Führen Sie den Pull-Request zusammen, nachdem die CI-Tests bestanden wurden. -
@dependabot squash and merge: Führen Sie Squash für Commits aus, und führen Sie sie zusammen, sobald Überprüfungen erfolgreich sind. -
@dependabot cancel merge: Abbrechen einer zuvor angeforderten Zusammenführung. -
@dependabot reopen: Öffnen Sie eine geschlossene Pull-Anforderung erneut. -
@dependabot close: Schließen Sie die Pullanforderung, und verhindern Sie, dass Dependabot sie neu erstellen kann. -
@dependabot ignore this major version: Schließen Sie die Pullanforderung, und ignorieren Sie zukünftige Updates für diese Hauptversion. -
@dependabot ignore this minor version: Schließen Sie die Pullanforderung, und ignorieren Sie zukünftige Updates für diese Nebenversion. -
@dependabot ignore this dependency: Schließen Sie die Pullanforderung, und ignorieren Sie alle zukünftigen Updates für diese Abhängigkeit.
Überprüfen und Zusammenführen von Updates
Überprüfungsprozess:
- Beschreibung der Pullanforderung überprüfen: Verstehen Sie, welche Sicherheitsanfälligkeit behoben ist oder welche Version aktualisiert wird.
- Kompatibilitätsbewertung überprüfen: Bewerten Sie die Wahrscheinlichkeit, dass Änderungen abgebrochen werden.
- Ci/CD-Ergebnisse überprüfen: Stellen Sie sicher, dass automatisierte Tests erfolgreich bestanden haben.
- Versionshinweise überprüfen: Verstehen Sie die Änderungen, die im Abhängigkeitsupdate enthalten sind.
- Testen Sie bei Bedarf lokal: Testen Sie bei wichtigen Updates die Funktionalität vor dem Zusammenführen lokal.
- Zusammenführen der Pullanforderung: Genehmigen sie die Pullanforderung, und führen Sie sie zusammen, um die Abhängigkeit zu aktualisieren.
Automatische Zusammenführung: Für Updates mit geringem Risiko, hohen Kompatibilitätsergebnissen und erfolgreich abgeschlossenen Tests können Sie die automatische Zusammenführung konfigurieren.
Automatisches Zusammenführen von GitHub-Aktionen:
name: Auto-merge Dependabot PRs
on: pull_request
jobs:
auto-merge:
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]'
steps:
- name: Enable auto-merge
run: gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Dieser Workflow aktiviert automatisch die automatische Zusammenführung für Pullanforderungen von Dependabot, die alle erforderlichen Prüfungen bestehen.
Dependabot-Warnungen und Benachrichtigungen
Dependabot bietet mehrere Benachrichtigungsmechanismen für Sicherheitsrisikenwarnungen.
Benachrichtigungskanäle
Webbenachrichtigungen:
- GitHub-Benachrichtigungen: Warnungen werden im GitHub-Benachrichtigungseingang angezeigt.
- Registerkarte "Sicherheit": Warnungen sind auf der Registerkarte "Repositorysicherheit" unter "Dependabot-Warnungen" sichtbar.
- Repository-Einblicke: Abhängigkeitsdiagramm auf der Registerkarte "Insights" zeigt anfällige Abhängigkeiten an.
E-Mail-Benachrichtigungen:
- Digest-E-Mails: Wöchentliche Zusammenfassungs-E-Mails mit neuen Warnungen.
- Echtzeit-E-Mails: Sofortige E-Mails für kritische Sicherheitsrisiken.
- Organisationsbenachrichtigungen: Organisationsadministratoren erhalten Benachrichtigungen für alle Repositorys.
Benutzerdefinierte Benachrichtigungen:
- Webhooks: Konfigurieren Sie Webhooks für den Empfang von Benachrichtigungen in externen Systemen.
- GitHub-API: Fragen Sie die Dependabot-Warnungs-API ab, um Warnungsinformationen programmgesteuert abzurufen.
- Sicherheitsintegrationen: Sicherheitsplattformen von Drittanbietern können mit Dependabot-Warnungen über API integriert werden.
Konfigurieren von Benachrichtigungseinstellungen
Benutzerbenachrichtigungseinstellungen:
- Navigieren Sie zu GitHub-Einstellungen → Benachrichtigungen.
- Suchen Sie den Abschnitt Sicherheitswarnungen.
- Konfigurieren von Benachrichtigungseinstellungen:
- Beteiligung: Erhalten Sie Benachrichtigungen für Repositorys, die Sie verfolgen oder an denen Sie teilnehmen.
- Überwachen: Empfangen Sie Benachrichtigungen für alle überwachten Repositorys.
- E-Mail: Aktivieren Sie E-Mail-Benachrichtigungen für Sicherheitswarnungen.
- Web: Aktivieren von Webbenachrichtigungen auf der GitHub-Benutzeroberfläche.
Organisationsbenachrichtigungseinstellungen:
- Navigieren Sie zu den Organisationseinstellungen → Sicherheits- und Analyse.
- Konfigurieren Sie, wer Sicherheitsbenachrichtigungen empfängt:
- Organisationsbesitzer: Automatisch alle Sicherheitswarnungen empfangen.
- Sicherheitsmanager: Das designierte Sicherheitsteam empfängt Benachrichtigungen.
- Repositoryadministratoren: Jeder Repositoryadministrator erhält Benachrichtigungen für seine Repositorys.
Überprüfen von Dependabot-Warnungen
Die Registerkarte "Sicherheit" bietet eine umfassende Benachrichtigungsverwaltung.
Warnungsdetails
Navigieren Sie zu Warnungen:
- Öffnen Sie das Repository auf GitHub.
- Klicken Sie auf die Registerkarte Sicherheit.
- Klicken Sie in der linken Randleiste auf "Dependabot-Warnungen ".
- Überprüfen Sie die Liste der aktiven Warnungen.
Warnungsinformationen:
- Strenge: Kritische, hohe, moderate oder niedrige Schweregradklassifizierung.
- Paket: Betroffener Abhängigkeitsname und -version.
- Schwachstelle: CVE-ID und -Beschreibung.
- Gepatchte Versionen: Versionen, die die Sicherheitsanfälligkeit beheben.
- Anfällige Codepfade: Gibt an, ob der anfällige Code tatsächlich verwendet wird (sofern die Reichweitenanalyse verfügbar ist).
- AutoKorrektur verfügbar: Gibt an, ob Dependabot automatisch eine Pull-Anforderung erstellen kann, um die Sicherheitsanfälligkeit zu beheben.
Verwalten von Warnungen
Warnungsaktionen:
- Pullanforderung überprüfen: Wenn ein automatisches Sicherheitsupdate vorhanden ist, überprüfen Sie die Pullanforderung, und führen Sie sie zusammen.
- Warnung schließen: Schließen Sie falsch positive Ergebnisse oder akzeptierte Risiken mit einer entsprechenden Begründung.
- Erinnerung verschieben: Warnungen, die nicht sofort behoben werden können, vorübergehend schließen.
- Warnung erneut öffnen: Öffnen Sie zuvor geschlossene Warnungen erneut, wenn sich die Umstände ändern.
Kündigungsgründe:
- Fix gestartet: Das Team arbeitet aktiv an der Behebung.
- Keine Bandbreite: Das Problem wird anerkannt, kann aber derzeit nicht behoben werden.
- Tolerierbares Risiko: Die Sicherheitsanfälligkeit stellt in diesem Zusammenhang kein erhebliches Risiko dar.
- Ungenau: Warnung ist ein falsch positives Ergebnis.
GitHub Advanced Security-Integrationsfunktion
GitHub Dependabot ist eine Kernkomponente von GitHub Advanced Security, der umfassenden Sicherheitsplattform von GitHub, die Sicherheitsfeatures auf Unternehmensniveau zum Schutz Ihrer Software-Lieferkette bereitstellt.
Erweiterte Sicherheitsfeatures
Integrierte Sicherheitsfunktionen:
- Abhängigkeitsscan: Dependabot überprüft automatisch Abhängigkeiten nach bekannten Sicherheitsrisiken mithilfe der GitHub Advisory Database und branchenspezifischen Sicherheitsrisikodatenbanken.
- Geheimes Scannen: Erkennt versehentlich zugesicherte geheime Schlüssel, Token und Anmeldeinformationen im Repositorycode und -verlauf.
- Codescan: Verwendet CodeQL und andere Analysemodule, um Sicherheitsrisiken und Codierungsfehler im Quellcode zu finden.
- Sicherheitsübersicht: Bietet organisationsweite Einblicke in Sicherheitswarnungen, Sicherheitsrisiken und Wartungsstatus.
- Lieferkettensicherheit: Abhängigkeitsdiagramm, Abhängigkeitsüberprüfung und SBOM-Generierung für umfassende Sichtbarkeit der Lieferkette.
Lizenzierung und Verfügbarkeit
Erweiterter Sicherheitszugriff:
- Öffentliche Repositorys: Alle GitHub Advanced Security-Features sind kostenlos in öffentlichen Repositorys verfügbar.
- Private Repositorys: Erfordert gitHub Advanced Security-Lizenz (enthalten in GitHub Enterprise Cloud und GitHub Enterprise Server).
- GitHub Free/Team: Dependabot-Warnungen und -Sicherheitsupdates sind verfügbar, Code- und Geheimnis-Scans erfordern jedoch Advanced Security-Lizenzierung.
Dashboard "Sicherheitsübersicht"
Die Sicherheitsübersicht bietet sichtbarkeit auf Organisationsebene:
Sicherheitsmetriken der Organisation:
- Warnungstrends: Anzeige von Sicherheitshinweis-Trends in allen Repositorys über die Zeit hinweg.
- Risikobewertung: Identifizieren Sie Repositorys mit dem höchsten Sicherheitsrisiko basierend auf kritischen und hochgradigen Warnmeldungen.
- Teamabdeckung: Überwachen Sie, welche Teams Sicherheitsfeatures aktiviert haben, und verfolgen Sie den Fortschritt der Korrekturen.
- Compliance-Bericht: Generieren Sie Berichte für Sicherheitscompliance- und Auditanforderungen.
Übersicht über die Zugriffssicherheit:
- Navigieren Sie zu Ihrer Organisation auf GitHub.
- Klicken Sie auf die Registerkarte Sicherheit.
- Überprüfen Sie organisationsweite Sicherheitsmetriken, Warnungsanzahlen und Trends.
- Führen Sie eine vertiefte Analyse für bestimmte Repositories oder Alarmtypen durch, um eine detaillierte Untersuchung vorzunehmen.
Aktivieren der erweiterten Sicherheit
Für Organisationsbesitzer:
- Navigieren Sie zu den Organisationseinstellungen.
- Klicken Sie auf Codesicherheit und -analyse.
- Aktivieren Sie GitHub Advanced Security für private Repositorys.
- Konfigurieren von Standardeinstellungen für:
- Abhängigkeitsdiagramm (automatisch aktiviert).
- Dependabot-Warnungen.
- Sicherheitsupdates von Dependabot.
- Geheimes Scannen.
- Codeüberprüfung (erfordert Workflowkonfiguration).
Aktivierung auf Repositoryebene:
Einzelne Repositorys können erweiterte Sicherheitsfeatures aktivieren oder deaktivieren:
- Navigieren Sie zu Repositoryeinstellungen.
- Klicken Sie auf Codesicherheit und -analyse.
- Aktivieren Sie die gewünschten Sicherheitsfeatures:
- Abhängigkeitsdiagramm: Erforderlich für die Funktion "Dependabot".
- Dependabot-Warnungen: Sicherheitsrisikobenachrichtigungen.
- Sicherheitsupdates von Dependabot: Automatische Pull-Anfragen zur Behebung von Sicherheitslücken.
- Geheimes Scannen: Erkennung von Anmeldeinformationslecks.
- Codescan: Statische Anwendungssicherheitstests (SAST).
Integration mit Entwicklungsworkflows
GitHub Advanced Security lässt sich nahtlos in Entwicklungsprozesse integrieren:
Integration von Pull-Anforderungen:
- Abhängigkeitsüberprüfung: Überprüft Abhängigkeitsänderungen in Pullanforderungen automatisch und hebt neue Sicherheitsrisiken hervor, die durch Abhängigkeitsupdates eingeführt wurden.
- Sicherheitsüberprüfungen: Codescans und geheime Überprüfungen werden automatisch bei Pullanforderungen ausgeführt, und es werden Zusammenführungen blockiert, wenn wichtige Probleme gefunden werden.
- Erforderliche Überprüfungen: Konfigurieren Sie Branchschutzregeln, um für Pull Requests mit Sicherheitswarnungen die Genehmigung des Sicherheitsteams zu erfordern.
Sicherheitsrichtlinien:
- SECURITY.md: Definieren Sie Richtlinien zur Offenlegung von Sicherheitsrisiken und Sicherheitskontaktinformationen.
- Code-Eigentümer: Weisen Sie Mitglieder des Sicherheitsteams als Code-Eigentümer für Abhängigkeitsdateien zu (package.json, requirements.txt, pom.xml).
- Branchschutz: Erfordern Sie Statusprüfungen für Sicherheits-Scans, bevor Zusammenführungen zugelassen werden.
Überwachung und Compliance:
- Überwachungsprotokoll: Verfolgen Sie alle sicherheitsbezogenen Aktionen, einschließlich Warnungsentlassungen, Featureaktivierung und Zugriffsänderungen.
- Sicherheitsrichtlinien: Erzwingen Sie organisationsweite Sicherheitsstandards für alle Repositorys.
- Complianceintegration: Exportieren von Sicherheitsdaten für SOC 2, ISO 27001 und andere Compliance-Frameworks.
GitHub Advanced Security bietet Schutz auf Unternehmensniveau für Ihre Software-Lieferkette, wobei Dependabot als Grundlage für die Abhängigkeitssicherheitsverwaltung fungiert. Der integrierte Ansatz der Plattform sorgt für umfassende Erkennung von Sicherheitsrisiken, automatisierte Wartung und organisationsweite Sicherheitssicht.
GitHub Dependabot bietet umfassende, automatisierte Abhängigkeitssicherheitsverwaltung, die direkt in GitHub-Workflows integriert ist. Durch Aktivierung von Warnungen, Sicherheitsupdates und Versionsupdates können Entwicklungsteams Sicherheitsrisiken proaktiv beheben und aktuelle Abhängigkeiten mit minimalem manuellen Aufwand verwalten. In der nächsten Lektion wird erläutert, wie Sie Software Composition Analysis-Prüfungen in CI/CD-Pipelines über die integrierten Funktionen von GitHub hinaus integrieren.