
dep-scan v6.3.0
Scanner de vulnérabilités de dépendances de nouvelle génération avec analyse de l'accessibilité, génération de SBOM, audit des licences et analyse d'images de conteneurs pour l'intégration CI/CD.
Introduction
OWASP dep-scan est un outil d'audit de sécurité et de risques de nouvelle génération basé sur les vulnérabilités connues, les avis de sécurité et les limitations de licence des dépendances d'un projet. Les dépôts locaux et les images de conteneurs sont pris en charge comme entrée, et l'outil est idéal pour l'intégration avec les plateformes ASPM/VM et dans les environnements CI.
Sommaire
Fonctionnalités
- Analyser la plupart du code applicatif (dépôts locaux, images de conteneurs Linux, manifestes Kubernetes et OS) pour identifier les CVE connues avec priorisation
- Effectuer une analyse d'atteignabilité avancée pour plusieurs langages (voir la matrice d'atteignabilité ci-dessous)
- L'analyse des vulnérabilités des paquets est effectuée localement et est assez rapide. Aucun serveur n'est utilisé
- Générer une nomenclature logicielle (SBOM) avec les informations du rapport de divulgation des vulnérabilités (VDR)
- Générer un document VEX au format Common Security Advisory Framework (CSAF) 2.0/2.1 (voir le CSAF Readme)
- Effectuer un audit approfondi des risques liés aux paquets pour les attaques de confusion de dépendances et les risques de maintenance (voir la documentation sur l'audit des risques)
Flux de données atteignables précis
Flux de données détaillés pour identifier les chemins atteignables et non atteignables dans votre application en fonction du contexte complet.

Matrice d'atteignabilité
dep-scan calcule l'atteignabilité pour sept écosystèmes de langages via quatre slicers. Un paquet vulnérable dont le code se trouve réellement sur un chemin exécuté est marqué Reachable, tandis qu'un paquet simplement déclaré dans le BOM mais jamais appelé ne l'est pas. Chaque slicer alimente le même moteur d'atteignabilité partagé, indexé par purl, de sorte que le comportement est uniforme entre les langages. L'atteignabilité est activée par défaut (--reachability-analyzer FrameworkReachability) ; SemanticReachability attribue en outre les services atteints, les points de terminaison et l'atteignabilité post-build (binaire/conteneur).
| Langage / écosystème | Moteur d'accessibilité | Analyseur par défaut |
|---|---|---|
| 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 |
Pour les concepts sous-jacents à l'accessibilité et à la priorisation, lisez les chapitres modèle d'accessibilité et priorisation. Pour des exemples concrets par langage, consultez les Guides par langage. Pour l'aspect conformité (VDR et CSAF VEX), consultez le guide VDR et le guide CSAF VEX.
L'accessibilité est activée par défaut avec --profile research, qui est le profil utilisé par dep-scan lorsque l'accessibilité est activée. Les commandes ci-dessous suffisent pour démarrer ; les guides par langage couvrent la résolution binaire, la sécurité des backends et du réseau, les exigences de restauration, ainsi que des exemples concrets sur les fixtures du dépôt.
Rust (rusi). cdxgen exécute rusi et conserve son rapport, que dep-scan convertit dans le pipeline partagé, de sorte qu'un crate réellement appelé (par exemple time::now() pour RUSTSEC-2020-0071) est Accessible tandis qu'un crate simplement présent ne l'est pas. Consultez le guide d'accessibilité Rust.
depscan -i ./my-rust-app -o ./reports --profile research
Go (golem). dep-scan invoque directement golem pour les projets Go (nécessite go dans le PATH), en marquant un module comme Reachable lorsque ses fonctions se trouvent sur un chemin tracé. Utilisez --go-analyzer-network offline pour les dépôts non fiables disposant d'un cache de modules prérempli. Consultez le guide de reachability Go.
depscan -i ./my-go-app -o ./reports -t go
.NET (dosai). cdxgen exécute dosai, qui émet un verdict explicite de joignabilité par paquet (PackageReachability avec ReachabilityKind et Confidence) que dep-scan traite comme faisant autorité, de sorte qu'un paquet NuGet réellement appelé (par exemple JsonConvert.DeserializeObject sur une entrée contrôlée) est Reachable. Analysez une arborescence restaurée pour obtenir des purls versionnés. Consultez le guide de joignabilité .NET.
depscan -i ./my-dotnet-app -o ./reports -t dotnet