ブログ

Springライブラリの新たな脆弱性:リスクの確認方法と対策について

April 1, 2022
チャーリー・エリクセン
暗い背景の中、色鮮やかなコンピュータコードとデータの投影に照らされた、長い髪の女性の顔。

Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が最近公開されました。これらの脆弱性に対するリスクの有無や、必要な対策を容易に把握できるよう、「Spring4Shell」および「Spring Cloud Function」に関する詳細をまとめました。

脆弱性1 - 「Spring4Shell」(CVE-2022-22965)

2022年3月29日、Spring Core(SC)を標的としたエクスプロイトの概念実証(PoC)のスクリーンショットを含む一連のツイートがコミュニティで発見されました。これにより、最新リリースである5.3.17を含むすべてのSpring Coreバージョンにおいて、リモートコード実行が可能であることが判明しました。

どのようなアプリケーションが危険にさらされていますか?

現在、この新しいエクスプロイトに対して脆弱であることが確認されているのは、Tomcat上でホストされているアプリケーションのみです。組み込みTomcatサーブレットコンテナや、Tomcat以外でホストされているアプリケーションに対して、このエクスプロイトが成功したという実証例はまだありませんが、将来的にこれらのフレームワークに対しても脅威が及ぶ可能性は否定できません。

Springは、この脆弱性に関する公式声明を発表しました。現時点での理解に基づくと、脆弱性の影響を受けるには以下の条件を満たす必要があると説明されています。

  • JDK 9以上
  • サーブレットコンテナとしてApache Tomcatを使用
  • (Spring Bootの実行可能jarではなく)従来のWARとしてパッケージ化されている
  • spring-webmvcまたはspring-webfluxの依存関係
  • Spring Frameworkバージョン5.3.0〜5.3.17、5.2.0〜5.2.19、およびそれ以前のバージョン

「Spring4Shell」のエクスプロイトはどのように機能しますか?

このエクスプロイトは、メソッドシグネチャでPOJO(Plain Old Java Objects)を使用するリクエストにおいて、「データバインディング」(org.springframework.web.bind.WebDataBinder)を利用します。

ここでFooクラスはPOJOクラスであり、以下のように定義できます。クラスローダーによってロードされる限り、実際のクラスの内容は重要ではありません。

Java code defining class Foo in package spring4shell.model with private String variable Bar.

このようなメソッドでリクエストが処理される際、クラスを解決するためにクラスローダーが使用されます。クラスローダーは、すべての可能な型を事前にメモリにロードすることなく、実行時にクラスをロードする役割を担います。新しいクラスが使用される際に、どの.jarファイルをロードすべきかを判断します。

この脆弱性に関する最新かつ詳細な情報(修正プログラムや回避策を含む)は、Springのブログ記事から直接ご確認いただけます。

脆弱性2 - Spring Cloud Function(CVE-2022-22963)

2022年3月27日、Cyber Kendraは、パッチが存在しないSpring Cloud Functionのゼロデイリモートコード実行(RCE)脆弱性に関する詳細を公開しました。この脆弱性には、CVE-2022-22963: Spring Expression Resource Access VulnerabilityというIDが割り当てられています。

どのようなアプリケーションが危険にさらされていますか?

この脆弱性は、以下の条件に該当するアプリケーションに影響を及ぼしました。

  • JDK 9以降
  • Spring Cloud Functions バージョン 3.1.6以下、3.2.2以下、またはサポート対象外のすべてのバージョン

この脆弱性はどのように悪用されるのか?

Spring Cloud Functionでは、開発者が「spring.cloud.function.routing-expression」プロパティを使用してルーティング処理を設定できます。これは通常、設定ファイルやコードを通じて行われます。この強力な機能は「Spring Expression Language (SpEL)」を受け入れます。今回のゼロデイ脆弱性により、このプロパティがHTTPリクエストヘッダーを通じて設定可能であることが判明しました。つまり、攻撃者はRoutingFunctionエンドポイントへのHTTPリクエストにSpELコードを直接埋め込むことで、任意のコードを実行できてしまうのです。

ユーザーはリスクを軽減するためにどのような対策をとるべきでしょうか?

Springはリリースしました。バージョン3.1.7および3.2.3では、HTTPヘッダー経由での当該プロパティ設定を禁止することで、この脆弱性に対処しています。いずれかのバージョンにアップグレードすれば、追加の対策は不要です。

開発者がより安全なコードを書くための支援について詳しく知りたいですか?デモを予約するか、無料のセキュアコーディングガイドラインをでご確認ください。

‍

出典

‍

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。