DNS設定書き換え攻撃によって拡散するAndroid端末向け不正アプリ「XLOADER」を確認
2018年3月上旬以降、日本、韓国、中国、台湾、そして香港を対象とする新しいネットワーク攻撃が確認されています。DNS書き換え攻撃によって誘導されるドメインは、Android端末向け不正アプリ「XLOADER(エックスローダ)」の拡散およびインストールに利用されています。
2018年3月上旬以降、日本、韓国、中国、台湾、そして香港を対象とする新しいネットワーク攻撃が確認されています。これは、DNSキャッシュポイズニングまたはDNSスプーフィングと呼ばれる攻撃で、総当たり攻撃や辞書攻撃のような手法を利用してDNSサーバに侵入し、設定を書き換えたものと考えられます。変更されたDNS設定によって誘導されるドメインは、Android端末向け不正アプリ「XLOADER(エックスローダ)」(「ANDROIDOS_XLOADER.HRX」として検出)の拡散およびインストールに利用されています。
XLOADERは、DNS設定の変更によって誘導されたドメインからユーザの端末に送信される通知によって拡散し、正規のFacebookアプリまたはChromeアプリに偽装しています。この不正アプリは、個人情報や金融機関情報、インストールされているアプリ一覧情報などを窃取します。また、感染端末を乗っ取ってSMSを送信したり、管理者権限を利用して設定の変更を防いだり、活動を継続したりすることが可能です。
感染の流れ
本ブログで2018年3月30日に「続報:ルータのDNS設定変更による不正アプリ感染事例で新たな不正サイトを確認」の記事で報告したように、この攻撃ではルータを侵害して設定を上書きすることにより、ユーザからのインターネットトラフィックを攻撃者が指定したドメインに誘導します。ユーザは、この時表示される偽の警告メッセージによって正規アプリに偽装したXLOADERをダウンロードするように促されます。
バックグラウンドサービスによる不正活動の開始
最初に、XLOADERは必要なモジュールを作成するために「Assets/db」から暗号化されたデータを読み込み、”test.dex”を作成します。次に、端末の管理者権限を要求し、承認後はランチャーのアプリ一覧からアイコンを隠してサービスを起動し、バックラウンドで実行し続けます。このバックグラウンドサービスは、プログラム実行時に内部的なプロパティの読み取りや書き換えを行うJavaの機能「リフレクション」を利用し、「com.Loader.start」メソッドを起動します。
ブロードキャストイベントの監視
XLOADERは多くのブロードキャストレシーバを動的に登録します。ブロードキャストとは、起動や充電開始などのシステムイベント発生時にAndroid OSとアプリの間で送信されるメッセージです。XLOADERは、各システムイベントに対応するレシーバを登録することにより、システムイベントの発生をきっかけとして不正な機能を開始します。ブロードキャストされるアクションには以下のようなものがあります。
- ・android.provider.Telephony.SMS_RECEIVED
- ・android.net.conn.CONNECTIVITY_CHANGE
- ・android.intent.action.BATTERY_CHANGED
- ・android.intent.action.USER_PRESENT
- ・android.intent.action.PHONE_STATE
- ・android.net.wifi.SCAN_RESULTS
- ・android.intent.action.PACKAGE_ADDED
- ・android.intent.action.PACKAGE_REMOVED
- ・android.intent.action.SCREEN_OFF
- ・android.intent.action.SCREEN_ON
- ・android.media.RINGER_MODE_CHANGED
- ・android.sms.msg.action.SMS_SEND
- ・android.sms.msg.action.SMS_DELIVERED
フィッシングに利用するWebサーバの構築
XLOADERは暫定的なWebサーバを構築し、ブロードキャストを受信します。また、ユーザを欺くために感染端末に単純なHTTPサーバを立ち上げます。このサーバは、新しいパッケージのインストール時や画面がオンになった際に送信されるブロードキャストを受信するたびに、オンライン銀行アプリで利用されるキーのような個人情報を窃取するためのフィッシングページを表示します。不正プログラム内にハードコードされているこのフィッシングページは、端末に設定された言語に応じて、韓国語、日本語、中国語、そして英語で表示されます。
XLOADERの不正活動
XLOADERは、端末にインストールされたアプリの使用に関する情報を収集することが可能です。また、XLOADERの情報窃取機能には、SMS関連のブロードキャスト受信後にSMSを収集したり、密かに通話を録音したりする機能があります。他にも、感染端末にインストールされた銀行アプリやゲーム関連アプリのアカウントを乗っ取る機能も備えています。
XLOADERは、攻撃者が指定した他のアプリを起動することも可能です。この機能を利用した攻撃シナリオとして、正規アプリをリパックアプリや不正なバージョンのアプリに置き換えるような攻撃が想定されます。パッケージのインストール時に送信されるブロードキャストを監視することにより、XLOADERはそれらのパッケージを起動することができます。この手法では、ユーザによる明示的な同意が不要なため、気付かれずに不正アプリを起動することが可能です。
XLOADERをリバースエンジニアリングした結果、この不正アプリは韓国の銀行とゲーム開発企業を狙っていることが判明しました。XLOADERは、ユーザが端末の設定にアクセスできないようにし、韓国でよく知られているウイルス対策アプリを利用できないようにします。
XLOADERは、コマンド&コントロール(C&C)サーバからコマンドを受信して実行するために、図7に示した複数の不正モジュールを読み込みます。
各モジュールとその機能は以下の通りです。
モジュール | 機能 |
sendSms | SMS/MMSを指定した宛先に送信 |
setWifi | Wi-Fi接続の有効化/無効化 |
gcont | 端末のすべての連絡先を収集 |
lock | 現状では設定ファイル(pref)にロック状態を入力するのみ、画面ロック型ランサムウェアとしての利用も可能と考えられる |
bc | Android端末およびSIMカードからすべての連絡先を収集 |
setForward | 現状では実装されていないが、感染端末の乗っ取りに利用されると考えられる |
getForward | 現状では実装されていないが、感染端末の乗っ取りに利用されると考えられる |
hasPkg | 指定したアプリが端末にインストールされているかどうかをチェック |
setRingerMode | 端末の通話モードを設定 |
setRecEnable | 端末の通話モードをサイレントに設定 |
reqState | 電話接続の詳細情報を取得。有効化されたネットワークや、パスワード設定の有無を含むWi-Fi情報が該当 |
showHome | 強制的にホーム画面に戻る |
getnpki | 金融取引に関する証明書が保存された「NPKI」という名称のフォルダからファイルやコンテンツを取得 |
http | 「HttpURLConnection」クラスを使用し、指定したネットワークにアクセス |
onRecordAction | 番号ダイヤル音声をシミュレート |
call | 指定した番号に通話を発信 |
get_apps | 端末にインストールされているすべてのアプリを取得 |
show_fs_float_window | フィッシングのための全画面ウィンドウを表示 |
表 1:XLOADERの不正なモジュールとその機能
XLOADERが、C&Cサーバとの通信に「ws(WebSocket)」または「wss(SSL/TLSを利用したWebSocket)」を悪用していることも特筆に値します。WebSocket は、多くのブラウザや Web アプリケーションが対応している双方向通信が可能なプロトコルです。C&C の一部として利用されている URL は 3 つの Web ページに隠ぺいされており、XLOADER は地域ごとに異なる C&C サーバに接続します。
WebSocketは、クライアント側からのリクエストに応じて通信を行うHTTPとは異なり、1 度接続を確立するとクライアントとサーバの間でいつでもデータをやり取りすることが可能なプロトコルです。XLOADERは、より高速に効率良くデータを送信するために、窃取した情報を「MessagePack」形式に変換し、WebSocketプロトコルで送出します。
被害に遭わないためには
XLOADERは、対象のAndroid端末がモバイルデータ通信を利用している場合には不正アプリをダウンロードしません。しかし、家庭用またはビジネス用ルータのセキュリティ欠陥を利用する脅威を回避するためには、適切なセキュリティ対策が欠かせません。不正アクセスを防ぐために強力なパスワードを利用し、脆弱性を狙う攻撃に対処するためにルータのソフトウェアおよびファームウェアを定期的に更新してください。また、機器に組み込まれたファイヤウォールの利用も有効です。
システム管理者および情報セキュリティの専門家は、ルータを適切に設定してDNSキャッシュポイズニングのような攻撃への対策を取り、今回のような脅威に対処してください。一般ユーザは、ルータの DNS 設定が変更されていないかチェックすることで同じことが可能です。DNSキャッシュポイズニングのような脅威さえも、ソーシャルエンジニアリングの手法を利用します。そのため、ユーザは明らかにマルウェアであるような特徴を持つ不審なメッセージや覚えのないメッセージに対して、より注意深くなる必要があります。
トレンドマイクロはGoogleと協力しており、Googleは今回のような性質を持つ不正アプリが「Google Play Protect」によってプロアクティブに検出されていることを確認しました。また、Google Playでも、このような不正アプリは確認されていません。
トレンドマイクロの対策
トレンドマイクロでは、モバイル環境での総合セキュリティ対策として、個人利用者向けには「ウイルスバスター™ モバイル」、法人利用者向けには「Trend Micro Mobile Security™」を提供しています。これらの製品ではクラウド型セキュリティ基盤「Trend Micro Smart Protection Network™(SPN)」の機能である「モバイルアプリケーションレピュテーション(MAR)」技術や「Webレピュテーション(WRS)」技術により、不正/迷惑アプリの検出や不正/迷惑アプリに関連する不正Webサイトのブロックに対応しています。
侵入の痕跡(Indicators of Compromise、IoC)
「ANDROIDOS_XLOADER.HRX」のSHA256値は以下の通りです。
ハッシュ値 | パッケージ | ラベル |
0F49416B6BCB6E755D999255FABB4C77C5EA7DEDEB7E6CDB0925C4F23C1FB00E | fddf.tre.hjgdsgkh | Chrome |
958135E163E0518F24FBD1AF6EF18C30E30C1A4DFB383FF47D11193055D4CDCE | fghdf.rtghj.hjkh | Chrome |
C65318AA58C9091B938948B62C4B5D6E47237697D8D2F96863F99EF177B6818D | ghd.et.hds | Chrome |
62312475CF0EC1ED66FA29938C30D029BA2F02BCD6B6ED5AC6C0E5DBE3626BF6 | gfhd.rewq.cvxbdf | Chrome |
17D1415176121AFF8C0020C3A094B3D72F9802F5145C80EBCA47DCFE10CC21F6 | gfdg.qwe.gsdg | |
1849E8DFD9D1C03DBE6C1464F9B05492012A6C14A0A5B63FEB938F1C8B70309B | jfgh.rtw.ghm | |
AC0C7F59859B5DC3ACBC3BACA6A6B0FD6ECD05375D06995D7E28D3F6CB36322A | gwer.dfdf.cxv | |
B623DA28673A1934BD61DEA94A88C37E5FBE9999ED3D6BA311176D65F64C4A4D | ertt.fgh.nfg | |
4232B36C2B306A47B6C67D5D949349024F57CDBC45163A2CA7B7DEE304229C2B | gfdg.qwe.gsdg | |
B8FB1857881F20E8E3223E390E13E6DD97D47CABB81870D51421C04631D63FC1 | ertt.fgh.nfg | |
AA183FDA57FDE0137AB931F3729215956E6F9EE158D90ED82151948F70DB841B | dfg67.as44f.cvx87df | |
B125EA78FB390950893D146A51F513440314BE7648207B59E5D0A1752740F273 | jfgh.rtw.ghm | |
6690FBA689E5AE957E0D01565BA8F849E0F6AA214F2F93535D1A7C9C75030BD3 | ertt.fgh.nfg | |
E690C05F2AB668A661CD219E324291819D5F5646775C2A17F3B3A03E79332A04 | tryrt.sdf.bfd | |
4E32493E6C87B0E2EF3E6AE32F5C32D75AE36C92524A185EABC88FEA3C7938C8 | fddf.tre.hjgdsgkh | |
82D7A496091BD8B0435359BAFC9E7C923CF09BE58D3ECC9C477E29E541811582 | trghj.asdf.cvxebdf | |
E1FB10B714420F23F1BB09B6C4C55B674B6EFD93685EE7D1D4574C7FA8B39A94 | trghj.asdf.cvxebdf | |
CC2617D7D904986B83BAF7843DB6969151363000678E8DA599EDBF6CF23CB827 | jfgh.rtw.ghm | |
3698DF22E8A4656FC53BD2BDE2DA74DD9DA9008348129347D5D3E6F976FABA6C | trghj.asdf.cvxebdf | |
065E266016A15BB639C31D49511DBCD0ADC83261D03C6652DFBFCAB611B9DB53 | trghj.asdf.cvxebdf | |
6F20F227F79DEBFDAE32233B59F4DC15C7FAF05036B21E8CD46B24EBC52F0BF8 | gfdg.qwe.gsdg | |
A4031768A9F1AEB227389EDD99140303420F3A45F0C136D3863C703C685CDEF1 | tryrt.sdf.bfd | |
7E49B7C6ED359B4E910E8D4D2C9436D99CDDEB7F9AF2E2F1082D0CA45D469566 | jfgh.rtw.ghm |
参考記事:
「XLoader Android Spyware and Banking Trojan Distributed via DNS Spoofing」by Lorin Wu (Mobile Threats Analyst)
翻訳: 澤山 高士(Core Technology Marketing, TrendLabs)