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 Entry
和Correction
状态。
应用程序必须防止将敏感信息缓存到文本字段中。您可以通过编程方式禁用缓存,在所需的 UITextFields、UITextViews 和 UISearchBars 中使用 textObject.autocorrectionType = UITextAutocorrectionTypeNo
指令。 对于应该被屏蔽的数据,例如 PIN 和密码,将 textObject.secureTextEntry
设置为 YES
。
UITextField *textField = [ [ UITextField alloc ] initWithFrame: frame ];
textField.autocorrectionType = UITextAutocorrectionTypeNo;
动态分析¶
如果可以使用越狱的 iPhone,请执行以下步骤
- 通过导航到
Settings > General > Reset > Reset Keyboard Dictionary
来重置您的 iOS 设备键盘缓存。 - 使用该应用程序并识别允许用户输入敏感信息的功能。
- 通过 访问设备 Shell,从以下目录及其子目录(对于 8.0 之前的 iOS 版本可能不同)检索扩展名为
.dat
的键盘缓存文件:/private/var/mobile/Library/Keyboard/
- 查找敏感数据,例如用户名、密码、电子邮件地址和信用卡号。如果可以通过键盘缓存文件获取敏感数据,则该应用程序未通过此测试。
UITextField *textField = [ [ UITextField alloc ] initWithFrame: frame ];
textField.autocorrectionType = UITextAutocorrectionTypeNo;
如果您必须使用未越狱的 iPhone
- 重置键盘缓存。
- 键入所有敏感数据。
- 再次使用该应用程序,并确定自动更正是否建议先前输入的敏感信息。