Wenn Sie eine anfällige Abhängigkeit haben, bedeutet dies nicht immer, dass Ihre Anwendung die betroffene Funktion aufruft. Reachability analysis fügt jeder Dependabot Warnung eine Bewertung hinzu, die Ihnen dabei hilft, Korrekturen basierend auf der Verwendung der Abhängigkeit von Ihrem Code zu priorisieren.
Hinweis
Reachability analysis für Dependabot alerts ist in Öffentliche Vorschau und kann sich ändern.
Funktionsweise von reachability analysis
Reachability analysis analysiert Ihr offenes Dependabot alerts, um festzustellen, ob Ihre Anwendung die anfälligen Funktionen aufrufen kann. Es verwendet CodeQL statische Analysen und kuratierte Daten zur Identifizierung der betroffenen Funktionen, um nach Aufrufpfaden von Ihrem Code zu diesen Funktionen zu suchen.
Jede analysierte Dependabot Warnung erhält eine Bewertung , die Ihnen hilft, ihre Priorität zu bestimmen. Wenn verfügbar, zeigen Aufrufpfad-Nachweise , wie Ihr Code eine anfällige Funktion erreichen kann, damit Sie verstehen können, warum eine Warnung für Ihre Anwendung wichtig ist.
Anforderungen und unterstützte Ökosysteme
Reachability analysis unterstützt JavaScript-Repositorys, die npm, pnpm oder Yarn verwenden, sowie TypeScript-Repositorys. Ihr Repository muss über eine Sperrdatei verfügen, z. B. package-lock.json, pnpm-lock.yaml oder yarn.lock.
Damit reachability analysis funktioniert, muss Dependabot alerts aktiviert sein.
Die Analyse wird auf GitHubgehosteten Runnern ausgeführt. Selbst gehostete Läufer werden nicht unterstützt.
Grundlagen zu Erreichbarkeitsbewertungen
Verwenden Sie die Erreichbarkeit neben Schweregrad, Exploit Prediction Scoring System (EPSS)-Bewertungen, Abhängigkeitsbereich und Abhängigkeitsbeziehung, um zu entscheiden, welche Warnungen zuerst adressiert werden sollen.
| Urteil | Bedeutung | Empfohlene Antwort |
|---|---|---|
| Erreichbar | Die Analyse hat mindestens einen Aufrufpfad aus dem Code Ihres Repositorys zu einer anfälligen Funktion gefunden. | Priorisieren Sie die Behebung, und überprüfen Sie die Nachweise für den Call-Path. |
| Potenziell erreichbar | Die Analyse konnte einen Aufruf einer anfälligen Funktion nicht ausschließen. Diese Unsicherheit wird nicht durch ein nicht unterstütztes Ökosystem oder einen fehlgeschlagenen Scan verursacht. In Repositorys mit mehreren Manifesten werden Aufrufe, die nur außerhalb des Verzeichnisses eines Manifests gefunden werden, als potenziell erreichbar angesehen. | Priorisieren Sie die Behebung zusammen mit erreichbaren Warnungen. |
| Nicht erreichbar | Die Analyse wurde abgeschlossen und hat keinen Aufruf aus dem Code Ihrer Anwendung für eine anfällige Funktion gefunden. | Weisen Sie der Warnung eine niedrigere Priorität zu, verwerfen oder schließen Sie sie jedoch nicht ausschließlich aufgrund dieser Bewertung. |
| Nicht erreichbar | Die Analyse konnte keine Bewertung bereitstellen, z. B. weil die Warnung für ein nicht unterstütztes Ökosystem ist oder der Scan fehlgeschlagen ist oder ein Timeout aufgetreten ist. | Priorisieren Sie den Alarm anhand der anderen Priorisierungssignale. |
Verwenden Sie Erreichbarkeit, um Warnungen zu priorisieren, nicht um sie zu schließen.
Reachability analysis fügt bestehenden offenen Warnmeldungen Informationen hinzu, die Ihnen helfen, Abhilfemaßnahmen zu priorisieren. Es werden keine neuen Sicherheitslücken gefunden oder Warnungen automatisch geschlossen oder verworfen.
Ein Urteil ist eine Momentaufnahme. Sie sollten eine Warnung nicht ausschließlich basierend auf ihrer Erreichbarkeitsbewertung schließen oder verwerfen; während eine Funktion heute von Ihrem Code möglicherweise nicht erreichbar ist, können Codeänderungen oder Aktualisierungen an einer Sicherheitsmeldung das Ergebnis einer späteren Überprüfung ändern.
Erreichbarkeit ist nicht ausnutzbar
Eine erreichbare Funktion ist nicht notwendigerweise ausnutzbar. Die Erreichbarkeit zeigt, dass ein Aufrufpfad vorhanden ist, nicht, dass ein Angreifer ihn verwenden kann, um die Schwachstelle auszunutzen.
Ebenso ist eine "unerreichbare" Bewertung keine Garantie dafür, dass eine Abhängigkeit sicher ist. Überprüfen Sie diese Warnungen weiter, und halten Sie Abhängigkeiten auf dem neuesten Stand.
Nachweis des Anrufpfads
Für erreichbare Warnungen zeigt der Aufrufpfad-Nachweis, wie ein Aufruf aus Ihrem Code zu einer anfälligen Funktion führen kann. Verwenden Sie diese Nachweise, um zu verstehen, wo Ihre Anwendung die betroffene Abhängigkeit verwendet, und Abhilfemaßnahmen zu planen.
Eine Warnung kann bis zu fünf Beispielpfade anzeigen. Diese Beispiele sind keine vollständige Liste aller möglichen Aufrufpfade.
Verstehen, wann Ergebnisse aktualisiert werden
Durch Aktivieren von reachability analysis wird ein initialer Scan der offenen Warnmeldungen Ihres Repositorys gestartet. Danach werden Scans einmal alle 24 Stunden ausgeführt, solange das Repository offene Warnungen enthält. Jeder Scan deckt alle offenen Warnungen ab.
Das Pushen von Codeänderungen löst keine Überprüfung aus. Nachdem Sie ihren Code geändert haben, spiegelt die Bewertung diese Änderungen erst wider, wenn eine nachfolgende Überprüfung abgeschlossen ist.
Während dieser Zeit Öffentliche Vorschaukönnen Sie keine On-Demand-Scans planen oder auslösen.
Die Scan-Dauer hängt von der Größe des Repositorys und den Abhängigkeiten ab. Scans können in ein paar Minuten abgeschlossen werden, aber größere Scans dauern länger. Während der Öffentliche Vorschau Überprüfungen gilt ein Zeitlimit von drei Stunden.
Abrechnung und Nutzung während Öffentliche Vorschau
Reachability analysis ist kostenlos während der Öffentliche Vorschau. Ihre Scans verbrauchen keine GitHub Actions berechneten Minuten.
Bekannte Einschränkungen
Reachability analysis hat die folgenden Einschränkungen während Öffentliche Vorschau:
- Ökosystemunterstützung: Warnungen außerhalb der unterstützten JavaScript- und TypeScript-Ökosysteme werden nicht unterstützt.
- Große Repositorys und Monorepos: Einige Repositorys können das Drei-Stunden-Scanlimit erreichen oder Ressourcengrenzwerte erreichen, sodass die Ergebnisse nicht verfügbar sind.
Verwenden von Verdikten über die REST-API
Die Dependabot alerts REST-API macht Urteile für reachability analysis. Sie können Bewertungen über die Repository-, Organisations- und Enterprise-Warnendpunkte abrufen. Siehe REST-API-Endpunkte für Dependabot alerts.
Nächste Schritte
Um reachability analysis für Ihr Repository zu aktivieren, siehe Konfigurieren der Erreichbarkeitsanalyse für Dependabot-Warnungen.