# Android のデータストレージ

## 概要

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

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

機密データは、デバイスや外部 SD カードなど、さまざまな場所に保存される可能性があり、適切に保護されていない場合、脆弱になる可能性があります。モバイルアプリで処理される情報を特定し、機密データとみなされるものを分類することが重要です。データ分類の詳細については「モバイルアプリケーションのセキュリティテスト」の章の [「機密データの特定」](/owasp-mastg-ja/tesutogaido/0x04b-mobile-app-security-testing.md#identifying-sensitive-data) のセクションをご覧ください。包括的な情報については Android 開発者ガイドの [Security Tips for Storing Data](https://developer.android.com/training/articles/security-tips.html#StoringData) を参照してください。

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

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

Android は、ユーザー、開発者、アプリケーションに合わせて調整された、さまざまな [データストレージ](https://developer.android.com/training/data-storage) 手法を提供しています。一般的な永続ストレージ技法には以下があります。

* 共有プリファレンス
* SQLite データベース
* Firebase データベース
* Realm データベース
* 内部ストレージ
* 外部ストレージ
* キーストア

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

* ログ記録機能
* Android バックアップ
* プロセスメモリ
* キーボードキャッシュ
* スクリーンショット

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coky-t.gitbook.io/owasp-mastg-ja/android-tesutogaido/0x05d-testing-data-storage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
