iOS Sensitive data stored in keyboard cache
Datos sensibles de iOS almacenados en la caché del teclado
Descripción
iOS almacena casi todas las palabras no numéricas en la caché del teclado. La información sensible, como credenciales o contraseñas, puede verse comprometida si la función de corrección automática no está desactivada.
Recomendación
El almacenamiento en la caché del teclado se debe al protocolo UITextInputTraits compatible con UITextField, UITextView y UISearchBar.
Para evitar que la caché del teclado exponga la entrada de campos sensibles, considere lo siguiente:
autocorrectionTypedetermina si la corrección automática está habilitada durante la escritura. El valor predeterminado de esta propiedad esUITextAutocorrectionTypeDefault, que habilita la corrección automática para la mayoría de los métodos de entrada.
let textField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40))
textField.autocorrectionType = .no // Disable autocorrection
isSecureTextEntrydetermina si la copia y el almacenamiento en caché de texto están desactivados y oculta el texto que se está introduciendo paraUITextField. El valor predeterminado de esta propiedad esNO.
let textField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40))
textField.isSecureTextEntry = true // Enable secure text entry
Enlaces
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
- OWASP: Finding Sensitive Data in Keyboard Cache
Estándares
- OWASP_MASVS_L1:
- MSTG_STORAGE_5
- OWASP_MASVS_L2:
- MSTG_STORAGE_5
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_2
- REQ_3_3
- REQ_3_5
- REQ_6_2
- OWASP_MASVS_v2_1:
- MASVS_STORAGE_1
- MASVS_STORAGE_2
- HIPAA_CONTROLS:
- SECURITY251
- SECURITY212
- SECURITY213