
Outil d'analyse de composition logicielle qui détecte les vulnérabilités publiquement divulguées dans les dépendances de projet en utilisant la correspondance CPE, générant des rapports détaillés avec des liens CVE pour l'intégration CI/CD.
Dependency-Check est un utilitaire qui tente de détecter les vulnérabilités publiquement divulguées contenues dans les dépendances d'un projet. Pour ce faire, il détermine s'il existe un identifiant Common Platform Enumeration (CPE) pour une dépendance donnée. Si tel est le cas, il génère un rapport avec des liens vers les entrées CVE correspondantes.
La documentation et les liens vers les versions binaires de production se trouvent sur les pages github. De plus, plus d'informations sur l'architecture et les moyens d'étendre Dependency-Check sont disponibles sur le wiki.
Pour les instructions d'utilisation du plugin Jenkins, veuillez consulter la page du plugin OWASP Dependency-Check.
Des instructions plus détaillées se trouvent sur les pages github de Dependency-Check. La dernière version CLI peut être téléchargée depuis la page Dependency-Check de bintray.
Sur *nix
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --project Testing --out . --scan [path to jar files to be scanned]
Sur Windows
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --project Testing --out . --scan [path to jar files to be scanned]
Sur Mac avec Homebrew
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --project Testing --out . --scan [path to jar files to be scanned]
Des instructions plus détaillées se trouvent sur les pages github de Dependency-Check Maven. Par défaut, le plugin est lié à la phase verify (c'est-à-dire mvn verify). Alternativement, on peut invoquer directement le plugin via mvn org.owasp:dependency-check-maven:check.
Le plugin Dependency-Check peut être configuré comme suit :
<project>
<build>
<plugins>
...
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
Pour les instructions d'utilisation de la tâche Ant, veuillez consulter la page github de Dependency-Check Ant.
Les instructions suivantes décrivent comment compiler et utiliser la version instantanée actuelle. Bien que nous ayons l'intention de maintenir une version stable, il est recommandé d'utiliser les versions de publication listées ci-dessus.
Le dépôt contient des fichiers volumineux en raison des ressources de test. L'équipe a essayé de nettoyer l'historique autant que possible. Cependant, il est recommandé d'effectuer un clone superficiel pour gagner du temps :
git clone --depth 1 https://github.com/jeremylong/DependencyCheck.git
Sur *nix
$ mvn install
$ ./cli/target/release/bin/dependency-check.sh -h
$ ./cli/target/release/bin/dependency-check.sh --project Testing --out . --scan ./src/test/resources
Sur Windows
> mvn install
> .\dependency-check-cli\target\release\bin\dependency-check.bat -h
> .\dependency-check-cli\target\release\bin\dependency-check.bat --project Testing --out . --scan ./src/test/resources
Chargez ensuite le fichier 'dependency-check-report.html' résultant dans votre navigateur préféré.
Dans l'exemple suivant, il est supposé que la source à analyser se trouve dans le répertoire de travail actuel. Des répertoires persistants pour les données et les rapports sont utilisés, ce qui vous permet de détruire le conteneur après l'exécution.
#!/bin/sh
OWASPDC_DIRECTORY=$HOME/OWASP-Dependency-Check
DATA_DIRECTORY="$OWASPDC_DIRECTORY/data"
REPORT_DIRECTORY="$OWASPDC_DIRECTORY/reports"
if [ ! -d "$DATA_DIRECTORY" ]; then
echo "Initially creating persistent directories"
mkdir -p "$DATA_DIRECTORY"
chmod -R 777 "$DATA_DIRECTORY"
mkdir -p "$REPORT_DIRECTORY"
chmod -R 777 "$REPORT_DIRECTORY"
fi
# Make sure we are using the latest version
docker pull owasp/dependency-check
docker run --rm \
--volume $(pwd):/src \
--volume "$DATA_DIRECTORY":/usr/share/dependency-check/data \
--volume "$REPORT_DIRECTORY":/report \
owasp/dependency-check \
--scan /src \
--format "ALL" \
--project "My OWASP Dependency Check Project"
# Use suppression like this: (/src == $pwd)
# --suppression "/src/security/dependency-check-suppression.xml"
Notez que lors de la mise à niveau depuis la version 1.x.x, les modifications suivantes devront être apportées à votre configuration.
Afin de prendre en charge plusieurs fichiers de suppression, le mécanisme de configuration des fichiers de suppression a changé. Par conséquent, les utilisateurs qui ont défini un fichier de suppression dans leur configuration devront le mettre à jour.
Voir les exemples ci-dessous :
Old:
<dependency-check
failBuildOnCVSS="3"
suppressionFile="suppression.xml">
</dependency-check>
New:
<dependency-check
failBuildOnCVSS="3">
<suppressionFile path="suppression.xml" />
</dependency-check>
Old:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFile>suppression.xml</suppressionFile>
</configuration>
</plugin>
New:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFiles>
<suppressionFile>suppression.xml</suppressionFile>
</suppressionFiles>
</configuration>
</plugin>
En plus des modifications apportées au fichier de suppression, la tâche dependencyCheck a été renommée en dependencyCheckAnalyze.
Old:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:2.0.1-SNAPSHOT'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
suppressionFile='path/to/suppression.xml'
}
check.dependsOn dependencyCheckAnalyze
New:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:2.0.1-SNAPSHOT'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
suppressionFiles = ['path/to/suppression1.xml', 'path/to/suppression2.xml']
}
check.dependsOn dependencyCheckAnalyze
Abonnez-vous : [[email protected]] subscribe
Publier : [[email protected]] post
Archives : groupe google
Dependency-Check est Copyright (c) 2012-2017 Jeremy Long. Tous droits réservés.
La permission de modifier et redistribuer est accordée selon les termes de la licence Apache 2.0. Voir le fichier LICENSE.txt pour la licence complète.
Dependency-Check utilise plusieurs autres bibliothèques open source. Veuillez consulter le fichier NOTICE.txt pour plus d'informations.