Android のデータストレージ

概要

この章では、モバイルセキュリティに不可欠な、認証トークンや個人情報など、機密データを保護することの重要性を説明します。ローカルデータストレージ用の Android API に注目し、ベストプラクティスを共有します。

ローカルストレージでの機密データを制限するか、可能な限り避けることが望ましいのですが、実際のユースケースではユーザーデータの保存が必要になることがよくあります。たとえば、ユーザーエクスペリエンスを向上するために、アプリは認証トークンをローカルにキャッシュし、アプリを起動するたびに複雑なパスワード入力を必要とすることを回避します。また、アプリは個人を識別できる情報 (PII) やその他の機密データを保存する必要があることもあります。

機密データは、デバイスや外部 SD カードなど、さまざまな場所に保存される可能性があり、適切に保護されていない場合、脆弱になる可能性があります。モバイルアプリで処理される情報を特定し、機密データとみなされるものを分類することが重要です。データ分類の詳細については「モバイルアプリケーションのセキュリティテスト」の章の 「機密データの特定」 のセクションをご覧ください。包括的な情報については Android 開発者ガイドの Security Tips for Storing Data を参照してください。

機密情報開示のリスクには、情報解読、ソーシャルエンジニアリング攻撃 (PII が開示された場合)、アカウントハイジャッキング (セッション情報や認証トークンが開示された場合)、決済オプションのあるアプリの不正利用などがあります。

データ保護に加えて、あらゆるストレージソースからのデータを検証してサニタイズします。これは、データ完全性のために、正しいデータ型のチェックや、HMAC などの暗号制御の実装を含みます。

Android は、ユーザー、開発者、アプリケーションに合わせて調整された、さまざまな データストレージ 手法を提供しています。一般的な永続ストレージ技法には以下があります。

  • 共有プリファレンス

  • SQLite データベース

  • Firebase データベース

  • Realm データベース

  • 内部ストレージ

  • 外部ストレージ

  • キーストア

さらに、データ保存をもたらす可能性があり、テストする必要があるその他の Android 機能には以下があります。

  • ログ記録機能

  • Android バックアップ

  • プロセスメモリ

  • キーボードキャッシュ

  • スクリーンショット

適切なテストケースを実行するには、関連する各データ保存機能を理解することが不可欠です。この概要では、これらのデータ保存手法の概要を提示し、テスト担当者にさらに関連ドキュメントを示します。

Last updated

Was this helpful?