プロダクト ニュース

Android のセキュリティの強化: マルウェアによるアプリデータの盗み見を阻止する

所要時間: 2 分

セキュリティは Android の基盤です。Google は、認証情報マネージャーFLAG_SECURE などの強力なセキュリティ ツールや機能を提供することで、プラットフォームの安全性を維持し、ユーザーデータを保護しています。Android のすべてのリリースで、パフォーマンスとセキュリティが強化されています。Android 16 では、アプリの防御を強化するための簡単で重要な手順を実行できます。動画をご覧になるか、以下をお読みになり、ユーザー補助 API の保護強化についてご確認ください。

 

 

1 行のコードでアプリを盗み見から保護する

悪意のあるユーザーが、ユーザー補助 API の機能を悪用して、パスワードや財務情報などの機密情報を画面から直接読み取り、タッチを挿入してユーザーのデバイスを操作しようとする事例が確認されています。これに対抗するため、Android 16 では、1 行のコードaccessibilityDataSensitive)で強力な防御機能が提供されます。

accessibilityDataSensitive フラグを使用すると、ビューまたはコンポーザブルにセンシティブ データが含まれていることを明示的にマークできます。アプリでこのフラグを true に設定すると、悪意のあるアプリが機密性の高いビューデータにアクセスしたり、そのデータに対して操作を行ったりするのを効果的にブロックできます。仕組みは次のとおりです。アクセシビリティ ツールとして明示的に宣言されていない(isAccessibilityTool=true)アクセシビリティ権限をリクエストするアプリは、そのビューへのアクセスを拒否されます。

このシンプルながら効果的な変更により、マルウェアが情報を盗んだり、不正な操作を行ったりするのを防ぐことができます。また、正規のユーザー補助ツールを使用するユーザーの操作に影響を与えることもありません。注: アプリがユーザー補助ツールではないにもかかわらず、ユーザー補助機能の権限をリクエストして isAccessibilityTool=true を設定している場合、Google Play はそのアプリを拒否し、Google Play プロテクトはユーザーのデバイスでそのアプリをブロックします。

setFilterTouchesWhenObscured 保護のための自動セキュリティ強化

この新しい accessibilityDataSensitive セキュリティ機能は、既存の setFilterTouchesWhenObscured メソッドとすでに統合されています。

タップジャッキングからアプリを保護するために setFilterTouchesWhenObscured(true) をすでに使用している場合、ビューはユーザー補助のセンシティブ データとして自動的に扱われます。accessibilityDataSensitive 保護機能で setFilterTouchesWhenObscured メソッドを強化することで、追加の作業なしで、すべてのユーザーに防御の追加レイヤを即座に提供できます。

image.png

スタートガイド

ログインページ、支払いフロー、個人データや財務データが表示されるビューなど、機密情報を含む画面では setFilterTouchesWhenObscured を使用することをおすすめします。または、accessibilityDataSensitive フラグを使用することもできます。

Jetpack Compose の場合

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

val composeView = LocalView.current DisposableEffect(Unit) { composeView.filterTouchesWhenObscured = true onDispose { composeView.filterTouchesWhenObscured = false } }

 

semantics 修飾子を使用して、sensitiveData プロパティをコンポーザブルに適用します。

BasicText { text = “Your password”,

            modifier = Modifier.semantics {

                sensitiveData = true }}

 

 

ビューベースのアプリの場合

XML レイアウトで、機密情報を含むビューに関連する属性を追加します。

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

<TextView android:filterTouchesWhenObscured="true" />

 

 

<TextView android:accessibilityDataSensitive="true" />

 

または、Java または Kotlin でプログラムによってプロパティを設定することもできます。

setFilterTouchesWhenObscuredaccessibilityDataSensitive

 

myView.filterTouchesWhenObscured = true;

 

 

myView.isAccessibilityDataSensitive = true;

 

 

myView.setFilterTouchesWhenObscured(true)

 

 

myView.setAccessibilityDataSensitive(true);

 

accessibilityDataSensitive フラグと setFilterTouchesWhenObscured フラグの詳細については、タップジャッキング ガイドをご覧ください。

デベロッパーと協力してユーザーの安全を確保する

この機能が実際のニーズを満たし、ワークフローにスムーズに統合されるように、早い段階からデベロッパーと協力して開発を進めてきました。

image.png

「Google は常にお客様の機密性の高い財務データの保護を優先してきました。そのため、アクセシビリティ ベースのマルウェアに対する独自の保護レイヤを構築する必要がありました。Revolut は、この新しい公式 Android API の導入を強く支持しています。この API により、カスタムコードから徐々に移行し、堅牢な単一行のプラットフォーム防御に移行できるようになります。」 
- Vladimir Kozhevnikov、Revolut の Android エンジニア

これらの機能を導入することで、ユーザーを悪意のあるユーザー補助機能ベースの攻撃から保護するうえで重要な役割を果たすことができます。ユーザーの安全を確保するため、すべてのデベロッパーがこれらの機能をアプリに統合することをおすすめします。

力を合わせれば、すべての人にとってより安全で信頼できるエクスペリエンスを構築できます。

作成者:

続きを読む