※2019年4月4日:IPアドレスの一部に欠損があったのを修正しました。
攻撃活動「Roaming Mantis」を最初に紹介してから約1年が経過した今年2月、当社では新たな活動を検知しました。この記事では、この攻撃者が利用するツールや手法に関するアップデート情報についてレポートします。
iOSデバイスを狙う悪意ある構成プロファイル
攻撃者はiOSデバイスを侵害する方法を模索し続けています。今回発見されたのは、iOSデバイスの利用者向けに作成された、新たなランディングページです。iPhoneからこのランディングページにアクセスすると、悪意あるiOS構成プロファイルのダウンロードを促すメッセージが現れます。
この構成プロファイルをインストールすると、フィッシングサイトが自動的にブラウザーで開き、デバイスのデータ(DEVICE_PRODUCT、DEVICE_VERSION、UDID、ICCID、IMEI、MEID)が攻撃者のサーバーへ送られます。
この証明書には、開発者のものと思われるメールアドレス「zeeyf79797@yahoo.co[.]jp」が含まれており、悪意ある活動に使われていた可能性があります。
私たちは調査用にテストアカウントを作成し、このアカウントのログイン情報をフィッシングサイトに入力しました。ログインIDとパスワードを受け取った攻撃者はただちに反応し、このアカウントに対して香港からログインを試みました。フィッシングサイトにログイン情報を入力した後は、2段階認証コードを盗もうとする別のページに誘導されました。
アップデートされたsagawa.apk「タイプA」(MoqHao/XLoader)の拡散
Androidに目を転じると、当社で「Trojan-Dropper.AndroidOS.Wroba.g」と検知する悪意あるapkファイルの拡散が、当社のテレメトリデータによって確認されています。
このapkファイルを解析したところ、悪意あるsagawa.apk「タイプA」の亜種であることが確認できました。タイプAのsagawa.apkは「MoqHao」(McAfee)またはXLoader(TrendMicro)の名でも知られ、SMSを通じて拡散されるマルウェアとして以前より日本で観測されています。
これに加え、攻撃者によるルーターのDNS設定の改竄も起きていること、以下2点にアップデートが加えられていることを確認しました。
- Trojan-Dropperモジュール内の暗号化ペイロード用復号アルゴリズム
- 実際の指令サーバーのアドレスを入手するためのアクセス先およびアカウント
Trojan-Dropperモジュール内の暗号化ペイロード用復号アルゴリズム
以前のバージョンと比較すると、このTrojan-Dropperの復号機能にはわずかな変化が加えられています。変更されているのは、以下の図で紫色にハイライトされた箇所です。
なぜこうした変更が加えられたのか。当社の過去の記事では、暗号化されたペイロードを抽出するためのPythonスクリプトを公開しています。攻撃者がこれに気づき、セキュリティ製品やリサーチャーによる検知を避けようとマイナーチェンジを加えたものと思われます。
この変更を受け、当社では以前ご紹介したPythonスクリプトを以下のとおりアップデートしました。
- apk_typeA_payload_extractor_1.01.py
#!/usr/bin/env python
import sys data = open(sys.argv[1],”rb”).read() with open(sys.argv[1]+”.dec”,”wb”) as fp: |
指令サーバーアドレスの入手先と入手用アカウント
以前の検体では、実際の通信先となる指令サーバーのアドレスを入手するためにメールサービスを利用しており、検体中に「@outlook.com」と共に、3つのアカウント(haoxingfu11、haoxingfu22、haoxingfu33)が格納されていました。一方新しいバージョンでは、指令サーバーのアドレスを入手する手段として、メールサービスではなくTwitterが使われていました。
利用されているTwitterアカウントは3つあり、その情報は、以前の検体と同様、アカウントIDが「|」で区切られた形で検体内に格納されていました。
本当の通信先である指令サーバーを抽出するための復号アルゴリズムは、以前の検体とまったく同じで、マルウェアは抽出した指令サーバーアドレスにWebソケット経由でアクセスします。先に述べた3つのアカウントに加え、当社は新たに以下のアカウントを発見しました。
- lucky88755
- lucky98745
- lucky876543
- gyugyu87418490
- luckyone1232
- sadwqewqeqw
本当の指令サーバーのアドレスを漢字文字列から抽出するための復号アルゴリズムには、変化がありませんでした。したがって、以前の記事で紹介したスクリプトの復号処理は現在も有効です。アカウントはすべて、同一のIPを指します(ポート番号は異なる)。例として、アカウント「@luckyone1232」での遷移を時系列で示します。
日時(UTC) | 暗号化されたデータ | 復号された指令サーバーIP |
February 25 2019 11:30 | 傘傠傘偠傈傠偠傠傐傸偘储傀傐僨傀僨僸傸傀 | 114.43.155[.]227:28855 |
February 26 2019 08:00 | 傀傸傸偠傠傠傠偘傘储偘傰傠僠僨傀僨僸傸傀 | 220.136.47[.]169:28855 |
March 02 2019 01:00 | 傀傸傸偠傠傠傠偘傘僘偘傰傈傐僨傀僨僸傸傀 | 220.136.49[.]137:28855 |
March 05 2019 06:00 | 傀傸傸偠傠傠傠偘傠僘偘傰僀傸僸僐傀傐 | 220.136.39[.]1:28855 |
March 07 2019 03:00 | 傘傠僸偠傠傈僐偘傰傈储偈傀傰傈僀傸僸僐傀傐 | 118.168.130[.]236:28855 |
March 09 2019 10:00 | 傠傠偈傀傰傸偠傸傰傐偘储傀僨僨傀僨僸傸傀 | 61.230.210[.]228:28855 |
March 13 2019 01:00 | 傘傸傐偠傸储储偘傰储傈偈傈傀僨傀僨僸傸傀 | 125.227.174[.]35:28855 |
March 21 2019 01:00 | 傘偘傰傠僠偈傀储傠偠傈僸僀傸僸僐傀傐 | 1.169.203[.]48:28855 |
また、新たなバックドアコマンド「getPhoneState」が追加されていることも確認しました。以下は、古い検体との比較を示したものです。変更があった部分は赤文字で記しています。
ルーターのDNS設定改竄、再び
2月下旬、当社は悪意あるDNSチェンジャー(DNS設定の改竄を行う不正プログラム)のURLクエリを検知しました。以下に例を示します。
ルーターの配下にあるデバイスが上記URLクエリを読み取った場合、以下の条件下でルーターのDNS設定が改竄される可能性があります。
- ルーターの管理パネルに対してローカルネットから認証なしでアクセス可能である
- ルーターの管理パネルに対してデバイスが管理者権限のセッションを保持した状態である
- ルーターの管理パネルのログイン用IDおよびパスワードが単純である(または既定のままである)※例)ID、パスワード共に「admin」
当社の観測によると、この悪意あるDNS IPを指すように改竄されたルーターは数百台に上ります。
上記コードは、ルーターのDNS設定を以下の不正なDNSサーバーのIPアドレスに書き換えます。
- 171.244.33[.]114
- 171.244.33[.]116
地域的拡大
Kaspersky Security Network(KSN)の統計情報によると、sagawa.apk(タイプA)の新種「Trojan-Dropper.AndroidOS.Wroba.g」は実環境で検知されています。以下の図は、2019年2月25日〜3月20日のデータを図示したものです。
検知が多かった国はロシア、日本、インド、バングラデシュ、カザフスタン、アゼルバイジャン、イラン、ベトナムです。この期間中、当社製品による検知数は6,800を超え、ユニーク数は950以上でした。このデータは攻撃の一部を反映するにすぎず、実際の規模はもっと大きいものと当社では考えています。
まとめ
2019年2月下旬以降、当社ではsagawa.apk(タイプA)の配信増加を観測しています。今回の動きで特徴的なのは、ルーターのDNS設定の改竄が今でも活発に利用される一方で、悪意ある構成プロファイルを利用したフィッシングという新しい攻撃手法が取り入れられている点です。悪意ある構成プロファイルは利用者にとって深刻な問題となり得るもので、警戒が必要です。以前に公開されたブログ記事では「プロファイルはデバイスが悪意あるプロキシまたはVPNを使用するように設定することが可能であり、このため攻撃者があらゆるものをモニタリングできるようになる」と指摘されています(リンク先はいずれも英語、翻訳はKaspersky Lab)。
Kaspersky Labは、以下の対策を推奨します。
- ルーターの既定のIDとパスワードを変更し、必要なセキュリティパッチを適用する
- Android利用者向け:公式のストア以外からapkファイルをダウンロードしない
- iOS利用者向け:信頼できるリソース以外から構成プロファイルをインストールしない
Roaming Mantisに関しては、これまでに以下の記事を公開しています。併せてご覧ください。
- ルーターのDNS改竄によりダウンロードされる「apk」の内部構造を読み解く
- DNS設定を乗っ取りAndroidデバイスに感染するRoaming Mantis
- Roaming Mantis パート2:さらなる多言語化、フィッシング、そしてマイニング
- Roaming Mantis パート3:iOSでの仮想通貨マイニングと、悪意あるコンテンツ配信システムを介した拡散
カスペルスキー製品では、このAndroidマルウェアを以下の検知名で検知およびブロックします。
- HEUR:Trojan-Banker.AndroidOS.Wroba
- HEUR:Trojan-Dropper.AndroidOS.Wroba
最後に、Roaming Mantisの活動に関する調査にご協力いただいた@ninoseki氏および@papa_anniekey氏に感謝を申し上げます。
脅威存在痕跡(IoC)
悪意あるホスト:
114.43.155[.]227 (実際のC2)
220.136.47[.]169 (実際のC2)
220.136.49[.]137 (実際のC2)
220.136.39[.]1 (実際のC2)
118.168.130[.]236 (実際のC2)
171.244.33[.]114 (不正なDNS)
171.244.33[.]116 (不正なDNS)
61.230.153[.]211 (ランディングページ)
154.223.62[.]130 (ランディングページ)
ffakecg[.]com (ランディングページ)
sagawa-mwm[.]com (ランディングページ)
sagawa-mqd[.]com (ランディングページ)
sagawa-bz[.]com (ランディングページ)
nttdocomo-qae[.]com (ランディングページ)
nttdocomo-qat[.]com (ランディングページ)
疑わしいTwitterアカウント:
luckyone1232
sadwqewqeqw
gyugyu87418490
lucky88755
lucky98745
lucky876543
sagawa.apk タイプA とそのファイル:
417a6af1172042986f602cc0e2e681dc (apkファイル)
651b6888b3f419fc1aac535921535324 (apkファイル)
0a4e8d3fe5ee383ba3a22d0f00670ce3 (apkファイル)
870697ddb36a8f205478c2338d7e6bc7 (apkファイル)
7e247800b95c643a3c9d4a320b12726b(\classes.dex)
7cfb9ed812e0250bfcb4022c567771ec (\classes.dex)
8358d2a39d412edbd1cf662e0d8a9f19 (\classes.dex)
7cfb9ed812e0250bfcb4022c567771ec (\classes.dex)
af2890a472b85d473faee501337564a9 (復号済みdexファイル)
c8d7475a27fb7d669ec3787fe3e9c031 (復号済みdexファイル)
d0848d71a14e0f07c6e64bf84c30ee39 (復号済みdexファイル)
e2b557721902bc97382d268f1785e085 (復号済みdexファイル)