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

概要

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

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

手順

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

  2. リバースエンジニアしたアプリに対して、外部ストレージ 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?