MASTG-TEST-0201 外部ストレージにアクセスするための API の実行時使用 (Runtime Use of APIs to Access External Storage)
概要
Android アプリは 外部ストレージにアクセスするのにさまざまな API を使用します。これらの API の包括的なリストを収集するのは、特にアプリがサードパーティフレームワークを使用したり、実行時にコードをロードしたり、ネイティブコードを含む場合、困難なことがあります。デバイスストレージに書き込むアプリケーションをテストする最も効率的なアプローチは、通常、動的解析、具体的にはメソッドトレース (メソッドトレース (Method Tracing)) です。
手順
Frida for Android がインストールされていることを確認します。
アプリをインストールします。
スクリプトを実行して、Frida でアプリを起動し、ファイルとのすべてのやり取りをログ記録します。
解析したいアプリの画面に遷移します。
アプリを閉じて Frida を停止します。
Frida スクリプトは getExternalStorageDirectory
, getExternalStoragePublicDirectory
, getExternalFilesDir
, FileOutPutStream
などの関連する API にフックして、すべてのファイル操作をログ記録する必要があります。また open
をファイル操作の包括的なものとして使用することもできます。しかし、MediaStore
API を使用するものなど、すべてのファイル操作を捕捉するわけではなく、大量のノイズが発生する可能性があるため、追加のフィルタリングを行う必要があります。
結果
出力にはアプリが実行時に外部ストレージに書き込んだファイルのリストと、可能であれば、それらの書き込みに使用された API を含む可能性があります。
評価
上記で見つかったファイルが暗号化されておらず、機密データが漏洩している場合、テストケースは不合格です。
これを確認するには、adb シェルを使用 (ホストとデバイス間のデータ転送 (Host-Device Data Transfer)) してデバイスからそれらを取得し、ファイルを手作業で検査し、アプリをリバースエンジニア (Java コードの逆コンパイル (Decompiling Java Code)) して、コードを調査 (逆コンパイルした Java コードのレビュー (Reviewing Decompiled Java Code)) します。
Last updated
Was this helpful?