Die Ergebnisse der von GitHub gemeldeten Abhängigkeitserkennung unterscheiden sich möglicherweise von den Ergebnissen, die von anderen Tools zurückgegeben werden. Hierfür gibt es gute Gründe, und es ist hilfreich zu verstehen, wie GitHub Abhängigkeiten für dein Projekt bestimmt.
Fehlende oder nicht erkannte Abhängigkeiten
GitHub Generiert und zeigt Abhängigkeitsdaten anders als andere Tools an. Wenn du also ein anderes Tool zur Identifizierung von Abhängigkeiten verwendet hast, werden dir höchstwahrscheinlich andere Ergebnisse angezeigt. Beachte Folgendes:
* GitHub Advisory Database ist eine der Datenquellen, die GitHub verwendet, um anfällige Abhängigkeiten und Schadsoftware zu identifizieren. Es ist eine kostenlose, kuratierte Datenbank von Sicherheitsratgebern für gemeinsame Paketökosysteme auf GitHub. Sie umfasst sowohl Daten, die direkt von GitHub Security Advisories an GitHub gemeldet werden, als auch offizielle Feeds und Community-Quellen. Diese Daten werden überprüft und kuratiert, GitHub um sicherzustellen, dass falsche oder unaktionsfähige Informationen nicht an die Entwicklungscommunity weitergegeben werden. Weitere Informationen finden Sie unter Durchsuchen von Sicherheitsempfehlungen in der GitHub Advisory Database.
- Der Abhängigkeitsgraph analysiert alle bekannten Paketmanifestdateien im Repository eines Benutzers. Für npm wird zum Beispiel die Datei package-lock.json geparst. Es wird ein Graph mit allen Abhängigkeiten des Repositorys und den öffentlichen Abhängigkeiten erstellt. Dies geschieht, wenn du das Abhängigkeitsdiagramm aktivierst und eine Person in den Standardbranch pusht und Änderungen an einem unterstützten Manifestformat vornimmt. Weitere Informationen findest du unter Informationen zum Abhängigkeitsdiagramm und Fehler beim Abhängigkeitsdiagramm beheben.
-
Dependabot scannt jeden Pushvorgang an den Standardzweig, der eine Manifestdatei enthält. Wenn ein neuer Hinweis hinzugefügt wird, werden alle vorhandenen Repositorys überprüft und eine Warnung für jedes betroffene Repository erstellt. Dependabot alerts werden auf Repositoryebene aggregiert, statt eine Benachrichtigung pro Empfehlung zu erstellen. Weitere Informationen finden Sie unter [AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts). -
Dependabot security updates wird ausgelöst, wenn Sie eine Benachrichtigung über eine anfällige Abhängigkeit in Ihrem Repository erhalten. Dependabot Erstellt, sofern möglich, eine Pull-Request in Ihrem Repository, um die anfällige Abhängigkeit auf die minimal erforderliche sichere Version zu aktualisieren, die nötig ist, um die Sicherheitsanfälligkeit zu vermeiden. Weitere Informationen findest du unter [AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates) und [AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-errors). Dependabot überprüft keine Repositorys nach einem Zeitplan, sondern wenn sich etwas ändert. So wird beispielsweise ein Scan ausgelöst, wenn eine neue Abhängigkeit hinzugefügt wird (GitHub sucht bei jedem Push darauf), oder wenn der Datenbankwird. Weitere Informationen finden Sie unter [AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts#detection-of-insecure-dependencies).
Bereich der Warnungsabdeckung
Dependabot alerts informieren Sie über Abhängigkeiten, die zu aktualisieren sind, einschließlich transitiver Abhängigkeiten, bei denen die Version aus einem Manifest oder einem Lockfile bestimmt werden kann.
Dependabot security updates schlägt nur eine Änderung vor, wo Dependabot die Abhängigkeit direkt korrigieren kann, das heißt, wenn diese sind:
-
Direkte Abhängigkeiten sind explizit in einem Manifest oder einer Sperrdatei definiert
-
Transitive Abhängigkeiten sind in einer Sperrdate definiert
**Überprüfung**: Liegt das nicht entschärfte Sicherheitsrisiko für eine Komponente vor, die weder im Manifest noch in der Sperrdatei des Repositorys angegeben ist?
Nicht unterstützte Ökosysteme
Dependabot alerts werden für eine Reihe von Ökosystemen unterstützt, in denen wir qualitativ hochwertige, umsetzbare Daten bereitstellen können. Kuratierte Empfehlungen im GitHub Advisory Database, das Abhängigkeitsdiagramm, Dependabot Sicherheitsupdates,
und Dependabot alerts werden für mehrere Ökosysteme bereitgestellt, einschließlich Java Mavens, JavaScripts npm und Yarn, .NETs NuGet, Pythons pip, Rubys RubyGems und PHPs Composer. Eine Übersicht über die von uns unterstützten Dependabot alertsPaketökosysteme finden Sie unter Von Abhängigkeitsdiagrammen unterstützte Paket-Ökosysteme.
Hinweise können auch für andere Ökosysteme vorhanden sein. Die Informationen in einem nicht überprüften Sicherheitshinweis werden von den Verantwortlichen für ein bestimmtes Repository bereitgestellt. Diese Daten werden nicht von GitHub. Weitere Informationen finden Sie unter Durchsuchen von Sicherheitsempfehlungen in der GitHub Advisory Database.
**Überprüfung**: Betrifft das nicht entschärfte Sicherheitsrisiko ein nicht unterstütztes Ökosystem?
Historische Sicherheitsrisiken
Das GitHub Advisory Database wurde im November 2019 gestartet und zunächst rückwirkend mit Empfehlungen für Sicherheitsrisiken in den unterstützten Ökosystemen ab 2017 versehen. Beim Hinzufügen von CVEs in die Datenbank werden vorrangig neuere CVEs und CVEs aufgenommen, die neuere Softwareversionen betreffen.
Einige Informationen zu älteren Sicherheitsrisiken sind verfügbar, insbesondere wenn diese CVEs besonders weit verbreitet sind, aber einige alte Sicherheitsrisiken sind nicht in der GitHub Advisory DatabaseEnthalten. Wenn es eine bestimmte alte Sicherheitsanfälligkeit gibt, die Sie in die Datenbank aufnehmen müssen, wenden Sie sich an uns über das GitHub-Support-Portal.
**Überprüfung**: Liegt das Veröffentlichungsdatum für das nicht entschärfte Sicherheitsrisiko in der National Vulnerability Database vor dem Jahr 2017?
Umfang der Empfehlungsdatenbank
Einige Tools von Drittanbietern verwenden nicht kuratierte CVE-Daten, d. h. sie wurden nicht durch eine Person geprüft oder gefiltert. Das bedeutet, dass CVEs mit Fehlern in Bezug auf Kennzeichnung oder Schweregrad oder anderen Qualitätsproblemen häufiger Warnungen auslösen, mehr falsch-positive und weniger nützliche Warnungen liefern.
Da Dependabot zusammengestellte Daten im GitHub Advisory DatabaseBereich verwendet werden, ist die Anzahl der Warnungen möglicherweise niedriger, aber die erhaltenen Warnungen sind korrekt und relevant.
Generierung und Aggregation von Warnungen
Wenn eine Abhängigkeit mehrere Sicherheitsrisiken aufweist, wird für jedes Sicherheitsrisiko eine Warnung auf Empfehlungs- und Manifestebene generiert.

Legacy Dependabot alerts wurden in einer einzigen aggregierten Warnung mit allen Sicherheitsrisiken für dieselbe Abhängigkeit gruppiert. Wenn Sie zu einem Link zu einer Legacybenachrichtigung Dependabot navigieren, werden Sie auf die Dependabot Registerkarte umgeleitet, die gefiltert wird, um Sicherheitsrisiken für dieses abhängige Paket und dieses Manifest anzuzeigen.

Die Dependabot alerts Anzahl in GitHub zeigt eine Summe für die Anzahl der Warnungen, bei denen es sich um die Anzahl der Sicherheitsrisiken und nicht um die Anzahl der Abhängigkeiten handelt.
**Überprüfung**: Wenn eine Diskrepanz bei den angezeigten Gesamtsummen vorliegt, stelle sicher, dass du nicht die Anzahl von Warnungen mit der Anzahl von Abhängigkeiten vergleichst. Vergewissere dich auch, dass alle Warnmeldungen und nicht nur eine Teilmenge der gefilterten Warnmeldungen angezeigt werden.
Optionen zum Ignorieren von Abhängigkeiten
Sie können konfigurieren Dependabot , um bestimmte Abhängigkeiten in der Konfigurationsdatei zu ignorieren, wodurch Sicherheits- und Versionsupdates für diese Abhängigkeiten verhindert werden. Wenn du nur Sicherheitsupdates verwenden möchtest, musst du das Standardverhalten mit einer Konfigurationsdatei außer Kraft setzen. Weitere Informationen dazu, wie du das Aktivieren von Versionsaktualisierungen verhindern kannst, findest du unter Konfigurieren von Dependabot-Sicherheitsupdates. Informationen zum Ignorieren von Abhängigkeiten findest du unter Ignorieren bestimmter Abhängigkeiten.
Monorepo-Einschränkungen für GitHub Actions Versionen
Wenn Ihr Repository mehrere GitHub Actions (z. B. in einem Monorepo) enthält, wirkt sich das verwendete Tagformat darauf aus, wie Dependabot Versionen von Aktionen erkennt und aktualisiert.
-
**Trennlinie Bindestrich (`-`) ** (z. B. `@my-action-v0.1.0`):* Dependabot kann mehrere Aktionen unter einem einzelnen Abhängigkeitseintrag gruppieren oder neue Versionen nicht richtig erkennen. Dies liegt daran, dass Dependabot auf Slash-basierten Tags angewiesen ist, um zwischen Aktionen zu unterscheiden.
-
**Trennlinie Schrägstrich (`/`) ** (z. B. `@my-action/v0.1.0`):* Dependabot erkennt und aktualisiert jede Aktion unabhängig, da der Schrägstrich eine hierarchische Tagstruktur erstellt, die mit der Analyselogik von Dependabot ausgerichtet ist.
**Empfehlung:** Verwende für Monorepos mit mehreren Aktionen das `name/version`-Format (Schrägstrich) für Aktionstags. Dadurch wird sichergestellt, dass Dependabot die Taghierarchie ordnungsgemäß analysiert und Aktionen unabhängig voneinander aktualisiert werden können. -
Beispiel:
# Recommended: namespaced with slash uses: my-org/monorepo/my-action@my-action/v0.1.0 # Not recommended: dash uses: my-org/monorepo@my-action-v0.1.0
Weiterführende Lektüre
-
[AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) -
[AUTOTITLE](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts) -
[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository) -
[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph) -
[AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-errors) -
[AUTOTITLE](/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners)