
dep-scan v6.3.0
Next-Generation-Abhängigkeits-Schwachstellenscanner mit Erreichbarkeitsanalyse, SBOM-Generierung, Lizenzaudit und Container-Image-Scanning für die CI/CD-Integration.
Einführung
OWASP dep-scan ist ein Sicherheits- und Risikoaudit-Tool der nächsten Generation, das auf bekannten Schwachstellen, Advisories und Lizenzbeschränkungen für Projektabhängigkeiten basiert. Als Eingabe werden sowohl lokale Repositories als auch Container-Images unterstützt, und das Tool eignet sich ideal für die Integration in ASPM/VM-Plattformen und in CI-Umgebungen.
Inhalt
Funktionen
- Die meisten Anwendungscodes scannen (lokale Repositories, Linux-Container-Images, Kubernetes-Manifeste und Betriebssystem), um bekannte CVEs mit Priorisierung zu identifizieren
- Fortgeschrittene Erreichbarkeitsanalyse für mehrere Sprachen durchführen (siehe die Erreichbarkeitsmatrix unten)
- Das Scannen von Paketschwachstellen erfolgt lokal und ist recht schnell. Es wird kein Server verwendet
- Eine Software Bill-of-Materials (SBOM) mit Informationen aus dem Vulnerability Disclosure Report (VDR) generieren
- Ein Common Security Advisory Framework (CSAF) 2.0/2.1 VEX-Dokument generieren (siehe CSAF Readme)
- Ein tiefgehendes Risikoaudit für Pakete auf Dependency-Confusion-Angriffe und Wartungsrisiken durchführen (siehe Risk-Audit-Dokumentation)
Präzise erreichbare Datenflüsse
Detaillierte Datenflüsse zur Identifizierung sowohl erreichbarer als auch nicht erreichbarer Pfade in Ihrer Anwendung auf Basis des vollständigen Kontexts.

Erreichbarkeitsmatrix
dep-scan berechnet die Erreichbarkeit für sieben Sprach-Ökosysteme über vier Slicer. Ein verwundbares Paket, dessen Code tatsächlich auf einem ausgeführten Pfad liegt, wird als Reachable (erreichbar) markiert, während ein Paket, das lediglich in der BOM deklariert, aber nie aufgerufen wird, nicht als solches markiert wird. Jeder Slicer speist dieselbe gemeinsame, purl-basierte Erreichbarkeits-Engine, sodass das Verhalten über alle Sprachen hinweg einheitlich ist. Die Erreichbarkeit ist standardmäßig aktiviert (--reachability-analyzer FrameworkReachability); SemanticReachability ordnet zusätzlich erreichte Dienste, Endpunkte und die Erreichbarkeit nach dem Build (Binärdatei/Container) zu.
| Sprache / Ökosystem | Reachability-Engine | Standard-Analyzer |
|---|---|---|
| Java / JVM (Groovy, Kotlin, Scala) | atom | FrameworkReachability |
| JavaScript / TypeScript | atom | FrameworkReachability |
| Python | atom | FrameworkReachability |
| PHP | atom | FrameworkReachability |
| Rust | rusi | FrameworkReachability |
| Go | golem | FrameworkReachability |
| .NET (C#, VB, F#, R) | dosai | FrameworkReachability |
Für die Konzepte hinter Reachability und Priorisierung lesen Sie die Kapitel Reachability-Modell und Priorisierung. Ausgearbeitete Beispiele pro Sprache finden Sie in den Sprachleitfäden. Zur Compliance-Darstellung (VDR und CSAF VEX) siehe den VDR-Leitfaden und den CSAF-VEX-Leitfaden.
Reachability ist standardmäßig unter --profile research aktiviert, was dep-scan verwendet, wenn Reachability eingeschaltet ist. Die folgenden Befehle reichen für den Einstieg aus; die Sprachleitfäden behandeln Binärdatei-Auflösung, Backend- und Netzwerksicherheit, Wiederherstellungsanforderungen und ausgearbeitete Beispiele anhand der Fixtures im Repository.
Rust (rusi). cdxgen führt rusi aus und speichert dessen Bericht, den dep-scan in die gemeinsame Pipeline umwandelt, sodass ein Crate, das tatsächlich aufgerufen wird (zum Beispiel time::now() für RUSTSEC-2020-0071), als Reachable gilt, während ein bloß vorhandenes dies nicht ist. Siehe den Rust-Reachability-Leitfaden.
depscan -i ./my-rust-app -o ./reports --profile research
Go (golem). dep-scan ruft golem für Go-Projekte direkt auf (erfordert go im PATH) und markiert ein Modul als Reachable, wenn seine Funktionen auf einem verfolgten Pfad liegen. Verwenden Sie --go-analyzer-network offline für nicht vertrauenswürdige Repositories mit einem vorgewärmten Modul-Cache. Siehe die Go-Reachability-Anleitung.
depscan -i ./my-go-app -o ./reports -t go
.NET (dosai). cdxgen führt dosai aus, das ein explizites Erreichbarkeitsurteil pro Paket ausgibt (PackageReachability mit ReachabilityKind und Confidence), das dep-scan als maßgeblich behandelt, sodass ein tatsächlich aufgerufenes NuGet-Paket (zum Beispiel JsonConvert.DeserializeObject bei einer kontrollierten Eingabe) als Reachable gilt. Durchsuchen Sie einen wiederhergestellten Baum nach versionierten purls. Siehe den .NET-Reachability-Leitfaden.
depscan -i ./my-dotnet-app -o ./reports -t dotnet