Tenable ブログ
ブログ通知を受信するSpring Framework におけるリモートコード実行の脆弱性 (Spring4Shell) に関するよくある質問
Spring4Shell (CVE-2022-22965) に関するよくある質問
Update April 13: Updated the Identifying affected systems section with the recent addition of a remote direct check plugin for Spring4Shell. For information about our detections, please refer to this post on the Tenable Community.
4 月 1 日更新: Apache Tomcat および Tenable 製品に関するセクションを追加しました。この影響を受けるシステムの特定のセクションを更新し、Tenable 製品カバレッジに関する追加情報を記載しました。
3 月 31 日更新: 修正バージョン、CVE 識別子、脆弱性を悪用する攻撃者が必要とする要件に関する詳細、および Tenable 製品カバレッジに関する情報など、追加の詳細情報を提供しました。
Tenable Research は、Spring4Shell に関連する更新を注意深く確認しています。新しい情報が追加され次第、Tenable 製品カバレッジなどの脆弱性に関する追加の詳細情報と共にこのFAQを更新する予定です。
Spring4Shell に関するよくある質問
Spring4Shell とは何ですか?
Spring4Shell は、Java ベースのエンタープライズアプリケーションのプログラミングおよび構成モデルである Spring Core Framework の、ゼロデイ脆弱性に付けられたニックネームです。
この脆弱性には CVE が割り当てられていますか?
CVE-2022-22965 がこの脆弱性に割り当てられています。
Spring4Shell は Log4Shell と関連性がありますか?
名前は Log4Shell (CVE-2021-44228) に似せて付けられていますが、この 2 つに関連性はありません。
Spring4Shell のパッチはありますか?
3 月 31 日の時点で、Spring Framework のバージョン 5.3.18 および 5.2.20 がリリースされています。Spring の脆弱性に関するアナウンス によると、Spring Boot のバージョン 2.6.6 および 2.5.12 がリリースされています (どちらも Spring Framework 5.3.18 に依存) 。
Spring4Shell の脆弱性はどれくらい深刻ですか?
攻撃者が、脆弱なサーバーに対して特別に細工したリクエストを送ることにより、Spring4Shell を悪用する可能性があります。ただし、元の Log4Shell の脆弱性はデフォルト構成を使用する Log4j2 のすべてのバージョンに対して影響を及ぼす一方で、Spring4Shell の場合は特定の前提条件が必要となります。
Spring によると、脆弱性レポートには次の条件が含まれていました。しかし、アナウンスでは、他にも悪用する方法は存在する可能性があると注意を呼びかけています。したがって現時点は、次に示すリストが必ずしも悪用の前提条件をすべて網羅しているとは限りません。
- Java Development Kit (JDK) 9 以降
- サーブレットコンテナとして Apache Tomcat を使用している
- WAR としてパッケージ化されている
- spring-webmvc または spring-webflux の依存関係がある
Spring Core Framework のどのバージョンに影響がありますか?
3 月 31 日の時点で、CVE-2022-22965 に対応する Spring バージョン 5.3.18 および 5.2.20 がリリースされています。このブログが更新された時点では、どのバージョンが影響を受けるのかは明示されていませんが、すぐに判明するはずです。判明次第、この記事で情報を更新する予定です。
JDK9 以降と Spring Framework を使用している場合、アプリケーションに脆弱性はありますか?
JDK9 以降と Spring Framework の両方を一緒に使用していたとしても、必ずしも Spring4Shell に対して脆弱性があるとは限りません。攻撃者は、欠陥を悪用するのにアプリケーションを構成する必要があるためです。たとえば Spring は、開発者に対して DataBinder クラスを使用する際は allowedFields プロパティを指定することを推奨しています。このプロパティを指定しない場合、攻撃者が脆弱なアプリケーションに対して Spring4Shell を悪用する可能性があることが研究によって確認されています。
Spring4Shell は CVE-2010-1622 とどのような関係がありますか?
Spring4Shell は、12 年近く前に修正されたと報告されている Spring Core Framework のコードインジェクションの脆弱性、CVE-2010-1622 をバイパスするパッチであることが Praetorian の研究者によって確認されています。この研究者によると、CVE-2010-1622 に対する修正が不完全で昔の欠陥が残っており、これを悪用した侵入経路が存在するとのことです。
Spring4Shell は CVE-2022-22963 と関係がありますか?
これら 2 つの脆弱性は完全に無関係です。CVE-2022-22963 は、関数を介してビジネスロジックを実装するサーバーレスフレームワークである Spring Cloud Function の脆弱性です。CVE-2022-22963 のアドバイザリは 3 月 29 日に公開され 、Spring Cloud Function のパッチが利用可能になっています。
情報開示の時点で Spring4Shell に割り当てられた CVE がなかったことから、Spring4Shell は誤って CVE-2022-22963 に関連付けられていました。
概念実証のエクスプロイトコードはありますか?
あります。Spring4Shell と CVE-2022-22963 の両方で、複数の実用的な概念実証 (PoC) エクスプロイトが利用可能です。
Tenable 製品に対して、Spring4Shell または CVE-2022-22963 の影響はありますか?
Spring4Shell (CVE-2022-22965) および CVE-2022-22963 に関する 2022 年 4 月 1 日現在の情報に基づくと、Tenable 製品に対する影響はありません。
Apache Tomcat が前提条件に入っています。パッチは Tomcat チームからすでにリリースされていますか?
すでにリリースされています。CVE-2022-22965 は Spring Framework に存在しますが、Apache Tomcat チームは、「Tomcat 側の攻撃経路を遮断する」ために Tomcat の新しいバージョンをリリースしました。サポートされていないバージョンの Spring Framework が Tomcat と一緒に使用されている場合、これが特に役立ちます。
Tenable には Spring4Shell の製品カバレッジがありますか?
あります。詳細については、以下の「影響を受けるシステムの特定」セクションを参照してください。プラグインの詳細については、Tenable コミュニティのこの投稿を参照してください。
影響を受けているシステムの特定
この脆弱性を特定するための Tenable プラグインのリストはこちらです。
プラグインID | 名前 | 製品 | 要件 |
---|---|---|---|
159374 | Spring Framework < 5.2.20 / 5.3.x < 5.3.18 Remote Code Execution (CVE-2022-22965) | Tenable.io、Tenable.sc、Nessus | Paranoid Mode、徹底試験 |
159542 | Spring Framework Spring4Shell (CVE-2022-22965) | Tenable.io、Tenable.sc、Nessus | Test embedded web servers |
113217 | Spring Framework < 5.2.20 / 5.3.x < 5.3.18 Remote Code Execution (Spring4Shell) | ウェブアプリケーションスキャン | なし |
98097 | Backdoor Detection | ウェブアプリケーションスキャン | なし |
159462 | Apache Tomcat 8.x < 8.5.78 Spring4Shell (CVE-2022-22965) Mitigations | Tenable.io、Tenable.sc、Nessus | なし |
159464 | Apache Tomcat 9.x < 9.0.62 Spring4Shell (CVE-2022-22965) Mitigations | Tenable.io、Tenable.sc、Nessus | なし |
159463 | Apache Tomcat 10.x < 10.0.20 Spring4Shell (CVE-2022-22965) Mitigations | Tenable.io、Tenable.sc、Nessus | なし |
Web Application Scanning のお客様向けに、tomcatwar.jsp シェルファイルを検出できるように Backdoor Detection プラグインを更新しました。Backdoor Detection のスクリプトを使用すると、攻撃者が脆弱性を悪用した際の Web サーバー上の Web バックドアまたは Web シェルを識別できます。
プラグイン ID 159374 の パラノイドおよび徹底試験の要件
Nessus プラグイン ID 159374、「Spring Framework < 5.2.20 / 5.3.x < 5.3.18 Remote Code Execution (CVE-2022-22965)」は、スキャンで有効にするために、スキャンポリシーで Paranoid Mode としても知られている「Show potential false alarms (潜在的な誤検知を表示)」設定を有効にする必要があります。くわえて、「Perform thorough tests (徹底試験を実行)」設定も有効にする必要があります。
また、Paranoid Mode によるスキャンでは、このプラグインのみを有効にすることを推奨します。スキャンポリシーですべてのプラグインが有効になるように構成されている場合、すべての Paranoid のプラグインがスキャンに含まれ、トリガーの数が増加してしまいます。
パラノイドおよび徹底試験モードの有効化
Nessus および Tenable.io の場合、この設定を有効にするには下記を実行します。
- Assessment (評価) > General (一般) > Accuracy (正確さ) をクリックする
- 「Show potential false alarms (潜在的な誤検知を表示)」オプションを有効にする
- 「Perform thorough tests (may disrupt your network or impact scan speed) (徹底試験を実行。ネットワークが混乱したり、スキャン速度に影響を及ぼす可能性があります)」オプションを有効にする
Tenable.sc (旧 SecurityCenter) の場合、この設定を有効にするには下記を実行します。
- Assessment (評価) > Accuracy (正確さ) をクリック
- ドロップダウンボックスをクリックして、「Paranoid (more false alarms) (Paranoid (誤検知件数を増やす)」を選択する
- ドロップダウンボックスをクリックして、「Perform thorough tests (may disrupt your network or impact scan speed) (徹底試験を実行。ネットワークが混乱したり、スキャン速度に影響を及ぼす可能性があります)」を選択する
Tenable コミュニティの Tenable セキュリティレスポンスチームに参加してみませんか。
現代のアタックサーフェスを総合的に管理する Cyber Exposure Platform を初めて提供した Tenable について詳細情報をご覧ください。
今すぐ Tenable.io Vulnerability Management の 30 日間無料トライアルをお試しいただけます。
関連記事
- Vulnerability Management