Android端末を中心としたモバイルデバイス向けの脅威が、相変わらず増え続けている。今回はまず、ユーザーインタフェース(UI)関連の脆弱性を突く「タップジャッキング」を紹介する。

 トレンドマイクロは、Androidアプリケーションの「トーストビュー」と呼ばれるポップアップ表示を悪用した脅威について注意を呼びかけた

 悪意のある開発者は特別な加工を施したトーストビューを表示するアプリケーションを作成し、ソーシャルエンジニアリングの手口を使ってユーザーにこれをタップさせ、様々な脅威にユーザーを誘導する。トレンドマイクロはこの攻撃をタップジャッキングと呼んでいる。それほど複雑な手口ではないが、Androidユーザーに深刻な影響を及ぼす。

 AndroidはUIエレメントをアクティビティーの組み合わせで表す。あるアクティビティーは、スクリーン全体を使うシステムコンポーネントで、多数の異なるビューを設置することができる。

 以下の画像は、テキストとボタンの2つのビューを持つアクティビティーの例である。テキストビューはユーザーがテキストを入力する場所、ボタンはユーザーがクリックまたはタップする場所である。アクティビティーは、以下のようにスクリーンの大半が空いて(真っ黒になって)いても、スクリーン全体を使用することが多い。

2つのビューを持つアクティビティーの例

 しかし場合によっては、アクティビティー内に収めることなく、ビューを表示できる。それはダイアログビューとトーストビューだ。

 ダイアログビューのほとんどは、アプリケーションがユーザーとやりとりするために使われ、双方向の意味を持つ。ダイアログビューでユーザーに情報を見せ、それに応えてユーザーはテキストを入力したりボタンをクリックしたりする。ダイアログビューが表示されているあいだ、ユーザーは背後のアクティビティーにアクセスすることはできない。

ダイアログビューの表示例

 トーストビューは、Androidの定義によれば、「操作に関する簡単なフィードバックを小型のポップアップ表示で提供するもの」となっている。通常、トーストビューはメッセージに必要な分だけスペースを使い、ユーザーは背後のアクティビティーにアクセスできる。

トーストビューの表示例

 トーストビューは短い情報を表示し、サイズは一定ではない。開発者は自由にトーストビューをデザインし、画像を含めることもできる。

画像を含むトーストビューの例

 トーストビューに画像を表示できるということは、様々な可能性が考えられる。トーストビューは、単にユーザーのタップやスワイプを背後のアクティビティーに渡すだけなので、悪質な開発者は、ポルノ画像やセレブの写真、あるいは偽のUIを表示して、ユーザーを隠れたアクティビティーにアクセスさせようとする。ユーザーは、不正アプリケーションのダウンロード、オンライン購入、有料サービスの登録、果てはOSの消去など、様々な脅威にさらされる危険性がある。

 トーストビューを攻撃で効果的に使うには数秒よりも長くスクリーン上に残す必要がある。トーストビューは一般的にほんの数秒しか表示されないが、開発者はタイマーを使ってこの障害を回避できるという。タイマーはAndroid SDKで提供されており、トーストビューが消える前に再表示するよう設定できる。

 不正アプリケーションはユーザーを欺く手段としてタップジャッキングを使うが、それ自身は悪質なアクティビティーを実行するものではない。このため、Androidデバイスから何らかのパーミッションを得る必要はない。セキュリティ研究者やウイルス対策製品にとって、問題のアプリケーションを静的コード解析により悪質と判断することは難しい。

 トレンドマイクロの調査によれば、この脅威は「Android 2.3」(開発コード名「Gingerbread」)以前のバージョンを搭載している端末に影響する。米グーグルはこの脆弱性を修正するセキュリティ機能を提供したが、同機能が使えるのは「filterTouchesWhenObscured」を適切に「true」に設定している場合、あるいは「onFilterTouchEventForSecurity」メソッドを実装している場合に限られ、開発者の手で変更を加える必要がある。さらにユーザーは攻撃を防ぐためにOSとアプリケーションの両方を最新版にアップデートしなければならないため、タップジャッキングの脅威はすぐには消えそうもない。