Roaming Mantis:iOSでの仮想通貨マイニングと、悪意あるコンテンツ配信システムを介した拡散

2018年10月12日

Kaspersky Labは今年、攻撃活動「Roaming Mantis」に関する情報を複数回にわたって公開しました。Roaming Mantis(別名:MoqHao、XLoader)は当初、主にアジア地域にて、脆弱性のあるルーターのDNS設定を改竄し、FacebookやChromeのような正規のアプリになりすました悪意あるAndroidアプリを拡散していました。調査を進める中で、Roaming Mantisが活発に活動し、急速に進化していることが明らかになってきました。この攻撃者グループのマルウェアは今や27の言語に対応しており、アジアの国々を越えて欧州や中東にも広がっています。また、PCでの仮想通貨マイニング、iOSデバイスを狙ったAppleのフィッシングサイトの使用も取り入れ始めました。

ルーターのDNS設定の改竄方法に関しては、株式会社LACがブログ記事(2018年6月)にて詳しく解説しています。この調査によれば、攻撃者はデフォルトのIDとパスワードでルーターにログインし、正規のDNS設定を改竄し、インターネットを介してルーターのコントロールパネルにアクセスできるようにしていました。この知見に富んだレポートの公開を感謝するとともに、詳細に関してはそちらの記事をご参照いただければと思います。

Roaming Mantisグループは、当社がレポートを公開した後も、積極的な活動を続けています。当社では、Roaming Mantisが違法な収益獲得の手段として、iOSデバイスでのWeb仮想通貨マイニングや悪意あるコンテンツ配信システムを利用した拡散など、新たな手法を取り入れ変化を加えてきたことを確認しました。この記事では、新たに明らかになった事項を解説します。

iOSデバイスでのWeb仮想通貨マイニング

犯罪者たちはこれまで、iOSデバイスに対してはAppleのフィッシングサイトを使って認証情報を盗み取っていました。しかし、このフィッシングサイトのHTMLソースコードが以下のように変更されていました。

図1:iOSを狙った悪意あるランディングページのHTMLソースコード(一部)

上記のコードでは偽物のAppleサイト(フィッシングサイト)へのリダイレクトが無効になっており、iOSデバイスでマイニングするためのWebマイニングスクリプト(以前はPCプラットフォームのみを対象としていたもの)のコードが追加されています。

iOSデバイスでこのフィッシングサイトにアクセスすると、Webブラウザーに空白のページが表示されます。バックグラウンドでは、CPUの使用率が一気に90%に達します。

図2:フィッシングサイトとCPUモニタリングツールの画面キャプチャ

興味深いことに、当社がこれを確認した翌日、この部分はAppleのフィッシングサイトを利用した攻撃手法に戻っていました。犯罪者はそのときiOSデバイスでのWebマイニングから得られる利益がどれほどになるかをテストしており、より効率のよい収益化の方法を探っていたものと考えられます。

日本語デバイスの排除

犯罪者たちは、日本発の多数の記事や調査活動に反応したように見受けられます。Roaming Mantisのランディングページには、日本語環境を排除するための新機能が追加されていました。

図3:日本語環境を排除するために追加された確認

犯罪者たちは当面、日本のターゲットへの攻撃を緩めることにしたようです。

別のマルウェア配信システムによる拡散

2018年7月半ば、当社の監視していたランディングページが姿を消しました。しかし、Kaspersky Security Network(KSN)のデータによれば、Roaming Mantisの悪意あるapkファイル(検知名「Trojan-Banker.AndroidOS.Wroba.al」)は引き続き当社製品の利用者によって検知されていました。

図4:検知したユーザーの数 – KSNデータによる(2018年6月10日~2018年9月10日)

さらなる調査の結果、Roaming Mantisが新たに取り入れたマルウェア拡散方法が、別のAndroidマルウェアである「sagawa.apk」の配信に使われていたシステムを利用したものであることが判明しました。sagawa.apk については、今年1月にKaspersky Dailyにて触れたとおりです。また、Trend MicroはこのマルウェアをFakeSpyと名付け、やはりブログ記事(英語)を公開しています。このマルウェアの感染経路は、日本の宅配業者からの通知に見せかけたSMSでした。メッセージには悪意あるURLが含まれており、これをクリックするとサーバーによって偽のWebサイトが表示され、「sagawa.apk」という名前の悪意あるアプリのインストールが促される仕組みでした。今回の調査では、そのような「sagawa.apk」の検体に2つの種類があることが判明しました。

タイプA タイプB
ファイル名 sagawa.apk sagawa.apk
md5 956f32a28d0057805c7234d6a13aa99b a19f4cb93274c949e66efe13173c95e6
ファイルのサイズ 427KB(437,556) 2.3MB(2,381,665)
ローダーモジュール \classes.dex \classes.dex +
\lib\arm64-v8a\libkao.so\lib\armeabi-v7a\libkao.so\lib\x86\libkao.so\lib\x86_64\libkao.so
暗号化ペイロード(enc_data) \assets\a \assets\code.so
復号アルゴリズム payload =  base64_dec(zlib_dec(enc_data)); aes_key = base64_dec(hardcoded data);

payload = AES_dec(enc_data, aes_key);

別名 MaqHao(McAfee)

XLoader(Trend Micro)

FAKESPY(Trend Micro)
旧ファイル名 facebook.apk

chrome.apk

${random}.apk

sagawa.apk

詳細な静的解析によれば、この2種類は別々のAndroidマルウェアファミリーに属しています。タイプAもタイプBも、SMSの監視や感染デバイスからのデータ抜き取りといった特徴は共通していますが、コード構造や通信プロトコル、その他の特徴には違いがあります。大きな違いの1つは、タイプAが多言語対応である一方、タイプBは日本のみをターゲットとしていることです。タイプBには、感染した人に対して表示される文字列がハードコードされています。この文字列は日本語のみです。

図5:感染した場合に表示される日本語のメッセージ

さらにこのマルウェアは、感染したデバイスに日本のプリペイドカードアプリがインストールされているかどうかを確認します。

図6:日本のプリペイドカードアプリのチェック

このアプリがデバイスにインストールされていると、マルウェアはアプリの更新に見せかけて偽のアプリをダウンロードし、インストールします。

Roaming Mantisグループと「sagawa.apk」配信メカニズムのサービスを所有する者との関係性は、残念ながら現時点では定かではありません。顧客として同じサービスを利用しただけかもしれませんし、そうではないかもしれません。しかし、これらの犯罪者グループがAndroidマルウェアの拡散のために、同じマルウェア拡散エコシステムを使用していることは確かです。

リサーチャー向け:「sagawa.apk」からペイロードを抽出する際には、以下のPythonスクリプトをご利用ください。

  • apk_typeA_payload_extractor.py
#!/usr/bin/env python

import sys
import zlib
import base64

data = open(sys.argv[1],”rb”).read()
dec_z = zlib.decompress(data)
dec_b = base64.b64decode(dec_z)

with open(sys.argv[1]+”.dec”,”wb”) as fp:
fp.write(dec_b)

 

  • apk_typeB_payload_extractor.py
#!/usr/bin/env python

import sys
from Crypto.Cipher import AES, ARC4
import base64

data = open(sys.argv[1],”rb”).read()
key = sys.argv[2]
aes_key = base64.b64decode(key) // key is H8chGVmHxKRdjVSO14Mvgg== in libkao.so
aes = AES.new(aes_key)
dec = aes.decrypt(data)

with open(sys.argv[1]+”.dec”,”wb”) as fp:
fp.write(dec)

prezi.comを介した詐欺による拡散

このほか、prezi.comを利用したマルウェア拡散の方法も観測されました。Preziは動的なプレゼンテーションを作成できる、オンラインのプレゼンツールです。攻撃者が作成したページにアクセスした人に対し、無料コンテンツ(アダルトビデオ、ゲーム、マンガ、音楽の海賊版など)へ誘導するリンクが表示されます。

図7:詐欺ページへのリダイレクト

当社の調査によれば、さまざまなソーシャルエンジニアリングを使ったメッセージが複数用意されていました。訪れた人を詐欺サイトに誘い込むためです。一方で、Roaming Mantisが作成したこのランディングページは、リダイレクトを実行する複数のアカウントにリンクされていました。

図8:prezi.comに投稿されたRoaming Mantisのランディングページのコード(エラーが含まれている)

しかし幸いなことに、準備段階でのミスにより、このコードは機能していません。

盗まれたデータのレコード

Kaspersky Labは、タイプAのマルウェアを通じて標的のAndroidデバイスから盗まれたデータの一部を発見しました。このデータは、被害に遭った人が数千にのぼることを示唆しています。

図9:被害者のAndroidデバイスから盗まれたと思われるデータ

データには電話番号、日付、IP、言語、メール/ID、パスワード、名前、誕生日、住所、クレジットカード情報(セキュリティコードを含む)、銀行情報、簡体字中国語で書かれた秘密の質問とその回答が含まれていました。データのヘッダーが中国語であることから、攻撃者が中国語に精通していることがうかがわれます(もちろんこれが偽旗でなければ、ですが)。最初の列はレコード番号と思われる数字で、7月の時点ですでに4,800を超えていました。デバイスの言語設定から、被害者の地理的な情報をうかがい知ることができます。言語データを円グラフにしたのが以下の図です。

図10:被害に遭ったデバイスの言語設定

最も多い言語は「en-us」(39%)、2番目は「ko-kr」、3番目は「ru」でした。このデータから考えると、被害者の地理的な分布は、当社が最初にレポートした時点から大きく変化しているようです。理由としては、27言語対応となったアップデートと、新たな拡散方法が考えられます。「en-us」が最も多いのは、複数の国で英語が第2言語として使われているためかもしれません。

まとめ

Kaspersky Labは以前のレポートで、Roaming Mantisの攻撃が短期間のうちに急激に進化し、新しい攻撃手法が加わり、ターゲットが広がっていることを指摘しました。Roaming Mantisは進化を続けています。最近の調査では、Appleの偽サイトへのリダイレクトに代わって、iOS対応のWebマイナーの使用を模索していることが明らかになりました。

新たに採用された方法の1つに、マルウェア配信エコシステムの利用があります。これは第三者によって運用されていると見られるエコシステムで、過去には他のマルウェア(Roaming Mantisとの関連はないと思われる)の拡散に使用されていました。この事例で感染経路となっていたのは、偽のWebサイトへと誘導するリンクが記載されたSMSでした。その偽サイトにアクセスすると、悪意あるapkファイル「sagawa.apk」のダウンロードが促されます。Roaming Mantisと「sagawa.apk」の拡散を企む攻撃者との関連は不明ですが、同じエコシステムを利用しているという事実は注目に値します。

さらに、Roaming Mantisはprezi.comを通じたマルウェア拡散も試みています。動画などの無料コンテンツと見せかけてマルウェアをインストールさせようとする手法です。

盗まれた認証情報のリストから判断すると、攻撃者は世界中の被害者から多数のデータを盗み出してきたようです。このリストから攻撃の実際の規模を多少なりとも推測することはできますが、これは氷山の一角に過ぎないと当社は考えています。

Androidをお使いの皆さまには、デバイスの安全を確保するため、公式ストア以外の場所から提供されるアプリのインストールを許可するオプションを無効にするよう、強くお勧めします。また、自分のスマートフォンが異常に熱くなっている場合は、仮想通貨マイニングがひそかに実行されている可能性があるため、仮想通貨マイナーがインストールされていることを疑った方がよいでしょう。

カスペルスキー製品はこのマルウェアを以下の検知名で検知します。

  • HEUR:Trojan-Banker.AndroidOS.Wroba

脅威存在痕跡(IOC)

悪意あるホスト:

  • 105.6[.]230
  • sagawa-otqwt[.]com
  • sagawa-polsw[.]com

 

タイプAのハッシュ:

  • 956f32a28d0057805c7234d6a13aa99b sagawa.apk
  • 3562f9de6dbe70c2e19a20d8683330ce \classes.dex
  • 01fa0039b62c5db8d91dfc6b75b246f8 (\assets\aの復号済みペイロード(dexファイル))

 

タイプBのハッシュ:

  • a19f4cb93274c949e66efe13173c95e6
  • 5e913208ecc69427efb6bbf9e6505624 \classes.dex
  • 67bc2e8beb14b259a5c60fe7a31e6795            \arm64-v8a/libkao.so
  • f120f5f78c7ef762996314cf10f343af                \armeabi-v7a/libkao.so
  • efe54c22e2b28a44f723d3479487620c            \x86_64/libkao.so
  • e723c6aec4433f3c6e5d3d24fe810e05            \x86/libkao.so
  • daeccda295de93cf767fd39a86a44355 (\assets\code.soの復号済みペイロード(jarファイル))
  • 581b08b277a8504ed222a71c19cea5f9 (復号済みペイロードのdex)