Akamaiのブログ | Spring Cloud Function SpELインジェクション(CVE-2022-22963)の悪用
概要
2022年3月24日、Pivotal社はSpring Cloud Functionにおけるサーバーサイドのコードインジェクションの脆弱性(Spring Expression Languageインジェクション)にパッチを適用し、システム侵害につながる可能性のある重大な脆弱性を修正しました。Springは、広く使用されているオープンソースのJavaフレームワークです。Akamai Adaptive Security Engine(ASE)とKona Site Defender(KSD)のルールセットにより、このSpring Cloud Functionの脆弱性とSpring Coreの脆弱性(「Spring4Shell」と呼ばれるリモートコード実行の脆弱性)を緩和できます。このブログ投稿では、Spring Cloudの脆弱性に焦点を当てています。Spring Coreの脆弱性については、こちらをお読みください。
Spring Cloud Functionは、ビジネスロジックを特定のランタイムから切り離すことを可能にするテクノロジーです。Spring Expression Language(SpEL)は、Springポートフォリオ全体で使用される強力な式言語です。SpELにより、実行時にオブジェクトグラフを操作したり、クエリーを実行したりできます。アプリケーションが信頼できないユーザー入力のコード式を安全でない方法で評価したことに起因して、SpELインジェクションに関するリモートコード実行の共通脆弱性識別子(Common Vulnerabilities and Exposures:CVE)が数多く報告されています(図1を参照)。
図1:GitHubで公開されたSpring Cloud Functionコードのパッチ
2日後の3月26日、GitHubユーザーの「cckuailong」が、この脆弱性の悪用に成功したことを示す概念実証エクスプロイトを公開しました(図2を参照)。
図2:公開された概念実証エクスプロイト
それから1日も経たないうちに、Akamaiはインターネット上のあらゆる場所でこの攻撃の試みを観測するようになりました。
図3:3月27日から観測された攻撃の試み(出典:特定のお客様のAkamai Web Security Analytics)
Log4jと同様、現在行われている攻撃の多く(すべてではありません)は「ping back」プローブです。攻撃者は、攻撃に成功した場合にビーコンを送信するようにアプリケーションに指示しています。
攻撃ペイロードは、世界中の何千ものIPアドレスから送信されており、その大半がパブリッククラウドでホストされるWebプロキシおよび仮想プライベートネットワーク(VPN)のIPアドレスです。
脆弱性
パッチを見ると、「spring.cloud.function.routing-expression」HTTPヘッダー経由でSpEL式を受け取り、アプリケーションルーティングを実行できることがわかります。
評価対象の式をヘッダー経由で受け取れるかどうかをチェックする機能がコードに含まれていませんでした。この問題を解決するために、SimpleEvaluationContextであるheaderEvalContextが追加されました。
KSD Adaptive Security Engineによる緩和
Akamai Adaptive Security Engine(ASE)にはコマンドインジェクションを検知するためのルールが数多く組み込まれています。コマンドインジェクション攻撃の多くは、OSレベルのコマンドを実行することを目的としているためです。ASEは、既存のコマンド・インジェクション・ルールを使用して、このゼロデイ攻撃を検知することができました。
また、Kona Site Defenderのルールセットにより、次のような攻撃も緩和できます。
3000041 - サーバーサイドのテンプレートインジェクション
3000156 - CMDインジェクションの検知(高リスクのPHP関数)
まとめ
Spring Cloud FunctionはLog4jライブラリほど広く普及していませんが、Spring Cloud Functionの脆弱性は容易に悪用可能なため、多くの攻撃者を引き付けることになります。その結果、今後数年にわたって、多くの攻撃者がクリプトマイニング、DDoS、ランサムウェアなどのキャンペーンを展開したり、組織に侵入するためのゴールデンチケットとして利用したりすることが予想されます。しかし、Akamaiのお客様は、Akamai Adaptive Security EngineとKona Site Defenderのルールセットによって保護されます。
Akamaiの脅威リサーチチームは、この脆弱性の悪用を継続的に監視しており、新しいバリアントが出現した場合や、この脆弱性を悪用するサイバー犯罪者を新たに観測した場合は、情報を更新します。