跳过内容

MASWE-0004: 敏感数据未从备份中排除

Beta 版内容

此内容处于 beta 版,仍在积极开发中,因此随时可能发生变化(例如结构、ID、内容、URL 等)。

发送反馈

概述

iOS 和 Android 会自动将应用数据备份到云服务中,用户也可以在物理设备上创建本地备份,或者在手机之间切换时,备份会自动在数据传输过程中创建。如果开发者未能正确配置其应用处理备份的方式,并且忽略排除敏感文件,备份中就可能包含敏感的用户和应用数据。在某些情况下,云服务提供商可能无法充分保护这些备份,或者恶意攻击者可能篡改备份文件,从而可能改变应用的行为或窃取机密信息。

影响

  • 修改应用行为:攻击者可以篡改备份中的数据,从而改变应用的逻辑。例如,他们可以修改跟踪高级功能状态的数据库,然后将修改后的备份恢复到设备上。另一个常见情况是在兑换一次性优惠券之前备份设备,之后再恢复备份,这将允许恶意攻击者多次重复使用同一优惠券。
  • 机密性泄露:存储在备份中的敏感数据(例如,个人信息、照片、文档或音频文件)可能被攻击者窃取,导致隐私泄露。
  • 认证材料泄露:攻击者可以窃取密码、加密密钥和会话令牌,以助长其他攻击,例如身份盗窃、账户劫持或未经授权的访问。

引入方式

  • 自动系统备份:默认情况下,iOS 和 Android 在用户首次设置时同意后,会将应用数据备份到云端。
  • 本地备份:用户可以将设备备份到本地系统(例如,笔记本电脑)。如果本地备份未加密存储或处理不当,攻击者可能会篡改这些数据。
  • 设备间传输:在设备之间传输数据(例如,通过 iCloud 或 Google 的设备间迁移工具)使攻击者能够执行类似的攻击。

缓解措施

  • 使用平台特定属性(例如 Android 的 android:allowBackup 或 带有 excludeFromBackupBackupAgent )将敏感文件从备份中排除。在 iOS 上,诸如 NSURLIsExcludedFromBackupKey 等 API 不能保证 从备份中排除。因此,您应该改为加密您的数据。
  • 将敏感数据存储在默认不包含在备份中的位置,例如 iOS 上的 Keychain 或 Library/Caches
  • 在存储敏感数据之前对其进行加密,以确保机密性,即使数据被备份。

测试

MASTG-TEST-0216: 敏感数据未从备份中排除 MASTG-TEST-0262: 备份配置未排除敏感数据的引用 MASTG-TEST-0215: 敏感数据未从备份中排除