MASTG-TEST-0201: 运行时使用 API 访问外部存储
概述¶
Android 应用使用各种 API 来访问外部存储。收集这些 API 的完整列表可能具有挑战性,尤其是在应用使用第三方框架、在运行时加载代码或包含本机代码时。测试写入设备存储的应用程序最有效的方法通常是动态分析,特别是方法跟踪( 方法跟踪)。
步骤¶
- 请确保已安装 用于 Android 的 Frida。
- 安装应用。
- 执行脚本以使用 Frida 启动应用并记录与文件的所有交互。
- 导航到要分析的应用屏幕。
- 关闭应用以停止 Frida。
Frida 脚本应通过挂钩到相关 API(例如 getExternalStorageDirectory
、getExternalStoragePublicDirectory
、getExternalFilesDir
或 FileOutPutStream
)来记录所有文件交互。您也可以使用 open
作为文件交互的通用捕获。但是,这不会捕获所有文件交互,例如那些使用 MediaStore
API 的交互,应使用额外的过滤来完成,因为它会产生很多噪音。
观察¶
输出应包含应用在执行期间写入外部存储的文件列表,如果可能,还应包含用于写入它们的 API。
评估¶
如果上面找到的文件未加密且泄露敏感数据,则测试用例失败。
为了确认这一点,您可以使用 adb shell( 主机-设备数据传输)手动检查这些文件以从设备检索它们,并对应用进行逆向工程( 反编译 Java 代码)并检查代码( 审查反编译的 Java 代码)。