iOS Sensitive data stored in keyboard cache
Données sensibles iOS stockées dans le cache du clavier
Description
iOS stocke presque tous les mots non numériques dans le cache du clavier. Des informations sensibles telles que les identifiants ou les mots de passe peuvent être compromises si la fonction de correction automatique n'est pas désactivée.
Recommandation
La mise en cache du clavier est causée par le protocole UITextInputTraits pris en charge par UITextField, UITextView et UISearchBar.
Pour éviter que la mise en cache du clavier ne divulgue des saisies dans des champs sensibles, considérez les points suivants :
autocorrectionTypedétermine si la correction automatique est activée lors de la frappe. La valeur par défaut de cette propriété estUITextAutocorrectionTypeDefault, ce qui active la correction automatique pour la plupart des méthodes de saisie.
let textField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40))
textField.autocorrectionType = .no // Disable autocorrection
isSecureTextEntrydétermine si la copie et la mise en cache du texte sont désactivées, et masque le texte en cours de saisie pourUITextField. La valeur par défaut de cette propriété estNO.
let textField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 40))
textField.isSecureTextEntry = true // Enable secure text entry
Liens
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
- OWASP: Finding Sensitive Data in Keyboard Cache
Normes
- 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