跳过内容

MASTG-TEST-0201: 运行时使用 API 访问外部存储

概述

Android 应用使用各种 API 来访问外部存储。收集这些 API 的完整列表可能具有挑战性,尤其是在应用使用第三方框架、在运行时加载代码或包含本机代码时。测试写入设备存储的应用程序最有效的方法通常是动态分析,特别是方法跟踪( 方法跟踪)。

步骤

  1. 请确保已安装 用于 Android 的 Frida
  2. 安装应用。
  3. 执行脚本以使用 Frida 启动应用并记录与文件的所有交互。
  4. 导航到要分析的应用屏幕。
  5. 关闭应用以停止 Frida。

Frida 脚本应通过挂钩到相关 API(例如 getExternalStorageDirectorygetExternalStoragePublicDirectorygetExternalFilesDirFileOutPutStream)来记录所有文件交互。您也可以使用 open 作为文件交互的通用捕获。但是,这不会捕获所有文件交互,例如那些使用 MediaStore API 的交互,应使用额外的过滤来完成,因为它会产生很多噪音。

观察

输出应包含应用在执行期间写入外部存储的文件列表,如果可能,还应包含用于写入它们的 API。

评估

如果上面找到的文件未加密且泄露敏感数据,则测试用例失败。

为了确认这一点,您可以使用 adb shell( 主机-设备数据传输)手动检查这些文件以从设备检索它们,并对应用进行逆向工程( 反编译 Java 代码)并检查代码( 审查反编译的 Java 代码)。

演示

MASTG-DEMO-0002:使用 Frida 跟踪外部存储 API