2024.10.18

Spring Health Assessmentで始めるアプリケーションの健康診断

平塚綾
株式会社カサレアル プロフェッショナルソリューション第1技術部ラーニングサービス技術課
このエントリーをはてなブックマークに追加

はじめに

 こんにちは、株式会社カサレアルの平塚と申します。このブログでは、Spring Health Assessmentを使ってSpring Bootアプリケーションに含まれる脆弱性を検出する方法について説明します。

突然ですが、みなさんはSpring Bootで構築したアプリケーションのバージョンを把握していますか? 現在リリースされているバージョンと同じでしょうか。それとも、最初に構築したきりでしょうか。 

今回は、Spring Bootのバージョンアップに役立つ「Health Assessment」サービスについて紹介します。このサービスを使って、今のアプリケーションの状態を診断してみましょう。 

Spring Bootとは 

サービスを紹介する前に、基礎知識のおさらいです。

Spring Bootとは、Spring FrameworkというJavaベースのフレームワークをさらに使いやすくしたものです。アプリケーションを構築する時に必要な初期設定などがあらかじめ用意されているので、快適に開発を始められます。

Spring BootとそのベースとなるSpring Frameworkは、どちらもSpringコミュニティによって開発されています。それぞれ決まった間隔でリリースが行われており、サポート期間も一定です。

▼2024年10月現在の開発サイクル

 

Spring Framework

Spring Boot

リリースタイミング

年1回(11月)

年2回(5月・11月)

OSSサポート(無償)

1年半

1年

エンタープライズ
サポート(有償)

3年

2年

フレームワークで用いられているJava言語と異なり、Spring Bootは後方互換性を考慮しないアップデートが行われることがあります。ただライブラリのバージョンを上げただけではアプリケーションが動作しなくなるかもしれません。

Spring Health Assessmentとは

とはいえ、動作を検証する時間が取れないからといってアップデートせずにいると、今度は脆弱性が入り込んだままとなってしまいます。安全な運用のためにも、Spring Bootのバージョンは定期的に上げなければなりません。

ここで役立つのが「Health Assessment」です。このサービスは、既存のSpring Bootアプリケーションの依存関係を分析し、アップデートすべきライブラリを特定します。膨大なリリースノートを確認する前におおよその目星がつけられるため、アップデート作業の負荷を減らすことができます。

実践! Spring Health Assessment

では、実際にサービスを使ってみましょう。

 まずはサービスのWEBページ(https://tanzu.vmware.com/jp/spring-health-assessment)にアクセスします。「診断する」ボタンを押して次へ進みましょう。

依存関係をテキストファイルに出力します。表示されているコマンドをコピーして、アプリケーションのルートフォルダで実行します。必要に応じて実行権限を付与してください。

出力結果をアップロードし、必要な項目を入力します。なお、入力された個人情報はメールマガジンの送付などに利用されます。

「レポートを生成」ボタンを押すと、1分程度で結果が出力されます。 

レポートを読み解く

試しに、弊社カサレアルが提供する研修コースの教材プロジェクトを分析してみました。その結果を読み解いていきます。 

casareal_Sprign2.png

casareal_Sprign3.png

レポートは大まかに2つのパートで分けられます。OSS Support Status(OSSサポート状況)とLibraries(ライブラリ)です。

 

OSS Support Statusは、依存関係にあるライブラリのサポート期間を表しています。Opensource(無償)、Commercial(有償)、Unsupported(期限切れ)の3種類があり、またサポート期間が切り替わるタイミングもグラフで表示されます。Unsupportedが多い場合は早めにアップデートを検証しましょう。

Librariesでは、具体的な脆弱性やアップデート推奨状況が一覧できます。Vulnerability Status(脆弱性の危険度)がHIGHのものを優先して確認しましょう。CVEのリンクはNIST(米国国立標準技術研究所)のセキュリティ文書に繋がっています。

このプロジェクトは、OSS Support Statusはすべて無償期間ですが、脆弱性を含んだままのライブラリが11個あるようです。11月には新たなバージョンもリリースされるので、そのタイミングで改めて検証・アップデートしておきます。

ちなみに、同じプロジェクトの過去のバージョン(2022年11月頃)を分析した結果がこちらです。 

casareal_Sprign4.png

定期的にアップデートしないと、このように脆弱性だらけの危険なアプリケーションが生まれてしまいます。アップデートも運用の一部ととらえ、Health Assessmentサービスを使って効率よく更新していきましょう。

おわりに

もちろん、Spring Bootのリリースには、脆弱性対応以外にも様々な変更が含まれます。Springプロジェクトの公式GitHubでは、アップデートに伴う変更点をまとめたページが公開されています。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide

弊社カサレアルのSpring Migrationコースでは、これらの変更点を分かりやすく整理し、一歩一歩着実にアップデートする方法をお伝えしています。脆弱性対応と合わせて最新の実装方法を学びたい方は、ぜひ受講を検討してください。お待ちしています。

オフライン(品川)実施 https://www.casareal.co.jp/ls/service/openseminar/java/j180

オンライン実施 https://www.casareal.co.jp/ls/service/openseminar/java/j180-online

 

関連リンク

https://www.casareal.co.jp/ls/

https://www.casareal.co.jp/ls/service/openseminar/top/

この記事の著者:平塚綾

株式会社カサレアル プロフェッショナルソリューション第1技術部ラーニングサービス技術課

主にJavaやSpringに関する研修コースの開発を担当


DevOps Hubのアカウントをフォローして
更新情報を受け取る

  • Like on Feedly
    follow us in feedly

関連記事

このエントリーをはてなブックマークに追加

お問い合わせ

DevOpsに関することなら
お気軽にご相談ください。

Facebook、TwitterでDevOpsに関する
情報配信を行っています。