脆弱性対処マニュアル

このマニュアルについて

脆弱性概要レポート(Excel)で更新が必要とされたライブラリについて、何を探し、どう直すかを手順で示します。読み手は、脆弱性の専門家ではない一般の開発者です。

  • バージョンページ:ライブラリとバージョンごとのページです。概要レポートの L列のリンクから開きます。更新先の候補・解消する脆弱性・この更新でやること・検索語・工数の目安があります
  • 共通手順書:どのライブラリでも同じ作業のやり方です。バージョンページの各手順からリンクしています

概要レポートとの関係

段階・緊急性・自システムでの使われ方(外部からの入力を扱うかなど)は、概要レポートで判断します。バージョンページには、製品ごとの情報は書かれていません。同じライブラリの同じバージョンなら、どの製品から見ても同じページです。

段階と、バージョンページの更新経路の対応:

バージョンページの経路 概要レポートの段階(参考)
JavaEE(javax)の範囲での更新 差し替えで済めば第2段階、書き換えが要れば第3段階(外部からの入力を扱わなければ第4段階)
JakartaEE 化を伴う更新 第4段階
代替への置き換え(後継のバージョンが無い) 第3段階

ご注意

  • 共通手順書は、どのプロジェクトにも使える汎用の手順です。記録の方法と開発環境のルールは、プロジェクトごとに確かめてください。プロジェクトの決まりと違うときは、プロジェクトの決まりに従います
  • コマンドの例は Windows PowerShell で実行する形です
  • バージョンページのうち「機械的に取得」と表示された部分は、Maven Central・OSV(公開の脆弱性データベース)・公開されている JAR の比較から機械で作ったものです
  • 「AI による調査」と表示された部分は、AI が公開情報を調べて書いたものです。出典を付けていますが、適用する前に必ず確かめてください
  • 修正例のコードは例です。そのまま貼り付けて動く保証はありません
  • 工数の目安は概算です

共通手順書

  1. 作業の全体像
  2. 開発環境と前提
  3. 作業前の準備
  4. 更新前の記録
  5. 利用箇所の調べ方
  6. 依存定義の更新
  7. IDE への反映
  8. 解決されたバージョンの確認
  9. コンパイルエラーの切り分け
  10. import の一括置き換え(javax → jakarta)
  11. 非推奨の警告の扱い
  12. 概算工数の出し方
  13. リソースの解放と入力の安全性
  14. ビルド・テスト・WAR の確認
  15. 他の JAR に同梱された複製
  16. 再スキャン
  17. 変更差分の確認と完了条件
  18. ロールバックと作業記録
  19. 検証環境等への配備