OWASP DependencyCheck – утилита анализа состава программного обеспечения, которая обнаруживает публично раскрытые уязвимости в зависимостях приложений.
Он делает это, определяя, есть ли идентификатор Common Platform Enumeration (CPE) для данной зависимости.
Если он найден, он будет генерировать отчет, связанный с соответствующими записями CVE.
Документацию и ссылки на производственные бинарные версии можно найти на страницах github.
Кроме того, дополнительную информацию об архитектуре и способах расширения проверки зависимостей можно найти в вики.
Текущие релизы
Плагин Jenkins
Инструкции по использованию плагина Jenkins см.
На странице OWASP Dependency-Check Plugin.
Командная строка
Более подробные инструкции можно найти на страницах github проверки зависимостей.
Последний CLI можно загрузить с страницы проверки зависимостей bintray.
На * nix
#./bin/dependency-check.sh -h # ./bin/dependency-check.sh --project Testing --out . --scan [path to jar files to be scanned]
На Windows
> .\bin\dependency-check.bat -h > .\bin\dependency-check.bat --project Testing --out . --scan [path to jar files to be scanned]
На Mac с Homebrew
# brew update && brew install dependency-check # dependency-check -h # dependency-check --project Testing --out . --scan [path to jar files to be scanned]
Плагин Maven
Более подробные инструкции можно найти на страницах github dependency-check-maven.
По умолчанию плагин привязан к фазе проверки (т. е. Проверка mvn).
В качестве альтернативы можно напрямую вызвать плагин через mvn org.owasp: dependency-check-maven: check.
Плагин проверки зависимостей можно настроить следующим образом:
<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>
Задача Ant
Инструкции по использованию Ant-задачи см. На странице github на основе зависимостей.
Использование версии разработки
В следующих инструкциях описывается компиляция и использование текущего моментального образа.
Хотя каждое намерение заключается в поддержании стабильного моментального снимка, рекомендуется использовать приведенные выше версии релиза.
Репозиторий имеет несколько больших файлов из-за тестовых ресурсов.
Команда попыталась как можно больше очистить историю.
Тем не менее, рекомендуется выполнять мелкое клонирование, чтобы сэкономить время:
# git clone --depth 1 git@github.com:jeremylong/DependencyCheck.git
На * nix
# mvn install # ./dependency-check-cli/target/release/bin/dependency-check.sh -h # ./dependency-check-cli/target/release/bin/dependency-check.sh --project Testing --out . --scan ./src/test/resources
На 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
Затем загрузите полученный «dependency-check-report.html» в ваш любимый браузер.
Docker
В следующем примере предполагается, что проверяемый источник находится в текущем рабочем каталоге.
Используются постоянные каталоги данных и отчетов, позволяющие вам уничтожить контейнер после запуска.
#!/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"
Замечания по обновлению
Обновление с 1.x.x до 2.x.x
Обратите внимание, что при обновлении с версии 1.x.x необходимо внести следующие изменения в вашу конфигурацию.
Файл подавления
Чтобы поддерживать несколько файлов подавления, изменился механизм настройки файлов.
Таким образом, пользователям, которые определили файл подавления в своей конфигурации, необходимо будет обновиться.
См. Примеры ниже:
Ant
Старый
<dependency-check failBuildOnCVSS="3" suppressionFile="suppression.xml"> </dependency-check>
Новый
<dependency-check failBuildOnCVSS="3"> <suppressionFile path="suppression.xml" /> </dependency-check>
Maven
Старый
<plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <configuration> <suppressionFile>suppression.xml</suppressionFile> </configuration> </plugin>
Новый
<plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> <configuration> <suppressionFiles> <suppressionFile>suppression.xml</suppressionFile> </suppressionFiles> </configuration> </plugin>
Gradle
В дополнение к изменениям файла подавления, функция dependencyCheck задачи была переименована в dependencyCheckAnalyze
Старый
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
Новый
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
Скачать DependencyCheck
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.
`\_(о.о)_/`