MASTG-TEST-0301 プライベートストレージに暗号化されていないデータを保存するための API の実行時使用 (Runtime Use of APIs for Storing Unencrypted Data in Private Storage)
概要
このテストは プライベートストレージに暗号化されていないデータを保存するための API への参照 (References to APIs for Storing Unencrypted Data in Private Storage) と対をなす動的テストであり、プライベートストレージファイル内の暗号化されていない機密データ (Sensitive Data Unencrypted in Private Storage Files) と併用するように設計されています。
このテストはランタイムメソッドフックを使用して、ファイル API (ファイルシステム API (File System APIs)) とキーチェーン API (キーチェーンサービス (Keychain Services)) を監視することで、機密データが暗号化されずにプライベートストレージ (アプリサンドボックスディレクトリ (App Sandbox Directories)) に書き込まれたか、またはキーチェーンに直接書き込まれたかを識別します。
ターゲット API の中には、I/O をシステムデーモンを通じてルーティングしたり、直接 open および write システムコールを避けるものがあることに注意してください。そのため、システムコールのみをトレースするのではなく、関連する Objective C や Seift API をフックする必要があります。
手順
ランタイムメソッドフック (メソッドフック (Method Hooking) 参照) を使用して、ファイルを作成または書き込むファイルシステム API の使用を探します。
ランタイムメソッドフック (メソッドフック (Method Hooking) 参照) を使用して、キーチェーン API の使用を探します。
機密データを処理できるアプリ機能 (認証フロー、セッション確立、オフラインキャッシュ、プロファイルの閲覧/編集、暗号操作、セキュアメッセージング、支払い、トークンリフレッシュロジック) を実行します。
結果
出力には以下を含む可能性があります。
関連するキーチェーン API の呼び出しのリスト
関連するファイルシステム API の呼び出しのリスト
評価
機密データがプライベートストレージに書き込まれる前に暗号化されていない場合、または機密データを保存するためにキーチェーン API が使用されていない場合、そのテストケースは不合格です。
プライベートストレージへの書き込み時にデータが暗号化されているかどうかを判断するのは難しいことがあります。しかし、データを書き込むために使用される API を監視し、書き込まれたデータを解析することで、使用されているメソッドとライブラリに基づいて暗号化が適用されているかどうかを推測できます。ランタイムメソッドフックを通じて特定された、プライベートストレージに書き込まれたデータと、その書き込みに使用された API を相関付ける必要があります。また、ファイルシステム API とキーチェーン API を相関付け、それらが一緒に使用されて機密データを安全に保存していることを検証する必要もあります。機密データは、キーチェーンに安全に保存することも、プライベートストレージに書き込まれる前にキーチェーンの鍵を使用して暗号化することもできます。
Last updated
Was this helpful?