はじめに
ReactのRSC(React Server Components)の脆弱性を最近、耳にした。
で、外部公開していないけど自宅のシステムも脆弱性が気になり始めた。
ライブラリをnpm管理の場合、npm audit で調べられるけど他の管理手法の場合、どうやって調べるんだろう。
とふと気になり、Geminiに色々聞いてみた。
ちなみに、自宅のシステムは、以下のような感じ。
| フレームワーク | ライブラリ管理ツール |
|---|---|
| Spring Boot | gradle |
| Next.js | npm |
| Rails | bundle |
| Laravel | composer, npm |
npmの場合
管理ファイル
package.json
package-lock.json
検出
npm audit
修正
npm audit fix
OR
npm audit fix --force
bundle(Rails)
標準ではなさそう。
Geminiに聞いたら、「bundler-audit」を勧められる
管理ファイル
Gemfile
Gemfile.lock
準備
group :development do
gem "bundler-audit"
end
検出
bundle-audit check
修正
修正コマンドは無し。
Gemfile.lock を確認して、対象ライブラリを確認。
bundle update XXXX
Composer(Laravel)
こちらも標準ではなさそう。
Geminiに聞いたら、「security-checker」を勧められる
けど、「security-checker」をGoogle検索したら、以下の記事に出会う。
どうやら「Composer2.4」からは、npmと同じくauditコマンドがあるらしい。
管理ファイル
composer.json
composer.lock
検出
composer audit
修正
修正コマンドは無し。
composer.lock を確認して、対象ライブラリを確認。
composer update XXXX
Spring Boot(Gradle)
こちらも標準では無さそうなので、Geminiに相談したら「dependencycheck」を勧められる。
管理ファイル
build.gradle
準備
id 'org.owasp.dependencycheck' version '12.1.9'
検出
gradlew dependencyCheckAnalyze
修正
こちらも自動ではないので、依存性を確認してバージョンを修正
gradlew dependencies
使ってみての感想
誤検知っぽいのもあるかもしれない?と思うので、その辺りは注意が必要かも。
(1個バージョンアップで解決できないものがあって、Geminiに相談したら誤検知かも?というお話。そのうち、ちゃんと調べる。)
あと、裏側の処理をちゃんと把握していないので、どの頻度で脆弱性情報が更新されている?なども分かっていないので、その辺りもちゃんと調べないとな。ってのも思った。
便利だけど、脆弱性の最新情報の別途キャッチは必要と思った。