前提 - バージョン
plugins {
id("org.owasp.dependencycheck") version "5.2.4"
id("org.gretty") version "3.0.1"
}
説明
dependency-checkとは
依存関係に脆弱性がないか調べてくれるツール
owaspのjeremylongさんがつくっている?
https://jeremylong.github.io/DependencyCheck/
grettyとは
IDEの機能を使わなくても、gradleタスクでtomcatやjettyなどのアプリケーションサーバーを起動できる
gradleプラグイン
https://plugins.gradle.org/plugin/org.gretty
なぜしようとおもったか
grettyいれたらたくさん脆弱性があった
とても悲しい・・・
見つかった脆弱性は246個とのこと。
grettyはローカル環境だけで使っていて、
開発環境や本番環境で製品となる依存関係には含まれないので、
この脆弱性は見たくない。
方法
1.grettyのconfigurationをしらべる
下記のようなタスクを用意・実行して、configurationの一覧を出力する
tasks.register("showConfiguration") {
configurations.stream().forEach {
println(it.name)
}
}
出力した結果、「gretty」から始まるconfigurationがあるので、
コピーしておく
2.dependencyCheckのskipConfigurationsに1.を入れる
gretty version 3.0.1の場合だと以下のようになりました。
前のバージョンだと、「tomcat8」等追加になるかと思います
kotlin DSL
dependencyCheck {
skipConfigurations = listOf(
"gretty",
"grettyNoSpringBoot",
"grettyProductRuntime",
"grettyProvidedCompile",
"grettyRunnerJetty7",
"grettyRunnerJetty8",
"grettyRunnerJetty9",
"grettyRunnerJetty93",
"grettyRunnerJetty94",
"grettyRunnerTomcat85",
"grettyRunnerTomcat9",
"grettySpringLoaded",
"grettyStarter"
)
}
gradle
dependencyCheck {
skipConfigurations = [
"gretty",
"grettyNoSpringBoot",
"grettyProductRuntime",
"grettyProvidedCompile",
"grettyRunnerJetty7",
"grettyRunnerJetty8",
"grettyRunnerJetty9",
"grettyRunnerJetty93",
"grettyRunnerJetty94",
"grettyRunnerTomcat85",
"grettyRunnerTomcat9",
"grettySpringLoaded",
"grettyStarter"
]
}
結果
見つかった脆弱性は0になりました
まとめ
※gretty version 3.0.1の場合。
前のバージョンだと、「tomcat8」等追加になるかと思います
dependencyCheck {
skipConfigurations = listOf(
"gretty",
"grettyNoSpringBoot",
"grettyProductRuntime",
"grettyProvidedCompile",
"grettyRunnerJetty7",
"grettyRunnerJetty8",
"grettyRunnerJetty9",
"grettyRunnerJetty93",
"grettyRunnerJetty94",
"grettyRunnerTomcat85",
"grettyRunnerTomcat9",
"grettySpringLoaded",
"grettyStarter"
)
}