MASTG-TEST-0055: Localizando Dados Sensíveis no Keyboard Cache
Visão Geral¶
Análise Estática¶
- Procure no código-fonte por implementações similares, como:
textObject.autocorrectionType = UITextAutocorrectionTypeNo;
textObject.secureTextEntry = YES;
- Abra arquivos xib e storyboard no
Interface Builderdo Xcode e verifique os estados deSecure Text EntryeCorrectionnoAttributes Inspectorpara o objeto apropriado.
O aplicativo deve evitar o cache de informações sensíveis inseridas em campos de texto. Você pode evitar o cache desativando-o programaticamente, usando a diretiva textObject.autocorrectionType = UITextAutocorrectionTypeNo nos UITextFields, UITextViews e UISearchBars desejados. Para dados que devem ser mascarados, como PINs e senhas, defina textObject.secureTextEntry como YES.
UITextField *textField = [ [ UITextField alloc ] initWithFrame: frame ];
textField.autocorrectionType = UITextAutocorrectionTypeNo;
Análise Dinâmica¶
Se um iPhone com jailbreak estiver disponível, execute os seguintes passos:
- Redefina o cache do teclado do seu dispositivo iOS navegando para
Configurações > Geral > Redefinir > Redefinir Dicionário do Teclado. - Use o aplicativo e identifique as funcionalidades que permitem aos usuários inserir dados sensíveis.
- Recupere o arquivo de cache do teclado com a extensão
.datdo seguinte diretório e seus subdiretórios (que podem ser diferentes para versões do iOS anteriores à 8.0) por Acessando o Shell do Dispositivo:/private/var/mobile/Library/Keyboard/ - Procure por dados sensíveis, como nome de usuário, senhas, endereços de e-mail e números de cartão de crédito. Se os dados sensíveis puderem ser obtidos através do arquivo de cache do teclado, o aplicativo falha neste teste.
UITextField *textField = [ [ UITextField alloc ] initWithFrame: frame ];
textField.autocorrectionType = UITextAutocorrectionTypeNo;
Se você precisar usar um iPhone sem jailbreak:
- Redefina o cache do teclado.
- Digite todos os dados sensíveis.
- Use o aplicativo novamente e determine se o autocorreção sugere as informações sensíveis inseridas anteriormente.