
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 principalApó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áliseNó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 certificadoA 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 AndroidA 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ódigoA 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 ArquivoA 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 guiaA 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 textoA 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 componentesAlé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 fonteA digitalização do código-fonte é feita da seguinte maneira:
- Na guia "Configurações", selecione "Java" - Figura 12.
- Na guia "Arquivo", selecione "Novo diretório de destino" - Figura 13.
- 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çãoApó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 vulnerabilidadesConclusãoA 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.