セキュリティは Android の基盤です。Google は、認証情報マネージャー や FLAG_SECURE などの強力なセキュリティ ツールと機能を提供することで、プラットフォームの安全性を維持し、ユーザーデータを保護できるようデベロッパーの皆様をサポートしています。Android のリリースごとにパフォーマンスとセキュリティが強化されています。Android 16 では、アプリの防御を強化するための簡単で重要な対策を講じることができます。ユーザー補助 API の保護強化について詳しくは、動画をご覧いただくか、この記事をお読みください。
1 行のコードでアプリをスヌーピングから保護
悪意のあるユーザーが、ユーザー補助 API の機能を利用して、パスワードや財務情報などの機密情報を画面から直接読み取ったり、タッチ操作を挿入してユーザーのデバイスを操作したりしようとする事例が確認されています。この問題に対処するため、Android 16 では、1 行のコード(accessibilityDataSensitive)で強力な防御を実現する新機能が提供されています。
accessibilityDataSensitive フラグを使用すると、ビューまたはコンポーザブルにセンシティブ データが含まれていることを明示的にマークできます。アプリでこのフラグを
true
に設定すると、悪意のあるアプリが機密性の高いビューデータにアクセスしたり、操作を実行したりするのを効果的に阻止できます。仕組みは次のとおりです。ユーザー補助ツールとして明示的に宣言されていない(isAccessibilityTool=trueではない)アプリがユーザー補助権限をリクエストした場合、そのビューへのアクセスは拒否されます。
このシンプルながら効果的な変更により、マルウェアによる情報の窃取や不正な操作の実行を防ぐことができます。正規のユーザー補助ツールのユーザー
エクスペリエンスに影響を与えることはありません。注: アプリがユーザー補助ツールではないにもかかわらず、ユーザー補助権限をリクエストして
isAccessibilityTool=true に設定した場合、Google Play で拒否され、Google Play Protect
によってユーザーのデバイスでブロックされます。
setFilterTouchesWhenObscured 保護の自動強化
この新しい accessibilityDataSensitive セキュリティ機能は、既存の setFilterTouchesWhenObscured
メソッドにすでに統合されています。
タップジャッキングからアプリを保護するために setFilterTouchesWhenObscured(true) をすでに使用している場合、ビューはユーザー補助のセンシティブ データとして自動的に 扱われます。accessibilityDataSensitive
保護によって setFilterTouchesWhenObscured
メソッドを強化することで、追加の作業なしで、すべてのユーザーに防御レイヤを追加できます。
スタートガイド
ログインページ、支払いフロー、個人データや財務データが表示されるビューなど、機密情報を含む画面すべてに setFilterTouchesWhenObscured
を使用することをおすすめします。または、accessibilityDataSensitive フラグを使用することもできます。
Jetpack Compose の場合
setFilterTouchesWhenObscured | accessibilityDataSensitive |
val composeView = LocalView.current DisposableEffect(Unit) { composeView.filterTouchesWhenObscured = true onDispose { composeView.filterTouchesWhenObscured = false } }
|
BasicText { text = “Your password”,
modifier = Modifier.semantics {
sensitiveData = true }}
|
ビューベースのアプリの場合
XML レイアウトで、関連する属性を機密性の高いビューに追加します。
setFilterTouchesWhenObscured | accessibilityDataSensitive |
|
|
または、Java または Kotlin でプログラムによってプロパティを設定することもできます。
setFilterTouchesWhenObscured | accessibilityDataSensitive |
|
|
|
|
accessibilityDataSensitive フラグと setFilterTouchesWhenObscured フラグについて詳しくは、タップジャッキング ガイドをご覧ください。
デベロッパーとの連携によるユーザーの安全確保
Google は、この機能が実際のニーズを満たし、ワークフローにスムーズに統合されるように、早い段階からデベロッパーと協力して取り組んできました。
「当社は、お客様の機密性の高い財務データの保護を常に最優先事項としており、ユーザー補助ベースのマルウェアに対する独自の保護レイヤを構築する必要がありました。Revolut は、この新しい公式の Android API の導入を強く支持しています。これにより、カスタムコードから徐々に移行し、堅牢な 1 行のプラットフォーム防御に移行できます。」
- Vladimir Kozhevnikov(Revolut の Android エンジニア)
これらの機能を導入することで、悪意のあるユーザー補助ベースの攻撃からユーザーを保護するうえで重要な役割を果たすことができます。ユーザーの安全を確保するため、すべてのデベロッパーがこれらの機能をアプリに統合することをおすすめします。
力を合わせて、すべての人にとってより安全で信頼できるエクスペリエンスを構築しましょう。
-
プロダクト ニュースGoogle Play の安全性と信頼性を可能な限り高く保つため、本日、ユーザー プライバシーを強化し、ビジネスを不正行為から保護するための新しいポリシーの更新とアカウント移行機能についてお知らせいたします。
Bennet Manuel • 所要時間 3 分 -
プロダクト ニュースAndroid エコシステムの柱は、ユーザーの信頼に対する共通の取り組みです。モバイル環境の進化に伴い、機密情報の保護に対するアプローチも進化しています。
Robert Clifford • 所要時間 3 分 -
プロダクト ニュースGoogle Play は、デベロッパーが成功するためのツールと適応性を確保しながら、ユーザーに可能な限り最高のエクスペリエンスを提供することに尽力しています。
Paul Feng • 所要時間 3 分
Android 開発に関する最新の分析情報を毎週メールでお届けします。