Skip to main content

Informationen zur Lieferkettensicherheit

          GitHub Hilft Ihnen, Ihre Lieferkette zu schützen, von der Kenntnis der Abhängigkeiten in Ihrer Umgebung bis hin zu Sicherheitsrisiken in diesen Abhängigkeiten und dem Patchen dieser Abhängigkeiten.

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, die Ihnen helfen, die Abhängigkeiten in Ihrer Umgebung zu verstehen, über Sicherheitsrisiken in diesen Abhängigkeiten zu wissen und zu patchen.

Die Features der Lieferkette auf GitHub sind: * Abhängigkeitsdiagramm * Abhängigkeitsüberprüfung

  • Dependabot alerts
    • Dependabot malware alerts
  • Dependabot updates
    • Dependabot security updates
    • Dependabot version updates
  •         **Unveränderliche Versionen**
    
  •         **Artefaktnachweise**
    

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. Das Abhängigkeitsdiagramm deines Repositorys verfolgt und zeigt seine Abhängigkeiten und einige ihrer Eigenschaften an, z. B. Sicherheitsrisikoinformationen.

Die folgenden Merkmale der Lieferkette auf GitHub basieren auf den Informationen, die vom Abhängigkeitsdiagramm bereitgestellt werden.

  • 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 vergleicht die von dem Abhängigkeitsdiagramm bereitgestellten Abhängigkeitsdaten mit der Liste der im GitHub Advisory Database veröffentlichten Empfehlungen, prüft Ihre Abhängigkeiten und generiert Dependabot alerts, wenn eine potenzielle Sicherheitsanfälligkeit erkannt wird.
    
  •         Dependabot security updates verwenden Sie das Abhängigkeitsdiagramm und Dependabot alerts helfen Ihnen, Abhängigkeiten mit bekannten Sicherheitsrisiken in Ihrem Repository zu aktualisieren.
    
            Dependabot version updates Verwenden Sie nicht das Abhängigkeitsdiagramm, und verwenden Sie stattdessen die semantische Versionsverwaltung von Abhängigkeiten. 
            Dependabot version updates Helfen Sie, Ihre Abhängigkeiten auf dem neuesten Stand zu halten, auch wenn sie keine Sicherheitsrisiken haben.
    

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

Funktionsübersicht

Was ist das Abhängigkeitsdiagramm?

Um das Abhängigkeitsdiagramm zu generieren, schaut GitHub sich die im Manifest und in den Sperrdateien deklarierten expliziten Abhängigkeiten eines Repositorys an. 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 Sie einen Commit an GitHub übertragen, der Änderungen oder eine unterstützte Manifest- oder Sperrdatei zur Standardverzweigung hinzufügt, und wenn jemand eine Änderung an das Repository einer Ihrer Abhängigkeiten überträgt.
  • Das Abhängigkeitsdiagramm kann auch Informationen enthalten, die Sie angeben, während Ihr Projekt GitHub Actions erstellt wird. Einige Paketökosysteme binden die meisten transitiven Abhängigkeiten zur Buildzeit ein, sodass das Übermitteln von Abhängigkeitsinformationen, während der Build stattfindet, eine umfassendere Ansicht der Lieferkette ermöglicht.
  • Sie können das Abhängigkeitsdiagramm anzeigen, indem Sie die Hauptseite des Repositorys öffnen GitHubund zur Registerkarte "Insights " navigieren.
  • 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.

Du kannst die Abhängigkeitsübermittlungs-API verwenden, um Abhängigkeiten aus dem Paketmanager oder der Infrastruktur deiner Wahl zu senden, auch wenn das Ökosystem nicht vom dependency graph für die Manifest- oder Lock-Datei-Analyse unterstützt wird. Abhängigkeiten, die mithilfe der Abhängigkeitsübermittlungs-API an ein Projekt übermittelt wurden, zeigen an, welcher Detektor für ihre Übermittlung verwendet wurde und wann sie übermittelt wurden. 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 Ihre Abhängigkeiten auf dem neuesten Stand, indem Sie über alle Sicherheitsrisiken in Ihren Abhängigkeiten informiert werden und automatisch Pull-Requests geöffnet werden, um Ihre Abhängigkeiten zu aktualisieren. 
          Dependabot Pullanforderungen zielen auf die nächste verfügbare sichere Version ab, wenn eine Dependabot Warnung ausgelöst wird, oder auf die neueste Version, wenn eine Version veröffentlicht wird.

Der Begriff "Dependabot" umfasst die folgenden Features: * Dependabot alerts: Zeigt die Benachrichtigung auf der Security and quality Registerkarte für das Repository und im Abhängigkeitsdiagramm des Repositorys an. 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: Ausgelöste Updates zum Aktualisieren Ihrer Abhängigkeiten auf eine sichere Version, wenn eine Warnung ausgelöst wird. * Dependabot version updates: Geplante Updates, um Ihre Abhängigkeiten mit der neuesten Version auf dem neuesten Stand zu halten.

          Pullanforderungen, die durch Dependabot geöffnet werden, können Workflows auslösen, die Aktionen ausführen. Weitere Informationen finden Sie unter [AUTOTITLE](/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions).

          Standardmäßig:
  • Wenn GitHub Actions für das Repository aktiviert ist, wird GitHubDependabot updates auf GitHub Actions ausgeführt.

  • Wenn GitHub Actions für das Repository nicht aktiviert ist, generiert GitHubDependabot alerts mithilfe der integrierten Dependabot Anwendung.

Weitere Informationen finden Sie unter Informationen zu Dependabot über GitHub Actions-Runner.

          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 finden Sie unter [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates).

Was sind Dependabot-Warnungen?

          Dependabot alerts Heben Sie Repositorys hervor, die von einer neu entdeckten Sicherheitsanfälligkeit basierend auf dem Abhängigkeitsdiagramm und dem GitHub Advisory Database, das Empfehlungen für bekannte Sicherheitsrisiken enthält.

* Dependabot führt einen Scan durch, um unsichere Abhängigkeiten zu erkennen und Dependabot alerts zu senden, wenn:

  • Ein neuer Hinweis wird zu GitHub Advisory Database
  • Das Abhängigkeitsdiagramm für die Repositoryänderungen
  •         Dependabot alerts werden auf der **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** Registerkarte für das Repository und 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 malware alerts?
          Dependabot malware alerts Kennzeichnen bösartiger Abhängigkeiten in Ihren Repositorys. 
          Dependabot generiert Warnungen mit dem GitHub Advisory Database, das Empfehlungen für bekannte Sicherheitsrisiken und bösartige Pakete enthält.

          Dependabot sucht nach bösartigen Paketen und sendet Benachrichtigungen, wenn:
  • Ein neuer Hinweis wird zu dem GitHub Advisory Database
  • Das Abhängigkeitsgraph des Repositorys ändert sich.

Sie können malware alerts für ein Repository anzeigen:

  • Aus der Security and quality Registerkarte
  • Im Abhängigkeitsdiagramm

Jede Warnung enthält einen Link zur betroffenen Datei im Projekt sowie die Patchversionsnummer für das Paket (sofern verfügbar).

Was sind Dependabot-Updates?

Es gibt zwei Arten von Dependabot updates: Dependabot_Sicherheitsupdates_ und Versionsupdates . Dependabot generiert automatische Pullanforderungen, um Ihre Abhängigkeiten in beiden Fällen zu aktualisieren, aber es gibt mehrere Unterschiede.

          Dependabot security updates:
  • Ausgelöst durch eine Dependabot Warnung

  • 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 Dependabot updatesfinden Sie unter Informationen zu Dependabot-Sicherheitsupdates und Informationen zu Updates von Dependabot-Versionen.

Was sind unveränderliche Versionen?

Repositorys können unveränderliche Versionen aktivieren, um zu verhindern, dass die Objekte und das zugehörige Git-Tag einer Version nach der Veröffentlichung geändert werden. Dadurch wird das Risiko von Supply Chain-Angriffen reduziert, indem Angreifer daran gehindert werden, Sicherheitsrisiken in die von Ihnen verbrauchten Versionen einzufügen. Dies bedeutet auch, dass Projekte, die auf bestimmten Versionen basieren, weniger wahrscheinlich fehlschlagen.

Durch das Erstellen einer unveränderlichen Version wird automatisch ein Nachweis für die Version generiert. Sie können diesen Nachweis verwenden, um sicherzustellen, dass die Freigabe und ihre Artefakte den veröffentlichten Informationen entsprechen.

Was sind Artefaktnachweise?

Softwareanbieter können Nachweise für Software erstellen, die mit GitHub Actions. Bescheinigungen sind kryptografisch signierte Behauptungen, die die Herkunft des Builds (der Quellcode und die Workflow-Ausführung, die verwendet wurden, um ihn zu erstellen) oder die zugehörige Software-Stückliste (SBOM) festlegen.

Sie können die Sicherheit der Lieferkette erhöhen, indem Sie Nachweise für Ihre Abhängigkeiten überprüfen. Obwohl Nachweise keine Sicherheit garantieren, erhalten Sie Informationen darüber, wo und wie Software erstellt wurde, damit Sie sicher sein können, dass Ihre Abhängigkeiten nicht manipuliert wurden. Sie können Bereitstellungen mit einem Tool wie dem Kubernetes-Zulassungscontroller absichern, um zu verhindern, dass nicht getestete Builds bereitgestellt werden.

Wenn Sie GitHub Actions verwenden, um Nachweise für die eigenen Builds Ihrer Organisation zu generieren, werden die erstellten Artefakte automatisch in linked artifacts page hochgeladen. Mit dieser Plattform können Sie die Speicher- und Bereitstellungsdatensätze aller verknüpften Artefakte anzeigen, sodass Sie den Quellcode und die Workflowausführung finden können, die zum Erstellen eines Artefakts oder Filtern von Sicherheitswarnungen basierend auf dem Bereitstellungskontext verwendet wird.

Verfügbarkeit von Funktionen

Öffentliche Repositorys: * Abhängigkeitsdiagramm: Standardmäßig aktiviert und kann nicht deaktiviert werden * Abhängigkeitsüberprüfung: Standardmäßig aktiviert und kann nicht deaktiviert werden * ** Dependabot alerts:** Standardmäßig nicht aktiviert. GitHub erkennt unsichere Abhängigkeiten und zeigt Informationen im Abhängigkeitsdiagramm an, generiert Dependabot alerts jedoch nicht standardmäßig. Inhaber von Repositories oder Personen mit Administratorzugriff können Dependabot alerts aktivieren. Zudem kannst du Dependabot-Warnungen für alle Repositorys aktivieren oder deaktivieren, die deinem Benutzerkonto oder deiner Organisation gehören. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analysefeatures oder Verwalten von Sicherheits- und Analyseeinstellungen für deine Organisation. * Artefaktnachweise: Verfügbar in allen öffentlichen Repositories, aber Sie müssen in Ihren Build-Workflows explizit Nachweise generieren. Weitere Informationen findest du unter Verwenden von Artefaktnachweisen zur Ermittlung der Herkunft von Builds.

Private Repositorys: * Abhängigkeitsdiagramm: Nicht standardmäßig nicht aktiviert. Das Feature kann von Repositoryadministrator*innen aktiviert werden. Weitere Informationen finden Sie unter Untersuchen der Abhängigkeiten eines Repositorys. * Abhängigkeitsüberprüfung: Verfügbar in privaten Repositories, die im Besitz von Organisationen sind, die GitHub Team oder GitHub Enterprise Cloud verwenden und über eine Lizenz für GitHub Code Security or GitHub Advanced Security verfügen. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security und Untersuchen der Abhängigkeiten eines Repositorys. * ** Dependabot alerts:** Standardmäßig nicht aktiviert. Besitzer privater Repositories oder Personen mit Administratorzugriff können Dependabot alerts aktivieren, indem sie das Abhängigkeitsdiagramm und Dependabot alerts für ihre Repositories aktivieren. Zudem kannst du Dependabot-Warnungen für alle Repositorys aktivieren oder deaktivieren, die deinem Benutzerkonto oder deiner Organisation gehören. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analysefeatures oder Verwalten von Sicherheits- und Analyseeinstellungen für deine Organisation. * Artefaktnachweise: Nur in privaten Repositorys verfügbar auf GitHub Enterprise Cloud.

Alle Repositorytypen: * ** Dependabot security updates:** Standardmäßig nicht aktiviert. Sie können Dependabot security updates für jedes Repository aktivieren, das Dependabot alerts und das Abhängigkeitsdiagramm verwendet. Weitere Informationen zum Aktivieren von Sicherheitsupdates finden Sie unter Konfigurieren von Dependabot-Sicherheitsupdates. * ** Dependabot version updates:** Standardmäßig nicht aktiviert. Personen, die Schreibberechtigungen für ein Repository haben, können Dependabot version updates aktivieren. Weitere Informationen zum Aktivieren von Versionsupdates finden Sie unter Konfigurieren von Dependabot-Versionsupdates. * Unveränderliche Versionen:* Standardmäßig nicht aktiviert. Sie können die Unveränderlichkeit der Freigabe für ein Repository oder eine Organisation aktivieren. Weitere Informationen findest du unter Verhindern von Änderungen an deinen Releases.