Aperçu
-
Fonctionnement: l’analyse des dépendances, également appelée analyse de la composition logicielle (SCA), identifie automatiquement les vulnérabilités connues dans les dépendances et bibliothèques tierces de votre projet. Elle scanne les manifestes de dépendances (tels que
package.json,requirements.txtetpom.xml) et fournit des informations détaillées, notamment les identifiants CVE, les scores CVSS et des recommandations de remédiation. - Public concerné: cette fonctionnalité s’adresse aux équipes de sécurité, aux développeurs, aux ingénieurs DevOps et à toute personne chargée de maintenir des applications sécurisées. Elle est particulièrement utile aux équipes qui gèrent de nombreuses dépendances tierces et doivent se tenir informées des vulnérabilités susceptibles d’affecter leurs applications.
Principales fonctionnalités et avantages
- Couverture complète des écosystèmes: scanne les dépendances de plus de 25 langages et écosystèmes, notamment Python, JavaScript/Node.js, Java, Go, Ruby, PHP, C# et Swift
Voir toutes les sources de données sur les vulnérabilités
Voir toutes les sources de données sur les vulnérabilités
- Sources de données faisant autorité : exploite plusieurs bases de données de vulnérabilités fiables, notamment :
- 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)
- Et bien d’autres sources faisant autorité
- Renseignements détaillés sur les vulnérabilités: fournit notamment :
- Identifiants CVE et autres identifiants de vulnérabilité
- Scores CVSS et niveaux de sévérité (critique, élevée, moyenne, faible)
- Versions du package concernées et correctifs disponibles
- Descriptions détaillées des vulnérabilités et références
- Liens vers les avis de sources telles que GitHub Advisory Database, NVD et, lorsqu’ils sont disponibles, les avis de sécurité des fournisseurs
- Dates de publication et liens externes
- Logique de scan intelligente : détecte automatiquement la présence de fichiers de dépendances et optimise les performances du scan
Instructions de configuration
Étapes de configuration
Vérifier les fichiers de dépendance
- Python
- JavaScript/Node.js
- Java
- Go
- Ruby
- PHP
- C#
- Swift
Configurer le périmètre du scan
Configurer les notifications
Guide d’utilisation
Principaux workflows
- Détection automatique : le système identifie automatiquement les fichiers de dépendances dans le répertoire de votre projet
- Scan complet : analyse tous les fichiers de dépendances pris en charge et les compare aux bases de données de vulnérabilités
- Traitement des vulnérabilités : traite les résultats du scan et les enrichit avec des renseignements de sécurité supplémentaires
- Création des problèmes : crée un problème de sécurité traçable pour chaque vulnérabilité détectée
- Rapports : génère des rapports complets sur les vulnérabilités avec des recommandations de remédiation exploitables
Filtres de la vue Dépendances

- Recherche: recherchez les problèmes par CVE, nom de paquet ou résumé
- Sévérité: limitez les résultats aux niveaux critique, élevé, moyen ou faible
- Statut du SLA: affichez les problèmes de dépendances en retard ou ayant fait l’objet d’une escalade lorsqu’un SLA SCA s’applique
- Écosystème : limitez les résultats à un écosystème de paquets donné
- Projet : filtrez les résultats sur un projet par son nom (seuls les projets auxquels vous avez accès apparaissent)
- Licence : filtrez les résultats par licence de dépendance
- Type de dépendance : affichez les dépendances directes, transitives, de développement ou facultatives
- Accessibilité: affichez les problèmes accessibles, inaccessibles, inutilisés ou encore en cours d’analyse (voir Analyse d’accessibilité)
- Correctif disponible: affichez uniquement les problèmes pour lesquels un correctif est connu
Exporter les dépendances au format CSV
Dans la vue Dépendances, cliquez sur Exporter au format CSV pour télécharger les résultats correspondant à la recherche et aux filtres actifs. L’export contient les informations sur les paquets et les vulnérabilités, le type et l’accessibilité des dépendances, le projet, la branche et le chemin du manifeste concerné. Lorsque le contrôle d’accès aux projets est activé, seuls les projets auxquels vous avez accès sont inclus.Dépendances transitives
Dans les projets modernes, la plupart des vulnérabilités se trouvent dans des dépendances transitives : des paquets que vous n’avez pas ajoutés directement, mais qui sont requis par ceux que vous avez ajoutés. Corgea résout l’intégralité du graphe de dépendances afin de montrer précisément les dépendances de votre application et leur origine.Types de dépendances
Dans les résultats de scan, les groupes de paquets incluent des badges indiquant d’où vient une dépendance vulnérable :- Directe : le paquet vulnérable est une dépendance directe déclarée dans votre manifeste (par exemple,
package.jsonoupom.xml). - Transitive : le paquet vulnérable est intégré indirectement par une autre dépendance.
- Développement : le paquet vulnérable est utilisé comme dépendance de développement (compilation, test ou outils) plutôt qu’à l’exécution.
- Facultative : le paquet vulnérable est marqué comme une dépendance facultative.
Construction du graphe de dépendances
Corgea construit l’arbre de dépendances en combinant les paquets que vous déclarez avec ceux que votre build résout réellement :- Les dépendances directes sont lues dans vos manifestes (
package.json,pom.xml,requirements.txt,go.mod,Gemfile, entre autres). - Les dépendances transitives sont résolues à partir des lockfiles (tels que
package-lock.json,yarn.lock,poetry.locketgo.sum) et d’une nomenclature logicielle (SBOM) générée. Ces fichiers indiquent les versions exactes résolues et leurs relations parent-enfant. - En l’absence de lockfile, Corgea tente d’en générer un automatiquement pour les écosystèmes pris en charge, par exemple en résolvant les dépendances Python ou .NET, afin que les paquets transitifs puissent tout de même être analysés.
Vue arbre de dépendances
La vue Dépendances peut afficher vos dépendances sous la forme d’un arbre repliable. Développez une dépendance directe pour voir tous les paquets qu’elle introduit :Écosystèmes pris en charge
Voir les 25+ écosystèmes pris en charge
Voir les 25+ écosystèmes pris en charge
- AlmaLinux - Paquets Linux d’entreprise
- Alpine - Paquets Alpine Linux
- Android - Dépendances des applications Android
- Bitnami - Packages d’applications Bitnami
- crates.io - Paquets Rust
- Curl - vulnérabilités des bibliothèques cURL
- Debian GNU/Linux - Paquets Debian
- Git - Dépôts Git (y compris C/C++)
- GitHub Actions - Workflows GitHub Actions
- Go - Modules et paquets Go
- Haskell - Paquets de Haskell
- Hex - Paquets Elixir
- Linux kernel - Vulnérabilités du noyau Linux
- Maven - Dépendances Java Maven
- npm - Paquets Node.js
- NuGet - Paquets .NET
- OSS-Fuzz - Le service de fuzzing continu de Google
- Packagist - Paquets PHP
- Pub - Paquets Dart
- PyPI - Paquets Python
- Python - Vulnérabilités du langage Python
- R - Paquets R (CRAN et Bioconductor)
- Rocky Linux - Paquets Linux Rocky
- RubyGems - Paquets Ruby
- SwiftURL - Paquets Swift
- Ubuntu OS - Paquets Ubuntu
Exemple de projet multi-écosystème
Répartition par sévérité
- Élevée: doit être traitée rapidement en raison de son impact important sur la sécurité
- Moyenne : doit être traitée lors des cycles de maintenance habituels
- Faible: problème mineur qui peut être traité ultérieurement
Analyse d’accessibilité
La présence d’un paquet vulnérable dans votre arbre de dépendances ne signifie pas nécessairement que votre application est exposée. L’analyse d’accessibilité aide à établir les priorités en déterminant si votre code peut réellement déclencher la vulnérabilité. Pour chaque dépendance directe vulnérable, Corgea répond à deux questions :- Le paquet est-il utilisé ? Corgea recherche les imports et les utilisations du paquet dans votre code. Un paquet déclaré mais jamais importé présente un risque beaucoup plus faible.
- La fonction vulnérable est-elle accessible ? Pour les paquets utilisés, Corgea détermine si votre code appelle réellement les fonctions concernées par la vulnérabilité.
États d’accessibilité
Chaque problème analysé se résout à l’un des états suivants, que vous pouvez également utiliser comme filtres dans la vue Dépendances :- Accessible: votre code appelle la fonctionnalité vulnérable. Ces problèmes sont prioritaires, en particulier pour les dépendances directes.
- Inaccessible: le paquet est utilisé, mais les fonctions vulnérables ne sont pas appelées.
- Inutilisé: le paquet est déclaré, mais n’est pas utilisé dans votre code.
- En cours d’analyse: l’analyse d’accessibilité du problème n’est pas terminée.
Visualisation de l’accessibilité
Pour les problèmes accessibles, Corgea peut représenter le chemin entre les points d’entrée de votre application et le code vulnérable. Le parcours montre comment l’exécution passe des endpoints aux fonctions intermédiaires, puis à la fonction vulnérable. Vous pouvez ainsi comprendre et vérifier précisément pourquoi un problème est accessible.Recommandations de correctifs
Lorsqu’un correctif est disponible, Corgea recommande la version corrigée la plus proche, c’est-à-dire la version minimale qui résout la vulnérabilité. Elle est affichée à côté de la version actuellement installée. Cette recommandation limite l’ampleur de la mise à niveau et réduit le risque de changements incompatibles. Pour les dépendances directes, appliquez le correctif en mettant à jour la version dans votre manifeste. Pour les dépendances transitives, vous ne pouvez généralement pas modifier directement la version, car elle est contrôlée par un paquet parent. Corgea affiche alors le chemin de dépendance et la dépendance parente à mettre à niveau pour récupérer la version transitive corrigée. Consultez Dépendances transitives pour comprendre la construction de ce chemin.Analyse des licences
Pendant l’analyse des dépendances, Corgea identifie la licence logicielle associée à chaque dépendance afin de fournir une vue d’ensemble des licences présentes dans votre projet. Les licences sont présentées de deux manières :- Filtre de licence : dans la vue Dépendances, filtrez les problèmes par licence (voir Filtres de la vue Dépendances).
- Export CSV : les informations de licence sont incluses lorsque vous exportez les dépendances au format CSV.
Analyse d’images conteneurs
Corgea analyse également les images conteneurs dont dépend votre projet, identifiant les vulnérabilités dans les paquets de base du système d’exploitation et autres logiciels installés dans les couches d’image. Les images sont automatiquement découvertes depuisDockerfile et Docker Compose — aucune configuration requise.
Pour en savoir plus sur la détection des images, les registres pris en charge et les limites, consultez Analyse d’images conteneurs.
Détection de paquets malveillants
Dans le cadre de l’analyse des dépendances, Corgea signale les paquets malveillants ou compromis connus, tels que les typosquats, les versions détournées et les versions contenant une backdoor, à partir de la base OpenSSF Malicious Packages et de flux d’avis connexes. Pour plus de détails, voir Détection de paquets malveillants.Bonnes pratiques
- Scans réguliers: activez le scan automatique pour détecter les nouvelles vulnérabilités dès leur divulgation
- Mises à jour des dépendances : mettez rapidement à jour les dépendances lorsqu’un correctif est disponible pour une vulnérabilité détectée
- Priorisation par sévérité : traitez en priorité les vulnérabilités de sévérité critique et élevée
- Évaluation des risques : déterminez si les vulnérabilités affectent réellement la surface d’attaque de votre application
- Hygiène des dépendances : examinez et supprimez régulièrement les dépendances inutilisées afin de réduire la surface d’attaque
- Verrouillage des versions : utilisez des numéros de version précis dans les fichiers de dépendances afin d’obtenir des résultats de scan cohérents
- Surveillance : configurez des alertes pour les nouvelles vulnérabilités découvertes dans vos dépendances
- Documentation : conservez une trace des risques acceptés et des décisions de remédiation
Dépannage
Aucune vulnérabilité trouvée mais des dépendances sont présentes
Aucune vulnérabilité trouvée mais des dépendances sont présentes
Les résultats du scan semblent incomplets
Les résultats du scan semblent incomplets
Faux positifs signalés
Faux positifs signalés
Les performances de scan sont lentes
Les performances de scan sont lentes
