Skip to content

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 Builder do Xcode e verifique os estados de Secure Text Entry e Correction no Attributes Inspector para 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:

  1. Redefina o cache do teclado do seu dispositivo iOS navegando para Configurações > Geral > Redefinir > Redefinir Dicionário do Teclado.
  2. Use o aplicativo e identifique as funcionalidades que permitem aos usuários inserir dados sensíveis.
  3. Recupere o arquivo de cache do teclado com a extensão .dat do 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/
  4. 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:

  1. Redefina o cache do teclado.
  2. Digite todos os dados sensíveis.
  3. Use o aplicativo novamente e determine se o autocorreção sugere as informações sensíveis inseridas anteriormente.