Übersicht
-
Funktion: Dependency-Scanning (Software Composition Analysis, SCA) erkennt bekannte Schwachstellen in Drittanbieterabhängigkeiten und Bibliotheken. Es analysiert Manifestdateien wie
package.json,requirements.txtundpom.xmlund liefert CVE-IDs, CVSS-Scores sowie Hinweise zur Behebung. - Zielgruppe: Die Funktion richtet sich an Sicherheitsteams, Entwickler, DevOps Engineers und andere Verantwortliche für Anwendungssicherheit. Besonders hilfreich ist sie für Projekte mit zahlreichen Drittanbieterabhängigkeiten.
Zentrale Funktionen und Vorteile
- Umfassende Ökosystemabdeckung: Scannt Abhängigkeiten in mehr als 25 Programmiersprachen und Ökosystemen, darunter Python, JavaScript/Node.js, Java, Go, Ruby, PHP, C# und Swift
Alle Schwachstellen-Datenquellen anzeigen
Alle Schwachstellen-Datenquellen anzeigen
- Autoritative Datenquellen: Nutzt mehrere vertrauenswürdige Schwachstellendatenbanken, darunter:
- GitHub Advisory Database (CC-BY 4.0)
- PyPI Advisory Database (CC-BY 4.0)
- Go Vulnerability Database (CC-BY 4.0)
- Rust Advisory Database (CC0 1.0)
- Global Security Database (CC0 1.0)
- OSS-Fuzz (CC-BY 4.0)
- Rocky Linux (BSD)
- AlmaLinux (MIT)
- Haskell Security Advisories (CC0 1.0)
- RConsortium Advisory Database (Apache 2.0)
- OpenSSF Malicious Packages (Apache 2.0)
- Python Software Foundation Database (CC-BY 4.0)
- Bitnami Vulnerability Database (Apache 2.0)
- Ubuntu (GPL v3)
- Und viele weitere maßgebliche Quellen
- Umfangreiche Schwachstelleninformationen: Bietet detaillierte Informationen zu Schwachstellen, einschließlich:
- CVE-Kennungen und alternative Schwachstellen-IDs
- CVSS-Scores und Schweregrade (Critical, High, Medium, Low)
- Betroffene Paketversionen und verfügbare Updates
- Detaillierte Beschreibungen von Schwachstellen und Referenzen
- Hinweise von Quellen wie dem GitHub Advisory Database, NVD und Sicherheitsbulletins der Anbieter, sofern verfügbar
- Veröffentlichungsdaten und externe Links
- Intelligente Scan-Logik: Erkennt vorhandene Abhängigkeitsdateien automatisch und optimiert die Scan-Performance
Einrichtung
Das Projekt muss mindestens eine unterstützte Abhängigkeitsdatei enthalten. Außerdem benötigen Sie die Berechtigung zum Ausführen von Security-Scans.
Konfigurationsschritte
1
Abhängigkeitsdateien überprüfen
Stellen Sie sicher, dass Ihr Projekt unterstützte Abhängigkeitsdateien enthält:
- Python
- JavaScript/Node.js
- Java
- Go
- Ruby
- PHP
- C#
- Swift
2
Scan-Bereich konfigurieren
Wählen Sie aus, ob die Abhängigkeitsprüfung in vollständigen oder teilweisen Scans enthalten sein soll
3
Benachrichtigungen einrichten
Konfigurieren Sie, wie Sie über neue Schwachstellen benachrichtigt werden möchten
Verwendung
Zum Anzeigen von Scan-Abhängigkeiten sowie zum Herunterladen von SBOM- und CSV-Dateien ist die Berechtigung View SCA Issue erforderlich. Bei aktiviertem Project Access Control benötigen Sie außerdem Zugriff auf das Projekt.
Zentrale Workflows
- Automatische Erkennung: Das System identifiziert automatisch Abhängigkeitsdateien in Ihrem Projektverzeichnis
- Umfassende Überprüfung: Analysiert alle unterstützten Abhängigkeitsdateien und gleicht sie mit Schwachstellendatenbanken ab
- Schwachstellenverarbeitung: Reichert Scan-Ergebnisse mit zusätzlichen Sicherheitsinformationen an
- Issue-Erstellung: Erstellt für jede gefundene Schwachstelle ein nachverfolgbares Security-Issue
- Reporting: Erstellt Schwachstellenberichte mit konkreten Empfehlungen zur Behebung
Filter der Dependencies-Ansicht

- Suche: Finden Sie Probleme nach CVE, Paketname oder Zusammenfassung
- Schweregrad: Konzentration auf Kritisch, Hoch, Mittel oder Niedrig
- SLA-Status: Konzentration auf Abhängigkeitsprobleme, die überfällig oder eskaliert sind, wenn ein SCA-SLA gilt
- Ökosystem: Ergebnisse auf ein bestimmtes Paketökosystem beschränken
- Projekt: Nach einem bestimmten Projekt nach Namen filtern (zeigt nur Projekte, auf die Sie zugreifen können)
- Lizenz: Nach Abhängigkeitslizenz filtern
- Abhängigkeitstyp: Direkte, transitive, Entwicklungs- oder optionale Abhängigkeiten anzeigen
- Erreichbarkeit: Zeigt Probleme an, die erreichbar, unerreichbar, ungenutzt oder noch in der Analyse sind (siehe Erreichbarkeitsanalyse)
- Verfügbare Fixes: Zeigt nur Probleme mit bekanntem Fix an
Abhängigkeiten in CSV exportieren
Klicken Sie in der Dependencies-Ansicht auf Export CSV, um die Ergebnisse der aktuellen Suche und Filter herunterzuladen. Der Export enthält Paket- und Schwachstellendetails, Abhängigkeitstyp, Reachability, Projekt, Branch und den betroffenen Manifestpfad. Bei aktiviertem Project Access Control enthält er nur zugängliche Projekte.Transitive Abhängigkeiten
Die meisten Schwachstellen moderner Projekte befinden sich in transitiven Abhängigkeiten: Paketen, die nicht direkt hinzugefügt, sondern von anderen Abhängigkeiten eingebunden wurden. Corgea löst den vollständigen Abhängigkeitsgraphen auf und zeigt, wodurch jedes Paket eingebunden wird.Abhängigkeitstypen
In den Scan-Ergebnissen enthalten Paketgruppen Abzeichen, die anzeigen, woher eine verwundbare Abhängigkeit stammt:- Direkt: Das verwundbare Paket ist eine direkte Abhängigkeit, die in Ihrem Manifest deklariert ist (zum Beispiel
package.jsonoderpom.xml). - Transitiv: Das verwundbare Paket wird indirekt über eine andere Abhängigkeit eingebunden.
- Entwickler: Das verwundbare Paket wird als Entwicklungsabhängigkeit (Build, Test oder Tooling) und nicht zur Laufzeit verwendet.
- Optional: Das verwundbare Paket ist als optionale Abhängigkeit gekennzeichnet.
Wie der Abhängigkeitsgraph erstellt wird
Corgea erstellt den Abhängigkeitsbaum, indem die von Ihnen deklarierten Pakete mit den Paketen kombiniert werden, die Ihr Build tatsächlich auflöst:- Direkte Abhängigkeiten werden aus Ihren Manifestdateien gelesen (
package.json,pom.xml,requirements.txt,go.mod,Gemfileund andere). - Transitive Abhängigkeiten werden aus Lockfiles wie
package-lock.json,yarn.lock,poetry.lockodergo.sumund einer generierten Software Bill of Materials (SBOM) aufgelöst. Diese enthalten die exakten Versionen und Parent-Child-Beziehungen. - Fehlt ein Lockfile, versucht Corgea für unterstützte Ökosysteme, automatisch eines zu generieren, damit transitive Pakete dennoch analysiert werden können.
Abhängigkeitsbaum-Ansicht
Die Ansicht “Abhängigkeiten” kann Ihre Abhängigkeiten als zusammenklappbaren Baum darstellen, sodass Sie eine direkte Abhängigkeit erweitern können, um alles zu sehen, was sie mitbringt:Unterstützte Ökosysteme
Alle 25+ unterstützten Ökosysteme anzeigen
Alle 25+ unterstützten Ökosysteme anzeigen
Die Funktion zur Abhängigkeitsüberprüfung unterstützt die folgenden Ökosysteme:
- AlmaLinux - Enterprise Linux Pakete
- Alpine - Alpine Linux Pakete
- Android - Android App-Abhängigkeiten
- Bitnami - Bitnami Anwendungspakete
- crates.io - Rust Pakete
- Curl - cURL-Bibliotheksschwachstellen
- Debian GNU/Linux - Debian-Pakete
- Git - Git-Repositories (einschließlich C/C++)
- GitHub Actions - GitHub Action-Workflows
- Go - Go-Module und Pakete
- Haskell - Haskell-Pakete
- Hex - Elixir-Pakete
- Linux-Kernel - Linux-Kernel-Schwachstellen
- Maven - Java-Maven-Abhängigkeiten
- npm - Node.js-Pakete
- NuGet - .NET-Pakete
- OSS-Fuzz - Googles kontinuierlicher Fuzzing-Dienst
- Packagist - PHP-Pakete
- Pub - Dart-Pakete
- PyPI - Python-Pakete
- Python - Sicherheitslücken in der Python-Sprache
- R - R-Pakete (CRAN und Bioconductor)
- Rocky Linux - Rocky Linux-Pakete
- RubyGems - Ruby-Pakete
- SwiftURL - Swift-Pakete
- Ubuntu OS - Ubuntu-Pakete
Beispiel für ein Multi-Ökosystem-Projekt
Enterprise Application Structure
Aufschlüsselung der Schwere von Sicherheitslücken
- Hoch: Sollte zeitnah adressiert werden, erheblicher Sicherheitsimpact
- Mittel: Sollte in regelmäßigen Wartungszyklen behoben werden
- Niedrig: Geringfügige Probleme, die bei Gelegenheit behoben werden können
Erreichbarkeitsanalyse
Ein verwundbares Paket in Ihrem Abhängigkeitsbaum bedeutet nicht immer, dass Ihre Anwendung tatsächlich gefährdet ist. Die Erreichbarkeitsanalyse hilft Ihnen, Prioritäten zu setzen, indem sie bestimmt, ob eine Schwachstelle tatsächlich durch Ihren Code ausgelöst werden kann. Für jede verwundbare direkte Abhängigkeit beantwortet Corgea zwei Fragen:- Wird das Paket verwendet? Corgea sucht nach Importen und Verwendungen des Pakets in Ihrem Code. Ein Paket, das deklariert, aber nie importiert wird, birgt ein wesentlich geringeres Risiko.
- Ist die verwundbare Funktion erreichbar? Für verwendete Pakete analysiert Corgea, ob Ihr Code tatsächlich die spezifischen Funktionen aufruft, die von der Schwachstelle betroffen sind.
Die Erreichbarkeitsanalyse wird für direkte Abhängigkeiten durchgeführt. Schwachstellen in transitiven Abhängigkeiten werden gemeldet und können behoben werden (siehe Empfohlene Korrekturen), werden jedoch nicht einzeln auf Erreichbarkeit analysiert.
Erreichbarkeitszustände
Jedes analysierte Problem wird einem der folgenden Zustände zugeordnet, die Sie auch als Filter in der Ansicht “Abhängigkeiten” verwenden können:- Erreichbar: Ihr Code ruft die anfällige Funktionalität auf. Diese haben die höchste Priorität – insbesondere bei direkten Abhängigkeiten.
- Unerreichbar: Das Paket wird verwendet, aber die anfälligen Funktionen werden nicht aufgerufen.
- Unbenutzt: Das Paket ist deklariert, wird jedoch in Ihrem Code nicht verwendet.
- Analyse: Die Erreichbarkeitsanalyse für das Problem läuft noch.
Erreichbarkeitsvisualisierung
Für erreichbare Probleme kann Corgea den Pfad von den Einstiegspunkten Ihrer Anwendung zum verwundbaren Code darstellen – und zeigen, wie die Ausführung sich von Endpunkten über Zwischen-Funktionen zur verwundbaren Funktion bewegt. So ist es leicht zu verstehen und genau zu überprüfen, warum ein Problem erreichbar ist.Fix-Empfehlungen
Wenn ein Fix verfügbar ist, empfiehlt Corgea die nächstgelegene korrigierte Version, also die niedrigste Version ohne die Schwachstelle. Ein möglichst kleines Upgrade reduziert das Risiko von Breaking Changes. Für direkte Abhängigkeiten können Sie die Korrektur anwenden, indem Sie die Version in Ihrem Manifest aktualisieren. Für transitive Abhängigkeiten können Sie die Version oft nicht direkt erhöhen, da sie von einem übergeordneten Paket gesteuert wird. In diesen Fällen zeigt Corgea den Abhängigkeitspfad und die übergeordnete Abhängigkeit an, die Sie aktualisieren müssen, damit die korrigierte transitive Version übernommen wird. Siehe Transitive Abhängigkeiten, um zu sehen, wie der Abhängigkeitspfad erstellt wird.Empfehlungen zur Behebung von Abhängigkeiten sind Anleitungen zur Behebung. Überprüfen Sie Upgrades auf Kompatibilität, bevor Sie sie anwenden.
Lizenzprüfung
Während des Abhängigkeits-Scans erfasst Corgea die Softwarelizenz, die jeder Abhängigkeit zugeordnet ist, und gibt Ihnen so einen Überblick über die in Ihrem Projekt vorhandenen Lizenzen. Lizenzen werden auf zwei Arten angezeigt:- Lizenzfilter: Im Abhängigkeits-Ansichtsbereich können Probleme nach einer bestimmten Lizenz gefiltert werden (siehe Abhängigkeitsansichts-Filter).
- CSV-Export: Lizenzinformationen werden beim Export von Abhängigkeiten nach CSV einbezogen.
Lizenz-Scans bieten ein Lizenzinventar zur Transparenz und Berichterstattung. Sie erzwingen nicht automatisch Richtlinien zur Lizenzkonformität.
Container-Image-Scanning
Corgea scannt auch die Container-Images, von denen Ihr Projekt abhängt, und identifiziert Schwachstellen in Basisbetriebssystempaketen und anderer Software, die in den Image-Schichten installiert ist. Images werden automatisch ausDockerfile und Docker Compose-Dateien entdeckt — keine Konfiguration erforderlich.
Für Details zu Entdeckung, unterstützten Registrierungen und Grenzen siehe Container Image Scanning.
Erkennung bösartiger Pakete
Im Rahmen des Dependency-Scannings kennzeichnet Corgea bekannte bösartige und kompromittierte Pakete — wie Typosquats, gehackte Releases und mit Backdoor versehene Versionen — mithilfe der OpenSSF Malicious Packages-Datenbank und verwandter Beratungs-Feeds. Für Details siehe Malicious Package Detection.Best Practices
- Regelmäßiges Scannen: Automatisches Scannen aktivieren, um neue Schwachstellen zu erfassen, sobald sie bekannt werden
- Abhängigkeits-Updates: Aktualisieren Sie Abhängigkeiten umgehend, wenn Korrekturen für identifizierte Schwachstellen verfügbar sind
- Priorisierung nach Schweregrad: Konzentrieren Sie sich darauf, zuerst Schwachstellen mit kritischer und hoher Schwere zu beheben
- Risikobewertung: Bewerten Sie, ob Schwachstellen tatsächlich die Angriffsfläche Ihrer Anwendung betreffen
- Abhängigkeits-Hygiene: Überprüfen und entfernen Sie regelmäßig ungenutzte Abhängigkeiten, um die Angriffsfläche zu reduzieren
- Version Pinning: Verwenden Sie feste Versionsnummern in Abhängigkeitsdateien für konsistente Scan-Ergebnisse
- Überwachung: Richten Sie Benachrichtigungen für neue in Ihren Abhängigkeiten entdeckte Schwachstellen ein
- Dokumentation: Führen Sie Aufzeichnungen über akzeptierte Risiken und Entscheidungsprozesse zur Behebung
Fehlerbehebung
Keine Schwachstellen gefunden, aber Abhängigkeiten sind vorhanden
Keine Schwachstellen gefunden, aber Abhängigkeiten sind vorhanden
Lösung: Überprüfen Sie, ob die Abhängigkeitsdateien in unterstützten Formaten vorliegen und gültige Paketinformationen enthaltenPrüfung: Stellen Sie sicher, dass die Abhängigkeitsdateien nicht beschädigt sind oder Syntaxfehler enthalten
Scan-Ergebnisse scheinen unvollständig zu sein
Scan-Ergebnisse scheinen unvollständig zu sein
Lösung: Überprüfen Sie, dass alle Abhängigkeitsdateien im Scan-Bereich enthalten sindPrüfung: Stellen Sie sicher, dass die Abhängigkeitsdateien korrekt formatiert und zugänglich sind
False Positive Schwachstellen gemeldet
False Positive Schwachstellen gemeldet
Lösung: Überprüfen Sie die Details der Schwachstellen, um festzustellen, ob sie tatsächlich Ihre Anwendung betreffenÜberprüfung: Berücksichtigen Sie die spezifischen Nutzungsmuster und Angriffsvektoren in Ihrer Anwendung
Scan-Leistung ist langsam
Scan-Leistung ist langsam
Lösung: Dies ist normal bei großen Projekten mit vielen AbhängigkeitenÜberprüfung: Erwägen Sie, nur geänderte Dateien inkrementell zu scannen
