Bewährte Methoden zum Verwalten von Abhängigkeiten
Damit Abhängigkeiten aktuell bleiben, muss für eine sichere Softwareumgebung gesorgt werden. Hier sind einige Empfehlungen dafür:
Verwenden von sicherheitsorientierten Tools für die Verwaltung von Abhängigkeiten
- Verwende Tools, die deine Abhängigkeiten auf Schwachstellen überprüfen und automatisch Aktualisierungen vorschlagen, und richte sie ein.
- Sorge dafür, dass diese Tools zur kontinuierlichen Überwachung und Aktualisierung in deine CI/CD-Pipeline integriert werden.
- Richte deine Prozesse so ein, dass sie der semantischen Versionierung folgen, um Breaking Changes zu vermeiden.
Durchführen regelmäßiger Überprüfungen und Überwachungen auf Sicherheitsrisiken
- Plane regelmäßige Überwachungen und Überprüfungen auf Abhängigkeiten, um veraltete oder anfällige Abhängigkeiten zu identifizieren.
Automatisieren der Sicherheitspatchverwaltung
- Konfiguriere deine Tools zur Verwaltung von Abhängigkeiten so, dass sie automatisch Sicherheitspatches anwenden.
- Richte automatische Pull Requests für kritische Sicherheitsupdates ein, damit diese schnell geprüft und zusammengeführt werden können.
Erzwingen von Richtlinien für die Verwendung von Abhängigkeiten
- Implementiere Richtlinien, die die Verwendung von sicheren Versionen von Abhängigkeiten erzwingen.
- Verwende Tools, die das Zusammenführen von Pull Requests blockieren können, wenn diese Sicherheitslücken enthalten oder anfällige Abhängigkeiten nicht aktualisieren.
Integrieren von Sicherheitstests in CI/CD
- Integriere Sicherheitstesttools in deine CI/CD-Pipeline.
- Sorge dafür, dass Abhängigkeitsupdates automatisch auf die Einhaltung von Sicherheitsvorschriften getestet werden.
Verwenden von Sperrdateien und Abhängigkeitsanheftungen
- Verwende Sperrdateien (z. B.,
package-lock.json
,yarn.lock
,Pipfile.lock
), um Abhängigkeiten an bekanntermaßen sichere Versionen zu heften. - Aktualisiere und überprüfe diese Sperrdateien regelmäßig, um sicherzustellen, dass die Abhängigkeiten aktuell sind und keine unerwünschten Sicherheitsprobleme enthalten.
Überwachen von Sicherheitsempfehlungen
- Abonniere Sicherheitshinweise für die von dir verwendeten Sprachen und Frameworks.
- Automatisiere die Integration von Empfehlungen in deinen Entwicklungsworkflow, um über neue Sicherheitsrisiken informiert zu bleiben.
- Achte auf die Dashboards, die von deinen Tools zur Verwaltung von Abhängigkeiten bereitgestellt werden.
- Achte auf kritische Updates, insbesondere auf Sicherheitspatches, und priorisiere sie.
Versionskontrolle und Change Management
- Verfolge Änderungen an Abhängigkeiten in der Versionskontrolle (z. B. durch automatische Pull Requests).
- Führe regelmäßige Codeüberprüfungen durch, um sicherzustellen, dass durch Updates keine neuen Sicherheitsrisiken entstehen.
Schulung und Sensibilisierung
- Kläre deine Entwicklungs- und Betriebsteams darüber auf, wie wichtig es ist, Abhängigkeiten sicher und aktuell zu halten.
- Biete Schulungen zur konsequenten Nutzung von Sicherheitstools und von Tools zur Verwaltung von Abhängigkeiten an.
Plan zur Reaktion auf Sicherheitsrisiken
- Halte einen übersichtlichen Plan zur Reaktion auf Vorfälle für den Fall bereit, dass Sicherheitsrisiken in Abhängigkeiten erkannt werden.
- Sorge dafür, dass das Team weiß, wie es Sicherheitsprobleme schnell angehen und beheben kann.
Wenn du diese Methoden anwendest, kannst du das Risiko, das von veralteten und anfälligen Abhängigkeiten ausgeht, erheblich reduzieren und für eine sicherere Umgebung sorgen.
So kann GitHub helfen
GitHub bietet eine Reihe von Sicherheitsfeatures, mit denen du die Sicherheit deiner Codebasen gewährleisten kannst:
Abhängigkeitsdiagramm
- Stellt eine tabellarische Darstellung der Abhängigkeiten deines Projekts bereit.
- Anhand des Diagramms kannst du dir einen Überblick über die Abhängigkeiten deines Projekts verschaffen. GitHub verwendet es, um anfällige Abhängigkeiten zu identifizieren.
- Weitere Informationen finden Sie unter Informationen zum Abhängigkeitsdiagramm.
Abhängigkeitsüberprüfung
-
Ist in deine CI/CD-Pipeline integriert und ermöglicht es dir, bei jeder Pull Request unsichere Abhängigkeiten in deinem Code zu erkennen. Weitere Informationen finden Sie unter Informationen zur Abhängigkeitsüberprüfung.
-
Bei der Abhängigkeitsüberprüfungsaktion handelt es sich um ein Tool, das das Zusammenführen von Pull Requests blockieren kann, wenn diese Sicherheitslücken enthalten oder anfällige Abhängigkeiten nicht aktualisieren. Weitere Informationen findest du unter „Die Abhängigkeitsüberprüfungsaktion“ unter Informationen zur Abhängigkeitsüberprüfung.
Dependabot
-
Dependabot alerts: Dependabot durchsucht deine Abhängigkeiten nach bekannten Sicherheitsrisiken und erstellt automatisch Warnungen, wenn Sicherheitsrisiken im Repository gefunden werden. Weitere Informationen finden Sie unter Informationen zu Dependabot-Warnungen.
-
Dependabot security updates: Öffnet automatisch Pull Requests, um anfällige Abhängigkeiten auf Versionen zu aktualisieren, die keine bekannten Sicherheitsrisiken aufweisen. So kannst du Korrekturen schnell überprüfen und zusammenführen. Weitere Informationen finden Sie unter Informationen zu Dependabot-Sicherheitsupdates.
-
Dependabot version updates: Kann auch so konfiguriert werden, dass automatisch Pull Requests geöffnet werden, um deine Abhängigkeiten regelmäßig auf die neuesten Versionen zu aktualisieren, damit du immer aktuelle Pakete verwendest. Weitere Informationen findest du unter Informationen zu Updates von Dependabot-Versionen.
-
Gruppierte Updates: Damit kannst du Pull Requests für Dependabot updates einfacher überprüfen und bereitstellen, da mehrere Updates in einem einzigen Pull Request gruppiert werden. Informationen hierzu findest du unter Informationen zu gruppierten Sicherheitsupdates und Beispiele unter Optimieren der Erstellung von Pull Requests für Versionsupdates von Dependabot
Sicherheitsempfehlungen
-
Privater Bericht zu Sicherheitsrisiken: Ermöglicht Maintainern, Sicherheitsempfehlungen für ihre Repositorys privat zu erörtern, zu korrigieren und zu veröffentlichen. Weitere Informationen findest du unter Privates Melden eines Sicherheitsrisikos.
-
GitHub Advisory Database: Eine Datenbank mit Sicherheitsempfehlungen, die von Dependabot verwendet wird, um Sicherheitsrisiken in deinen Abhängigkeiten zu identifizieren. Weitere Informationen finden Sie unter Informationen zu GitHub Advisory Database.
Sicherheitsübersicht
- Auf der Seite mit der Sicherheitsübersicht kannst du die Dashboards im Auge behalten, die Einblicke in die Sicherheitslandschaft und den Fortschritt deiner Organisation oder deines Unternehmens bieten. Sie hilft Benutzern, Repositorys zu identifizieren, die Aufmerksamkeit benötigen, und den Zustand ihres Anwendungssicherheitsprogramms zu überwachen. Weitere Informationen findest du unter Informationen zur Sicherheitsübersicht.
Sicherheitsrichtlinie
- Du kannst in deinem Repository die Datei
SECURITY.md
erstellen, in der die Sicherheitsrichtlinien und Verfahren zur Meldung und Behandlung von Sicherheitsproblemen beschrieben werden. Weitere Informationen finden Sie unter Hinzufügen einer Sicherheitsrichtlinie für dein Repository.
Weitere Leitfäden zur Verwendung der Sicherheitsfeatures von GitHub in der gesamten Lieferkette findest du unter Sichern einer End-to-End-Lieferkette.