Skip to main content

Enterprise Server 3.16 ist derzeit als Release Candidate verfügbar.

Informationen zur Lieferkettensicherheit

Mit GitHub kannst du deine Lieferkette absichern – vom Verstehen der Abhängigkeiten in deiner Umgebung über die Kenntnis der Sicherheitsrisiken dieser Abhängigkeiten bis zu deren Patchen.

Informationen zur Lieferkettensicherheit auf GitHub

Beim Entwickeln eines Softwareprojekts nutzen Sie wahrscheinlich andere Software, um Ihre Anwendung zu erstellen und auszuführen, z. B. Open-Source-Bibliotheken, Frameworks oder andere Tools. Diese Ressourcen werden zusammen als „Abhängigkeiten“ bezeichnet, da das ordnungsgemäße Funktionieren Ihres Projekts von ihnen abhängt. Ihr Projekt könnte sich Hunderte dieser Abhängigkeiten aufweisen, die Ihre sogenannte „Lieferkette“ bilden.

Ihre Lieferkette kann ein Sicherheitsproblem darstellen. Wenn bei einer Ihrer Abhängigkeiten ein bekanntes Sicherheitsrisiko oder ein Fehler besteht, können böswillige Akteure diese Schwachstelle ausnutzen, um z. B. bösartigen Code („Schadsoftware“) einzuschleusen, vertrauliche Daten zu stehlen oder eine sonstige Unterbrechung ihres Projekts zu verursachen. Diese Art der Bedrohung wird als „Lieferkettenangriff“ bezeichnet. Anfällige Abhängigkeiten in Ihrer Lieferkette kompromittieren die Sicherheit Ihres eigenen Projekts, und gefährden auch Ihre Benutzer.

Eine der wichtigsten Maßnahmen, die Sie zum Schutz Ihrer Lieferkette ergreifen können, ist das Patchen von anfälligen Abhängigkeiten und Ersetzen von Schadsoftware.

Du fügst Abhängigkeiten direkt deiner Lieferkette hinzu, wenn du sie in einer Manifest- oder Sperrdatei angibst. Abhängigkeiten können aber auch transitiv eingeschlossen werden. Dies bedeutet, dass, auch wenn du eine bestimmte Abhängigkeit nicht angibst, eine deiner Abhängigkeiten diese jedoch verwendet, du ebenfalls von dieser Abhängigkeit abhängig bist.

GitHub bietet eine Reihe von Features, mit deren Hilfe du die Abhängigkeiten in deiner Umgebung verstehen, Schwachstellen in diesen Abhängigkeiten ermitteln und diese beheben kannst.

Die Lieferkettenfeatures in GitHub sind die folgenden:

  • Abhängigkeitsdiagramm
  • Abhängigkeitsüberprüfung
  • Dependabot alerts
  • Dependabot updates
    • Dependabot security updates
    • Dependabot version updates

Das Abhängigkeitsdiagramm ist von zentraler Bedeutung für die Lieferkettensicherheit. Es zeigt alle Upstreamabhängigkeiten eines Repositorys oder Pakets sowie alle öffentlichen Downstreamelemente, die von diesem Repository bzw. Paket abhängig sind. Im Abhängigkeitsdiagramm für das Repository kannst du die Abhängigkeiten deines Repositorys sowie einige der Eigenschaften dieser Abhängigkeiten sehen, z. B. Informationen zu Sicherheitsrisiken.

Andere Lieferkettenfeatures auf GitHub nutzen die Informationen aus dem Abhängigkeitsdiagramm.

  • Die Abhängigkeitsüberprüfung verwendet das Abhängigkeitsdiagramm, um Änderungen bei Abhängigkeiten zu erkennen und Ihnen dabei zu helfen, beim Überprüfen von Pull Requests die Auswirkungen dieser Änderungen auf die Sicherheit zu verstehen.
  • Dependabot gleicht die vom Abhängigkeitsdiagramm bereitgestellten Abhängigkeitsdaten mit der in GitHub Advisory Database veröffentlichten Liste bekannter Sicherheitsrisiken ab, überprüft deine Abhängigkeiten und generiert Dependabot alerts, wenn ein potenzielles Sicherheitsrisiko erkannt wurde.
  • Dependabot security updates verwenden das Abhängigkeitsdiagramm und Dependabot alerts, um dich beim Aktualisieren von Abhängigkeiten mit bekannten Sicherheitsrisiken in deinem Repository zu unterstützen.

Dependabot version updates verwenden nicht das Abhängigkeitsdiagramm, sondern die semantische Versionierung von Abhängigkeiten. Dependabot version updates hilft dir dabei, deine Abhängigkeiten auf dem jeweils aktuellen Stand zu halten, auch wenn keine Sicherheitsrisiken vorliegen.

Leitfäden mit bewährten Methoden zur Sicherheit der gesamten Lieferkette, einschließlich des Schutzes von persönlichen Konten, Code und Prozessen, findest du unter Sichern einer End-to-End-Lieferkette.

Funktionsübersicht

Was ist das Abhängigkeitsdiagramm?

Zum Generieren des Abhängigkeitsdiagramms überprüft GitHub die expliziten, im Manifest und in Sperrdateien deklarierten Abhängigkeiten eines Repositorys. Wenn das Abhängigkeitsdiagramm aktiviert ist, parst es automatisch alle bekannten Paketmanifestdateien im Repository und verwendet diese, um ein Diagramm mit den Namen und Versionen bekannter Abhängigkeiten zu erstellen.

  • Das Abhängigkeitsdiagramm enthält Informationen zu deinen direkten und transitiven Abhängigkeiten.
  • Das Abhängigkeitsdiagramm wird automatisch aktualisiert, wenn du einen Commit an GitHub pushst, der eine unterstützte Manifest- oder Sperrdatei für den Standardbranch ändert oder hinzufügt, und wenn jemand eine Änderung an das Repository einer deiner Abhängigkeiten pusht.
  • Du kannst das Abhängigkeitsdiagramm anzeigen, indem du die Hauptseite des Repositorys in GitHub öffnest und zur Registerkarte Insights navigierst.
  • Wenn du mindestens Lesezugriff auf das Repository hast, kannst du das Abhängigkeitsdiagramm für das Repository als SPDX-kompatible Softwarestückliste (Bill of Materials, SBOM) über die GitHub-Benutzeroberfläche oder die GitHub-REST-API exportieren. Weitere Informationen finden Sie unter Exportieren einer Software-Stückliste (Software Bill of Materials, SBOM) für dein Repository.

Darüber hinaus können Sie mit der Abhängigkeitsübermittlungs-API auch dann Abhängigkeiten aus dem Paket-Manager oder Ökosystem Ihrer Wahl übermitteln, wenn das Ökosystem vom Abhängigkeitsdiagramm für die Analyse von Manifest- oder gesperrten Dateien nicht unterstützt wird. Abhängigkeiten, die mit der Abhängigkeitsübermittlungs-API an ein Projekt übermittelt wurden, zeigen an, welche Erkennung für die Übermittlung verwendet wurde und wann die Übermittlung erfolgt ist. Weitere Informationen zur Abhängigkeitsübermittlungs-API findest du unter Verwenden der Abhängigkeitsübermittlungs-API.

Weitere Informationen zum Abhängigkeitsdiagramm findest du unter Informationen zum Abhängigkeitsdiagramm.

Was ist die Abhängigkeitsüberprüfung?

Die Abhängigkeitsüberprüfung hilft Reviewer*innen und Mitwirkenden dabei, Änderungen bei Abhängigkeiten und deren Auswirkungen auf die Sicherheit in allen Pull Requests zu verstehen.

  • Die Abhängigkeitsüberprüfung teilt Ihnen mit, welche Abhängigkeiten in einem Pull Request hinzugefügt, entfernt oder aktualisiert wurden. Du kannst das Veröffentlichungsdatum, die Beliebtheit von Abhängigkeiten und Informationen zu Sicherheitsrisiken verwenden, um zu entscheiden, ob du die Änderung annehmen möchtest.
  • Du kannst die Abhängigkeitsüberprüfung für einen Pull Request einsehen, indem du auf der Registerkarte Geänderte Dateien das Rich-Diff anzeigst.

Weitere Informationen zur Abhängigkeitsüberprüfung findest du unter Informationen zur Abhängigkeitsüberprüfung.

Was ist Dependabot?

Dependabot hält deine Abhängigkeiten auf dem jeweils aktuellen Stand, indem du über Sicherheitsrisiken bei deinen Abhängigkeiten informiert wirst und automatisch Pull Requests zum Upgraden deiner Abhängigkeiten auf die nächste verfügbare sichere Version geöffnet werden, wenn eine Dependabot-Warnung ausgelöst wird, oder zum Upgraden auf die aktuelle Version, wenn ein Release veröffentlicht wird.

Der Begriff „Dependabot“ beschreibt die folgenden Features:

  • Dependabot alerts: Hierbei handelt es sich um eine Benachrichtigung, die auf der Registerkarte Security sowie im Abhängigkeitsdiagramm des Repositorys angezeigt wird. Die Warnung enthält einen Link zur betroffenen Datei im Projekt sowie Informationen zu einer Version, bei der das Problem behoben wurde.
  • Dependabot updates:
    • Dependabot security updates: Hierbei handelt es sich um Updates, die ausgelöst werden, damit deine Abhängigkeiten auf eine sichere Version upgegradet werden, sobald eine Warnung ausgelöst wird.
    • Dependabot version updates: Hierbei handelt es sich um geplante Updates, mit denen deine Abhängigkeiten auf dem neuesten Stand (aktuelle Version) gehalten werden.

Dependabot security updates und Dependabot version updates benötigen GitHub Actions, um auf GitHub Enterprise Server ausgeführt werden zu können. Für Dependabot alerts wird GitHub Actions nicht benötigt. Weitere Informationen finden Sie unter Aktivieren von Dependabot für dein Unternehmen.

Dependabot security updates kann anfällige Abhängigkeiten in GitHub Actions beheben. Wenn Sicherheitsupdates aktiviert sind, löst Dependabot automatisch einen Pull Request aus, um anfällige GitHub Actions in Workflows auf die gepatchte Mindestversion zu aktualisieren. Weitere Informationen findest du unter Informationen zu Dependabot-Sicherheitsupdates.

Was sind Dependabot-Warnungen?

Dependabot alerts hebt Repositories hervor, die von einer neu entdeckten Sicherheitslücke betroffen sind, basierend auf dem Abhängigkeitsdiagramm und der GitHub Advisory Database, die Hinweise auf bekannte Sicherheitsrisiken enthält.

  • Dependabot führt eine Überprüfung zur Erkennung von unsicheren Abhängigkeiten durch und sendet Dependabot alerts, wenn:
  • Dependabot alerts werden auf der Registerkarte Sicherheit für das Repository sowie im Abhängigkeitsdiagramm des Repositorys angezeigt. Die Warnung enthält einen Link zur betroffenen Datei im Projekt sowie Informationen zu einer Version, bei der das Problem behoben wurde.

Weitere Informationen finden Sie unter Informationen zu Dependabot-Warnungen.

Was sind Dependabot-Updates?

Es gibt zwei Arten von Dependabot updates: Dependabot-Sicherheitsupdates und -Versionsupdates. Dependabot generiert zwar in beiden Fällen automatische Pull Requests zum Aktualisieren deiner Abhängigkeiten, es gibt jedoch einige Unterschiede.

Dependabot security updates:

  • Werden durch eine Dependabot-Warnung ausgelöst
  • Aktualisieren Abhängigkeiten auf die niedrigste Version, in der ein bekanntes Sicherheitsrisiko beseitigt wurde
  • Werden für die Ökosysteme unterstützt, die das Abhängigkeitsdiagramm unterstützt
  • Erfordert keine Konfigurationsdatei. Du kannst jedoch eine verwenden, um das Standardverhalten außer Kraft zu setzen.

Dependabot version updates:

  • Erfordert eine Konfigurationsdatei
  • Werden basierend auf einem von Ihnen konfigurierten Zeitplan ausgeführt
  • Aktualisieren Abhängigkeiten auf die aktuellste Version für die Konfiguration
  • Werden für eine andere Gruppe von Ökosystemen unterstützt

Weitere Informationen zu Dependabot updates findest du unter Informationen zu Dependabot-Sicherheitsupdates und Informationen zu Updates von Dependabot-Versionen.

Verfügbarkeit von Funktionen