MASTG-TEST-0202 外部ストレージにアクセスするための API とパーミッションへの参照 (References to APIs and Permissions for Accessing External Storage)

概要

このテストでは静的解析を使用して、外部ストレージ APIarrow-up-rightMediaStore APIarrow-up-right など、他のアプリと共有される場所にアプリが書き込むことを許可する API の使用 (機密データについてのローカルストレージのテスト (Testing Local Storage for Sensitive Data)arrow-up-right) や、関連する Android マニフェストのストレージ関連パーミッションarrow-up-right を探します。

この静的テストは、アプリが共有ストレージにデータを書き込むすべてのコードの場所を特定するのに最適です。しかし、実際に書き込まれるデータや、場合によっては、データが書き込まれるデバイスストレージ内の実際のパスも提供しません。そのため、このテストを動的なアプローチを採る他のテストと組み合わせることをお勧めします。これは共有ストレージに書き込まれるデータのより完全なビューを提供することでしょう。

手順

  1. アプリをリバースエンジニアします (Java コードの逆コンパイル (Decompiling Java Code)arrow-up-right)。

  2. リバースエンジニアしたアプリに対して、外部ストレージ API の呼び出しと Android マニフェストのストレージパーミッションをターゲットとした静的解析 (Android での静的解析 (Static Analysis on Android)arrow-up-right) ツールを実行します。

静的解析ツールは、getExternalStoragePublicDirectory, getExternalStorageDirectory, getExternalFilesDir, MediaStore, WRITE_EXTERNAL_STORAGE, MANAGE_EXTERNAL_STORAGE など、共有ストレージへの書き込みに使用される可能性のあるすべての API とパーミッションを特定できる必要があります。これらの API とパーミッションの詳細については Android ドキュメントarrow-up-right を参照してください。

結果

出力には共有ストレージへの書き込みに使用される API とストレージ関連パーミッションのリストと、それらのコードの場所を含む可能性があります。

評価

以下の場合、テストケースは不合格です。

  • アプリに Android マニフェストで宣言された適切なパーミッションがあります (例: WRITE_EXTERNAL_STORAGE, MANAGE_EXTERNAL_STORAGE など)。

  • かつ 共有ストレージに書き込まれるデータは機密性が高く、暗号化されていません。

後者を判断するには、リバースしたコードを注意深くレビュー (逆コンパイルした Java コードのレビュー (Reviewing Decompiled Java Code)arrow-up-right) したり、このテストを動的なアプローチを採る他のテストと組み合わせる必要があるかもしれません。これは共有ストレージに書き込まれるデータのより完全なビューを提供することでしょう。

参考情報

Last updated

Was this helpful?