CL0P ランサムウェアグループが MOVEit の SQLi ゼロデイ(CVE-2023-34362)脆弱性を攻撃
by Ori David、Sam Tinklenberg、Maxim Zavodchik、Ophir Harpaz
エグゼクティブサマリー
2023 年 5 月 31 日、Progress Software 社は、 MOVEit Transfer と MOVEit Cloud ソフトウェアに見つかった新しい脆弱性について、顧客に警告を発しました。この SQL インジェクション(SQLi)脆弱性(CVE-2023-34362)を攻撃者は活発に悪用しています。
Mandiant 社の レポート によると、この脆弱性に対する攻撃が初めて検知されたのは、2023 年 5 月 27 日のことです。同日、Akamai の顧客(金融機関)もこの攻撃の標的となっていたことが Akamai の調査によって判明しましたが、Akamai Adaptive Security Engine がこの攻撃をブロックしていました。
この攻撃キャンペーンを実行したのは、CL0P と呼ばれるランサムウェアグループです。CL0P は、 ロシアまたは東欧を拠点とし、金銭を目的にデータを盗み、被害者を脅迫します。
攻撃者は、SQLi 脆弱性を悪用して、ASP.NET のカスタム Web シェル(LEMURLOOT)を展開し、被害者ネットワークに対する攻撃を永続化することで、攻撃を続けます。
本記事の執筆時点において、この攻撃に関する詳細情報は公開されていません。しかし、Akamai Security Intelligence Group による分析、および Progress Software 社のセキュリティチームとのミーティングの結果、Adaptive Security Engine が Akamai の顧客をこの攻撃から守ることに成功したことが判明しています。
タイムライン
2023 年 5 月 31 日、Progress Software 社が 勧告を発表し、MOVEit Transfer と MOVEit Cloud にゼロデイ脆弱性が存在すること、そしてインターネットに面したサーバーに攻撃者が侵入するためにこの脆弱性を活発に悪用していることを顧客に警告しました(図 1)。
この警告は、脆弱なサーバーに保存された機密性の高いファイルを盗み出す大規模な攻撃キャンペーンの存在を特定したことを受けて、発表されました。Akamai 発行のMandiant 社によると、この脆弱性に対する攻撃が初めて検知されたのは、2023 年 5 月 27 日のことです。Huntress 社が技術分析を実施したところ、この脆弱性により、サーバーでの完全なリモートコード実行につながる可能性があることが判明しました。
2023 年 6 月 2 日、Microsoft 社は攻撃の実行犯が Lace Tempest グループであると 正式に発表 しました。そして、6 月 5 日に CL0P が関与を認める声明を公開したことで、この発表が正しいことが確認されました(図 2)。
攻撃の範囲
攻撃の存在が明らかになり、調査が開始された時点で、MOVEit を実行している、インターネットに面したサーバーの数は約 2,500 に上ることが Shodan 社の調べによって判明しました(図 3)。
Progress Software 社は、MOVEit を実行するすべてのサーバーが脆弱であり、大規模攻撃の発生時点ではパッチは存在しなかったと述べています。したがって、かなりの数の被害者がいると考えて間違いないでしょう。すでに、いくつかの組織がセキュリティ侵害を受けたことを認めており、この数は今後増えていくと思われます。
攻撃チェーン
この脆弱性については多くの情報が公開されています。しかし、攻撃に関する詳細情報はまだ明らかになっていません。公開済みの情報、Akamai Security Intelligence Group が行った分析、および Akamai のログのデータにより、SQLi の実行に moveitisapi.dll がどのように利用されているのかについては、ある程度見当がついています。
さらに、Akamai は Progress Software 社のセキュリティチームと情報共有ミーティングを実施し、分析結果やセキュリティ侵害インジケーター(IOC)に関する情報交換を行いました。このミーティングの結果、Akamai Adaptive Security Engine が両社の顧客をこの攻撃から保護した(そして現在も保護し続けている)ことを確認できました。
分析結果と攻撃チェーンに関する詳細情報は、パッチ適用後に公開する予定です。
攻撃の隠蔽
CL0P グループは、複数の方法を通じて、検知を回避し、分析を困難にしています。
第一に、アップロードされた Web シェルの名前は「human2.aspx」でした。これは、Web インターフェースを実装する正当な MOVEit ファイルの名前(「human.aspx」)とよく似ています
第二に、Web シェルにアクセスするためには、「X-siLock-Comment」ヘッダー経由でパスワードを送信する必要がありました。ヘッダーがない場合、またはパスワードが正しくない場合、Web シェルは「404 Not Found」を返します。通常、Web シェルを見つけるための最も簡単な方法は、単純な GET リクエストを送信することです。ページが存在しない場合は「404」が返されます。ただし、これによって回避できるのは、最も簡単な検知だけです。いくつかの追加手順を実行するだけで、Web シェルの「404」応答と、サーバーの通常の「404」応答を比較し、両者の違いを確認できます。
第三に、Web シェルを制御して攻撃を送信するためのヘッダーの名前は、MOVEit の元のヘッダー名とよく似ていました。たとえば、Web シェルのパスワードの送信には「X-siLock-Comment」ヘッダーが使用されていました。名前がよく似たヘッダー(「X-siLock-Step2」および「X-siLock-Step3」)を使用して、MOVEit データベース内のその他の情報も盗み出されていました。
攻撃の検知
次のような方法を通じて、攻撃の試みを特定できます。
既知のセキュリティ侵害インジケーター(IOC)
Progress Software 社 および セキュリティコミュニティーは、さまざまなホストベースおよびネットワークベースのセキュリティ侵害インジケーター(IP アドレス、ファイルハッシュ、YARA ルールなど)を公開しています。
ネットワーク管理者は、ネットワークトラフィックや IIS ログを調べて、ネットワーク内のアセットをスキャンすることで、既知の IOC を検知し、攻撃を受けたマシンを特定できます。
Adaptive Security Engine を利用している顧客は、WAF ログを調べることで、攻撃の兆候を特定できます。自社の MOVEit ホストが攻撃の標的になっている場合は、「/moveitisapi/moveitisapi.dll」を標的とする SQLi 攻撃グループのトリガーが表示されます。
脅威ハンティング
サーバー上で脆弱なソフトウェアを実行している場合は、そのサーバー上で既知の IOC が検知されなくても、異常なふるまいの有無を調査してスキャンする必要があります。攻撃者が使用したペイロードを調査した結果、このペイロードにより、aspx Web シェルがサーバーのルートディレクトリ( <ドライブ名>: \MOVEitTransfer\wwwroot\)に置かれていたことが分かりました。最初の攻撃キャンペーンで展開された Web シェルの名前は「human2.aspx」でしたが、この名前は容易に変更される可能性があります。
そのため、静的な IOC にのみ頼るのではなく、脆弱なサーバーに対して異常ベースの脅威ハンティングを実行することをお勧めします。今回の攻撃の場合、MOVEit サーバーのルートディレクトリを調べて、最近作成された aspx ファイルがないかどうかを確認します。aspx は比較的静的なファイルであるため、通常は変更や作成は行われません。したがって、aspx ファイルが新しく作成されている場合は疑わしいと考えられ、調査が必要です。最初の Progress 社の勧告 と最近の CISA #StopRansomware 勧告で疑わしいファイルパスが公開されています。
Akamai Guardicore Segmentation を利用している顧客は、Insight クエリー(図 4)を使用して、疑わしいファイルを見つけることができます。
ドライブ名(C:\)とインストールパスは環境によって異なる場合があります。この Insight クエリーはデフォルトのインストールパスにのみ対応しています。
Akamai Hunt(Akamai のマネージド型脅威ハンティングサービス)は、攻撃キャンペーンに関連する脆弱なアセット、攻撃の試み、IOC を検知するために、顧客の環境を徹底的にスキャンしました。MOVEit コンポーネントが見つかった際には、Hunt の調査担当者が当該チームに連絡し、即座に脅威を緩和できるように支援しました(図 5)。
緩和策
残念ながら、ソフトウェアに脆弱性はつきものです。しかし、この種のセキュリティ侵害から組織を防御するための方法は数多く存在します。
インターネットに面しているサーバーのマッピング
攻撃を緩和するためには、まず、インターネットに面しているアプリケーションの中で機密性の高いものがあるかどうかを確認する必要があります。MOVEit のケースでは、Progress 社が、被害を受ける可能性のあるすべての顧客に対して通知しました。しかし、それぞれの組織が、外部に面したアタックサーフェスを認識し、インターネットに面している機密性の高いアプリケーションを特定しておくことが重要です。これらのアプリケーションを特定したら、次のような緩和手順により、アプリケーション侵害のリスクを軽減できます。
インターネットアクセスを制限
最優先となるのは、アタックサーフェスの縮小です。ゼロトラスト・ネットワーク・アクセス(ZTNA)製品や従来型の VPN 製品を導入することで、ユーザーベースのアクセスコントロールを通じて、正当な理由がない限りはアプリケーションに対する無許可のインターネットアクセスを防止します。
無許可のインターネットアクセスを認める必要がある場合は、別途アプリケーションサーバーを立て、そのサーバー上に保存できるデータを制限したり、そのサーバーからアクセスできるデータを制限したりして、可能な限り内部ネットワークから分離します。これにより、そのアプリケーションサーバーが侵害を受けても被害の範囲を抑えることができます。
WAF で攻撃をブロック
Web インターフェースを備えたアプリケーションは WAF の背後に配置する必要があります。そうすれば、異常なリクエスト、疑わしいリクエスト、および未知のゼロデイ脆弱性の悪用をブロックできる可能性があります。
今回の攻撃チェーンについて現時点で判明している情報に基づくと、 Akamai Adaptive Security Engine により、SQLi 攻撃グループのうちこの攻撃を防御できます。実際、Adaptive Security Engine は、既知の IOC に記載された IP を発信源とするリクエストをブロックすることで、SQLi の脆弱性を悪用しようとした攻撃者を阻止しています。既知の IOC に記載されている IP からのリクエストをブロックしていました。
セグメンテーションでラテラルムーブメントを阻止
攻撃者がネットワークに侵入する際には、インターネットに面しているサーバーを入口として利用することがよくあります。そのため、ネットワークに侵入した攻撃者がラテラルムーブメントを実行できないよう、サーバーをセグメント化することが重要です。
たとえば、インターネットに面しているサーバーの管理ポートを介してアウトバウンド接続をすべてブロックするルールを作成します(図 6)。
これにより、攻撃者はサーバーに侵入しても管理サーバー経由でラテラルムーブメントを実行できなくなります。さらに、機密性の高いアプリケーションやその他の管理ポートに関する追加のルールを作成することで、インターネット接続サーバーのアタックサーフェスを可能な限り縮小することが重要です。ただし、このようなルールによって通常のネットワーク運用に影響が生じる場合があるため、ルールを作成する際には、通常の運用に必要な既存のトラフィックに影響を及ぼさないよう、例外を設ける必要があります。
この攻撃は今後も続く
MOVEit は、マネージド型ファイル転送(MFT)サービスの悪用が可能なゼロデイ脆弱性の一例です。CL0P は、この種の攻撃を行うランサムウェアグループとして有名となっており、これまでも GoAnywhere、SolarWinds Serv-U、 Accellion などのアプリケーションの脆弱性を悪用して、データを盗み出し、被害者を脅迫しています。また、その他のインターネットに面しているアプリケーションの脆弱性も悪用しています。
貴社も何らからのよく使われている MFT ソリューションを自社ネットワークに導入しようと考えているかもしれませんが、高度なスキルと動機を持つハッカーは、いまこの瞬間も、そのようなソリューションにセキュリティ上の穴がないかどうかを探っているはずです。CL0P グループが新たに別の攻撃キャンペーンを開始するのは時間の問題であり、他のグループもすぐに追随すると考えられます。