跳过内容

MASTG-TEST-0055: 在键盘缓存中查找敏感数据

此测试即将更新

此测试目前可使用,但将作为新的 OWASP MASTG v2 指南 的一部分进行全面修订。

请通过提交 PR 来帮助我们:MASTG v1->v2 MASTG-TEST-0055:在键盘缓存中查找敏感数据 (ios)

发送反馈

概述

静态分析

  • 在源代码中搜索类似实现,例如
  textObject.autocorrectionType = UITextAutocorrectionTypeNo;
  textObject.secureTextEntry = YES;
  • 在 Xcode 的 Interface Builder 中打开 xib 和 storyboard 文件,并验证相应对象的 Attributes Inspector 中的 Secure Text EntryCorrection 状态。

应用程序必须防止将敏感信息缓存到文本字段中。您可以通过编程方式禁用缓存,在所需的 UITextFields、UITextViews 和 UISearchBars 中使用 textObject.autocorrectionType = UITextAutocorrectionTypeNo 指令。 对于应该被屏蔽的数据,例如 PIN 和密码,将 textObject.secureTextEntry 设置为 YES

UITextField *textField = [ [ UITextField alloc ] initWithFrame: frame ];
textField.autocorrectionType = UITextAutocorrectionTypeNo;

动态分析

如果可以使用越狱的 iPhone,请执行以下步骤

  1. 通过导航到 Settings > General > Reset > Reset Keyboard Dictionary 来重置您的 iOS 设备键盘缓存。
  2. 使用该应用程序并识别允许用户输入敏感信息的功能。
  3. 通过 访问设备 Shell,从以下目录及其子目录(对于 8.0 之前的 iOS 版本可能不同)检索扩展名为 .dat 的键盘缓存文件:/private/var/mobile/Library/Keyboard/
  4. 查找敏感数据,例如用户名、密码、电子邮件地址和信用卡号。如果可以通过键盘缓存文件获取敏感数据,则该应用程序未通过此测试。
UITextField *textField = [ [ UITextField alloc ] initWithFrame: frame ];
textField.autocorrectionType = UITextAutocorrectionTypeNo;

如果您必须使用未越狱的 iPhone

  1. 重置键盘缓存。
  2. 键入所有敏感数据。
  3. 再次使用该应用程序,并确定自动更正是否建议先前输入的敏感信息。