Notícias de dispositivos móveis, gadgets, aplicativos Android

Teste de penetra√ß√£o de aplicativos Android ‚Äď Parte 7

Na √ļltima parte, Parte de teste de penetra√ß√£o de aplicativos Android 6 Vimos que as vulnerabilidades foram categorizadas como TOP 10.

REGISTRO INSEGURO – ADB Logcat:

Logcat é uma ferramenta de linha de comando que despeja um log de mensagens do sistema, incluindo rastreamentos de pilha quando o dispositivo gera um erro e mensagens que você escreveu em seu aplicativo com a classe Log.

O Logcat do Android permite que você:

  • Visualize, filtre e colete todos os logs de aplicativos
  • Visualize, filtre e colete todos os logs do sistema, como os eventos do coletor de lixo
  • Recuperar todos os erros inesperados que ocorreram

Às vezes, quando você está fazendo login no aplicativo. Essas credenciais podem ser encontradas nos logs.

Mitiga√ß√£o: adb logcat-c‚ÄĚ (Isso limpa os logs.) Mas certifique-se de que, ao codificar um aplicativo, as credenciais n√£o sejam exibidas nos logs.

Armazenamento externo e interno inseguro

Como já sabemos, todos os dados do aplicativo no dispositivo podem ser encontrados no diretório/data/data e todos os aplicativos (arquivos apk) no dispositivo podem ser encontrados no diretório/data/app.

Quando você tem um dispositivo com root, você pode se aprofundar para ver quais tipos de arquivos estão armazenados nesses diretórios.

Armazenamento interno

O armazenamento interno é outra forma de armazenar dados em aplicativos Android. Os desenvolvedores podem armazenar dados em aplicativos Android localmente de várias maneiras

Exemplos

Preferências compartilhadas, arquivos, cache, bancos de dados SQLite, lib, arquivos de log, armazenamentos de dados binários, armazenamentos de cookies, etc.

Preferências Compartilhadas

“Prefer√™ncias Compartilhadas” permite que um desenvolvedor salve e recupere pares de valores-chave persistentes de tipos de dados primitivos, como booleanos, flutuantes, inteiros, longos e strings.

N√≥s recomendamos:  A Nvidia GeForce Now est√° dispon√≠vel para download no Android [Download]

As preferências compartilhadas são criadas em aplicativos Android usando a classe Shared Preferences.

Sq-lite Bancos de dados

Os bancos de dados sq-lite s√£o bancos de dados leves baseados em arquivos. Eles geralmente t√™m a extens√£o ‚Äú.db‚ÄĚ ou ‚Äú.sq-lite‚ÄĚ. O Android oferece suporte completo para bancos de dados Sq-lite.

Os bancos de dados que criamos no aplicativo estarão acessíveis a qualquer classe do aplicativo. Outros aplicativos não podem acessá-los.

Armazenamento externo

SDCARD √© outro local importante no Android onde podemos armazenar dados associados aos nossos aplicativos. Os arquivos criados no armazenamento externo s√£o leg√≠veis e grav√°veis ‚Äč‚Äčglobalmente.

Como o armazenamento externo pode ser removido pelo usu√°rio e tamb√©m modificado por qualquer aplicativo, voc√™ n√£o deve armazenar informa√ß√Ķes confidenciais usando armazenamento externo.

Mitigação:

  • Para armazenamento local, a API empresarial de administra√ß√£o de dispositivos Android pode ser usada para for√ßar a criptografia em armazenamentos de arquivos locais ‚Äúdefinir criptografia de armazenamento‚ÄĚ
  • Certifique-se de que todas as propriedades de prefer√™ncias compartilhadas sejam NOT_MODE_WORLD_READABLE, a menos que seja explicitamente necess√°rio para o compartilhamento de informa√ß√Ķes entre aplicativos
  • Para armazenamento em CART√ÉO SD, alguma seguran√ßa pode ser alcan√ßada atrav√©s do ‘javax.crypto’ biblioteca.

Comunicação Insegura

Falta de inspeção de certificado: O aplicativo Android não consegue verificar a identidade do certificado apresentado a ele. A maioria dos aplicativos ignora os avisos e aceita qualquer certificado autoassinado apresentado. Alguns aplicativos passam o tráfego por meio de uma conexão HTTP.

Negociação de aperto de mão fraca: O aplicativo e o servidor executam um handshake SSL/TLS, mas usam um conjunto de criptografia inseguro que é vulnerável a ataques MITM. Assim, qualquer invasor pode descriptografar facilmente essa conexão.

Vazamento de informa√ß√Ķes de privacidade: Na maioria das vezes acontece que os aplicativos fazem autentica√ß√£o atrav√©s de um canal seguro, mas descansam todas as conex√Ķes atrav√©s de canais n√£o seguros.

N√≥s recomendamos:  SMS Android: Google aterra Facebook, WhatsApp e Messenger desesperados

Isso não aumenta a segurança do aplicativo porque dados confidenciais, como cookies de sessão ou dados do usuário, podem ser interceptados por um usuário mal-intencionado.

Mitigação:

  • Use certificados assinados por um provedor de CA confi√°vel e considere a fixa√ß√£o de certificados para aplicativos preocupados com a seguran√ßa.
  • Aplicar SSL/TLS para transportar canais que o aplicativo m√≥vel usar√° para transmitir informa√ß√Ķes confidenciais, tokens de sess√£o ou outros dados confidenciais para uma API de back-end ou servi√ßo da web.
  • Estabele√ßa uma conex√£o segura somente ap√≥s verificar a identidade do servidor terminal usando certificados confi√°veis ‚Äč‚Äčna cadeia de chaves.

Outras Partes :