Bewährte Verfahren zur Pflege 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**
-
Verwenden Sie Tools, die Ihre Abhängigkeiten auf Schwachstellen überprüfen und automatisch Aktualisierungen vorschlagen, und richten Sie sie ein.
-
Sorgen Sie dafür, dass diese Tools zur kontinuierlichen Überwachung und Aktualisierung in deine CI/CD-Pipeline integriert werden.
-
Richten Sie Ihre Prozesse so ein, dass sie der semantischen Versionierung folgen, um Breaking Changes zu vermeiden.
**Durchführen regelmäßiger Überprüfungen und Überwachungen auf Sicherheitsrisiken** -
Planen Sie regelmäßige Überwachungen und Überprüfungen auf Abhängigkeiten, um veraltete oder anfällige Abhängigkeiten zu identifizieren.
**Automatisieren der Sicherheitspatchverwaltung** -
Konfigurieren Sie Ihre Tools zur Verwaltung von Abhängigkeiten so, dass sie automatisch Sicherheitspatches anwenden.
-
Richten Sie 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** -
Implementieren Sie die Richtlinien, die die Verwendung von sicheren Versionen von Abhängigkeiten erzwingen.
-
Verwenden Sie 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** -
Integrieren Sie Sicherheitstesttools in Ihre CI/CD-Pipeline.
-
Sorgen sie dafür, dass Abhängigkeitsupdates automatisch auf die Einhaltung von Sicherheitsvorschriften getestet werden.
**Verwenden von Sperrdateien und Abhängigkeitsanheftungen** -
Verwenden Sie Sperrdateien (z. B.,
package-lock.json,yarn.lock,Pipfile.lock), um Abhängigkeiten an bekanntermaßen sichere Versionen zu heften. -
Aktualisieren und überprüfen Sie diese Sperrdateien regelmäßig, um sicherzustellen, dass die Abhängigkeiten aktuell sind und keine unerwünschten Sicherheitsprobleme enthalten.
**Überwachen von Sicherheitsempfehlungen** -
Abonnieren Sie Sicherheitshinweise für die von Ihnen verwendeten Sprachen und Frameworks.
-
Automatisieren Sie die Integration von Empfehlungen in deinen Entwicklungsworkflow, um über neue Sicherheitsrisiken informiert zu bleiben.
-
Achten Sie auf die Dashboards, die von Ihren Tools zur Verwaltung von Abhängigkeiten bereitgestellt werden.
-
Achten Sie auf kritische Updates, insbesondere auf Sicherheitspatches, und priorisieren Sie sie.
**Versionskontrolle und Change Management** -
Verfolgen Sie Änderungen an Abhängigkeiten in der Versionskontrolle (z. B. durch automatische Pull Requests).
-
Führen Sie regelmäßige Codeüberprüfungen durch, um sicherzustellen, dass durch Updates keine neuen Sicherheitsrisiken entstehen.
**Bewusstsein und Training** -
Klären Sie Ihre Entwicklungs- und Betriebsteams darüber auf, wie wichtig es ist, Abhängigkeiten sicher und aktuell zu halten.
-
Bieten Sie Schulungen zur konsequenten Nutzung von Sicherheitstools und von Tools zur Verwaltung von Abhängigkeiten an.
**Plan zur Reaktion auf Sicherheitsrisiken** -
Halten Sie einen übersichtlichen Plan zur Reaktion auf Vorfälle für den Fall bereit, dass Sicherheitsrisiken in Abhängigkeiten erkannt werden.
-
Sorgen Sie dafür, dass das Team weiß, wie es Sicherheitsprobleme schnell angehen und beheben kann.
Wenn Sie diese Methoden anwenden, können Sie 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 stellt Sicherheitsfeatures bereit, mit denen Sie Abhängigkeiten verwalten können:
**Abhängigkeitsdiagramm**: Verfolgt Ihre Projektabhängigkeiten und identifiziert Sicherheitsrisiken. Weitere Informationen findest du unter [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph).
**Überprüfung der Abhängigkeit**: Erfasst unsichere Abhängigkeiten in Pullanforderungen, bevor sie zusammengeführt werden. Darüber hinaus können die Abhängigkeitsüberprüfungsaktion Überprüfungen fehlschlagen und bei Bedarf, wenn dies durch Verzweigungsschutzregeln gefordert wird, verhindern, dass Pull-Anforderungen, die Sicherheitslücken einführen, zusammengeführt werden. Weitere Informationen findest du unter [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review).
**Dependabot**: Sucht automatisch nach Sicherheitsrisiken, erstellt Warnungen und öffnet Pullanforderungen, um anfällige oder veraltete Abhängigkeiten zu aktualisieren. Sie können mehrere Updates in einzelne Pullanforderungen gruppieren, um Rezensionen zu optimieren. Weitere Informationen findest du unter [AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).
**GitHub Advisory Database**: Stellt Sicherheitsempfehlungen bereit, die Dependabots Schwachstellenerkennung unterstützen. Siehe [AUTOTITLE](/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database).
**Berichterstellung zu privaten Sicherheitsrisiken**: Ermöglicht Betreuern, Sicherheitsrisikoberichte im Privaten vor der öffentlichen Offenlegung zu empfangen, zu diskutieren und zu beheben.
Sicherheitsübersicht: Zeigt den Sicherheitsstatus Ihrer Organisation mit Dashboards für Risikorepositorys, Warnungstrends und Featureaktivierungsstatus an. Weitere Informationen findest du unter Informationen zur Sicherheitsübersicht.
Eine Anleitung zur End-to-End-Lieferkette finden Sie unter Sichern einer End-to-End-Lieferkette.