
Dependency-Check ist ein Werkzeug, das versucht, öffentlich bekannt gegebene Schwachstellen zu erkennen, die in Projektabhängigkeiten enthalten sind. Dies geschieht, indem festgestellt wird, ob eine Common Platform Enumeration (CPE)-Kennung für eine bestimmte Abhängigkeit vorhanden ist. Wenn eine solche gefunden wird, erstellt es einen Bericht mit Links zu den zugehörigen CVE-Einträgen.
Dokumentation und Links zu den Produktions-Binärversionen finden Sie auf der GitHub-Seite. Darüber hinaus finden Sie weitere Informationen zur Architektur und zu Möglichkeiten, dependency-check zu erweitern, im Wiki.
Anweisungen zur Verwendung des Jenkins-Plugins finden Sie auf der OWASP Dependency-Check Plugin-Seite.
Ausführlichere Anweisungen finden Sie auf der GitHub-Seite von dependency-check. Die neueste CLI kann von bintrays dependency-check-Seite heruntergeladen werden.
Unter *nix
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --project Testing --out . --scan [path to jar files to be scanned]
Unter Windows
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --project Testing --out . --scan [path to jar files to be scanned]
Unter Mac mit Homebrew
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --project Testing --out . --scan [path to jar files to be scanned]
Ausführlichere Anweisungen finden Sie auf der GitHub-Seite von dependency-check-maven.
Standardmäßig ist das Plugin an die verify-Phase gebunden (d. h. mvn verify). Alternativ kann das Plugin direkt über mvn org.owasp:dependency-check-maven:check aufgerufen werden.
Das Dependency-Check-Plugin kann wie folgt konfiguriert werden:
<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>
Anweisungen zur Verwendung des Ant-Task finden Sie auf der GitHub-Seite von dependency-check-ant.
Die folgenden Anweisungen beschreiben, wie der aktuelle Snapshot kompiliert und verwendet wird. Es ist zwar beabsichtigt, einen stabilen Snapshot bereitzustellen, dennoch wird empfohlen, die oben aufgeführten Release-Versionen zu verwenden.
Das Repository enthält aufgrund von Testressourcen einige große Dateien. Das Team hat versucht, den Verlauf so weit wie möglich zu bereinigen. Es wird jedoch empfohlen, einen Shallow Clone durchzuführen, um Zeit zu sparen:
git clone --depth 1 https://github.com/jeremylong/DependencyCheck.git
Unter *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
Unter 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
Laden Sie anschließend die erzeugte Datei 'dependency-check-report.html' in Ihren bevorzugten Browser.
Im folgenden Beispiel wird angenommen, dass sich die zu prüfende Quelle im aktuellen Arbeitsverzeichnis befindet. Es werden persistente Daten- und Berichtsverzeichnisse verwendet, sodass Sie den Container nach der Ausführung löschen können.
#!/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"
Beachten Sie, dass beim Upgrade von Version 1.x.x die folgenden Änderungen an Ihrer Konfiguration vorgenommen werden müssen.
Um mehrere Suppression-Dateien zu unterstützen, wurde der Mechanismus zur Konfiguration von Suppression-Dateien geändert. Daher müssen Benutzer, die eine Suppression-Datei in ihrer Konfiguration definiert haben, diese aktualisieren.
Siehe die folgenden Beispiele:
Alt:
<dependency-check
failBuildOnCVSS="3"
suppressionFile="suppression.xml">
</dependency-check>
Neu:
<dependency-check
failBuildOnCVSS="3">
<suppressionFile path="suppression.xml" />
</dependency-check>
Alt:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFile>suppression.xml</suppressionFile>
</configuration>
</plugin>
Neu:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFiles>
<suppressionFile>suppression.xml</suppressionFile>
</suppressionFiles>
</configuration>
</plugin>
Zusätzlich zu den Änderungen an der Suppression-Datei wurde die Aufgabe dependencyCheck in dependencyCheckAnalyze umbenannt.
Alt:
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
Neu:
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
Abonnieren: [[email protected]] subscribe
Beitrag senden: [[email protected]] post
Archiv: Google-Gruppe
Dependency-Check ist urheberrechtlich geschützt (c) 2012-2017 Jeremy Long. Alle Rechte vorbehalten.
Die Erlaubnis zur Änderung und Weiterverbreitung wird unter den Bedingungen der Apache-2.0-Lizenz gewährt. Die vollständige Lizenz finden Sie in der Datei LICENSE.txt.
Dependency-Check verwendet mehrere andere Open-Source-Bibliotheken. Weitere Informationen finden Sie in der Datei NOTICE.txt.