跳过内容

MASTG-TEST-0215: 敏感数据未从备份中排除

概述

此测试验证您的应用是否正确地指示系统从备份中排除敏感文件。

应用容器的 /tmp/Library/Caches 子目录中的文件将从 iCloud 备份中排除。 对于应用程序容器内任何其他位置的文件和目录,iOS 提供了 isExcludedFromBackup API,以指导系统不要备份给定的文件或目录。 但是,此 API 不保证实际排除

isExcludedFromBackup 资源值仅用于向系统提供关于可以排除哪些文件和目录的指导;它不是保证这些项目永远不会出现在备份或恢复设备上的机制。”

因此,正确保护文件免受备份的唯一方法是加密它们。

步骤

  1. 运行静态分析工具,例如 radare2 for iOS在应用二进制文件上,或使用动态分析工具,例如 Frida for iOS,并查找 isExcludedFromBackup API 的使用情况。

观察

输出应包含使用 isExcludedFromBackup 的函数的反汇编代码,如果可能,还应包含受影响的文件列表。

评估

如果在源代码中发现 isExcludedFromBackup 的使用,并且任何受影响的文件都可以被认为是敏感文件,则测试用例将失败。

对于找到的敏感文件,除了使用 isExcludedFromBackup 之外,请务必对其进行加密,因为 isExcludedFromBackup 不保证排除。

演示

MASTG-DEMO-0019: 使用 r2 的 isExcludedFromBackupKey 用法