MASTG-TEST-0202 外部ストレージにアクセスするための API とパーミッションへの参照 (References to APIs and Permissions for Accessing External Storage)
概要
このテストでは静的解析を使用して、外部ストレージ API や MediaStore
API など、他のアプリと共有される場所にアプリが書き込むことを許可する API の使用 (機密データについてのローカルストレージのテスト (Testing Local Storage for Sensitive Data)) や、関連する Android マニフェストのストレージ関連パーミッション を探します。
この静的テストは、アプリが共有ストレージにデータを書き込むすべてのコードの場所を特定するのに最適です。しかし、実際に書き込まれるデータや、場合によっては、データが書き込まれるデバイスストレージ内の実際のパスも提供しません。そのため、このテストを動的なアプローチを採る他のテストと組み合わせることをお勧めします。これは共有ストレージに書き込まれるデータのより完全なビューを提供することでしょう。
手順
アプリをリバースエンジニアします (Java コードの逆コンパイル (Decompiling Java Code))。
リバースエンジニアしたアプリに対して、外部ストレージ API の呼び出しと Android マニフェストのストレージパーミッションをターゲットとした静的解析 (Android での静的解析 (Static Analysis on Android)) ツールを実行します。
静的解析ツールは、getExternalStoragePublicDirectory
, getExternalStorageDirectory
, getExternalFilesDir
, MediaStore
, WRITE_EXTERNAL_STORAGE
, MANAGE_EXTERNAL_STORAGE
など、共有ストレージへの書き込みに使用される可能性のあるすべての API とパーミッションを特定できる必要があります。これらの API とパーミッションの詳細については Android ドキュメント を参照してください。
結果
出力には共有ストレージへの書き込みに使用される API とストレージ関連パーミッションのリストと、それらのコードの場所を含む可能性があります。
評価
以下の場合、テストケースは不合格です。
アプリに Android マニフェストで宣言された適切なパーミッションがあります (例:
WRITE_EXTERNAL_STORAGE
,MANAGE_EXTERNAL_STORAGE
など)。かつ 共有ストレージに書き込まれるデータは機密性が高く、暗号化されていません。
後者を判断するには、リバースしたコードを注意深くレビュー (逆コンパイルした Java コードのレビュー (Reviewing Decompiled Java Code)) したり、このテストを動的なアプローチを採る他のテストと組み合わせる必要があるかもしれません。これは共有ストレージに書き込まれるデータのより完全なビューを提供することでしょう。
参考情報
Last updated
Was this helpful?