アクセシビリティはユーザーに不可欠です。危険は、理由のないアクセス許可とその悪用から生まれます。
マルウェアは、必ずしもメッセージの暗号化を破る必要はありません。端末が表示や入力のために処理するデータにアクセスできれば、暗号化前や復号後の内容を見られる可能性があります。アクセシビリティやオーバーレイウィンドウの悪用は二つの例ですが、仕組みは同じではありません。
また、Accessibility やフローティングウィンドウを持つアプリがすべてマルウェアというわけではありません。スクリーンリーダーや支援ツールは、多くのユーザーに不可欠です。目的は、理解したうえでアクセスを許可し、悪用を減らすことです。アクセシビリティをなくすことではありません。
混同してはいけない三つの脅威
| 手法 | 攻撃者は何をするか | 思い込んではいけないこと |
|---|---|---|
| 偽のウィンドウやフォーム | 本物のアプリに似た画面で情報を入力するようユーザーを誘導する | すべての Overlay が下のウィンドウのテキストを自動的に読めるわけではない |
| クリックの窃取、または Tapjacking | 別の操作部品をタップするようユーザーをだます | 透明なレイヤーがあるからといって、すべてのキー入力を記録できるわけではない |
| Accessibility サービスの悪用 | 許可されたサービスの機能で情報を見たり操作したりする | すべてのバージョンで、すべてのビューへのアクセスが同じわけではない |
公式の Tapjacking ガイドは、画面が完全に覆われる場合と部分的に覆われる場合を区別しています。ウィンドウの種類、Android のバージョン、アプリの設定によって結果は変わります。
Accessibility はどのように機密データへアクセスできるのでしょうか?
アクセシビリティサービスは、その機能の範囲内で画面の情報を受け取ったり、ユーザーのために操作したりできます。悪意あるサービスは、この機能を悪用する可能性があります。したがって、明確な理由のないアプリで有効にすることは、軽い判断ではありません。
しかし、「どのサービスでも、どのアプリのすべてのテキストでも読める」という主張は絶対的すぎます。ビューの構造、データの提示方法、OS の制限が重要です。Android には、機密性の高いビュー向けに accessibilityDataSensitive などの機能があります。使用方法と挙動は、対象バージョンで試験する必要があります。悪意あるサービスからデータを守ることについての Google の説明。
FLAG_SECURE にできること、できないこと
FLAG_SECURE は、スクリーンショットや安全でない出力先への内容の表示を制限するために使われます。このフラグだけで、アクセシビリティのアクセス規則、偽のフォーム、テキストを抽出するすべての方法を制御できるわけではありません。別の端末で画面を撮影することも別問題です。
Android は、オーバーレイウィンドウを減らすために HIDE_OVERLAY_WINDOWS などの手段もアプリに提供しています。互換性、バージョン上の制限、アクセシビリティを必要とするユーザーへの影響を確認せずに、どれかを「スパイ対策ボタン」と紹介してはいけません。機密性の高いアクティビティを保護するガイド。
ユーザーがアクセス権限を確認するためのチェックリスト
- 端末の設定で、アクセシビリティ、他のアプリの上への表示、通知へのアクセスを持つアプリを別々に確認してください。設定経路の名称はメーカーやバージョンで異なります。
- 各項目について、具体的にどの機能がそのアクセスを必要とするのか考えてください。信頼できるスクリーンリーダーへの許可と、見知らぬ懐中電灯アプリへの許可は同じではありません。
- 不明なファイルをインストールした直後にアクセスの有効化を急かされたら、追加の確認が必要な兆候と捉えてください。権限を求めることだけでは、マルウェアの証明にはなりません。
- ログイン画面の見た目が怪しい場合、機密情報を入力しないでください。自分が普段使う方法でアプリを開き、アドレスやインストール元を確認してください。
- 不要なアクセスを取り消した後は、必要な支援ツールが動くか試してください。セキュリティによって、所有者が端末を使えなくなってはいけません。
パスワードやセッションがすでに漏れた可能性がある場合、権限の取り消しだけでは十分ではありません。信頼できる端末から、アクティブなセッションとアカウントの復旧手段を確認し、危険にさらされたパスワードを変更してください。
開発者は何を試験すべきでしょうか?
ログイン、操作の確認、機密情報の表示を行う画面を個別に評価してください。覆われた状態のタッチや部分的な覆いを試験してください。スクリーンショットの試験だけでは十分ではありません。その後、実際のスクリーンリーダーや支援ツールで同じ手順を確認し、セキュリティ対策が正当なアクセスを壊さないようにします。
試験報告には、Android とアプリのバージョン、サービスの種類、権限、実際に見えたデータを記録してください。限られた試験から、すべての端末について結論を出すことはできません。
メッセンジャーの暗号化が守る範囲
Livara の脅威モデルは、感染した端末やロック解除された端末を、内容保護の保証の対象外としています。したがって、アルゴリズムの名前や、鍵交換がポスト量子対応であることは、あらゆる UI の悪用への防御ではありません。メッセージ経路の保護、端末の健全性、権限管理を、別々の三つの確認として扱ってください。



