ESET/マルウェア情報局

クーポン広告を悪用するマルウェア「Mispadu」

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「マルウェア情報局」に掲載された「Mispadu、クーポン広告を悪用して攻撃を拡大」を再編集したものです。

 このMispaduがターゲットとして狙いを定めたのは一般ユーザーである。一番の目的は、金銭や認証情報を盗み出すことにある。ブラジルでは、不正なGoogle Chrome拡張機能が配布されていたこともわかっている。この機能を用いて、クレジットカードとオンラインバンキングのデータを盗み出し、決済システム「Boleto」へ侵入を試みるのだ。

特徴

 ESETは中南米のバンキングトロージャンを研究中に、ブラジルとメキシコをターゲットにしたMispaduを検出した。プログラム言語デルファイ(Delphi)で書かれたこのマルウェアファミリーは、このブログ記事の当初に説明した同様の方法で被害者に攻撃を仕掛ける。つまり、偽のポップアップウィンドウを表示し、被害者から重要な情報を盗み出すのだ。

 Mispaduはバックドア機能を備えているため、スクリーンショットの撮影、マウスやキーボード操作のシミュレート、キーストロークの記録が可能となっている。また、ダウンロードし、実行したVBS(Visual Basic Script)ファイルで自らアップデートすることもできるのだ。

 中南米の他のバンキングトロージャンと同様に、Mispaduは被害者に関する以下のような情報も収集する。

・OSのバージョン
・コンピューター名
・言語ID
・Diebold Warsaw GAS Tecnologia(ブラジルの一般的なアプリ。オンラインバンキングへのアクセスを防止する)がインストールされていないか
・インストールされた中南米の一般的なバンキングアプリのリスト
・インストールされたセキュリティ製品のリスト

 AmavaldoCasbaneiroと同じように、Mispaduはそのコードのストリング(文字列)を難読化するために、独自の専用暗号化アルゴリズムを使っている。このアルゴリズムはすべてのコンポーネントで使用されており、構成ファイルやC&Cサーバーとの通信が保護されている。図1はこのアルゴリズムを実装するためのコアコードを、図2はこのアルゴリズムを実装するための疑似コードを示している。

図1:Mispaduの暗号解読アルゴリズムを実装するためのコアコード

図2:Mispaduの暗号解読アルゴリズムを実装するための疑似コード

 バンキングトロージャンの実行ファイルは、そのリソースセクションに保存された4つの好ましくないアプリケーションが含まれている。これらのアプリケーションはすべてNirsoftの正規ファイルであるが、パッチが適用されているため、GUIがなくてもコマンドラインから実行できる。このマルウェアはこれらのアプリケーションを使って、以下に格納された認証情報を引き出すのだ。

・ブラウザー(Google Chrome、Mozilla Firefox、Internet Explorer)
・メールクライアント(特に、Microsoft Outlook、Mozilla Thunderbird、Windows Live Mail)

 MispaduはCasbaneiroと同じように、クリップボードのコンテンツを監視し、被害者のビットコインウォレットを攻撃者自身のウォレットにすり替えることができる。しかし、攻撃者のウォレットを見る限り(図3を参照)、これまで大した成果を上げていないように思われる。

図3:Mispadu攻撃者が悪用したビットコインウォレット

配布

 Mispaduの配布方法には、スパム(図4を参照)的な手口とマルバタイジングの二種類がある。前者は中南米のバンキングトロージャンの配布方法としては非常に一般的な方法であるが、後者はそれほど知られていない。そこで、さらに詳しく見てみよう。図5は、Mispaduによる攻撃手口の一例である。

図4 Mispaduを配布したスパムメールの例。ブラジルをターゲットにしたメール(左)には、受領者が不在で3つのパッケージを提供できなかったため、返金を受けるにはURLにアクセスするように記載されている。メキシコをターゲットにしたメール(右) は、受領者に対して請求書をダウンロードし、アカウントを「ブロック(利用停止)」しないように記載されている

図5:Mispaduの配布/実行ネットワーク

 攻撃者は、FacebookにMcDonaldの割引クーポン提供を装った広告を掲載(ブラジルの例については、図6を参照)。ターゲットとなったユーザーが広告をクリックすると、図7のページが表示される。クーポン取得のボタンをクリックすると、OSの種類を問わずMSI(Microsoft Windows Installer)インストーラーが含まれるZIPアーカイブがダウンロードされる。このアーカイブにMozilla FirefoxやPuTTYといった正規ソフトウェアが含まれていることもあるが、これらは「おとり」にすぎず、全く使いものにならない。

 Mispadu攻撃者は、攻撃対象国に合わせて二種類のバンキングトロージャンを作成。その上、それぞれの攻撃対象国に合わせて異なるインストーラーと、それに続く複数のステージを用意していた。ベースのロジックはいずれも共通しているため、以下では一般的な方法について説明する。

図6:McDonaldの偽のクーポンウェブサイトに誘い込むためにMispadu攻撃者が作成したFacebook広告(広告タイトルの訳: 「9月のお好きな日にご利用になれます。クーポンは切り取ってご利用ください。今すぐゲット」)

図7:McDonaldブラジル(左)とMcDonaldメキシコ(右)の偽の割引クーポンを提供する不正なページ(両方の広告本文の訳: 「このクーポンの利用は1回限りです。「クーポンの発行」をクリックして、今すぐクーポンをゲット)

 被害者がMSIインストーラーを実行すると、一連の3行のVBSスクリプトが表示される。1行目のスクリプト(圧縮解凍ソフト)は、内部データの2行目のスクリプト(ダウンローダー)を解読し、実行する(図8を参照)。ダウンローダーのスクリプトは3行目のスクリプト(ローダー)を読み込み、実行する(図9を参照)。

図8:Mispaduの配布ネットワークに用いられた圧縮解凍ソフトのスクリプト(ステージ1)。キーが値95に対して変数w2で計算されていることに注意

図9:Mispaduの配布ネットワークに用いられたダウンローダーのスクリプト(ステージ2)。ハードコードされたキーが前ステージのものと同じであることに注意

 ローダーのスクリプトは最初のふたつのステージよりも複雑で、ターゲットの言語やマシン環境に合わせられている。つまり、ターゲットのマシンの言語IDが本当に現在の攻撃対象国(ブラジルまたはメキシコ)のものであるかを確認する。また、仮想環境かどうかも見抜くことができる。仮想環境など、環境が狙いのものでない場合、ローダーは処理を中止する。

 狙いの環境に合致する場合、構成ファイルを設定し(詳細は後述)、(1)Mispaduバンキングトロージャン、(2)これを実行するためのインジェクター(DLL)、(3)正規のサポートDLLをダウンロードすることで、ローダーのスクリプトは処理を続行する。各ファイルは別のZIPアーカイブでダウンロードされる(図5を参照)。図10は、解読アルゴリズムを実装するための疑似コードである。

図10:Mispaduのペイロード(パケットのヘッダーなどの制御情報を除いたデータ本体)解読アルゴリズムを実装するための疑似コード

 Mispaduのダウンロードサーバーは、受信したリクエストの妥当性を確認する。無効なリクエストを送信すると、ここでは再現できない卑猥な画像が返されます。

 最後に、ローダーのスクリプトは起動フォルダーにリンクを作成し、インジェクターを実行することで永続性を設定する。この場合、インジェクターのDLL(その名前は設定済みの構成ファイルに由来)のエクスポートされた関数を呼び出し、rundll32.exeを経由して設定する。インジェクターは暗号化されたバンキングトロージャンを見つけて解読し、実行する。

 Mispaduで使われたサーバーから発見されたオープンディレクトリーに、類似した攻撃に関係するであろうファイルが保存されていた。これらのファイルを使うと、AreaVIP(ブラジルのタブロイド紙のウェブサイト)になりすましたページを制作し、ターゲットに偽のAdobe Flash Playerのアップデートを強制することができる。ユーザー環境でこの攻撃は確認されていないが、今後に備えている可能性も否定できない。

 ブラジルをターゲットにしたMispadu攻撃ではURL短縮ツールTiny.CCが使用されていたため、統計データを収集できなかった。この攻撃において、クリック数はブラジルのみで約10万回に達している(図11を参照)。 Androidからのクリック数が多いのは、デバイスの種類を問わず広告がFacebookに掲載されていたからだろう。また、攻撃は繰り返し発生している。2019年9月後半に一段落しているが、2019年10月初めに再発している。

図11:ブラジルのMispadu攻撃に関する統計データ

添付ファイルの共有

 興味深いことに、スパムメールとMcDonaldの偽のウェブサイトは、偽のクーポンをダウンロードできるという共通点がある。Mispadu攻撃者はロシアの人気検索エンジンYandex.Mailプラットフォームを悪用して、ペイロードを保存していた(図12を参照)。おそらく、攻撃者はYandex.Mailのアカウントを作成し、偽クーポンを添付ファイルとして自身に送信し、ターゲットがこの添付ファイルに直接アクセスするように仕向けた可能性が高い。

図12:MispaduのMSIインストーラーを含むアーカイブのダウンロード元となったURL

構成ファイル

 構成ファイルは、中南米のバンキングトロージャンであまり使用されていない。しかし、全体的にみるとMispaduで3種類の構成ファイルが利用されている。これらのファイルがなければ、Mispaduは正常に機能できないのだ。構成ファイルはすべて、前述したローダーのスクリプトに含まれているか、このスクリプトから取得される。

 Mispaduの実行構成ファイルは、そのダウンロードサーバーのひとつ(図5のリモートサーバー1)からダウンロードされたデータとともにメモリーのみに保存される。これには、極めて重要な3つの情報が含まれている。

・インジェクターをダウンロードするためのURLの作成に必要なストリング
・マルウェアをインストールするフォルダーの名前
・インジェクターのエクスポートされた関数の名前(バンキングトロージャンを実行するには、この関数を呼び出さなければならない)

 一般的な構成データは、「C:\Users\Public\%COMPUTERNAME%[1]」にドロップされる。そのファイル名は被害者のコンピューター名の二番目の文字である(そのため、コンピューター名が「JOHN-PC」の場合、ファイル名は“O”となる)。これはローダーのスクリプトと実行構成ファイルに含まれるデータから作成され、バージョン情報、暗号化キー、ファイルシステムパスが含まれる。

 C&C構成データは、前ファイルと同じ場所にあるファイルに保存される。この場合、このファイル名には“_”が付け加えられる (上記の例を使って説明すると、“O_”)。このファイル名には以下が含まれる。

・#ip#(バンキングトロージャンがバックドアコマンドの受信に使用するIPアドレスのプレースホルダー)
・#wp[1-3]#(#ip#と関連する3ポート用のプレースホルダー)
・それぞれ31のドメインから成る2つのリスト(メインリストとバックアップリスト)

 Mispaduは、現在の日付(1~31)に基づいて、これらのリストからメインとバックアップのC&Cドメインを選択する。次に、そのドメインからC&C構成ファイルの最新版を数時間おきに取得し、ドロップされたファイルを最新版にすり替える。このアプローチが利用されているのは、プレースホルダーを埋めて、バックドア機能を作動させるためだと考えられる。

Google Chromeを保護する

 ブラジルでは、不正なGoogle Chromeブラウザーの拡張機能が、Mispaduバンキングトロージャンと共に配布されている(図13を参照)。この拡張機能(図14を参照) は、 「Securty [sic] システム 1.0」 と名付けられており、「Protege seu Chrome」(訳:「Google Chromeを保護する」) ことができると謳っている。これは、以下の通り、3つの不正なJavaスクリプトファイルで構成されている。

図13:Mispaduの配布ネットワークの一部。不正なGoogle Chrome拡張機能と共に配布された時に、変更が生じている。残りの配布ネットワークは、変わっていない

図14:Mispaduがインストールした不正なGoogle Chrome拡張機能

コンポーネント1: ウィンドウの操作

 このシンプルなコンポーネントには、単一の機能しか備わっていない。つまり、新しいGoogle Chromeウィンドウを作成し、他のすべてのウィンドウを閉じる。このコンポーネントは、ESETが分析したすべてのサンプルに存在するわけではないため、まだ試験段階にあると考えられる。

コンポーネント2: クレジットカードデータの窃盗

 二番目のコンポーネントには、ウェブサイトのハードコードされたリストが含まれている。これらのウェブサイトのページで、「text」、「email」、「tel」、「number」、「password」、「radio」を含む入力フィールドがないか探し出す。ウェブサイトに「CVV」、「CÓD SEG」 などが使用されていれば、被害者が情報を提供した時点で、これらの入力フィールドのコンテンツが攻撃者に送信される。明らかに、拡張機能の目的はクレジットカードデータを盗み出すことにある。

コンポーネント3: バンキングデータとBoletoデータの窃盗

 3つ目のコンポーネントは、最も高度である。最初に現在の日付(1~31)と月(1~12)に基づいて、DGSのようなアルゴリズムを使いふたつのストリングを生成する。次に、これらのストリングを使って、GitHub URL、 「https://raw.githubusercontent.com/%FIRST_STRING%/w/master/%SECOND_STRING%」(「%FIRST_STRING%」はGitHubのユーザー名)を生成する。生成されたURLからダウンロードされたデータは、ペイロードURLと呼ばれる別のURLに復号される。

 このコンポーネントには、コンポーネント2と同じように、ターゲットにされたウェブサイトのハードコードされたリストも含まれる。ターゲットがこれらのウェブサイトを閲覧すると、そのウェブサイト用の不正なJavaスクリプトファイルがペイロードURLから取得され、Javaスクリプトのeval関数を経由して動的にロードされる。

 その上、このコンポーネントは、ブラジルで一般的な決済システムBoletoにも侵入しようとする。長い間、攻撃者はこのシステムをターゲットにしてきた(詳しくは、2014年の本レポートを参照)。このシステムで決済するには、支払伝票(Boleto)を印刷しなければならない。この伝票には、主に支払を受ける銀行口座のID番号とバーコードが記載されている(図15を参照)。バーコードをスキャンするか、ID番号を手入力すると、支払いは完了する。

図15:Boletoの例 (出典: Wikipedia)

 マルウェアコンポーネントは正規表現を使って、ID番号を見つけ出し、それを攻撃者のID (動的に取得) にすり替えようとする。さらに、攻撃者の口座番号入りの決済用バーコードを生成するために正規のウェブサイトを悪用し、正規のウェブサイトを不正なウェブサイトにすり替える。Boletoに侵入するためのコードは、図16のとおりである。

図16:Boletoに侵入するMispaduのGoogle Chrome拡張機能。攻撃者の口座番号を取得するコードは赤で、不正なバーコードを生成するコードは緑でハイライト

攻撃の違い

 さまざまなMispaduバンキングトロージャンは銀行を狙っており、居住国によって内容が異なっている。この明らかな事実と前述した違いの他に、ブラジルの攻撃はメキシコの攻撃と若干異なる点がある。

 各ターゲットに対して、構成ファイルを保存し、バンキングトロージャンをインストールするファイルシステムパスとファイル名をランダムに割り当てているようである。さらに、ローダーのスクリプトには、rundll.exeではなくWindowsの mshta.exe を悪用して、実際のバンキングトロージャンを実行するための要素が含まれている(本稿執筆時点では使用されていない)。

結論

 この記事では、これまで研究で扱ってこなかった中南米のバンキングトロージャンファミリー、Mispaduにフォーカスをあてた。プログラム言語デルファイ(Delphi)で書かれたMispaduは、バックドア機能を備えており、ポップアップウィンドウを悪用して、ブラジルとメキシコに攻撃を仕掛けている。このようなMispaduを中南米のバンキングトロージャンとみなした理由だけでなく、その主な特徴についても明らかにした。

 最新の配布ネットワークについての説明、不正なペイロードを保存するために Yandex.Mailの悪用や、不正なFacebook広告の横行についても取り上げた。Mispaduで使用されている構成ファイルについても分析を行なった。

 最後に説明した、ブラジルでMispaduを配信する不正なGoogle Chrome拡張機能の目的は、重要なクレジットカード情報やバンキング情報を盗み出し、ブラジルの決済システム「Boleto」に侵入してターゲットから金銭を巻き上げることである。

 IoC(セキュリティ侵害の痕跡情報)は、ESETの「GitHubレポジトリ」でも閲覧可能である。

[引用・出典元]
Mispadu: Advertisement for a discounted Unhappy Meal by ESET Research 19 Nov 2019 - 11:30AM
https://www.welivesecurity.com/2019/11/19/mispadu-advertisement-discounted-unhappy-meal/