シマンテックは、ソーシャルエンジニアリングの手口を自在に使って広範囲の Android ユーザーからオンラインバンキング情報を盗み出す新しい脅威、Android.Fakelogin を発見しました。Android.Fakelogin は、特定のアプリに偽装するのではなく、デバイス上で実行中のオンラインバンキングアプリを見つけ出し、そのアプリに合わせた偽ログインページを、本来のユーザーインターフェース上に重ねて表示します。アプリに合わせることができるのは、リモートのコマンド & コントロール(C&C)サーバーにホストされているクラウドベースのロジックにアクセスし、表示すべき適切なフィッシングページを決定しているからです。Android.Fakelogin の標的になるのは、Google Play 上で入手できる正規のアプリですが、Fakelogin をダウンロードするアプリは Google Play で公開されているものではありません。
またこのマルウェアは、ステルス技術と不明瞭化の手口も使って、検出とリバースエンジニアリングを難しくしています。こうした特性があることから、Android.Fakelogin はモバイルデバイスにとって手ごわい脅威と言えます。
Android.Fakelogin の仕組み
現在 Android.Fakelogin の標的になっているのはロシア語を利用するユーザーですが、Android の最新バージョン「Marshmallow」は影響を受けません。Android.Fakelogin はトロイの木馬に分類され、Android デバイスに影響するダウンローダマルウェアからペイロードとして侵入します。このマルウェアは偽アプリ(この場合はゲーム)の形をとっており、侵入先のデバイスに他のマルウェアもダウンロードし、インストールしようとします。インストールされた Android.Fakelogin は、デフォルトの SMS アプリと入れ替わったうえで、自身をデバイス管理者として登録しようとします。また、アイコンを非表示にしますが、これは簡単に見つかって削除されたりしないようにするためです。
図 1. Android.Fakelogin が、デバイス管理者の許可を取得しようとし(左の図)、またデフォルトの SMS アプリと入れ替わろうとする(右の図)
こうした許可を取得できた場合、Android.Fakelogin はデータの窃盗を実行できるようになります。この流れをまとめたのが、次の図です。
図 2. Android.Fakelogin が、C&C サーバーにあるクラウドベースのロジックを利用して、侵入先のデバイスからログイン情報を盗み出す
まず Android.Fakelogin は、C&C サーバーからアプリのパッケージ名のリストをダウンロードして、設定ファイルに保存します。これが、コンテンツインジェクションの標的にする正規のオンラインバンキングアプリを決めるためのリストです。
図 3. Android.Fakelogin が、標的にするオンラインバンキングアプリのリストを、デバイスに保存されている設定ファイルに保存する
次に、現在デバイスで実行中のアプリの名前をクエリーし、そのアプリがリストにあれば、アプリのパッケージ名を C&C サーバーに送信します。サーバーは、標的としたアプリの外見に似せたフィッシングページを、応答として表示します。クラウドベースのアプローチは自由度が高いので、標的にした銀行がモバイル用のオンラインバンキングアプリの外見やフォーマットを変更しても、そのたびに更新する必要がありません。
次に、Android.Fakelogin は WebView を使い、実行中のアプリのインターフェースに重ねて適切なフィッシングページを表示します。この偽ページでユーザーがログインを試みると、ログイン情報がそのまま、攻撃者の C&C サーバーに送信されてしまうという仕組みです。
図 4. 実行中の正規のアプリに重ねて Android.Fakelogin が表示するフィッシングページの例
フィッシングページの手法は、Android.Fakelogin の高度な機能の一部にすぎません。デバイスに感染すれば、あとは起動にユーザーの操作を必要としないため、Android.Fakelogin は検出が困難です。加えて、リバースエンジニアリングも難しくなっています。不明瞭化の手口を使い、標的とするアプリの名前をリモートサイトから取得するからです。
進化の可能性: 次の標的は 2 要素認証コードか
このようなフィッシング手法をとっているため、Android.Fakelogin は高い柔軟性と拡張性を備えています。攻撃者は、偽のオンラインバンキングページを次々と C&C サーバーに追加していけばいいので、特定のオンラインバンキングアプリに偽装する新しい亜種を使って感染するより、はるかに簡単です。また、現在はオンラインバンキングアプリが狙われていますが、新しいパッケージリストをダウンロードして、他のオンラインサービス、ソーシャルネットワークなどを標的にし始める可能性もあります。
しかも、Android.Fakelogin を使えば 2 要素認証(2FA)をすり抜けることさえ可能かもしれません。まず、よくある偽造ページを使ってオンラインバンキングのログイン情報を入手します。次に別のフィッシングページを表示し、ユーザーのモバイルデバイスやメールアドレス宛てに送信された 2FA コードを要求すれば、保護されているはずのアカウントにアクセスできるということです。
対処方法
アプリの開発者は、こうした脅威からユーザーを保護するために、ユーザーのログイン後に別の認証手順を追加する必要があります。たとえば、オンラインバンキングアプリで取引を承認したり、ソーシャルネットワークアプリで重要なアカウント情報を更新したりする前には、再度の認証を要求すべきです。
ユーザーがこうした脅威からデバイスを保護できるように、以下の対策をお勧めします。
- 対応デバイスごとに公開されしだい、Android 6.0 Marshmallow をインストールしてください。Android.Fakelogin の機能が遮断されます。
- Symantec Mobility やノートン モバイルセキュリティなど総合的なセキュリティソリューションを使って、モバイル上の脅威を防ぎましょう。
- ソフトウェアは最新の状態に保ちましょう。
- アプリは信頼できるソースだけからインストールするようにしてください。
- アプリがリクエストする許可の種類に注意してください。
保護対策
シマンテック製品とノートン製品は、この脅威を Android.Fakelogin として検出します。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。
【参考訳】