Endpoint Protection

 View Only

Android のアクセシビリティサービスを悪用するマルウェアが、強化されたセキュリティ機能を回避する恐れ 

May 06, 2016 12:28 AM

Header_1.jpg

昨年 Android の API が変更されたため、一部のマルウェアは、ある時点でデバイスのフォアグラウンドで動作しているアプリを特定する機能を使えなくなりました。このような手法を Android は順調にブロックするようになりましたが、攻撃者はアドウェアで使われている手口を流用して、マルウェアの機能を復活させられる恐れがあります。モバイルで潜在的に迷惑なアプリケーション(PUA)が、アクセシビリティサービスを悪用して任意のアプリをインストールすることは、以前から確認されています。しかし、金融機関を狙うマルウェアも、この手の脅威を防ぐためにわざわざ強化されたセキュリティ機能を回避するために、同じ手口を使うかもしれません。

この機能がマルウェアにとって重要な理由
フォアグラウンドで実行されているアプリを検出する機能は、Android.BankosyAndroid.Fakelogin など金融機関を狙うマルウェアにとっては特に大切です。こうした脅威は、フォアグラウンドでどんなアプリが動作しているかを把握し、それをバックグラウンドに移動させてから、よく似た偽の画面をフォアグラウンドに表示します。この画面はオンラインバンキングのアプリに似せて、被害者の情報を盗み出そうとします。フォアグラウンドで動作しているアプリを判定できないと、マルウェアはどのアプリを、いつバックグラウンドに移動させるのかを決定できません。

以前のテクニック
金融機関を狙うトロイの木馬のうち以前のバージョンは、フォアグラウンドで実行中のアプリを特定するために、組み込み API の getRunningTasks() を呼び出していました。このメソッドを使ってオンラインバンキングアプリの実行を検出すると、マルウェアは自身をフォアグラウンドに移動させて、情報を盗み出します。このメソッドは Android Lollipop で非推奨となったため、マルウェアの作成者はフォアグラウンドで動いているアプリを検出する別の方法を見つけるようになりました。

Lollipop 以降に攻撃者が利用し始めたのは、文書化されていない変数を使って、フォアグラウンドアプライアンスを検出する方法です。この手法はしばらく有効でしたが、結局 Google は Android 5.0 以降のバージョンでこの機能を無効にしました。

こうした方法は最近のバージョンの Android では使えなくなっており、5.0 以降の比率は全 Android デバイスのほぼ 40% を占めています。

アクセシビリティサービスの悪用
Google は、フォアグラウンドのアプリを特定する手段をほとんど封じましたが、一部のアドウェアグループと PUA は、Android のアクセシビリティサービスを悪用するようになっています。ある時点で実行中のアプリを特定できるからです。

Android のアクセシビリティサービスは、身体、視覚、年齢などの理由でデバイスの利用を制限されている方に役立ちます。なかには、テキスト読み上げ、振動によるフィードバック、ジェスチャーによるナビゲーションなどのアクセシビリティサービスも用意されています。音声ベースのアクセシビリティ機能は、目の不自由なユーザーにスピーカから音声で伝えられるように、現在フォアグラウンドであるアプリを特定しなければなりません。

アドウェアや PUA は、まずアクセシビリティサービスに登録してこれらの機能を利用します。アプリの作成者は、そのためにマニフェストで android.accessibilityservice.AccessibilityService にインテントフィルタを追加します。

アドウェアや PUA の作成者は次に、アプリの特定のイベントを処理できるようにアクセシビリティサービスを設定します。たとえば、typeAllMask に accessibilityEventType を設定すると、アクセシビリティサービスがあらゆるアクセシビリティイベントを処理できるようになります。

アクセシビリティサービスの設定が済むと、アドウェアや PUA はソーシャルエンジニアリングを用いて、アクセシビリティサービスを有効にするようにユーザーを誘導します。たとえば次の画像は、悪質なアプリがウィンドウを表示し、アクセシビリティサービスの有効化をユーザーに求めているところです。文中にスペルミスがあることに気付けば、このメッセージは不正な手口であると判断できるかもしれません。

Fig1_36.png
図 1. アクセシビリティサービスを有効化するようユーザーを誘導するためにアドウェアや PUA が表示するメッセージ

悪質なソフトウェアがこの手法を利用すれば、フォアグラウンドアプリを検出できますが、そのためにはユーザーにいくつかアクションを実行させる必要があります。ポップアップウィンドウで[アクセシビリティ]をクリックしても、ユーザーがデバイス設定でアクセシビリティサービスを有効にしなければなりません。

それでも、被害者がいったんアクセシビリティサービスを有効にすれば、アドウェアや PUA は図 2 のコードスニペットに示したように、現在デバイス上で動いているアプリを検出できます。そこまで成功すれば、アドウェアや PUA は自身をフォアグラウンドに移動させることが可能です。

Fig2_25.png
図 2. アドウェアや PUA がアクセシビリティサービスを利用してフォアグラウンドアプリを特定する

この手法は全バージョンの Android で通用しますが、悪質なソフトウェアが特に頻繁にこれを利用するのは、バージョン 5.0 以降です。それ以前のバージョンの Android OS であれば、攻撃者は依然として getRunningTasks() を使えます。そのほうが簡単であり、ユーザーの操作も必要としないからです。この手口を利用しているのは主にアドウェアと PUA ですが、Android で金融機関を狙うマルウェアも、今後はこれを実装する可能性があります。

シマンテックは、こうした手口を使うアドウェアと PUA を、以下の定義で検出します。

保護対策
アドウェアや PUA はもちろんのこと、モバイルで金融機関を狙う脅威からも身を守るために、以下のベストプラクティスに従うことをお勧めします。

  • ソフトウェアは最新の状態に保つ
  • 見慣れないサイトやサードパーティのアプリストアからはアプリをダウンロードしない
  • アプリは信頼できるソースだけからインストールする
  • アプリがリクエストする許可の種類に注意する
  • デバイスとデータを保護するために、ノートンなど適切なモバイル用セキュリティアプリをインストールする
  • 重要なデータのバックアップをまめに作成する

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

【参考訳】

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Related Entries and Links

No Related Resource entered.