Análise estática de aplicativos móveis



Um dos estágios do teste de um aplicativo móvel é uma análise estática. A análise estática do aplicativo é a análise do aplicativo sem executar nenhuma função do aplicativo. O mais conveniente para mim em estruturas de código aberto é o MobSF. Quem se importa, bem-vindo ao gato.

O MobSF realiza análise estática de aplicativos: Android, Apple iOS e Windows Phone e análise dinâmica: somente aplicativos Android. Vou explicar como realizar análises dinâmicas no próximo artigo dedicado ao MobSF. Uma descrição mais detalhada e manual de instalação podem ser encontrados aqui .

Após a instalação do MobSF, executaremos o seguinte arquivo em lotes para iniciar o servidor (escrevi por mim mesmo, portanto, a unidade D).

d: cd .\MobSF\ python .\manage.py runserver 

Em seguida, você precisa ir para o endereço http [:] // 127.0.0.1:8000 e a página principal é aberta (Fig. 1). Não há muito funcional aqui:

  • upload de arquivo;
  • visualizar relatórios sobre verificações anteriores;
  • Mudar para documentação da API
  • transição para o projeto github.


Fig. 1. A página principal

Após o download e a análise do arquivo, é exibida uma página com o resultado da análise (Fig. 2). À esquerda, há um menu que permite saltar rapidamente pela página (o resultado é volumoso simplesmente). Que informações úteis há nesta captura de tela:

  • quantidade de hash do aplicativo
  • Versões suportadas do sistema operacional Android
  • o número e os tipos de componentes (exportados ou não), isso é importante, pois os componentes exportados podem levar a vulnerabilidades críticas;
  • a capacidade de visualizar e baixar arquivos java e smali que podem ser analisados ​​com outras ferramentas ou manualmente;
  • veja o arquivo de manifesto para análise.


Fig. 2. O resultado da análise

Nós vamos além. Na fig. A Figura 3 mostra as informações do certificado pelas quais o aplicativo foi assinado.


Fig. 3. Informações do certificado

A seguir, é apresentada uma descrição da análise de permissões, descrita no arquivo AndroidManifest.xml (Fig. 4). O MobSF analisa as permissões do aplicativo, determina seu status, quanto à criticidade e descrição das permissões. Aqui você precisa entender a arquitetura do sistema operacional Android para obter a real crítica do aplicativo.


Fig. 4. Análise de permissões do Android

A guia Security Analysis -> Code Analysis (Fig. 5) mostra o resultado da análise de código java por um analisador estático que identifica possíveis vulnerabilidades, determina sua gravidade e os arquivos nos quais esse tipo de vulnerabilidade foi encontrado. De muitas maneiras, esses resultados são falsos positivos, mas você deve verificar isso duas vezes.


Fig. 5. Análise de código

A próxima guia (Fig. 6) é a análise de arquivos no serviço virustotal.com. Nesse caso, o arquivo não foi detectado como infectado.


Fig. 6. Análise de Arquivo

A guia URLs (Figura 7) exibe uma lista de URLs, endereços IP e arquivos nos quais eles são armazenados ou chamados. Esta seção analisa para onde o aplicativo envia dados ou para onde armazena informações.


Fig. 7. URLs da guia

A guia "Strings" (Fig. 8) analisa os arquivos de texto que estão no diretório res. Ao analisar o aplicativo, esses arquivos podem conter contas codificadas e outros dados confidenciais. Embora na minha memória isso não fosse.


Fig. 8. Análise de arquivos de texto

A guia "Componentes" (Fig. 9) exibe uma lista completa de componentes (atividade, serviço, provedor de conteúdo e recebimento), bibliotecas e arquivos importados sem definir uma extensão.


Fig. 9. Lista de componentes

Além disso, a análise do código-fonte pode ser realizada usando o analisador estático do scanner VCG. O VCG precisa do código fonte. O código-fonte pode ser baixado através do botão Download Java Code (Fig. 10). O arquivo é baixado em um arquivo ZIP. Em seguida, você precisa extrair a pasta com os arquivos do arquivo morto (Fig. 11).


Fig. 10. Baixando o código fonte


Fig. 11. Extraindo o código fonte

A digitalização do código-fonte é feita da seguinte maneira:

  1. Na guia "Configurações", selecione "Java" - Figura 12.
  2. Na guia "Arquivo", selecione "Novo diretório de destino" - Figura 13.
  3. Na guia "Digitalizar", selecione "Verificação completa" - Figura 14.


Fig. 12. Seleção do código fonte


Fig. 13. Fazendo Upload de um Diretório com Arquivos


Fig. 14. Iniciar verificação

Após a conclusão da verificação, o scanner exibe os nomes da vulnerabilidade, sua criticidade, uma breve descrição e local no código-fonte (Fig. 15). Você pode obter uma lista completa de vulnerabilidades e classificá-las por criticidade (Fig. 16).


Fig. 15. Descrição das vulnerabilidades


Fig. 16. A lista completa de vulnerabilidades

Conclusão

A análise estática do aplicativo e do código-fonte fornece conceitos básicos sobre a arquitetura do aplicativo e possíveis vetores de ataque. De acordo com a metodologia utilizada pelo ByteCode, é a partir dele que começa a análise de quaisquer aplicativos do cliente que chegou ao pentest.

Source: https://habr.com/ru/post/pt429252/


All Articles