This post is also available in: English (英語)
概要
サイバーセキュリティの専門家などで構成されるパロアルトネットワークスの脅威調査チームであるUnit 42は、「VirusTotal」※1が提供するすべてのアンチウイルス製品を回避できる新種のAndroidマルウェア群を発見しました。このマルウェア群はその悪質な主機能名から「Gunpoder」と名付けられ、Unit 42は3種類の亜種マルウェアを49件のサンプルから検出しました。今回の注目点は、アンチウイルス製品では従来防御されてこなかった「アドウェア」と、被害をもたらす「マルウェア」の間には微妙な差しかないということが明らかになりました。
※1 VirusTotal:ウイルス、マルウェア、URLフィルタリングの無料オンライン スキャン サービス。 40 種類以上のウイルス対策製品を使用してファイルを検査できる。
Gunpoderのサンプルは2014年11月よりVirusTotalにアップロードされており、すべてのアンチウイルスエンジン(ソフトウェア)で「無害」または「アドウェア」として判定されており、従来型の防御対策ではこのマルウェアのインストールを防いでいませんでした。分析の過程において、このサンプルにはアドウェアの特徴が多く含まれ、実際によく使われるアドウェアライブラリが埋め込まれている一方、以下に示されるようにマルウェアとして判定されるような明らかに悪質な振る舞いも多く発見されました。
- ユーザーから機密情報を収集する
- SMSメッセージ経由で拡散する
- 詐欺的な広告を配信する可能性がある
- 追加の有料課金を実行する機能
Gunpoderはイラク、タイ、インド、インドネシア、南アフリカ、ロシア、フランス、メキシコ、ブラジル、サウジアラビア、イタリア、米国、スペインを含む、少なくとも13か国のAndroidユーザーを標的にしています。Gunpoderのリバース・エンジニアリング(解析調査)から、この新しいAndroid向けマルウェアは中国国外のユーザー間でのみ拡散するという興味深い事象が確認されました。
Unit 42はGunpoderをパロアルトネットワークスのAutoFocusサービスによる調査を行い、WildFire、脅威防御、Mobile Security Managerの各ユーザーに対して現時点で既知であるすべてのGunpoder亜種に関するシグネチャをリリースしました。攻撃のライフサイクル全体にわたるパロアルトネットワークス独自の防御機能により、Gunpoderマルウェア群の将来的な亜種もブロックできる可能性があります。
検出を回避する技術を適用
リバースエンジニアリングしたサンプルを調査することにより、マルウェア作成者はアンチウイルスによる検出を回避するためにいくつかの独自技術を適用していたことを発見しました。
- Gunpoderサンプル内には正規の広告ライブラリが含まれています。これら広告ライブラリは容易に検出でき、攻撃的な振る舞いがみられることもあります。このマルウェアサンプルは、このような広告ライブラリを使うことで、悪質な振る舞いを見えないようにして、アンチウイルスの検出機能を回避しています。アンチウイルスエンジンはGunpoderをアドウェアであると認識しますが、明らかに悪質であるものと識別しないため、ほとんどのエンジンではGunpoderの実行を防ぐことはできません。図1に、あるサンプルにおけるVirusTotalでのスキャン結果を示します
- Gunpoderを実行したユーザーには正規の広告ライブラリが含まれる旨の通知が表示されます。この通知は、正規のライブラリを意図的にスケープゴート(身代わり)として利用するために追加されたものと考えられます。
- Gunpoderのサンプルは、オープンソースのゲームフレームワーク(http://sourceforge.net/p/nesoid/code/ci/master/tree/)に基づき、ニンテンドーエンターテインメントシステム(以下NES)のエミュレータゲーム内に悪質なコードを埋め込みます。パロアルトネットワークスでは、マルウェア作成者がオープンソースのAndroidアプリケーションにマルウェアコードを組み入れて再パッケージ化を行う傾向があることを確認しました。Gunpoderはこの技術を用いることで、静的解析が行われた場合に悪質なコードを判別しづらくしています。
- Gunpoderの標的となるユーザーは中国在住者ではありません。サンプルではPayPal、Skrill、Xsolla、CYPayといったオンライン決済のサポートが確認されました。
Gunpoderの起動
GunpoderサンプルはNESゲームを装います。インストール後、最初に開くとプライバシーポリシーを表示します (図2)。この文章は、本アプリが広告を表示し、デバイスから情報を収集するために広告ライブラリを許可していることをユーザーに明示的に通知します。悪質な振る舞いを目立たせず広告ライブラリのせいにするため、マルウェア作成者が意図的に本物の広告ライブラリをスケープゴートとして追加したのだと推測されます。
起動すると、アプリはこのゲームの「永久」ライセンスの支払いをユーザーに要求するダイアログをポップアップ表示します。ユーザーが「Great! Certainly!」ボタンをクリックすると、PayPal, Skrill, Xsolla (決済用リンクは無効になっている)、CYPayを含む決済ダイアログがポップアップ表示されます。ユーザーは0.29米ドルまたは0.49米ドルを支払うため、PayPalまたはSkrillの新規アカウントを登録するか既存のアカウントにログインする必要があります。CYPayではオンラインギフト券との引き換えが行えます。ユーザーが本アプリ内の 「Cheats」 オプションをクリックした場合も、この決済ダイアログがポップアップ表示されます。実際に、マルウェア作成者はこの悪質な決済機能を元のアプリでは無料である「Cheats」 オプションに追加しています。
本マルウェアのサンプルはNESエミュレータ フレームワーク
(http://sourceforge.net/p/nesoid/code/ci/master/tree/) を再パッケージ化したものです。2014年4月に、パロアルトネットワークスは無料のオープンソースプロジェクトからモバイルマルウェアを生成する傾向を確認しました
(英語)。これは、今後も続く可能性があります。
Gunpoderとオープンソースプロジェクトのコードを比較したところ、図3に示すようにマルウェア作成者が決済機能を追加したことが判明しました。決済ダイアログを図4に示します。
(CheatsActivity.java)
SMSとGoogle短縮URLを介して拡散
選択された連絡先宛にGunpoderダウンロード用リンクをSMSで送信することで、Gunpoderマルウェアは広がっていきます。SMSメッセージのサイズ上限のため、ダウンロード用リンクにはhttp://goo.gl/KVhRwC (2015年7月現在有効) と http://goo.gl/OpnVHv (2015年7月現在無効) というGoogle短縮URLを用いています。
拡散されるSMSメッセージは2つの方法で送信されます。一つ目はメイン操作がユーザーにより一時停止された時です。動的解析を行うほとんどのアンチウイルスエンジンでは、送信操作を検知対象とするため検出が非常に困難になります(図5)。
二つ目の方法は、不正モードを有効にする決済をユーザーが拒否したとき、つまり図2の「Next Time」 ボタンをクリックしたときに発生します。この場合Gunpoderは、本マルウェアグループの亜種である「fun game (楽しいゲーム)」を共有するようユーザーに要求します (図6)。
興味深いことに、Gunpoderサンプルはユーザーの今いる国を検出します。ユーザーが中国にいない場合、本アプリはバックグラウンドでランダムに選択した友人にマルウェア亜種のダウンロード用リンクが含まれるSMSメッセージを自動的に送信します(図7)。
MainActivity.java
(ShareTool.java)
国ごとのアプリケーション広告
Gunpoderサンプルは、他アプリケーションの販促用広告をポップアップ表示します。マルウェアのサンプルが13か国を標的にしていることがコード内で確認されています。作成者は販促用アプリケーションをダウンロードさせるため、国ごとに特定のURLを使用しています。しかしこれらダウンロードリンクは、この記事の執筆時点ではアクティブではありません。同一サンプル内で確認されたデバッグコードからは、「Wang Chunlei」 (中国語) という名前が発見されました。これはマルウェア作成者の名前である可能性が非常に高いです (図8)。
(BrowserAd.java)
詐欺広告の可能性
Gunpoderマルウェア群は正規の広告ライブラリを介して、被害者に詐欺広告を配信していることが確認されました (図9)。詐欺広告は破壊的な技術を使用して被害者がクリックするように仕向けようとするものです。詐欺広告ページはFacebookページをまねており、被害者をいくつかのアンケート質問に答えさせ、プレゼントを受け取るためさまざまなアプリケーションをインストールするよう要求します。
キャプチャされたGunpoderログから上記の詐欺広告ログに関する情報が見て取れます。本マルウェアは被害者から被害者のデバイスID、デバイスモデル、位置情報を含む詳細なユーザーおよびデバイス情報を収集してアップロードします。
個人情報搾取
Gunpoderによって被害者のブラウザ履歴およびブックマークの情報が取得されていることが発見されました (図10)
さらに、Gunpoderは被害者のデバイスにインストールされているすべてのパッケージに関する情報を収集します。ペイロードを実行するための機能も提供されています。復号化した後にペイロードをロードして実行する動的なコードが “com.fcp.a” と“com.fx.a”コンポーネントに内在しています。
影響
これまでのところ、パロアルトネットワークスはGunpoderマルウェアについて49件の個別サンプルを検出しています。これらの亜種として3つの異なるグループが見つかっています。さまざまなGunpoder亜種サンプルを比較することにより、Gunpoderの進化について多くの見解を得ることができました。
具体的には、グループ1の亜種 (12件のサンプル) はSMS経由の拡散と、支払い誘引を行います。グループ2の亜種 (16件のサンプル) は支払い誘引のみを行い、グループ3の亜種 (21件のサンプル)はSMSによる拡散か支払い誘引のいずれかを行います。グループ3はGunpoderマルウェアの最新亜種として発見されました。
また、グループ1とグループ2は同じ署名の証明書が使用され、グループ3は異なる署名の証明書が使用されています。グループ間での証明書の違いはあるものの、これらすべてのサンプルは同一のマルウェア作成者によって記述された可能性が非常に高いと考えられます。3つの亜種グループで多くの変数が一貫性を持っており、“Constants.java”では以下が確認されています。
SHARE_CONTENT = "a fun game\uff0c^_^ http://goo.gl/KVhRwC"
3つのGunpoder亜種のハッシュリストに関しては付録を参照してください。
前述のサンプルは、http://www.aptoide.com/ と http://www.mgccw.comの2つのサードパーティ製App Storeからダウンロードできました。
ユーザーがだまされた場合、高額な請求が来ることになります。偽の決済ではわずか0.29米ドルまたは0.49米ドルが課金されるだけですが、SMS送信に起因する請求はこれよりはるかに高額です。SMS請求書の総額はユーザーのデバイスにどれだけの連絡先が存在するかに依存します。
結論
全体的にGunpoderマルウェア群にはアドウェアに付随する多くの動作が確認されています。しかし前述のように悪質な機能も多数存在します。今回の例では、被害者から機密性の高い情報を収集する機能、SMSメッセージを介して伝播すること、他のペイロードを実行する機能などがあります。
正規の広告ライブラリが組み入れられているため、多数のアンチウイルスプログラムがGunpoderを単なるアドウェアとして識別してしまい、多くの場合デフォルトでブロックされません。
対策
パロアルトネットワークスはWildFire、Threat Prevention、Mobile Security Managerの各ユーザー向けに現時点で既知であるすべてのGunpoder亜種に関するシグネチャをリリースしました。攻撃のライフサイクル全体にわたるパロアルトネットワークス独自の防御機能により、Gunpoderマルウェアグループの将来の亜種もブロックできる可能性があります。
付録
グループ1:
- 68d3548306c9667b4d1a6e483cbf2d2f7566213a639316512d4958ff0b2e8f94
- 77ee18a207bb79c86fa5976b9f5a4fe36f4ecd429dc9846fa71c6585b6df85b5
- 1f42c570245e7f6b7dfe7f36a5069b72126cc80d51303f964be63c5bacaf3bad
- a0f5760cfb903027987c8b94eb26b34b24c76138e551a76b4ccbb22448cdda37
- 844ba4b96b7f1df89a3e31544cf22bac9acf1ab97a4d9972daf8aa3fbb149c37
- 0ac272649ce4899920a93467a78e05714e01cf72efe9d95122c13e98b2d7a584
- 4a0da8da1116fbc6d85057110d1d8580dcc5f2746e492415f0f6c19965e71c9c
- 04cffd129ea18c6cf545f5a7229db6e60bf90979bc5c9501abe9a88c09946fc8
- 969505bfbb9f700ee70856fb7ab7b1a963af3e33cdb4a37c83b10743964ed428
- f48d1934b48961d53f2c63fb72a70a2387200627068a203efc4da7b34af94842
- 1bfcccec122b6764958142a6b64c36e9b5436c82bab5c0333a88a9f5be334838
- b5e82e0a97c4d33aeabf77cb242bb62a77120deb338290b27b94ac6154760162
グループ 2:
- d94db3adfde9a0b34490060fb3297b007b11204d20645a609bd384ce2ea12b55
- 11293d0aea5f0a371eea7da05a21f346308fd9084231386843657f5efd5b8785
- 42d325bc7d18be240a0e5686102b15da7af0388f5d02d2674ef2e9f5b66d1392
- 7935b06f5508727f912b387436f2a00f5a8a8de1dd0cabb0c7b08fc8d188bb67
- 2c5251ce74342d0329dd8acc5a38c2a96a1d6ee617857aca8d11e2e818e192ce
- 2788c90a320f3cd8fac34a223b868c830ce2b3702b648bcecc21b3d39d3618f3
- 397359159f5f18cf27b6458f89d2c79d7f77740ce3b2a53d359cd3e83c19050b
- 99ad2bb26936a7178bc876f1cdc969c8b0697f4f63f3bdd29b0fff794af4b43c
- fe550ad2c1e2b5a54fa4951e42dce7fde94f93056722b32fbb5620e6ab766eaa
- 67746e7bfcd4f2a8fe6b0def4c9a360fbd26075690c13ee9b7a53da186b905c2
- d4cab675cb5d4484195f034d03566128db936049abcb027c97d24ad347ffba6b
- bac759e73bf3b00a25ff9d170465219cb9fb8193adf5bbc0e07c425cc02a811d
- c2db1f87e6977061548eaa6554dd5b7307bfca1fc5e276635b9981f1058b7835
- 89f2ae9e9df43ac07e8bbafd80971666693da2990e735bb9172fe7e401e49047
- 89ad28e0fa706390dc09437fb5009bfa6721dbafde3d519b7175baca5cc757af
- 0f5abe1e6983b6a9ae744dc659e399849ac8cdd728298937da5bbc85d43b1fdd
グループ 3:
- db7e6a1832b3fda7147eea616c13e200865668e123775ab2464d8252495fb920
- e60aa47543cfd511998137aa364ef4ac91cb57267513d473948372d07b39b40b
- 67e179e90538f3bdffd29cd518d38e9b7982c386d4361f04e8698bf1695ebad9
- 6b42d031e85d5a458915717d6322b48235b40900a8891d4669edf0c61d6ce901
- 8e63f1336155e58d5f075dc5def531d04860c865b5fc16bb8aa761d443d36d6b
- cb1fad90d0b1833237d9d357e485da356d90c0abaf40761106fa30364a121a74
- df411483f2b57b42fd85d4225c6029000e96b3d203608a1b090c0d544b4de5b0
- 6412806057dae113b2ffcee19ec58dfa9b5001b6db30ace66f3cdf7e4816aef8
- e22ea78faa9a059a819f663922f5bb4ba844f6f4c7920f74d16cd0dba7cb19fc
- f2dbcb639783126054b0ee95e1de2e90364b39f072f550e30ea40b62fe1b460f
- 5e037f47d1ed9f00dd16170854d59ee171b78c08cda0876233ffd1d8fced1ba5
- 28b3bd3b9eb52257c0d7709c1ca455617d8e51f707721b834efe1ad461c083f0
- 1bc7b6000fefdecd64de36313f1bcc61a1832285d155c3aa9425dcc83b2dd875
- 72c5fd8b77e6e02396ff91887ba4e622ab8ee4ea54786f68b93a10fcfa32f926
- c2bed406a35d59e8ffaf164a57609b8fe668b77b4a23c98db3867250a8c4c605
- 00872f2b17f2c130c13ac3f71abb97a9f7d38406b3f5ed1b0fc18f21eaa81b50
- ec59dbc059eba4eb49c491d91ef7972c05c0fddbac8448d23942c3478f4c4c78
- fc9e028db2d4133d798e5d76f34f6475d335dc300c53166ecbbf4ad34784c0c5
- 465a62abdadb41b814f769c61c3d8442c8fee4f2661b971e4df548709ffc2a73
- 75f49f89490624455c7d99f5878e2736f43517db7ab5ef875f1485c6046dcfe2
- a4c7bd7657686974d6de0dfe2090fd13160c7a0be252cf6d7a7d465ccd232e95