MASTG-TEST-0262: 引用未排除敏感数据的备份配置
概述¶
此测试通过分析应用程序的 AndroidManifest.xml 和备份规则配置文件,验证应用程序是否正确地指示系统从备份中排除敏感文件。
“Android 备份”可以通过 自动备份(Android 6.0(API 级别 23)及更高版本)和 键值备份(Android 2.2(API 级别 8)及更高版本)实现。 自动备份是 Android 推荐的方法,因为它默认启用,无需任何额外工作即可实现。
要在使用自动备份时排除特定文件,开发人员必须在 exclude
标签中显式定义排除规则。
data_extraction_rules.xml
(对于使用android:dataExtractionRules
的 Android 12 及更高版本)backup_rules.xml
(对于使用android:fullBackupContent
的 Android 11 或更低版本)
cloud-backup
和 device-transfer
参数可分别用于从云备份和设备到设备传输中排除文件。
键值备份方法要求开发人员设置 BackupAgent
或 BackupAgentHelper
并指定应备份哪些数据。
无论应用程序使用哪种方法,Android 都提供了一种启动备份守护程序来备份和恢复应用程序文件的方法。 您可以使用此守护程序进行测试,并启动备份过程和恢复应用程序的数据,从而验证从备份中恢复了哪些文件。
步骤¶
- 使用 从 AndroidManifest 获取信息 获取
AndroidManifest.xml
文件。 - 在
AndroidManifest.xml
中搜索allowBackup
标志。 - 在
AndroidManifest.xml
中搜索fullBackupContent
属性(对于 Android 11 或更低版本)或dataExtractionRules
属性(对于 Android 12 及更高版本)。 - 检索
backup_rules.xml
或data_extraction_rules.xml
文件。
观察¶
输出应明确显示
allowBackup
标志是否设置为true
或false
。 如果未指定该标志,则默认将其视为true
。AndroidManifest.xml
中是否存在fullBackupContent
和/或dataExtractionRules
属性。backup_rules.xml
或data_extraction_rules.xml
文件的内容(如果存在)。
评估¶
如果应用程序允许备份敏感数据,则测试失败。 具体来说,如果满足以下条件
AndroidManifest.xml
中的android:allowBackup="true"
- 未在
AndroidManifest.xml
中声明android:fullBackupContent="@xml/backup_rules"
(对于 Android 11 或更低版本) - 未在
AndroidManifest.xml
中声明android:dataExtractionRules="@xml/data_extraction_rules"
(对于 Android 12 及更高版本) backup_rules.xml
或data_extraction_rules.xml
不存在,或者不排除所有敏感文件。