Android Marshmallow でタップジャッキングが復活、しかし誰も気づかなかった

click fraud protection

特定の Marshmallow デバイスは、アプリが許可ダイアログの上にテキストを重ねてユーザーを騙すタップジャッキングの影響を受けやすくなっています。

私たちの多くは、新しくリリースされた Nexus デバイス用の Android Nougat によだれを垂らしていますが、大多数のユーザーは依然として Android Marshmallow を使用しています。 以来、その存在が文書化されているエクスプロイト 少なくとも2015年半ばまでには 多くの最新の Android デバイスに依然として影響を及ぼしています。

悪意のあるアプリケーションは、次のことを行うことができます。 タップジャック あなたの行動が あなたが明示的に与えたことのない許可を彼らに与えること。 エクスプロイトの仕組みは次のとおりです。


タップジャッキングの復活

Instagram を開いて、最近休暇中に撮った写真を共有しようとしていると想像してください。 写真のギャラリーを参照することを選択すると、Instagram はストレージへのアクセス許可を与えるように求めます。 ただし、「はい」をタップすると、エラー メッセージが表示されます。

アクティブな画面オーバーレイが有効になっているため、Instagram にストレージ権限を付与できません。 この場合は、夜間に目を眩ませることなく携帯電話を使用できるように、画面に色を付ける多くのアプリケーションのうちの 1 つです。 あなた自身。 これは Android 権限システムの例です 意図したとおりに動作する: アプリケーションに機密性の高いアクセス許可を付与するには、デバイス上の画面オーバーレイを無効にする必要があります。

マシュマロ許可タップジャック。 「許可」をタップすると、すべての連絡先が表示されます。

画面上に描画する機能を持つアプリケーションは、ユーザーをだまして機密データを入力させる可能性があります。 たとえば、画面オーバーレイにより、パスワードを収集するために、実際のログイン画面の上に偽のパスワード入力が配置される可能性があります。 このようなエクスプロイトは次のように呼ばれます。 「タップジャック」 長年にわたり、さまざまな Android バージョンにパッチが適用されてきました。 Android 4.0.3まで続く最悪の例の1つ. しかし最近、このエクスプロイトは次のように復活しました。 Android Marshmallow の実行時パーミッション モデル.

という名前の開発者 イウォ・バナシュ を作成しました 応用 エクスプロイトをデモンストレーションします。 その仕組みは非常に単純です。アプリケーションが許可ダイアログを表示すると、悪意のあるアプリケーションが インストールすると、許可ダイアログのテキスト ブロックを任意のテキストで覆うシステム オーバーレイが表示されます。 望む。 知らずに権限ダイアログ ボックスで「許可」をクリックしたユーザーは、要求された権限を与えるようにだまされてしまいますが、その要求はユーザーのビューから隠されていました。 このようなエクスプロイトは、Android Marshmallow の導入以来、Android Marshmallow の許可システムの目的を完全に無効にします。 新しいモデルは、ユーザーが明示的に同意したアクセス許可のみを確実に使用できるようにすることを想定していました.

さて、あなたが何を考えているかはわかります。 Android がシステム オーバーレイを検出し、Instagram ストレージのアクセス許可を付与できなかった場合、この悪用の発生は防げるのではないでしょうか? 答えはいいえだ, 私のテストでは、特定のデバイスで許可ダイアログの上にテキスト オーバーレイを表示しても、安全メカニズムがトリガーされないようです。 概念実証のタップジャッキング アプリケーションの開発者は、このエクスプロイトが効果的であると述べています。 API レベル 22 以下をターゲットとする二次的な悪意のあるアプリケーションをユーザーがインストールすることに依存します。 (マシュマロ以前)。 これは、Android Marshmallow よりも前では、インストール中にすべてのアプリケーションにアクセス許可が付与されていたためです。

マシュマロを使用している場合、オーバーレイを描画する許可を要求する信頼できないアプリのインストールを避けるだけで済みます。 Android の権限モデルが当初のレイアウトどおりに機能していれば、それは正しいでしょう。 しかし、このエクスプロイトが発見されて以来、 API レベル 23 をターゲットとするアプリでも オーバーレイ許可を要求する (Marshmallow) は潜在的なリスクです。


権限モデルのギャップ?

オーバーレイを使用する代表的なアプリ。 経由: 中くらい

もしあなたが、友達とチャットするために Facebook Messenger を使用している何百万人もの人々のうちの 1 人なら、 そして、Android の最高の機能の 1 つである、アプリが他のアプリの上に描画できる機能に遭遇したことになります。 スクリーン。 ユーザーが開いているアプリケーションの上に、お気に入りの Facebook グループ チャットでユーザーをフォローできるバブルを表示できるのは、どれほど素晴らしいことでしょうか? Facebook のメッセンジャーは「フローティング アプリ」というアイデアを主流に持ち込みましたが、このコンセプトは Android にもしばらく存在していました。 の存在のおかげで、アプリケーションはしばらくの間、アプリケーションの上にオーバーレイを作成できました。 TYPE_SYSTEM_OVERLAY Android の WindowManager で。

「他のアプリに重ねて描画」権限メニュー

Android Marshmallow が登場する前は、アプリケーションは次の権限を要求する必要がありました。 SYSTEM_ALERT_WINDOW インストール中に、画面上部にオーバーレイが表示される前に。 しかし、これは 6.0 の詳細な実行時権限モデルの導入により変わりました。 ユーザーは、実際にアプリを実行するときにアプリケーションにアクセス許可を付与する必要があるため、平均的なアクセスが促進されることが期待されます。 ユーザーは、一見機能的に無関係と思われるリクエストを行うアプリケーションから自分の個人データを保護する必要があります。 権限。

ただし、SYSTEM_ALERT_WINDOW は他の権限とは異なります。 Marshmallow をターゲットとするアプリの他のほとんどの権限と同様に、開発者はダイアログを表示してエンドユーザーに付与する権限をプログラム的に要求することはできません。 代わりに、手動で設定画面に移動し、自分で権限を有効にする必要があります。 もちろん、Facebook Messenger などの一部のアプリは、このプロセスに役立ちます。

Google は開発者にこれを要求します。なぜなら、開発者は許可が「特に敏感です。"

特別な権限

通常のアクセス許可のように動作せず、危険なアクセス許可がいくつかあります。 SYSTEM_ALERT_WINDOW と WRITE_SETTINGS は特に機密性が高いため、ほとんどのアプリでは使用しないでください。 アプリがこれらのアクセス許可のいずれかを必要とする場合、マニフェストでアクセス許可を宣言し、ユーザーの承認を要求するインテントを送信する必要があります。 システムはその意図に応え、詳細な管理画面をユーザーに表示します。

タップジャックに関する上記の知識を考慮すると、これは理にかなっています。 しかし、ここからが問題です。 Googleは独自のルールにも従わない。 上で示した SYSTEM_ALERT_WINDOW 権限を付与するプロセスを案内する Facebook Messenger のスクリーンショットですか? これは、Google Play ストアの外部から APK をインストールした場合にのみ発生します。 Google Play ストアからアプリケーションをインストールすると、 SYSTEM_ALERT_WINDOW 権限が自動的に付与されます.

Facebookメッセンジャーのマニフェストファイル。 API レベル 23 をターゲットとしているにもかかわらず、アプリにはオーバーレイ権限が自動的に付与されます。

Googleは利便性のために安全性を犠牲にしている

Android Marshmallow が登場するまでの長い間、SYSTEM_ALERT_WINDOW は「危険な" 許可。 Android Marshmallow 6.0では、権限が次のように変更されました。 署名|システム|アプリ これは、開発者が当初、権限を付与するためにユーザーを設定画面に誘導する必要があったものです。 ただし、Android バージョン 6.0.1 では、 SYSTEM_ALERT_WINDOW が変更されました Google Play ストア 許可を自動的に付与できるユーザーに通知することなく。 なぜ Google がこの変更を行ったのかは私たちには不明です。 Google 自体はこの変更を行った理由を明らかにしていませんが、Web ページにまだ存在する SYSTEM_ALERT_WINDOW に関する文言を考慮すると、これは特に奇妙です。

その可能性があります 十分な開発者が怒っていた これは、SYSTEM_ALERT_WINDOW への最初の変更により、ユーザーが手動で権限を付与する必要があったためであり、Google はそれを黙って許可し、それを要求したアプリケーションにのみ付与していました。 しかし、そうすることで、Google は 利便性のために安全性を犠牲にした. Google 自体がこの許可が危険であると長い間考えていたのには理由があります。 そして、Marshmallow パーミッションのタップジャックエクスプロイトの存在は、このパーミッションを任意のアプリに自動的に付与することに内在する危険性を示す十分な証拠です。

このタップジャックエクスプロイトは何ヶ月も前から存在していましたが、私たちの注意を引いたのはつい最近です。 XDA Portal チームによるデバイスの内部テストで、次のことが確認されました。 このエクスプロイトは、Android Marshmallow を実行している多くの最新デバイスで動作します。. ここでは、各デバイスで利用可能な最新のソフトウェア バージョンでテストしたデバイスと、タップジャッキング エクスプロイトが機能するかどうかを簡単にまとめます。 「脆弱性」とマークされたデバイスはタップジャック攻撃の影響を受けやすく、「脆弱性」とマークされたデバイスは攻撃を受けやすいです。 「脆弱性」は、オーバーレイを表示しているアプリを検出し、事前にオーバーレイを無効にするよう要求できます。 続けています。

  • Nextbit Robin - Android 6.0.1、6月セキュリティパッチ適用 - 脆弱
  • Moto X Pure - Android 6.0、5月セキュリティパッチ適用 - 脆弱
  • Honor 8 - Android 6.0.1、7月セキュリティパッチ適用 - 脆弱
  • Motorola G4 - Android 6.0.1、5 月のセキュリティ パッチ適用 - 脆弱
  • OnePlus 2 - Android 6.0.1、6月セキュリティパッチ適用 - 脆弱ではありません
  • Samsung Galaxy Note 7 - Android 6.0.1、7 月セキュリティ パッチ適用 - 脆弱ではありません
  • Google Nexus 6 - Android 6.0.1、8月セキュリティパッチ適用 - 脆弱ではありません
  • Google Nexus 6P - Android 7.0、8月セキュリティパッチ適用 - 脆弱ではありません

これまでのところ、これらは私がチームにテストさせることができたデバイスのすべてです。 セキュリティ パッチのバージョンとエクスプロイトの間に相関関係は見つかりませんでした。 私たちのことからわかるように、 Android セキュリティ アップデートに関する最新のディスカッションいずれにしても、多くの人は最新のセキュリティ パッチを適用していないため、このエクスプロイトや、 Android セキュリティ速報.


前進する

タップジャッキング サービスにオーバーレイ権限が付与されました

ご自身のデバイスでこのエクスプロイトをテストし、脆弱性があるかどうかを確認することをお勧めします。. APK をコンパイルしました。 上にリンクされているソースコード (自分で行うこともできます)そしてそれらを AndroidFileHost にアップロードしました。 エクスプロイトをテストするには、両方の メインタップジャックアプリケーション 同様にその ヘルパーサービス. 次に、メイン アプリケーションを実行し、[テスト] ボタンをクリックするだけです。 テキスト ボックスが許可ダイアログの上部に表示され、[許可] をクリックするとデバイスの連絡先のリストが表示される場合、デバイスはタップジャッキングに対して脆弱です。 フローティング テキスト ボックスが許可ダイアログを完全に覆っていないことを心配する必要はありません。この概念実証アプリはそうではありません。 許可ダイアログをきれいにハイジャックする方法を完璧に示すことを目的としたものではなく、それが実際に行われることを証明することを目的としています。 可能。

すべての Marshmallow デバイスにこのエクスプロイトにパッチを適用する修正プログラムが導入され、OEM がすべてのデバイスを最新のセキュリティ パッチに更新することを願っています。 現実には、誓約されたデバイスのほとんどが Nougat を入手するには何か月もかかるため、ほとんどのデバイスにとって唯一の方法です。 ユーザーが危険を避けるには、最新のセキュリティ パッチをインストールするか、アプリの監視権限を取得する必要があります。 彼ら自身。 しかし、潜在的に危険な SYSTEM_ALERT_WINDOW 権限を自動的に付与するという Google の決定により、多くのユーザーが ユーザーは無意識のうちに携帯電話を乗っ取り、ますます危険な権限を与える可能性のあるアプリを実行しています。 権限。