エクスプロイト&脆弱性
「不正注文」で国内オンラインショップサイトを侵害する攻撃キャンペーン「Water Pamola」
2019年以降、トレンドマイクロでは「Water Pamola」と名付けた攻撃キャンペーンを追跡してきました。
2019年以降、トレンドマイクロでは「Water Pamola」と名付けた攻撃キャンペーンを追跡してきました。この攻撃キャンペーンでは、当初、不正な添付ファイルを含むスパムメールを介し、日本、オーストラリア、ヨーロッパ諸国のオンラインショップが危険にさらされていました。しかし、2020年初頭から、Water Pamolaの攻撃活動にいくつかの変化が見られるようになりました。被害者は、主に日本国内のみとなり、トレンドマイクロによる最近のデータによると、スパムメールの代わりにオンラインショップの管理者が管理画面で顧客注文を確認する際に不正スクリプトが実行される状況が確認されるようになりました。
図1:Water Pamolaの攻撃フロー
さらなる調査によると、顧客の住所や会社名が入力される欄にJavaScriptのコードが挿入されたとする不審なオンライン注文に関する質問が、オンラインストア管理者からの報告としてオンラインフォーラムにも掲示されていました。このJavaScriptは、当該店舗の管理ポータルに存在するクロスサイトスクリプティング(XSS)の脆弱性の悪用により起動されることが確認されました。
図2:オンラインフォーラムで報告されたWater Pamolaの攻撃を示唆する質問
このJavaScriptは、Water Pamolaのサーバに接続し、追加のペイロードをダウンロードします。これらの状況から、Water Pamolaの攻撃キャンペーンにより、こうしたクロスサイトスクリプトを組み込んだオンライン注文の手口が多くのオンラインショップで実行されていたことが推測されます。オンラインショップにクロスサイトスクリプティング攻撃の脆弱性が存在する場合、被害者(標的となったオンラインショップ管理者)が管理パネル内で注文を開くと、注文情報が攻撃者へ自動的に読み込まれることになります。
トレンドマイクロでは、このような手法で仕組まれた多数の攻撃スクリプトを各種の事例から収集しました。そしてスクリプトが実行する不正な動作として、ページグラビング(Webページの取得)、クレデンシャルフィッシング(認証情報窃取のフィッシング攻撃)、Webシェルへの感染攻撃、マルウェアの配信などが確認されました。
この攻撃キャンペーンWater Pamolaは、金銭的な動機に基づいて実行されているようです。少なくとも今回の事例では、攻撃されたWebサイトで情報漏洩被害が発生したことが後日公表されています。この場合、サーバが不正にアクセスされ、顧客の氏名、クレジットカード番号、カードの有効期限、クレジットカードのセキュリティコードなどの個人情報が流出した可能性があります。こうした情報漏洩との関連から、この攻撃キャンペーンの全体的な目標が(かつての攻撃キャンペーン「Magecart」と同じく)クレジットカード情報の窃取であったことがうかがえます。
■ クロスサイトスクリプティング攻撃の解析
前述のとおり、Water Pamolaは、オンラインショッピングの注文に不正なクロスサイトスクリプトを付加して送信することでEコマースの管理者へ攻撃を仕掛けていました。
さらに特定の電子商取引フレームワークではなく、電子商取引システム全般を対象としている点も特筆すべきでしょう。店舗の電子商取引システムがクロスサイトスクリプティング攻撃に対して脆弱な場合、誰かが(システム管理者や店舗の従業員など)注文を開くことで、不正なクロスサイトスクリプトが読み込まれ、管理パネル上で実行されます。
これらのクロスサイトスクリプトは「XSS.ME」と呼ばれるクロスサイトスクリプティング攻撃フレームワークで管理されており、攻撃スクリプトや窃取情報の処理に利用されます。また、このフレームワークのソースコードは、多くの中国のパブリックフォーラムで共有されていました。このフレームワークが提供する基本的な攻撃スクリプトにより、被害者の位置情報やブラウザのクッキーの報告が可能となります。さらに今回の攻撃で使用されたスクリプトの場合、一定のカスタマイズが施されていることも確認されました。攻撃者はさまざまな種類のクロスサイトスクリプトを配信し、いずれの場合も、以下のような動作が1つ以上含まれていました。
ページグラッバー
この動作では、この不正なスクリプトにより、指定されたURLアドレスにHTTP GETリクエストが送信され、受信したレスポンスがWater Pamolaのサーバへ転送されます。これは通常、攻撃の初期段階であり、被害者の管理ページからコンテンツを取得するために利用されます。この動作を通して攻撃者は標的の環境を理解し、それぞれに適した攻撃スクリプトを設計できます。
図3:ページのコンテンツを取得(グラッビング)して攻撃者に送り返すスクリプト
クレデンシャルフィッシング
今回配信された不正なスクリプトでは、2つの異なる方法でEコマースサイトの管理者認証情報を取得しようとする動作も確認されました。1つ目は、偽のログインフォームをページに追加するという方法です。この場合、まずマウスのクリックイベントをフックします。そして被害者が偽のフォームに認証情報を入力してページ上の任意の場所をクリックすると、不正スクリプトにより認証情報が取得されます。その際、認証情報は、base64によりエンコードされ、一部の文字がカスタム化された部分文字列に置き換えられた後、Water Pamolaのサーバにアップロードされます。
図4:クレデンシャルフィッシング用の偽ログインフォームを作成・削除するスクリプト
もう1つは、認証エラーメッセージを表示した後、ユーザに認証情報の入力を求めるフィッシングサイトへ誘導という方法です。フィッシングサイトのサブドメインは、「{被害者のドメイン}[.]basic-authentication[.]live」のように、ターゲットのドメイン名と一致するように設定されていました。
図5:このスクリプトにより、ページのコンテンツを認証エラーメッセージが置き換えられた上で、ユーザがフィッシングサイトへリダイレクトされる
Webシェル/PHPバックドアインジェクション
その他、不正なスクリプトの中には、日本で普及しているEC-CUBEフレームワークで構築されたWebサイトにバックドアをインストールする動作も確認されました。今回の攻撃の場合、EC-CUBEのSeries 2でのみ動作していました。現在の最新バージョンはSeries 4であり、Series 2は現在、拡張サポートの対象となっています。
このバックドアのアップロードでは、3つの異なる方法が用いられます。1つ目は、フレームワークが提供するネイティブAPIを呼び出してPHP Webシェルをアップロードする方法です。Webシェルファイルの名称は「ec_ver.php」、「log3.php」、「temp.php」のいずれかにハードコード化されています。このWebシェルはHTTP POSTリクエストで送信される任意のPHPコードを実行します。
図6のスクリーンショットから確認できるように、中国のブログ記事でも同様のキーワード「only_pcd」を有したWebシェルが紹介されていました。このブログ記事では、PHPスクリプトとHTMLアップロードファイルの2つのコンポーネントを備えたWebシェルが紹介されていますが、通常、適切なPOSTリクエストであれば、カスタムツールやサードパーティツール(Fiddlerなど)で作成できるため2つ目のコンポーネントは必要ありません。
図6:EコマースサイトにPHP Webシェルをアップロードするスクリプト
図7:ショップページのヘッダを変更してWebシェルを組み込むスクリプト
3つ目の方法は、「MakePlugin.tar.gz」という名前のファイルに埋め込まれた不正なプラグインをEコマースフレームワークにインストールするものです。このプラグインは、サーバ上に複数のPHP Webシェルファイルをドロップするように設計されています。
図8:不正なプラグインをアップロードしてインストールするスクリプト 「MakePlugin.tar.gz」
図9:不正なプラグインがWebシェルで複数のファイルをインストールする
マルウェアの配信
この動作の場合、不正なスクリプトにより「Your Flash version is too low, please install the latest version and try again!(日本語訳:ご使用のFlashのバージョンが低すぎます。最新版をインストールしてもう一度試してください)」というメッセージを含む警告が表示され、被害者は、攻撃者が管理する偽のFlashインストーラのダウンロードサイトへ誘導されます。(なお、FlashはAdobe社によって2020年12月31日にサポート終了が宣言されています。)
被害者がこのページからインストーラをダウンロードして実行すると(以前はGh0stCringeやCineregRATとも呼ばれていた)マルウェア「Gh0stRAT」に感染します。このマルウェアのコードは、流出したソースコードをベースにしていますが、トラフィックの暗号化がカスタマイズされ、QQ番号窃取といった新機能も追加されています。今回の攻撃に関連するGh0stRATの検体は、難読化された実行ファイルであり、メモリ内のメインペイロードを復号した上で「Shellex」というメインエクスポート関数を実行します。
図10:エラーメッセージおよび偽のFlashインストーラへのリダイレクトを表示するスクリプト
図11:偽のFlashインストーラーダウンロードサイト
■ 偽のFlashインストーラの解析
前述のとおり、このクロスサイトスクリプティング攻撃の不正スクリプトは、被害者を偽のFlashダウンロードサイトへ誘導します。「Install now(日本語訳:いますぐインストールしてください)」ボタンをクリックすると、複数の正規のファイルと合わせ、通常はDLLライブラリ形式である不正なファイル複数を含むZIPアーカイブがダウンロードされます。これらのライブラリは、正規のEXEファイルが実行される際にサイドロード(正規のアプリケーションストアを経由せずにインストール)されます。
図12:ダウンロードされたFlashインストーラのパッケージ
今回の事例では「AdobeAirFlashInstaller.exe(正規ファイル)」が「xerces-c_2_1_0.dll(パッチ済の正規ファイル)」をサイドロードし、それがさらに「ulibs.dll(不正ファイル)」をサイドロードします。「ulibs.dll」は、ZIP形式のアーカイブ「Adob.dll」を読み込みます。「Adob.dll」のZIPアーカイブの内容を抽出した後、署名済の正規EXEファイルが2つ実行され、同様のサイドロードのプロセスがもう一度発生します。
図13:Adob.dll Adob.dll内のパッケージ
そして「svchost.exe(Tencent社正規の署名入りLauncher.exeファイルを改称したもの)」が「Utility.dll(パッチ済の正規ファイル)」をサイドロードします。このパッチ済ファイルには「newimp」という新しいインポート項目が1つ含まれており、ライブラリ「oplib.dll」へ参照することで、この「oplib.dll」がサイドロードされることになります。
図14:Oplib.dllのサイドロード
この新しいインポート項目「newimp」は、ユーティリティ「Stud_PE」を使って手動で追加されたものと推測されます。このユーティリティは「Import Adder」という機能を備えており、「newimp」自体は、新たに追加されたインポート項目のデフォルト名称です。そして「oplib.dll」自体は、ディレクトリ「windowsfiles」からファイル「lib.DAT」を読み込み、その内容(16進数の文字列から;XOR 0x42)をデコードおよびデクリプトした上で、新規プロセス「svchost.exe」へ読み込みます。さらに、レジストリキーによる永続化およびスケジュールタスクも設定されます。
図15:XORの動作およびsvchostの組み込み
そしてこの感染フローの最終的なペイロードはマルウェアGh0stRATとなります。このマルウェアはC&Cサーバとの通信にソケットを使用し、通信はシンプルな「SUB 0x46, XOR 0x19」で暗号化されています。
図16:CC通信を暗号化するXORの動作
図17:Gh0stRATの中にpacketFlag「xy」が確認された
このマルウェアGh0stRATには、QQメッセンジャーのユーザ情報を窃取する追加機能も実装されており、例えば、特定端末に存在するユーザのリストやそのQQメッセンジャーの番号などが窃取対象となります。
以下のコードは、こちらに列挙されている端末が記録したQQ番号を取得します。
図18:ユーザのQQ番号を取得するためのコード
■ 攻撃キャンペーンWater PamolaからEコマースプラットフォームを守るために
攻撃キャンペーンWater Pamolaは、オンラインショッピング注文時にクロスサイトスクリプトを付加してオンライン業者を攻撃します。さらにまた、認証情報を詐取したり、リモートアクセスツールをダウンロードさせたりするソーシャルエンジニアリングの手法も駆使します。オンラインショップの管理者は、このように、スパムメールだけでなく予期しないさまざまな感染経路から攻撃を受けるリスクがあることを認識しておく必要があります。また、クロスサイトスクリプティング攻撃などで悪用される脆弱性のリスクを防ぐためには、Webサイトで使用しているEコマースプラットフォームのバージョンを常に最新に保つことをお勧めします。特にWater Pamolaの攻撃が確認されたプラットフォームの1つである「EC-CUBE」については、JPCERT/CCからも既に攻撃で利用されている脆弱性に関する注意喚起がこの5月10日に出されています。利用者の方はご使用のバージョンを確認の上、必要であれば速やかに修正を適用することを強く推奨いたします。
■トレンドマイクロの対策
トレンドマイクロ製品をご利用のユーザは、弊社のクラウド型セキュリティ技術基盤「Trend Micro Smart Protection Network」(SPN)から提供されるさまざまな技術によって守られています。不正サイトへの対策は、SPNから提供される「Webレピュテーション」技術により不正な Web サイトへのアクセスをブロックします。マルウェア対策は、SPNから提供される「ファイルレピュテーション」技術によるウイルス検出、機械学習型検出や挙動監視機能(不正変更監視機能)の組み合わせによる多層防御が可能です。
これらの技術は個人向けのエンドポイント製品「ウイルスバスタークラウド™」、法人向けのエンドポイント製品「Trend Micro Apex One™」や中小企業向けのクラウド型エンドポイントセキュリティサービス「ウイルスバスター™ビジネスセキュリティサービス」などで提供されています。
スパムメールへの対策は、法人向けメールセキュリティ製品/サービスである「Trend Micro Email Security™」、「Deep Discovery™ Email Inspector」や「Trend Micro Cloud App Security™」などにより不審なメールやその添付ファイルをブロックすることができます。
■侵入の痕跡(Indicator of Compromise、IoC)
今回の記事に関する侵入の痕跡はこちらを参照してください。
参考記事:
- 「Water Pamola Attacked Online Shops Via Malicious Orders」
By: Jaromir Horejsi, Joseph C Chen
翻訳:与那城 務(Core Technology Marketing, Trend Micro™ Research)