MASTG-TEST-0302 プライベートストレージファイル内の暗号化されていない機密データ (Sensitive Data Unencrypted in Private Storage Files)

概要

このテストは プライベートストレージに暗号化されていないデータを保存するための API の実行時使用 (Runtime Use of APIs for Storing Unencrypted Data in Private Storage) を補完するように設計されています。実行中の API を監視する代わりに、アプリを実行する前後に取得したスナップショットを比較することで、アプリのプライベートストレージ (アプリサンドボックスディレクトリ (App Sandbox Directories)) の差分解析を実行します。また、セッション中に作成または変更されたキーチェーンアイテムも列挙します。

目標は、新規または変更されたファイルを識別し、それらがプレーンテキストまたは簡単にエンコードされた形式の機密データを含むかどうかを判断し、機密データまたはファイル暗号化に使用される鍵を含む可能性のある新しいキーチェーンエントリを識別することです。

手順

  1. デバイス / シミュレータがクリーンな状態 (以前のテストアーティファクトがない状態) であることを確認します。実行中である場合はアプリを終了します。

  2. アプリのプライベートストレージ (サンドボックス) ディレクトリツリーの最初のスナップショットを取得します (デバイスシェルへのアクセス (Accessing the Device Shell))。

  3. キーチェーンアイテムの最初のスナップショットを取得します (キーチェーンデータのダンプ (Dumping KeyChain Data))。必要に応じて、属性 (アクセス可能なクラス、アクセス制御フラグなど) を記録します。

  4. 機密データを処理できるアプリ機能 (認証フロー、セッション確立、オフラインキャッシュ、プロファイルの閲覧/編集、暗号操作、セキュアメッセージング、支払い、トークンリフレッシュロジック) を実行します。

  5. プライベートストレージディレクトリツリーの二つ目のスナップショットを取得します。

  6. 二つのプライベートストレージスナップショットを比較し、新規、削除、変更されたファイルを識別します。変更されたファイルについては、コンテンツの変更が機密の値を含む可能性があるかどうかを判断します。

  7. キーチェーンアイテムの二つ目のスナップショットを取得します。

  8. キーチェーンデータのダンプ (Dumping KeyChain Data) を使用して、二つのキーチェーンスナップショットを比較し、セッション中に新規、削除、変更されたアイテムを識別します。

結果

出力には以下を含む可能性があります。

  • 新規または変更されたファイルと、パス、サイズ、ハッシュ、推定タイプ、エンコーディング/暗号化ステータス (プレーンテキスト / エンコード済み / 暗号化済み / 不明)、のリスト。

  • 新規または変更されたキーチェーンエントリのリスト。

評価

機密データがプレーンテキストで現れたり、新規または変更されたファイルに簡単にエンコードされている場合、そのテストケースは不合格です。

ファイルとキーチェーンエントリのリストに機密データがないか検査します。Base64 エンコーディング、16 進数表現、URL エンコーディング、エスケープシーケンス、バイナリ plist ファイル、zip などの圧縮アーカイブ、ワイド文字、XOR などの一般的なデータ難読化手法などの手法を使用してエンコードされたデータの識別とデコードを試みます。また、tar や zip などの圧縮ファイルを識別し展開することも検討します。これらの手法は機密データを難読化しますが保護するものではありません。

Last updated

Was this helpful?