検索エンジンの結果を標的にするマルウェアは、なにも新しいものではない。悪意あるブラウザ拡張もおなじみだ(一般にFacebook詐欺のキャンペーンのようなものに使われる)。しかしごく最近、その双方を試みる、特筆すべきマルウェアファミリーを識別した。我々はCoremexと名付けた。これはブラウザが提供するプラグイン機能を悪用し、GoogleやYahooといった巨大オンライン広告企業を相手に、様々な検索エンジンの結果をハイジャックする。

 Coremexは単独のNullsoftInstaller実行ファイルとして提供され、ドロッパーもしくはダウンローダのいずれとしても動作する。当該実行ファイルの実行時に、ダウンローダは感染したマシンから基本的な情報の収集を始める。たとえば、ユーザ名、感染したワークステーションの名前、プロセッサ、メモリなどだ。情報はC&C(command-and-control)サーバのアドレス178.86.17.32に送付される。これは、バイナリにハードコーディングされている。情報は「2AJQ8NA4」というキーを用いてRC4で暗号化され、最終結果はBase64でエンコードされる。

 ブラウザ拡張スクリプトなどのメインペイロードをC&Cサーバからダウンロードするのを妨げるサンドボックスに対抗する機能が、Coremexにいくつか実装されている。これらの機能は、ブラックリスト化されたプロセスの名前を確認し、感染したマシン上でWMI(Windows Management Instrumentation)を使って「VMware」といった文字列のような、よく知られたサンドボックスのフィンガープリントを検索する。

図1:ハッシュ内のブラックリスト化されたプロセスの名前

Coremex_Blacklisted_ProcessName_By_Hash

図2:ハッシュ内の対サンドボックスの名前

Coremex_AntiSandbox_By_Hash

 対サンドボックスのコンポーネントが非常警報を上げなかったら、Coremexは次にC&Cサーバからペイロードを追加ダウンロードする段階に進む。ただし、マルウェア作者はペイロードのダウンロードに別のC&Cサーバを用いている(少なくとも当社の分析時には)。

 C&Cサーバのアドレスは以下だ。

  •  178.250.245.198
  •  174.127.82.213
  •  192.154.94.253

 以降被害者がChromeやFirefoxを開くと、常にブラウザプロセス内に当該エクステンションが存在するようになる。

 CoremexのJavaScriptは、分析を困難にするため、3階層の高度な難読化がなされている。同スクリプトは水面下でブラウザから提供されるAPIを用いていくつかのイベントを登録し、イベントの発生を待つ。

図3:悪意のあるブラウザ拡張が複数のイベントリスナーを登録

Coremex_Scripts_Event_Listener

 イベントリスナーの1つは1時間に1回起動される。callbackファンクションイベントの実行時に、以下のインチキな検索エンジンのWebサイトへの接続を開始する。

  •  onlinetrack.org
  •  zvtracker.com

 一方、他のイベントリスナーは、感染したブラウザが訪問しようとするURLを解析する役割を持つ。これらのイベントリスナーのcallbackファンクションは、以下の検索エンジンプラットフォームに入力された検索クエリを探す。

  •  Google
  •  Bing
  •  Yahoo
  •  ASK
  •  AOL
  •  AVG
  •  MyWebSearch
  •  Search-Results
  •  Comcast
  •  Delta-Search

図4:Coremexが標的とする検索エンジンプラットフォームの一覧

Coremex_Search_Engine_Hijack

 狙っている検索エンジンプラットフォームが見つかり、URLから検索クエリの解析が成功すると、Coremexは最初に犠牲者が入力した検索クエリをJSON形式に変換する。

Coremex_yoursearchquery

 続いて「http」というキーを用いてJSONオブジェクトがRC4アルゴリズムで暗号化され、結果がBase64でエンコードされる。Base64でエンコードした文字列は、おそらくマルウェア作者が制御する検索エンジンプラットフォームへ送られる。

Coremex_RC4

 サーバからの応答の中には、接続先のWebサイトのリストが入っている暗号化されたJSONオブジェクトが含まれている。これらWebサイトは広告っぽいURLを持つWebページがどこへリダイレクトされるかを規定する。GoogleアドワーズのURLの例では、以下のように見えるだろう。

Google Adwords URL

図5:GoogleアドワーズのURLのパターンを解析する役割を持つコード

Coremex_Google_Ads_URL_Hijacked

 復号したJSONオブジェクトは、以下のような感じだ。
 
decrypted JSON objet

 以下の画面キャプチャは、犠牲者が広告のURLをクリックしたときに動作するCoremexのスクリプトを示している。クリックすると、ハイジャックされた広告のページに導かれ、マルウェア作者が意図した接続先のWebサイトへリダイレクトされる。

図6:GoogleアドワーズのURLがハイジャックされている

Coremex_Google_Ads_Url_Car_For_Sale_768x335
画像クリックで拡大

図7:GoogleアドワーズのページがIFRAMEでハイジャックされている

Coremex_Google_Ads_Page_Hijacking_With_IFrame_768x333
画像クリックで拡大

 ハイジャックされた広告のページへ挿入されたIFRAMEに関して言うと、分析中はサーバが接続先のWebサイトについて応答することはなかった。したがって、ハイジャックされた広告のリダイレクト先の例について、我々はまだ目にしていない。しかし、人気のあるオンライン広告サービスを悪用しようとする、マルウェア作者の意図は明確だ。

SHA1: 62b5427b10f70aeac835a20e71ab0d22dd313e71

—————

Post by — Wayne