ニューヨーク・ヤンキースの不滅の捕手であり、メジャーリーグの殿堂入りも果たしているヨギ・ベラのユーモラスに富んだ名言を借りれば、「まるでデジャヴの繰り返し」です。
Log4jの脆弱性とLog4Shellを悪用した攻撃による苦悩や混乱を経て、アプリケーション開発に安心して戻れると思っていた矢先に、セキュリティを丸ごと奪い取り、貴重なリソースを消費させる新たな恐るべき脆弱性が出現しました。
既にご存知の方も多いと思いますが、2022年3月29日、中国在住の研究者が、Spring Core Javaライブラリにリモート コード実行(RCE)の脆弱性のスクリーンショットを投稿しました。その後、この脆弱性にはCVE-2022-22965が割り当てられ、CVSSの深刻度スコアで「Critical(重大)」と採点されました。VMwareによって報告されたこの脆弱性は、GitHubに公開されていましたが、すぐに削除されました。残念なことに、被害がすでに発生していたため、この脆弱性はすぐに他のリポジトリに掲載されました。
広くメディアの注目を集めている多くの重大な脆弱性と同様に、CVE-2022-22965にもSpring4Shell(またはSpringShell)という別名がついています。とはいえ、Springライブラリは、Javaプログラマの時間を節約するツールとして大半のアプリケーションで使用されているため、この深刻度の脆弱性がどのような名前であろうと危険であることは間違いありません。
Springが2022年3月31日にRCEの早期発表として投稿したブログによると、この脆弱性は、Java Development Kit(JDK)9以降で実行されている場合にSpring MVCおよびSpring WebFluxアプリケーションに影響を及ぼします。また、アプリケーションがWARとしてApache Tomcat上で実行されている必要がある場合もあります。この脆弱性は、Spring Frameworkのバージョン5.3.0~5.3.17、5.2.0~5.2.19、およびそれ以前のバージョンに影響を与えます。さらに問題なのは、Springが、「この脆弱性の性質はより全般的であり、まだ報告されていない悪用の手口がほかにあるかもしれない」と警告を発していることです。
また、Springによると、Java Archive(JAR)の導入として実行されているアプリケーション(デフォルトのもの)には、CVE-2022-22965の脆弱性はないものの、ベンダーは他の悪用の手口の影響を受ける可能性があることを認めています。
Spring4Shellの脆弱性は、別の脆弱性の後にも出てきます。Spring Cloud Functionソフトウェアのバージョン3.1.6と3.2.2、およびサポートされていない古いバージョンでは、Spring Expression Language(SpEL)で特殊な細工を施したルーティング式を作成して、ローカル リソースにアクセスし、RCE攻撃を有効にすることができます。当初、CVSSの深刻度スコアが「Medium(中程度)」に分類されていたCVE-2022-22963は、その後「Critical(重大)」に再分類されました。Spring Cloud Functionバージョン3.1.7または3.2.3にアップグレードすることで修正が可能です。
CVE-2022-22965およびCVE-2022-22963とは別に、Springの別の脆弱性であるCVE-2022-22950が2022年3月28日に報告されました。これは、Spring Frameworkバージョン5.3.0~5.3.16およびそれ以前のサポートされていないバージョンにおけるサービス拒否(DoS)脆弱性です。Springは、Spring Framework 5.3.17以降で修正プログラムをリリースしました。
現時点では、既にSpring4Shellのスキャナが作成および配備されており、脆弱性が盛んに悪用されていることが報告されています。
Springは、Spring Framework 5.3.18および5.2.20、そしてSpring Framework 5.3.18に依存するSpring Boot 2.5.12を含むCVE-2022-22965の脆弱性を修正するバージョンをリリースしています(Springによると、Spring Framework 5.3.18にも依存するSpring Boot 2.6.6がまもなくリリースされる予定です)。
Springは、これらの深刻な脆弱性に対処するための修正プログラムをリリースすることに成功しましたが、できるだけ早く修正プログラムをアップデートして適用することは、再び組織の責任になります。Log4jやLog4Shellの問題と同様に、課題はライブラリの偏在性と、組織が認識していないアプリケーションで使用されている可能性があることです。影響を受けるライブラリのセットがアプリケーションで使用されていることに気付いていない場合、組織はどのようにして自社とユーザーをエクスプロイトの影響から守ることができるでしょうか?
ここでF5の出番です。
Springフレームワークの脆弱性と、Log4jの脆弱性やLog4Shellのエクスプロイトの特性には類似点と相違点がありますが、Web Application Firewall(WAF)や同様のセキュリティ ソリューションを導入することで、どちらも検出およびブロックできます。
F5のお客様は、Spring4Shellおよび関連する脆弱性を悪用した攻撃に対して、既に最も強力な防御策を講じておられると思います。しかしF5では、影響を受けるSpringライブラリを直ちにアップグレードし、不要になった場合は、アプリケーションから脆弱性のあるSpringライブラリを削除するよう、お客様や開発チームの皆様にお願いしております。
包括的で動的なセキュリティ製品およびサービス ポートフォリオを通じて、F5がどのようにお客様をサポートし、お客様のアプリケーション、組織、ユーザーを保護しているかをご紹介します。
攻撃を受けている、または組織や組織のアプリケーションに脆弱性があるため、危険にさらされることが心配な場合は、F5サポート チームに連絡し、F5 SIRTへのエスカレーションを要請してください。このチームは24時間365日体制で、F5システムとソフトウェアへのパッチ適用を案内し、設定をサポートし、F5 iRulesを導入することで露出の制限や攻撃の軽減を支援します。
F5は、Spring4Shellの脆弱性によって明らかになった既知の攻撃ベクトルをブロックするために、BIG-IP Advanced WAFおよびBIG-IP ASMの導入で利用可能なシグネチャ セットをリリースし、今後も対応とリリースを継続する予定です。シグネチャは、バイパスの試みに対する保護機能により継続的に更新されています。最新の攻撃シグネチャ更新(ASU)パッケージを使用して作業していることを確認してください。
Advanced WAFやASMを導入していないお客様は、アプリケーションに対してiRuleを適用し、特定のCVEを標的とした違反トラフィックを検出して、ログに記録し、削除することができます。
F5では、お客様が使用および導入するF5プラットフォームに関係なく、一貫したアプリケーション セキュリティを確保します。そのため、NGINX App Protect WAFのお客様には、BIG-IP Advanced WAFのお客様と同時に更新された同じシグネチャが提供されます。NGINX App Protect WAFのシグネチャを必ずアップデートしてください。方法の詳細については、こちらのガイダンスを参照してください。また、WAFポリシーで「Server Side Code Injection」攻撃タイプが有効になっていることを確認してください。
最近リリースされたF5 Distributed Cloud Web Application and API Protection(WAAP)は、F5の業界をリードするSaaSベースのWeb Application Firewall(WAF)とボット保護、高度なAPIセキュリティ、およびL3-L7 DDoS防御により、クラウドとエッジサイト全体に導入されているアプリケーションとAPIを保護します。F5の1つのWAFアプローチで、お客様が導入したF5製品が何であっても、一貫したアプリケーション セキュリティが保証されます。したがって、BIG-IP Advanced WAFおよびNGINX App Protect WAFでは、Spring4Shellの脆弱性に対応するシグネチャが既に作成され利用可能になっているため、Distributed Cloud WAAPでも同時に利用できるようになっています。Distributed Cloud WAAPのお客様であれば、既に保護されているため、追加の対応は必要ありません。
BIG-IP Advanced WAF、NGINX App Protect、Distributed Cloud WAAPと同様に、F5 Distributed Cloud WAFは、Spring4Shellの脆弱性に関連する暴露から保護するために必要なシグネチャをすでに受け取っています。これらのシグネチャはデフォルトのWAFポリシーに含まれているため、追加の対応は必要ありません。
必要な緩和措置はF5 Silverlineチームによって既に実施されており、ご使用のアプリケーションがSpring4Shellおよび関連する脆弱性から保護されていることをお客様に保証しています。F5の脅威研究チームとお客様が協力して、脅威を継続的に監視し、必要な緩和策を適用することができます。F5 Silverline SOCは、お客様のAppSecチームの延長線上の存在として24時間365日対応します。F5 Silverlineについてご質問がある場合は、support@f5silverline.comまでお問い合わせください。
F5が最近買収したThreat Stackは、検査、検出、およびレポート機能を提供します。Threat Stackサービスには、Spring4Shellによる侵害が懸念されるかどうかを判断する検出ルールが含まれており、ルートまたはシェルから実行されているサービスを立ち上げ、試行をエスカレートさせることができます。詳細については、F5販売担当者にお問い合わせいただくか、https://www.threatstack.comにアクセスしてください。
Spring4Shellのような脆弱性を悪用しようとする試みは、通常、自動化された偵察から始まります。F5 Distributed Cloud Bot Defenseは、防衛の第一線です。自動スキャンを停止し、Spring4Shellに脆弱なWebアプリケーションが組織にあるかどうかを攻撃者に分かりづらくすることができます。F5 Distributed Cloud Servicesは、ボットネットを操作する攻撃者の絶えず進化する手口に対応し、ボット主導の自動攻撃に対してリアルタイムに適応することができます。
SpringライブラリはJavaベースのアプリケーションの大半で使用されているため、お客様のような組織にとって、引き起こされる脆弱性や潜在的なエクスプロイトの全容を把握することは難しいでしょう。また、影響を受けるアプリケーションをすべてアップデートするには時間がかかるかもしれません。すべてのアプリケーションを見つけられたらの話ですが。これにより、お客様のアプリケーションや組織は、脆弱で悪用されやすい状態のままになる可能性があります。F5 SSL Orchestratorは暗号化されたトラフィックを可視化し、暗号化された脅威を阻止します。サーバー トラフィックも含め、ネットワークを通過するトラフィックを解読し、セキュリティ スタックのソリューションに基づいて定義できるセキュリティ チェーンにトラフィックを自動的にルーティングします。SSL Orchestratorは、暗号化された脅威に対処するだけでなく、コマンドアンドコントロール(C2)サーバーに向かうトラフィックなど、暗号化された悪意のあるトラフィックも阻止できます。SSL Orchestratorは、CVE-2022-22965を緩和するだけでなく、将来の脆弱性やエクスプロイトからも保護します。
F5では、Spring4Shell(CVE-2022-22965)および関連する脆弱性、さらなるエクスプロイトの発生をF5がどのように防御および軽減するかについての最新情報を引き続き提供してまいります。
新しい情報が入り次第、このブログを更新します。さらに詳しい情報については、以下のリソースをご覧ください。
K24912123:BIG-IPによるSpring Framework(Spring4Shell)およびSpring Cloudの脆弱性の軽減