APT攻撃グループ ManageEngine への攻撃をさらに拡大 ServiceDesk Plus も攻撃の対象に

A conceptual image symbolizing cybercrime and the use of backdoors, such as the activity we observed in an APT's TiltedTemple Campaign against ManageEngine ServiceDesk Plus, as discussed here.

This post is also available in: English (英語)

概要

この2ヶ月間で、持続的に手堅く攻撃を行うあるAPT攻撃グループが、複数の攻撃キャンペーンを展開し、少なくとも13の組織が侵害を受けていました。2021年9月16日、米Cybersecurity and Infrastructure Security Agency(CISA)は、ManageEngine ADSelfService Plusとして知られるセルフサービス型のパスワード管理およびシングルサインオンソリューションにおいて、新たに確認された脆弱性をAPT攻撃グループが積極的に利用しているという警告を発表しました。この最初の報告を受け、11月7日、Unit 42は、さらに洗練された、活発で検出が困難な2つ目のキャンペーンで少なくとも9つの組織が侵害されたことを明らかにしました。

当初の報告内容からの更新として、この1ヶ月で、当該グループはADSelfService Plusだけでなく、ほかの脆弱なソフトウェアにもフォーカスを拡大していることを確認しています。もっとも注目すべきは、10月25日から11月8日にかけて、当該グループがManageEngine ServiceDesk Plusという別のZoho製品を使用する複数の組織へとフォーカスを移していた点です。私たちは現在、これらのアクティビティをまとめたものを「TiltedTempleキャンペーン」の名前で追跡しています。

ServiceDesk Plusは、ヘルプデスクや資産管理を行うソフトウェアです。11月22日、Zohoは、新たに登録された脆弱性CVE-2021-44077に対する活発な悪用について顧客に注意を促すセキュリティアドバイザリを公開しました。この脆弱性は、ServiceDesk Plusのバージョン11305とそれ以下のバージョンに影響します。この脆弱性について一般公開されている概念実証コードは確認できませんでしたが、攻撃グループがパッチ未適用バージョンのソフトウェアのエクスプロイト方法を発見していたことは明らかです。このほか、エクスプロイトを実行するさいに、当該アクターが被害システムに新たなドロッパをアップロードしていたことが確認されました。以前ADSelfServiceソフトウェアに対して使用された手法と同様に、このドロッパはGodzilla Webシェルを展開し、アクターの侵害システムへのアクセスと永続性を担保しています。Xpanseの機能を利用して問題を調査したところ、現在インターネットに接続されているServiceDesk Plusのインスタンスは全世界で4,700台以上あり、そのうちの62%にあたる2,900台に悪用の恐れがあると評価されました。

こうした最近の状況を踏まえ、本稿では、このAPT攻撃グループが持続的キャンペーンを行い、さまざまな初期アクセスベクトルを利用し、世界中でさまざまなターゲットを侵害しているという点までこの脅威の特徴解明を進めたいと思います。この3ヶ月間で、テクノロジ、エネルギー、ヘルスケア、教育、金融、防衛などの産業セクタにまたがる少なくとも13の組織が侵害されています。当該グループは、これらの産業セクタなどさまざまな業種 (米国にある5つの州の関連インフラを含む) に対する偵察活動を継続していることから、この数は今後も増加していくものと見られます。

パロアルトネットワークスのお客様は、次世代ファイアウォール製品脅威防御Cortex XDRWildFireシグネチャによって本稿で紹介する脅威から保護されています。またCortex Xpanseは、ADSelfService PlusおよびServiceDesk Plusソフトウェアの脆弱性のあるバージョンを正確に特定できます。

最近のアクティビティ

手元のテレメトリデータをすべて徹底的に分析した結果、前回のレポートに記載したとおり、9月17日から10月15日の間に、ManageEngine ADSelfService Plusソフトウェアに対する偵察およびエクスプロイトのアクティビティが行われたことが確認されました。

ただし脅威アクターはすばやく攻撃の手を広げていました。最初のキャンペーンの後、10月21日から11月9日にかけて、当該アクターの悪意のあるインフラからZohoのインフラへの接続が、一定して行われている様子が観測されました。同アクターはarchives.manageengine[.]comdownload.manageengine[.]comにアクセスしており、1つ目のサイトにアクセスするとManageEngineソフトウェアの旧バージョンへのアクセスを要求するフォームが表示されます。

ManageEngineアーカイブダウンロードリクエストフォームのスクリーンショットです。私たちは当該のAPT攻撃グループがこのポータルを利用し、ManageEngine ServiceDesk Plusを含むソフトウェアの古くて脆弱なバージョンをリクエストして既知のCVEに対するエクスプロイトを開発した可能性があると考えています。
図1 archives.manageengine[.]comのスクリーンショット
このアクティビティパターンを踏まえると、同アクターはこのポータルを利用し、既知のCVEに対して機能するエクスプロイトを開発するため、脆弱性のある古いバージョンのソフトウェアを要求していたのではないかと考えられます。このアクティビティから4日後の10月25日、脆弱なバージョンのManageEngine ServiceDesk Plusを使用しているある米国の金融機関に対し、初の偵察活動が行われた様子が観測されました。その後、ほかの6つの組織で同様のアクティビティが確認されており、早くも11月3日には、米国のある防衛関連組織とテクノロジ関連企業1社に対するエクスプロイトが始まったことが観測されました。

このアクターのアクティビティを継続的に追跡する上では、11月9日に同アクターがpasswordmanagerpromsp[.]comに接続していた様子が確認されていることも重要と考えられます。このドメインは、マネージドサービスプロバイダ(MSP)向けに、単一インスタンスで複数の顧客のパスワードを管理する機能を提供する別のManageEngine製品に関連したものです。今年の初め、Zohoはこの製品に影響を与えるCVE-2021-33617のパッチを公開しています。これまでのところ、私たちは当該脆弱性に対するエクスプロイト試行を確認してはいませんが、同アクターにManageEngine製品をターゲットにするという攻撃パターンが見え始めていることや、この3つ目の製品に対するアクターの関心からして、どの組織も関連パッチを適用しておくことが強く推奨されます。

キャンペーンのタイムラインと影響具体的には3つのキャンペーンが行われていました。1つ目はADSelfService Plusのゼロデイ脆弱性に対するキャンペーン、2つ目は脆弱なバージョンのADSelfService Plusに対するまたそれとは別のキャンペーン、3つ目はServiceDesk Plusに対するキャンペーンです。タイムラインには、各キャンペーンでスキャンが開始された時期と、スキャンとエクスプロイトの対象となった業種に関する情報を示しています。
図2 キャンペーンのタイムラインと影響

ServiceDesk Plusの脆弱性

11月20日、CVE-2021-44077のエントリが作成されました。その2日後、Zohoはセキュリティアドバイザリを公開し、ServiceDesk Plusの11305までのバージョンに影響を与える認証なしのリモートコード実行(RCE)脆弱性が活発に悪用されていることを顧客に警告しました。深刻度が「緊急」とされたこの脆弱性が悪用されると、攻撃者に任意のコードを実行され、その後続けて攻撃を受けるおそれがあります。ただし、Zohoがその3ヶ月前の9月16日にはバージョン11306またはそれ以上でのエクスプロイトを防止する更新プログラムを公開していた点は注目に値するでしょう。

これまでのところ、私たちはこの脆弱性をエクスプロイトする方法を示した公開概念実証コードを確認していません。くわえて、この脆弱性は攻撃の開始後に公表されていることから、攻撃者は独自に攻撃用コードを開発したものと私たちは見ています。

ZohoのManageEngine ServiceDesk Plusを解析し、アクターがこの脆弱性をどのようにエクスプロイトしているのかを調べたところ、ServiceDeskのREST APIを利用したRCE脆弱性が存在していることが確認できました。この脆弱性を悪用するには、アクターがREST APIに対して2つのリクエストを発行する必要があります。1つ目のリクエストはmsiexec.exeという特定の名前の実行ファイルをアップロードし、2つ目のリクエストはmsiexec.exeのペイロードを起動します。エクスプロイトを成功させるにはこの両方のリクエストが必要で、いずれもServiceDeskサーバーへの認証を必要とせず、REST APIを介してリモートで開始されます。この脆弱性への理解を踏まえ、私たちは「Zoho ManageEngine ServiceDesk Plus File Upload Vulnerability (91949)」という脅威防御シグネチャを作成し、インバウンドの悪用をブロックしています。

Msiexec.exeの分析

11月3日にインターネット接続されているServiceDesk Plusインスタンスに対するエクスプロイトを成功させた後、アクターはmsiexec.exe(SHA256:ecd8c9967b0127a12d6db61964a82970ee5d38f82618d5db4d8eddbb3b5726b7)という悪意のあるドロッパをアップロードして実行しようとしました。このエクスプロイトにおいて同ファイルはServiceDesk REST API経由でサーバーにアップロードされ、その後、サーバーはこの実行ファイルを以下のパスに保存しました。

D:\ManageEngine\ServiceDesk\bin\msiexec.exe

このファイルを静的に分析すると、数日前の10月31日にはコンパイルされていたことから、その日以前にはほかの脆弱なターゲットに対して使用できる状態であったと考えられます。さらに、以前のキャンペーンのマルウェアに見られたように、このペイロードの作者は、このサンプルをコンパイルするさいデバッグシンボルを削除していなかったので、2つの興味深い分析結果が得られました。デバッグシンボルのパスは以下のようになっていました。

C:\Users\pwn\documents\visual studio 2015\Projects\payloaddll\Release\sd11301.pdb

このデバッグパスでまず興味深い点は、ペイロード作成に使用されたpwnというユーザー名でしょう。このユーザー名は、ADSelfService Plusへの標的型攻撃キャンペーンで配信されたME_ADManager.exeというドロッパのデバッグパスに見られるユーザー名と同じです。次に興味を引くのがsd11301.pdbというファイル名で、このファイル名からは、このペイロードがCVE-2021-44077とさらに古いCVE-2021-37415に対して脆弱なServiceDesk Plusのバージョン11301以下を特定の対象として設計されたものであることがうかがえます。

前述のとおり、アクターはCVE-2021-44077のエクスプロイトのなかで、REST APIに2つ目のリクエストを発行することでこのペイロードを実行させ、ServiceDeskアプリケーションに次のコマンドを実行するよう指示します。

ServiceDeskアプリケーションは、「DevOpsとITオペレーションのためのパフォーマンス監視ソリューション」という説明のあるZoho Site24x7製品のセットアップの一部としてこのコマンドを実行します。Site24x7製品のドキュメントには、msiexec.exeの正規版コピーを使ってソフトウェアをインストールする方法が以下のように詳述されています。

そこでアクターは、悪意のあるmsiexec.exeのペイロードをアップロードし、ServiceDeskが正規のmsiexec.exeアプリケーションの代わりにそれを実行するようにしむけています。私たちは、悪意のあるmsiexec.exeドロッパは、コマンドラインから渡されたほかの引数を実際には使用していないことを確認しています。

実行が成功すると、このサンプルはまずインターネットに公開されている多くのコードサンプルでよく見られる次のような汎用ミューテックスを作成します。このミューテックスは、ドロッパのインスタンスが複数同一の被害ホスト上で実行されないようにしています。これはADSelfService Plusへの攻撃キャンペーンで配信されたME_ADManager.exeドロッパで見られたミューテックスと同じものです。

ドロッパは次にハードコードされたJavaモジュールを以下の場所に書き込もうとします。

../lib/tomcat/tomcat-postgres.jar

tomcat-postgres.jar(SHA256:67ee552d7c1d46885b91628c603f24b66a9755858e098748f7e7862a71ba015)ファイルは、次のセクションで説明するApache TomcatのJava Servlet Filter機能を利用したGodzilla Webシェルの亜種です。ドロッパは、Webシェルをメモリにロードするために、ServiceDesk Plusサービスを実行しているjava.exeプロセスを検索して強制終了させます。Javaプロセスの強制終了後、ServiceDesk Plusはプロセスを自動的に再起動しますが、これが実質的にWebシェルをフィルタとしてTomcat内にロードさせています。ドロッパは自身をManageEngine\ServiceDesk\site24x7\RunAsManager.exeに移動させたのちに終了します。

Godzilla Webシェル

この攻撃アクターは、以前のADSLelfService Plusへの攻撃で確認されていたものと同じWebシェル用の秘密鍵(5670ebd1f8f3f716)を使用していましたが、今回の攻撃に利用されたGodzilla Webシェルは、以前のような単一Java Server Pages(JSP)ファイルではありませんでした。そのかわりに、このWebシェルはApache Tomcat Java Servlet Filterとしてインストールされていました。Tomcatのドキュメントによると、これらのTomcat Filterは、インバウンドのリクエストやアウトバウンドのレスポンスのフィルタリングを可能にするものです。この特定のケースでは、アクターはインバウンドのリクエストをフィルタリングして、どのリクエストがWebシェルに向けられたものかを判断することができます。

GodzillaのWebシェルがフィルタとしてインストールされているということは、アクターがWebシェルと対話するさい、リクエストの送信先となる特定のURLは存在しないということになります。また、GodzillaのWebシェルフィルタは、ServiceDesk Plusに存在するWebシェルファイルへのアクセスを停止するセキュリティフィルタを回避できるということにもなります。

脅威アクターは、tomcat-backdoorと呼ばれる一般公開されたコードを利用してフィルタをビルドし、そこに修正したGodzilla Webシェルを追加したようです。一般公開されたツールを使用し、中国語で書かれた文書を使用することは、このアクターのこれまでのTTP(戦術・技術・手順)とも合致しています。たとえば、以前同アクターがADSelfService Plusを攻撃するために使用したGodzillaとNGLiteのツールにこうしたTTPが見られました。公開されたtomcat-backdoorのソースコードからコードベースを入手し、インバウンドのリクエストからコマンドを実行するデフォルトのコードを削除して、GodzillaWebシェルを使用するカスタムコードに変更したのです。

脅威アクターは、tomcat-backdoorと呼ばれる一般公開されたコードを利用してフィルタをビルドし、そこに修正したGodzilla Webシェルを追加したようです。ここでは脅威アクターのTomcatのフィルタを示しています。
図3a 脅威アクターのTomcatフィルタ
脅威アクターは、tomcat-backdoorと呼ばれる一般公開されたコードを利用してフィルタをビルドし、そこに修正したGodzilla Webシェルを追加したようです。ここではオリジナルのtomcat-backdoorを示しています。
図3b 公開されているtomcat-backdoor

フィルタ環境下でGodzillaのWebシェルを動作させるため、この脅威アクターは、Webシェルのコードのほかに、おそらくはWebシェルのコントローラにも、いくつか変更を加えていると思われます。たとえばTomcatのフィルタはHttpSessionオブジェクトをサポートしていません。そのため、Godzilla WebシェルのHttpSessionメソッドは、HttpServletRequestrequestresponseに置き換えられていました。また、Godzillaと対話するリクエストを識別するために、tomcat-postgres.jarフィルタは、jsessionsidというパラメータを持つインバウンドのPOSTリクエストを探します。Webシェルへのインバウンドリクエストを特定すると、このフィルタは、Godzilla Webシェルコマンドの関数コードを取得するためのj_usernameというパラメータと、関数コードへのパラメータにアクセスするためのj_passwordというパラメータを探します。

フィルタ環境下でGodzillaのWebシェルを動作させるため、この脅威アクターは、Webシェルのコードにいくつか変更を加えました。上のスクリーンショットでは、修正版とオリジナル版が表示されています。
図4 改変されたGodzilla WebシェルとオリジナルのGodzilla Webシェルの比較 (左: 改変後 右: 改変前)

脆弱なシステム

弊社Cortex Xpanseプラットフォームで最近行ったスキャンからは、インターネット接続されたServiceDesk Plusソフトウェアを実行中のシステムは、全世界で4,700台以上あることが確認されています。また全世界の約2,900台(62%)のシステムで、脆弱性があるか、パッチが適用されていないバージョンのソフトウェアが動作していることが確認されています。脆弱なシステムが最も多かったのは米国で、その後はインド、ロシア、英国、トルコの順に続いています。

国名 パーセンテージ
米国 21%
インド 6.0%
ロシア 5.7%
英国 3.5%
トルコ 3.4%

表1 グローバルでみた脆弱なServiceDesk Plusシステムの地理的分布

本稿公開時点で、米国国内では1,200台以上のServiceDesk Plusソフトウェアが稼働していることが確認されています。そのうち約600台(50%)のシステムでは、脆弱なソフトウェアやパッチが適用されていないバージョンが動作しています。脆弱なシステムの特徴を調べてみると、23の大学、14の州または地方自治体、10の医療機関など、すべての産業セクタで該当するシステムが見つかりました。

結論

この2ヶ月間で、持続的に手堅く攻撃を行うあるAPT攻撃グループが、複数の攻撃キャンペーンを展開し、少なくとも13の組織が侵害を受けていました。影響を受けた組織は、防衛、輸送、ヘルスケア、エネルギーなど、数々の米国の重要インフラセクタをまたいで確認されています。

同アクターによる1つ目のキャンペーンでは、Zoho ManageEngine ADSelfService Plusソフトウェアに存在するゼロデイ脆弱性が利用されていました。10月下旬に開始された最新のキャンペーンでは、Zoho ManageEngine ServiceDesk Plusソフトウェアの未公開の脆弱性(CVE-2021-44077)にフォーカスが移っていました。この脆弱性を悪用するさい、アクターは、ADSelfServiceおよびServiceDesk Plus製品のセキュリティフィルタをバイパスする機能を持つGodzilla Webシェルを被害ネットワーク上に展開する新たなドロッパをアップロードしていました。

現在インターネットに接続されているServiceDesk Plusのインスタンス数は全世界で4,700台以上あり、そのうちの62%にあたる2,900台に悪用の恐れがあると評価されました。これまでの同アクターの成功と、さまざまな産業(米国にある5つの州の関連インフラを含む)に対する偵察活動の継続状況を踏まえると、この数は今後も増加していくものと見られます。

私たちはすべての組織に対し、自社環境内にある脆弱なソフトウェアにパッチを適用することを推奨します。

保護と緩和策

進化しつづける攻撃キャンペーンに対する最大の防御は、予防を重視したセキュリティ対策です。各組織での以下の実施を推奨します。

  1. すべてのZohoソフトウェアを識別し最新パッチや更新が適用されていることを確認する
  2. インターネットに接続したZoho製品に関連する業務上のニーズとリスクとを評価する
  3. 2021年10月初旬以降にServiceDesk Plusのディレクトリに作成されたすべてのファイルを確認する

侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、太平洋アジア地域の場合 (65) 6983-8730までお電話をいただくか、infojapan@paloaltonetworks.com まで電子メールにてご連絡ください。ご相談は弊社製品のお客様には限定されません。また、メールは日本語で記述可能です。お電話でのお問い合わせは英語での対応となります。Unit 42のインシデントレスポンスチームは24時間週7日365日対応を行っています。

パロアルトネットワークス製品をご利用のお客様には、弊社製品・サービスにより本攻撃キャンペーンに関連する以下の保護が提供されています。

  • 脅威防御は、Godzilla Webシェルに対する保護を提供します。脅威ID 81803、81815、81816、81817、81819は、.net、java、php、aspフォーマットの各Webシェルが生成するさまざまなトラフィックの差分をカバーしています。これらの保護は2021年4月28日から展開されています。Threat ID 91949 (Zoho ManageEngine ServiceDesk Plus File Upload Vulnerability) は、CVE-2021-44077に対する保護を提供します。
  • Cortex XDRは、エンドポイントを保護し、今回の攻撃キャンペーンで使用されたドロッパを悪意のあるものとして正確に特定します。さらに、Cortex XDRは、このアクターが採用するラテラルムーブや認証情報窃取のTTPを複数検出します。
  • クラウドベースの脅威分析サービスであるWildFireは、今回の攻撃キャンペーンで使用されたドロッパを悪意のあるものとして正確に特定します。
  • Cortex Xpanseは、お客様のネットワーク上にあるZoho ManageEngine ADSelfService PlusおよびServiceDesk Plusサーバーを正確に識別し、これらの攻撃に対して脆弱であるかどうかを判断します。

パロアルトネットワークスはファイルサンプルや侵害の兆候などをふくむこれらの調査結果をCyber Threat Alliance (CTA サイバー脅威アライアンス) のメンバーと共有しました。CTA のメンバーはこのインテリジェンスを使用して、お客様に保護を迅速に提供し、悪意のあるサイバー攻撃者を体系的に阻害することができます。詳細についてはCyber Threat Allianceにてご確認ください。

IoC

サンプル

  • ecd8c9967b0127a12d6db61964a82970ee5d38f82618d5db4d8eddbb3b5726b7
  • 67ee552d7c1d46885b91628c603f24b66a9755858e098748f7e7862a71baa015

追加リソース