MASTG-TEST-0201 外部ストレージにアクセスするための API の実行時使用 (Runtime Use of APIs to Access External Storage)

概要

Android アプリは 外部ストレージにアクセスするのにさまざまな APIarrow-up-right を使用します。これらの API の包括的なリストを収集するのは、特にアプリがサードパーティフレームワークを使用したり、実行時にコードをロードしたり、ネイティブコードを含む場合、困難なことがあります。デバイスストレージに書き込むアプリケーションをテストする最も効率的なアプローチは、通常、動的解析、具体的にはメソッドトレース (メソッドトレース (Method Tracing)arrow-up-right) です。

手順

  1. Frida for Android がインストールされていることを確認します。

  2. アプリをインストールします。

  3. スクリプトを実行して、Frida でアプリを起動し、ファイルとのすべてのやり取りをログ記録します。

  4. 解析したいアプリの画面に遷移します。

  5. アプリを閉じて Frida を停止します。

Frida スクリプトは getExternalStorageDirectory, getExternalStoragePublicDirectory, getExternalFilesDir, FileOutPutStream などの関連する API にフックして、すべてのファイル操作をログ記録する必要があります。また open をファイル操作の包括的なものとして使用することもできます。しかし、MediaStore API を使用するものなど、すべてのファイル操作を捕捉するわけではなく、大量のノイズが発生する可能性があるため、追加のフィルタリングを行う必要があります。

結果

出力にはアプリが実行時に外部ストレージに書き込んだファイルのリストと、可能であれば、それらの書き込みに使用された API を含む可能性があります。

評価

上記で見つかったファイルが暗号化されておらず、機密データが漏洩している場合、テストケースは不合格です。

これを確認するには、adb シェルを使用 (ホストとデバイス間のデータ転送 (Host-Device Data Transfer)arrow-up-right) してデバイスからそれらを取得し、ファイルを手作業で検査し、アプリをリバースエンジニア (Java コードの逆コンパイル (Decompiling Java Code)arrow-up-right) して、コードを調査 (逆コンパイルした Java コードのレビュー (Reviewing Decompiled Java Code)arrow-up-right) します。

Last updated

Was this helpful?