Concrete Logo
Hamburger button

Mobile Security Framework

  • Blog
  • 20 de Fevereiro de 2018

Você já ouviu falar na Mobile Security Framework? É uma ferramenta do MobSF que analisa a APK e verifica a vulnerabilidade dela. Se você quiser saber mais, neste post vou mostrar como funciona, a instalação e como usar, além de como subir uma imagem em Docker e usar REST API, e uma POC em Gitlab CI.

O que é o MobSF?

Como já falei ali em cima, MobSF é uma ferramenta que analisa a APK e verifica a vulnerabilidae dela.
Com ela podemos fazer tanto a análise estática quanto a dinâmica. Na estática, podemos realizar revisão de código, detectar permissão e configurações, verificar ssl overriding, ssl bypass, criptografia fraca, códigos ofuscados, permissões impróprias, segredos codificados, uso indevido de API e armazenamento inseguro de arquivos.

O analisador dinâmico, por sua vez, executa o aplicativo em uma máquina virtual ou em um dispositivo configurado e detecta os problemas em tempo de execução. Uma análise mais aprofundada é feita nos pacotes de rede capturados, tráfego HTTPS desencrito, despejos de aplicativos, registros, relatórios de erros ou falhas, informações de depuração, rastreamento de pilha e os recursos do aplicativo, como definir arquivos, preferências e bancos de dados.

Essa estrutura é altamente escalável e você pode adicionar suas regras personalizadas com facilidade, e no final dos testes você consegue um relatório rápido e limpo. A ferramenta pode ser utilizada tanto para Android e IOS, e suporta o binário (APK e IPA), e códigos-fontes compactados. O MobSF também pode ser usado via API, e vamos mostrar isso daqui a pouquinho.

Primeiros passos

Para funcionar e rodar MobSF com sucesso é só seguir os próximos passos. Vamos lá?

Faça o download do Oracle JDK 1.7 (ou superior) – Java JDK Download
Faça o git clone do repositório do MobSF, no qual estarão alguns scripts que precisam ser executados. Depois disso, entre no repositório.

Faça a instalação do Python (2.7 ou superior), pois os scripts são em Python, e rode o comando abaixo para que as dependências possam ser instaladas:

O comando a seguir permite que você rode o MobSF:

Ao executar esse comando ele vai gerar um Token, que sempre será o mesmo em qualquer máquina que ele estiver. Ele vai ser usado para podermos fazer a análise via API, portanto deixa guardado.

MobSF com Docker

Faça a instalação do Docker:

Documentação
Instalação

E agora vamos subir a imagem da ferramenta. Faça o clone do repositório, caso não tenha feito ainda:

Assim que o repositório for clonado entre na pasta dele e execute estes comandos:

ou

REST API

Agora vou mostrar como fazer a análise e gerar o report via API. O comando a seguir faz o upload para o MobSF, que poderá ser visto no browser.

O token é o mesmo que é gerado quando rodamos o MobSF. Quando o comando for executado será gerado um hash (que será diferente para cada APK/IPA), que também tem que ser guardado para que possamos utilizar para fazer o scan e report. Para fazer o scan do apk o comando é este:

Por fim, mas não menos importante, para gerar o report:

POC do MobSF com GitlabCI

Antes de entrar neste tópico, acesse este post para saber como colocar o Gitlab CI pra rodar.

Foram criados três jobs, e para cada um deles foi feito um script para acessar a API. O primeiro passo é configurar as variáveis que serão utilizadas, neste caso o Token e a url do MobSF. Para isso, siga os passos:

Projects >> Settings >> Pipelines >> Add new variable

Para iniciar o YAML:

Jobs

Aqui tem as configurações do job para que o upload do arquivo para o MobSF seja feito:

E aqui está o script para fazer o upload da APK para o MobSF via API:

Scan

O job para fazer o scan do APK:

Este script faz o scan do APK que foi feito upload no job anterior:

Report

Por último, vamos gerar o report por meio do scan que foi feito no job anterior:

Script para gerar o report do scan, que também é feito via API:

Para finalizar, os scripts e o yaml do seu repositório têm que ficar assim:

Lembrando que a APK está no repositório do próprio MobSF (Mobile-Security-Framework-MobSF/StaticAnalyzer/test_files).

E se você quiser saber mais, aqui tem a documentação completa do MobSF:

Documentação
REST API
Docker
Repositório MobSF

E é isso! Dúvidas e sugestões são muito bem-vindas, só usar os campos abaixo. 😄 Até a próxima! 👋

Quer trabalhar com DevOps de verdade? Acesse aqui.