先月から多くの韓国ユーザーがSMS経由で送信されてきた怪しいメッセージのスクリーンショット画像を情報共有サイトに投稿し始めました。その内容として、ユーザーのプライベート画像の流出をほのめかし、短縮URLのリンクをクリックさせるように仕向けるメッセージが確認されています。フィッシングメッセージ:「あなたの写真がなぜここにあるの?クリックしてチェックして」 (出典:Naver)
また、このスミッシング攻撃で使用されている別の怪しいSMSメッセージでは、あなたがニュースに掲載されていると興味を持たせ、フィッシングサイトへのリンクをクリックさせようとするものが確認されています。 フィッシングメッセージ:「あなたがニュースに出ています!チェックしてください。」(出典:Naver)
Androidユーザーがそのリンクをクリックすると、Webサーバー上のJavaScriptスクリプトがブラウザのUser-Agentを確認して、Chromeブラウザを新しいバージョンに更新するよう偽の警告メッセージを表示します。
偽の警告メッセージ:「新しいバージョンのChromeが拡張機能とともにリリースされました。更新してご利用ください。」
もし、ユーザーがiPadなどの別のモバイルデバイスを使用していた場合には、検索エンジンやポータルサイトとして韓国で有名なNaverのセキュリティページを表示します。
私たちが Android/MoqHao と名付けたこのマルウェアは、下記のように多くの機能を備えています:
- 電話帳の連絡先宛にフィッシングSMSを送信する
- 受信SMSなどの機密情報をリモートサーバーに送信する
- C&Cサーバーから提供されたAndroidアプリをインストールする
- C&Cサーバーからリモートコマンドを実行し、結果を返す
- ローカルに保存されたGoogleを模倣したフィッシングサイト経由で機密情報の収集を試みる
技術的な分析
ユーザーがダウンロードしたマルウェアを端末にインストールする際には、「電話番号発信」「連絡先データの読み込み」「テキストメッセージの読み取り」といった不審なアクセス許可が要求されます。Android/MoqHaoは、永続的にデバイスに潜伏する目的で、執拗にデバイス管理者権の特権を要求してきます。 一度特権が与えられると、ホーム画面に表示されていた偽のアイコンは、マルウェアによって隠されます。 Chromeブラウザの正規アイコン(左) と偽アイコン(右) - 偽物のほうが少し大きい
Android/MoqHaoはAPKのassetsフォルダ内のbinファイルをBASE64形式でデコードし、デコードされたDEXファイルを動的に読み込みます。ロードされたクラスの中には、感染したデバイスに対して悪質な動作を行うコードが含まれています。
まず、Android/MoqHaoは、新規パッケージのインストール、画面の状態変更、SMSメッセージ受信といった様々なシステムイベントに対するブロードキャストレシーバーを動的に登録します。このブロードキャストレシーバーは、デバイスを監視してデバイス状態情報をC&Cサーバーに送信します。
次に、Android/MoqHaoは第一次リモートサーバーに接続します。第二次C&CサーバのIPアドレスは、中国語検索エンジンBaiduのユーザープロファイルページから動的に取得されます: C&CサーバーのIPアドレスとポート番号の動的な取得の流れ
下記Baiduユーザーのプロファイル内にはC&CサーバーのIPアドレスとポート番号が隠されていることが判明しています:
- haoxingfu88: Haoxingfu (中国語で「とても幸せ」)
- ceshi9875: Ceshi (中国語で「テスト」)
- womenhao183527: Hao (中国語で「良い」)
- dajiahao188384: Dajiahao (中国語で「皆さん、こんにちは」)
C&C サーバーのIPアドレスとポート番号の情報が隠されたBaiduプロファイルページ
第2次C&C サーバーに接続する際、Android/MoqHaoは、下記デバイス情報を含む「hello」メッセージを送信します。
- UUID
- デバイスID(IMEI)
- Androidバージョン
- デバイスの製品名、ビルドIDの文字列
- デバイスのルート化のj状態
- SIMカードのステータス
- 電話番号
- 登録されたアカウント
デバイスの状態変更や関連イベントが発生した後、下記デバイス情報を定期的にメッセージタイプ「state」としてサーバーに送信します。
- ネットワークオペレーター名
- ネットワークタイプ(LTE、GPRS)
- MACアドレス
- 現在のバッテリーレベル
- Wi-Fi信号レベル
- デバイス管理者権限に対する状態
- バッテリー最適化に対する状態
- 画面の状態
- 着信モード
デバイスがSMSメッセージを受信すると、メッセージの内容および送信者アドレスがC&Cサーバーに送信されます。特別な形式のSMSメッセージが受信された場合、Android/MoqHaoはそれを解析して設定を変更します。例えば、SMS転送先アドレスの「fs」フィールドやBaiduプロファイルページにアクセスするために使用される「account」フィールドの設定情報を変更することが可能となっています。
Android/MoqHaoが正常にインストールされ、C&Cサーバーに接続した後、マルウェアは追加のコマンドを待機します。
韓国のバンキングアプリに対する偽の更新
Android/MoqHaoは、主要な韓国の銀行アプリがデバイス上にインストールされているかどうかをチェックし、対応した偽物のバンキングトロイの木馬をC&Cサーバーからダウンロードします。 2013年6月に韓国の銀行の顧客をターゲットにしたスミッシングで配信されていたAndroidバンキングトロイの木馬でも同様の機能が見られましたが、Android/MoqHaoとは異なり、2013年に発見されたマルウェアでは、C&Cサーバーからダウンロードするのではなく、APKファイル内に偽アプリが包含されていました。
バンキングトロイの木馬がダウンロードされた後、新しいバージョンが利用可能であり、アプリを更新する必要があるという警告ダイアログを表示します。「新しいバージョンがリリースされました。再インストールしてください。」という警告ダイアログを表示するコード
バンキングトロイの木馬がインストールされると、正規アプリが削除されます。マルウェアは以下のパッケージ名のアプリをチェックします:
- wooribank.pib.smart
- kbstar.kbbank
- ibk.neobanking
- sc.danb.scbankapp
- shinhan.sbanking
- hanabank.ebk.channel.android.hananbank
- smart
- epost.psf.sdsi
- kftc.kjbsmb
- smg.spbs
私たちの調査によると、Android/MoqHaoが特定のバンキングトロイの木馬のダウンロードを要求した際にC&Cサーバーはエラー応答しました。また、これまでに韓国のユーザーから追加のAPKファイルのダウンロードやインストールといった報告されていないことを合わせて考慮すると、この偽の更新機能はまだ実装されていないか、少なくとも現時点ではマルウェア作者によって使用されていないと推測することができます。
フィッシングサイトを提供するローカルHTTPサーバー
Android/MoqHaoには、WebViewを使用してフィッシングサイトを表示したり、オーバーレイ画面を使用して銀行の認証情報を取得するAndroidバンキングトロイの木馬とは異なり、ユーザーが偽の警告メッセージをクリックすると、ローカルに保存されたフィッシングページを標準ブラウザで開くためにHTTPサーバー「java-httpserver」が含まれています。
警告メッセージ:「あなたのGoogle IDは危険にさらされています。認証を行って下さい。」
フィッシングページでは、ユーザーにGoogleアカウントの名前と誕生日を提出するように求められます。これは、POSTメソッドによってローカルのHTTPサーバーに送信されます。その後、ローカルHTTPサーバーは収集した情報をC&Cサーバーに転送します。
C&Cサーバーとの通信
Android/MoqHaoは、WebSocketを開いてJSON-RPC呼出しによってC&Cサーバーと通信します。マルウェアとC&CサーバーはどちらもRPC機能を実装しています。Android/MoqHaoに実装されているコマンド一覧:クライアントコマンド一覧
C&Cサーバーに実装されているコマンド一覧:
Android/MoqHaoの進化
Android/MoqHaoの初期バージョンは2017年1月に発見されました。下記の制限を考慮すると、これはテストバージョンのようです:
- APKファイルにはChromeアイコンや特定の文字列といったリソースが含まれていない
- パッケージ名が「v3.example.com.loader」
- アプリのラベル名が「Test」
2017年2月に発見されたアップデート版には、別のアプリをインストールするドロッパー機能や永続的に端末に感染し続ける機能が含まれていましたが、まだこれもまたテストバージョンであるようです:
- パッケージ名が「com.example」
- APK内のactivity_main.xmlファイルには、デフォルトの「Hello World!」という文字列が使用されている
2017年3月に発見された別のテストバージョンでは、「바이러스 테스트 (ウイルステスト)」というアプリ名が使用され、startServiceなどの一部の機能がネイティブライブラリとして実装されました。私たちが解析を行ったサンプルの初期のバージョンは2017年5月に登場していることから、過去2か月間にわたり配布されていたことになります。 Android/MoqHaoの進化
2015年5月のDNS改ざん攻撃との関係
2015年5月韓国のユーザーから、インターネットにアクセスしようとしたときに、既定のWebブラウザにフィッシングメッセージが表示されるという報告がありました。この事象について解析したブロガー「nopsled」によると、デフォルトのユーザーIDとパスワードが使用されている脆弱なルーターがDNSリダイレクトを介してハッキングされていることが原因で、フィッシングメッセージが表示されていました。フィッシングメッセージ自体はAndroid/MoqHaoの配布に使用されていたものと類似しており、新しいChromeバージョンのリリースのふりをしてユーザーにマルウェアをインストールさせます。 2015年のフィッシングメッセージ:「最新版のchromeがリリースされました。更新後にそれを使用してください。」 (出典:nopsled)
2015年5月のAndroidマルウェアとAndroid/MoqHaoのマルウェアのコードまったく異なりますが、いくつかの動作や機能については共通している部分があります:
- HTMLコード内の特定のフィールドを解析することにより、qzoneやBaiduといった中国のWebサイトからC&CサーバーのIPアドレスを取得する
- 同じフィッシングメッセージを使用して、ユーザーに偽のバンキングアプリをインストールさせる
- ダウンロードした偽のバンキングアプリを保存するために使用するSDカード上の隠しフォルダが類似している
- ログメッセージが同じ
また、2015年と2017年のフィッシング攻撃の類似点は同じサイバー犯罪者によるものであることを示唆しており、攻撃手法をDNSリダイレクト攻撃からスミッシング攻撃に変更したものと考えられます。動的にロードされた悪質なコードや最初のドロッパーのコンポーネントのコードは変更されていますが、攻撃者はまだChromeをターゲットにしており、C&Cサーバーの情報を動的にWebページから取得しています。
結論
今回発見された韓国ユーザーを狙ったスミッシング攻撃はAndroidマルウェアを感染させるためにフィッシングSMSメッセージがまだ有効な侵入経路であり、SMSメッセージで配布された偽のChromeアプリは、Android/MoqHaoが2017年初めから開発されてきた脅威であることが判明しました。2015年からの一連の攻撃について組織化されたサイバー犯罪グループの仕業であることを示唆しています。
この脅威から身を守るために、ご自身のモバイルデバイスにセキュリティソフトウェアをインストールし、公式マーケット以外からダウンロードしたアプリケーションは信頼しないでください。McAfee Mobile Securityはこの脅威をAndroid/MoqHaoとして検出し、ユーザーに通知するとともにデータ損失からユーザーを保護します。McAfee Mobile Securityの詳細については、http://www.mcafeemobilesecurity.comを参照してください。
※本ページの内容は McAfee Blog の抄訳です。
原文: Android Banking Trojan MoqHao Spreading via SMS Phishing in South Korea
著者: Jaewon Min and Carlos Castillo