😸
OWASP Dependency Check CLIで依存ライブラリの脆弱性をチェックする
インストール方法とか諸々は以下を参照。
試したバージョンは v7.1.1。
GitHub Actionsで実行したいなーって思ってたので、 GitHub Release からzipを取得、解凍してshellを叩く形で実行してみた。
一応、npmにowasp-dependency-check ってのが公開されているけど、CLIをラップしているだけなのと、 --failOnCVSS
オプションが効かずに失敗にならなかったので普通にCLIを使うことにした。
対象とするコードは、 Example Projects – Reactにリンクされていた ahfarmer/calculator を使ってみた。
yarn.lockの最終コミットが4年前とかなので、いい感じに脆弱性が引っかかってくれそう。
$ sh dependency-check/bin/dependency-check.sh --out ./reports --project sample-check --failOnCVSS 9 -f HTML --data=/tmp/dependency-check-data --scan=./calculator/yarn.lock
結果。CVSSが9以上のものが見つかってエラーになった模様。
[INFO] Analysis Started
...
[ERROR]
One or more dependencies were identified with vulnerabilities that have a CVSS score greater than or equal to '9.0':
yarn.lock?ansi-html: 1070006(10.0)
yarn.lock?ansi-regex: 1081346(10.0)
yarn.lock?dns-packet: 1067881(10.0)
yarn.lock?elliptic: 1069331(10.0)
yarn.lock?glob-parent: 1067329(10.0)
yarn.lock?immer: 1068264(10.0), 1067715(10.0), 1067720(10.0)
yarn.lock?json-schema: 1070413(10.0), CVE-2021-3918(9.8)
yarn.lock?lodash.template: 1069553(10.0)
yarn.lock?lodash: 1069477(10.0), 1070117(10.0), 1069724(10.0), 1070247(10.0)
yarn.lock?minimist: 1067342(10.0)
yarn.lock?node-forge: 1070356(10.0), 1070355(10.0)
yarn.lock?nth-check: 1070415(10.0)
yarn.lock?shell-quote: 1075650(10.0), CVE-2021-42740(9.8)
yarn.lock?sshpk: 1069864(10.0)
yarn.lock?tmpl: 1070326(10.0)
yarn.lock?websocket-extensions: 1069395(10.0)
See the dependency-check report for more details.
レポートはこんな感じ↓
GitHub Actionsで実行するには、wgetかなんかでバイナリを取得してunzipしてえいやって実行してレポートはartifactにuploadすればおk
Discussion