Roaming Mantis パート2:さらなる多言語化、フィッシング、そしてマイニング

2018年5月21日

2018年4月、Kaspersky LabはルーターのDNS設定を改竄してAndroidマルウェアの拡散を狙う、主にアジアのAndroidデバイスをターゲットとした攻撃「Roaming Mantis」について記事を公開しました。改竄されたDNS設定によってリダイレクトされた先のWebページでは「facebook.apk」「chrome.apk」というアプリのダウンロードが促されますが、このアプリにはトロイの木馬(Trojan-Banker)が含まれていました。このトロイの木馬の検知が最も多かったのは韓国、バングラデシュ、日本でした。

この攻撃については、McAfeeとTrendMicroからもレポートが出ています。合わせてご覧ください(いずれも英語記事)。

5月になって、当社ではRoaming Mantis(またはMoqHao、XLoader)の活動に目立った変化を認めました。リダイレクト先の悪意あるWebページが27言語に対応して欧州・中東もターゲットとなり、さらにはiOSデバイスを標的とするフィッシングサイト、PCを対象とする仮想通貨マイニング機能が登場しています。

27言語対応:ターゲットの拡大

前回の記事でも触れたように、この攻撃には、ルーターのDNS設定を改竄し、何らかのWebページにアクセスしようとした人を悪意あるWebページへ誘導するという特徴があります。誘導先のWebページでは、悪意あるapkファイルのダウンロードを促す通知が現れます。通知で使われる言語は、デバイスの言語設定に応じて用意されていました。4月の段階では、韓国語、繁体字中国語、日本語、英語の4言語に対応していました。

しかし現在、対応言語の数は27言語に拡大しています。以下は、誘導先のWebページのソースコードです。

追加されたのは、ヨーロッパおよび中東の言語です。なお、これまでと同様に、簡体字でコメントが入っています。

一方、悪意あるapkファイルも同様に、最新の検体(MD5: fbe10ce5631305ca8bf8cd17ba1a0a35)では27言語に対応しています。

対応言語は以下のとおりです。

  • アラビア語
  • アルメニア語
  • イタリア語
  • インドネシア語
  • ウクライナ語
  • ジョージア語
  • スペイン語
  • セルビア・クロアチア語
  • タイ語
  • タガログ語
  • チェコ語
  • ドイツ語
  • トルコ語
  • ヒンドゥー語
  • ブルガリア語
  • ベトナム語
  • ヘブライ語
  • ベンガル語
  • ポーランド語
  • ポルトガル語
  • マレー語
  • ロシア語
  • 英語
  • 韓国語
  • 簡体字中国語
  • 繁体字中国語
  • 日本語

攻撃者は自動翻訳ツールを使って対応言語を増やし、さらに感染を拡大しようとしているものと思われます。

フィッシングサイト

これまで標的となっていたのはAndroidデバイスのみでしたが、新たなターゲットとしてiOSデバイスも加わりました。iOSデバイスの場合、誘導先のWebページからさらにフィッシングサイトである「http://security.apple.com/」にリダイレクトされます。

正規のDNSサーバーの場合、このドメイン名は、対応するIPアドレスが存在しないため名前解決されることはありません。しかし、攻撃者のDNS設定を通じて通信した場合、このドメイン名はIPアドレス「172.247.116[.]155」に名前解決されます。結果として、AppleのWebサイトを真似たフィッシングサイトが表示されます。ブラウザーのアドレスバーには「http://security.apple.com/」と表示されているため、いかにも正規のサイトにアクセスしたように見えます。

このフィッシングサイトは、ユーザーID、パスワード、カード番号、カードの有効期限日、CVV(セキュリティコード)を盗み取ります。

このiOS向けフィッシングサイトが対応する言語は、Android向けの悪意あるWebサイトおよび悪意あるapkファイルが対応する言語のうち、ベンガル語とジョージア語を除いた25言語です。

Webマイナー

誘導先Webページのソースコードからは、これまでになかった機能が発見されました。ブラウザー内で動作するスクリプトを介して仮想通貨をマイニングする、Webマイニングの機能です。

上記のソースコードには「coinhive」の文字が見えますが、Coinhiveは世界各地のサイバー犯罪者が最も好んで使うWebマイナーです。このWebページへPCからアクセスした場合、ブラウザー内で仮想通貨のマイニングが開始され、CPUの使用率が跳ね上がります。

メールの件名に隠された通信先

以前のapkファイル検体には、正規Webサイト、アカウント、次にアクセスする指令サーバーの情報を取得するのに使う正規表現が含まれていました。新しい検体では、いくつか変化が確認されています。

以前の検体では、ハードコードされた正規Webサイトにアクセスし、そのサイトのHTMLコードから正規表現を使って中国語の文字列を抽出し、それをデコードするという流れでした。今回の検体では、本当の通信先を取得するためのプロトコルが、HTMLプロトコルからメールプロトコルに変更されています。

新しい検体では、ハードコードされたoutlook.comのログイン情報を使用して受信トレイにアクセスし、メールの件名から「abcd」の文字列を基に中国語の文字列を抽出し、そこから実際の指令サーバーのアドレスをデコードする手順となっています。

デコードするためのアルゴリズムについては、変化はありません。

本来の通信先としてデコードされた指令サーバーは、以下のとおりです。

  • 220.136.78[.]40
  • 220.136.73[.]107

バックドアコマンド「ping」

以前の悪意あるapkファイル検体(MD5:f3ca571b2d1f0ecff371fb82119d1afe)には、感染した人の環境を確認し、デバイスのコントロールを握るためのバックドアコマンドが18個含まれていました。

最近のapkファイル検体(MD5:fbe10ce5631305ca8bf8cd17ba1a0a35)では「ping」が追加され、バックドアコマンドの数は19個に増えています。

最近の検体内で見つかったコマンドは以下のとおりです。

  • sendSms
  • setWifi
  • gcont
  • lock
  • bc
  • setForward
  • getForward
  • hasPkg
  • setRingerMode
  • setRecEnable
  • reqState
  • showHome
  • getnpki
  • http
  • onRecordAction
  • call
  • get_apps
  • show_fs_float_window
  • ping NEW

追加されたpingコマンドは、感染端末から指令サーバーに対して通信が可能かどうか確認するためのコマンドです。Pingによって、サーバーが利用可能な状態か、通信速度はどのくらいか、ターゲットのネットワークにフィルタリング機能が存在するかを確認しているようです。また、調査用の環境ではないかを調べるのにも利用されている可能性があります。

apkファイルおよびファイル名の自動生成

Roaming Mantisは、8つのランダムな数字を使って悪意あるapkファイルの名前を生成するという、シンプルな検知回避テクニックをサーバー上に実装しています。

このほか当社では、ダウンロードされる悪意あるapkファイルも動的にリアルタイム生成されていることを、2018年5月16日の時点で確認しています。ファイルのハッシュがブラックリスト化されるのを避けるため、ダウンロードのたびにapkファイルを自動生成しているようです。この機能は、以前の検体では見られませんでした。当社では、2018年5月8日の時点でダウンロードされたapkファイルがすべて同一のファイルであったことを確認しています。

しかし、悪意あるapkファイルに含まれる「classes.dex」内部のローダーと「\assets\data.sql」内の暗号化されたペイロードについては、これまでの亜種と同一でした。調査用に、復号済みペイロードのMD5ハッシュ(apkファイル全体のハッシュ除く)、Virus Totalに最近アップロードされたapkファイルのフルリストを、記事末尾の「脅威存在痕跡(IOC)」のパートに掲載しました。

急速な進化

Kaspersky Labが4月にレポートして以降、Roaming Mantisは急速に進化しています。これまでの流れを時系列にまとめると、以下のようになります。

Roaming Mantisの黒幕たちは、かなり積極的にツールを改良し続けています。以下のグラフは、Kaspersky Security Network(KSN)のデータより、攻撃の検知数(ユニークユーザー)を日単位で示したものですが、5月5日に数の増加が見られます。この日は、誘導先Webページに新機能が追加された日と近い日付です。

地域的拡大

カスペルスキー製品は、Roaming Mantisの悪意あるapkファイルを「Trojan-Banker.AndroidOS.Wroba」として検知します。以下に示すのは、検知名「Trojan-Banker.AndroidOS.Wroba.al」をもとにKaspersky Security Network(KSN)統計情報から2018年5月1日〜5月10日の状況を図示したものです。

4月時点に比べて韓国、バングラデシュ、日本での検知数は下がり、ロシア、ウクライナ、インドでの検知数が増えています。前回の記事では2018年2月9日〜4月9日の2か月間の統計情報を掲載しましたが、当時のユニーク検知数は150でした。今回、わずか10日間で120を超えていることは、特筆に値します。

また、KSNの情報は、以下の理由から全体像のごく一部にすぎない点にも考慮が必要です。

  1. 他社のセキュリティ製品を使っている人々や、まったくセキュリティ製品を使っていない人々が存在すること。
  2. Roaming MantisがDNS設定の改竄という手法を使っている以上、統計データを取得しにくい状況にあり、取得できたデータは、おそらく別の回線に切り替わったときなどに取得できたデータであること。

まとめ

Roaming Mantisの活動は、短期間で著しい進化を遂げました。この攻撃に関する最初のレポートは、2017年8月にMcAfeeが公開したものです。当時、Roaming Mantisの拡散方法はSMSであり、標的は韓国のみでした。Kaspersky Labがこの攻撃を最初に報じた2018年4月の時点では、DNS改竄の手法が取り入れられており、標的もアジア地域に拡大していました。

当社の4月の記事でも述べたとおり、この攻撃は活発に活動し、進化を続けています。5月には、いくつか目立ったアップデートが観測されました。対応言語を27にまで増やすことで標的を欧州・中東地域へ拡大するほか、AndroidデバイスだけでなくiOSデバイスも標的としています。PC環境も最近になって標的に加えられており、PCからのアクセスに対してWebマイナーが稼働するWebサイトへ誘導する動きが見られます。

検知を回避するテクニックも高度化しています。本当の通信先の情報を取得する際のプロトコルがHTMLからPOP3に変更されたほか、apkファイルおよびファイル名をサーバー側で動的に自動生成する機能が追加され、調査用の環境かどうかを確認するための手段も追加されています。

この急速な成長は、攻撃者が強い金銭的動機を持っていること、また、おそらくは資金が潤沢であることを示唆しています。

カスペルスキー製品では、これらのマルウェアを以下の検知名で検知およびブロックします。

  • HEUR:Trojan-Banker.AndroidOS.Wroba

カスペルスキー製品では、利用者の同意なく動作するCoinhiveをブロックします。

脅威存在痕跡(IOC)

※以下のIOCは2018年5月18日時点のものです。

悪意あるホスト:
43.240.14[.]44
118.168.201[.]70 NEW
118.168.202[.]125 NEW
128.14.50[.]147
172.247.116[.]155 NEW
220.136.73[.]107 NEW
220.136.76[.]200
220.136.78[.]40 NEW
220.136.111[.]66
220.136.179[.]5
220.136.182[.]72 NEW
shaoye11.hopto[.]org
haoxingfu01.ddns[.]net

悪意あるapkパッケージ:
03108e7f426416b0eaca9132f082d568
07eab01094567c6d62a73f7098634eb8 NEW
1cc88a79424091121a83d58b6886ea7a
2a1da7e17edaefc0468dbf25a0f60390
31e61e52d38f19cf3958df2239fba1a7
34efc3ebf51a6511c0d12cce7592db73
4d9a7e425f8c8b02d598ef0a0a776a58
531714703557a58584a102ecc34162ff NEW
904b4d615c05952bcf58f35acadee5c1
9f94c34aae5c7d50bc0997d043df032b NEW
a21322b2416fce17a1877542d16929d5
b84b0d5f128a8e0621733a6f3b412e19
bd90279ad5c5a813bc34c06093665e55
cc1e4d3af5698feb36878df0233ab14a NEW
ff163a92f2622f2b8330a5730d3d636c
808b186ddfa5e62ee882d5bdb94cc6e2
ee0718c18b2e9f941b5d0327a27fbda1 NEW

classes.dex:
13c8dda30b866e84163f82b95008790a NEW
19e3daf40460aea22962d98de4bc32d2
1b984d8cb76297efa911a3c49805432e NEW
36b2609a98aa39c730c2f5b49097d0ad
3ba4882dbf2dd6bd4fc0f54ec1373f4c
46c34be9b3ff01e73153937ef35b0766 NEW
5145c98d809bc014c3af39415be8c9ac NEW
6116dc0a59e4859a32caddaefda4dbf4 NEW
8a4ed9c4a66d7ccb3d155f85383ea3b3
a5d2403b98cddcd80b79a4658df4d147 NEW
b43335b043212355619fd827b01be9a0
b4152bee9eca9eb247353e0ecab37aa5 NEW
b7afa4b2dafb57886fc47a1355824199
bf5538df0688961ef6fccb5854883a20 NEW
f89214bfa4b4ac9000087e4253e7f754
6cac4c9eda750a69e435c801a7ca7b8d
e56cccd689a9e354cb539bb069733a43 NEW
fe0198f4b3d9dc501c2b7db2750a228b NEW

\assets\data.sqlの復号済みペイロード(dexファイル):
1bd7815bece1b54b7728b8dd16f1d3a9
28ef823d10a3b78f8840310484e3cc69 NEW
307d2780185ba2b8c5ad4c9256407504
3e01b64fb9fe9605fee7c07e42907a3b NEW
3e4bff0e8ed962f3c420692a35d2e503
3ed3b8ecce178c2e977a269524f43576 NEW
57abbe642b85fa00b1f76f62acad4d3b
6e1926d548ffac0f6cedfb4a4f49196e
6d5f6065ec4112f1581732206539e72e NEW
7714321baf6a54b09baa6a777b9742ef
7aa46b4d67c3ab07caa53e8d8df3005c
a0f88c77b183da227b9902968862c2b9
b964645e76689d7e0d09234fb7854ede