SonarQube の plugin に、OWASP Dependency-Check を実施して、Check 結果を収集する plugin がありました。
インストール、使用してみた結果を記載します。
前提
以下の環境で作業は実施しています。
-
OS
% sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29
-
SonarQubeのVersion
SonarQube 6.5
Plugin 紹介ページと Github repository へのリンク
以下、Plugin紹介ページのリンクとGithub repository へのリンク になります。
* Plgin紹介ページ
OWASP Dependency-Check - SonarQube Plugins
- Githubリポジトリ
stevespringett/dependency-check-sonar-plugin: Integrates OWASP Dependency-Check reports into SonarQube
OWASP Dependency-Check とは
OWASP Dependency-Check は、アプリケーションが脆弱性のあるライブラリを使用しているかどうかをチェックしてくれるツールになります。
このplugin を使うことでOWASP Dependency-Check の結果がSonarQube 上に収集されます。
以下、OWASP に関する文書へのリンクになります。
Owasp Project の説明へのリンク
OWASP Dependency Check 自体の説明
Cheat Sheet 文書 へのリンク
前提
SonarQube の OWASP Dependency-Check plugin を使う前提として、Dependency-Check Reports 自体を出力する必要があります。
私は、maven-plugin を使ってレポートxml を 出力しました。
maven plugin 自体の設定は、以下の記事を参考にしました。
-
OWASP Dependency-check-mavenを使ってmavenで管理している依存ライブラリの脆弱性をスキャン - Qiita
-
MavenでOWASP Dependency CheckによるJavaライブラリの脆弱性をチェックする - 覚えたら書く
上記に記載されている内容と重複しますが、SonarQube の plugin の 入力ファイル作成のため pom に設定した記述を載せておきます。
pom.xml の抜粋
以下の設定で、targetディレクトリの直下に、dependency-check-report.xml が出力されるようになります。
<build>
<plugins>
<!-- dependency-check-maven -->
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>2.1.0</version>
<configuration>
<format>XML</format>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
インストール
目下 version 6.x 向けに対応中のようで、release jar が、version 5.x のものしか存在しなかったため、
git リポジトリを clone して jar を固めるところから実施しました。
-
リポジトリをcloneする
git clone https://github.com/stevespringett/dependency-check-sonar-plugin.git
-
コンパイル
Junitテストでexception が出力されますが、BUILD SUCCESS します。cd dependency-check-sonar-plugin mvn clean package
-
plugin jar ファイルをSonarQube の extention ディレクトリにコピー
私が使用しているMacでは以下が、extention ディレクトリとなります。
環境に応じて読み替えてください。
コピー後は、SonarQubeを再起動する必要があります。cd target/ cp sonar-dependency-check-plugin-1.1.0-SNAPSHOT.jar /usr/local/Cellar/sonarqube/6.5/libexec/extensions/plugins/
OWASP Dependency-Check の チェック結果の収集
コマンド実行
SonarQube 起動後に、解析対象プロジェクトで、以下のmvn コマンドを実行します。
mvn sonar:sonar -Dsonar.dependencyCheck.reportPath=target/dependency-check-report.xml
sonar-project.properties での設定も可能です。
それぞれ以下のStack Overflow の記事が参考になるかと思います。
-
pom.xml に設定する
dependencies - SonarQube dependency check sonar plugin - Stack Overflow -
sonar-project.properties に設定する
jenkins - Sonarqube Zapscan and Dependency Check - Stack Overflow
データ収集後の画面表示イメージ
Issues に、脆弱性として記録されます。
作成中のJavaアプリケーションのレポートを収集させたところ 70 ほど脆弱性が増加しました。。
上記、issue の1つをクリックした後の画面表示になります。
プロジェクトリソースとして警告対象のファイルを保持しているわけではないので、ファイルが削除されているような表示になります。
このへんは若干残念です。
以上、OWASP Dependency-Check plugin のインストール、使用方法となります。
ソースコードメトリクスデータの登録先となるSonarQube に OWASP の警告も取り込めるのは便利かもしれません。
OWASP 関連だと OWASP ZAP の警告を SonarQube に 取り込む plugin もありました。
stevespringett/zap-sonar-plugin: Integrates OWASP Zed Attack Proxy reports into SonarQube
そちらも機会があれば使ってみようかと思います。
以上です。
コメント