Conheça 2 ferramentas úteis de análise de vulnerabilidades em Android
Olá, Androiders! Pegando carona com o cenário atual de ataques cibernéticos cada vez mais frequentes e, principalmente, atingindo em cheio empresas grandes e entidades governamentais, trago um conteúdo bem interessante e didático sobre duas ferramentas fortes que nos ajudam a detectar potenciais problemas em nossas aplicações, estou falando das ferramentas: Quick Android Review Kit (QARK) desenvolvida pelo próprio time da rede social LinkedIn e Mobile Security Framework (MobSF), que inclusive não se limita à aplicação nativa Android (aborda também iOS e Windows).
A intenção deste conteúdo é mostrar a utilização deste artifício e o resultado gerado por cada um, utilizando uma aplicação exemplo que é a goatdroid, disponível no próprio diretório da QARK. Ambos os frameworks geram, no final da sua execução, um dashboard em html para a exibição da análise e os pontos de atenção no seu app (prática insegura, vulnerabilidade, nível etc). Então, sem delongas, vamos iniciar!
Utilizando o QARK
O QARK se limita à plataforma Android, porém é uma ferramenta fortíssima. Gera um conteúdo HTML bem informativo com um dashboard e explicação das vulnerabilidades. O diferencial dessa ferramenta é a possibilidade de, após a análise feita pela ferramenta, analisar com a mão na massa a potencial vulnerabilidade.
O próprio QARK gera um APK de análise que permite a visualização dos tópicos de atenção e executar isto na aplicação direto pelo device. Então por exemplo, se quiser analisar se um provider ser vulnerável, ele vai dizer o motivo, permitirá a execução daquele provider, e caso precise de argumentos para inicializá-lo, o app gerado também contará com EditTexts para pra inserí-los e então chamar esse provider efetivamente.
Eu utilizei o Docker Desktop para criar um container e executar o QARK a partir dele. Baixei o QARK a partir do Docker Hub e iniciei o processo. O print abaixo mostra a tela inicial dele e exibe então as possibilidades iniciais para executar sua análise.
O usuário pode fornecer tanto o APK de uma aplicação (seja no seu desktop ou em um device) quanto o caminho de um projeto Android decompilado ou não. Depois de fornecida a aplicação ou o projeto, o QARK se encarregará de fazer todo o processo de decompilação e análise do código. Quando ele concluir a análise, perguntará também se você gostaria de incluir uma análise estática no código da aplicação. Fica ao critério do usuário querer ou não esta análise.
Depois de concluído o processo, você terá um dashboard disponível em HTML para acesso do resultado da análise. Você também terá a opção de gerar este APK da análise desenvolvida pela QARK ao terminar o processo.
No dashboard gerado, o menu lateral permite a navegação fácil entre as categorias analisadas, bem como a explicação de cada tópico e sua classificação mediante o nível de atenção.
Utilizando o MobSF
O MobSF gera um relatório detalhadíssimo sobre vulnerabilidades e possíveis focos de ataque na aplicação analisada, além de ser ótimo para aprendizado e entender o motivo do tópico levantado pelo framework, ser uma prática insegura.
Um dos diferenciais desta ferramenta é, além de exibir a nível de risco do foco da vulnerabilidade, apresentar em qual categoria este tópico se enquadra no TOP 10 mobile da comunidade OWASP. Esta informação é valiosa e embasa ainda mais a urgência para a refatoração do código.
Usei o Docker Desktop para inicializar a ferramenta a partir do Docker Hub e ao dar start, ela cria uma página html a partir de uma porta definida (geralmente localhost:8000). Ou seja, abrindo seu browser e digitando este caminho, você estará na página inicial da MobSF conforme a imagem abaixo:
A partir disto, basta inserir o seu APK e aguardar a mágica acontecer! Vale salientar que este processo, dependendo da complexidade da sua aplicação, demorará de 10 a 20 minutos para concluire exibir a análise dos resultados. Após a conclusão, exibe-se um dashboard com as informações gerais da aplicação analisada, bem como um resumo das possíveis vulnerabilidades. Também há a possibilidade de resgatar o APK, ver o Manifest da aplicação, e até mesmo retornar o código em formato Smali para os mais íntimos! Segue a tela inicial deste dashboard:
O menu lateral permite que você navegue rapidamente entre os tópicos e veja a análise feita com base no tema escolhido. É uma ferramenta completa e com muitos detalhes para entender o porquê do alerta no determinado código ou classe, por exemplo.
O dashboard também conta com um mapa exibindo a localização geográfica dos servidores que a aplicação utiliza, mapeia todas as strings hardcoded em seu código e das bibliotecas utilizadas por ele e permite que você inicie uma análise dinâmica do projeto analisado.
Resumindo: é uma ferramenta poderosa para estudo de vulnerabilidades em seu código e até mesmo para estudar sobre a área!
Considerações finais
Cada uma dessas ferramentas possuem suas particularidades e isso não significa que uma é melhor que a outra. Cabe o desenvolvedor ou a pessoa que analisar a aplicação entender sua necessidade e verificar qual é o melhor framework para tomar como ponto de partida práticas de segurança no projeto em questão.
Deixo também bem claro que elas não são análises definitivas e, principalmente, não se exime da responsabilidade de um pentester ou desenvolvedor para analisar ponto a ponto do que foi gerado.
Tenho certeza que, ao começar a manipular essas ferramentas de segurança, você compreenderá a importância do desenvolvimento de códigos mais seguros e pensará em programação com uma ótica distinta e atual.
É mandatório hoje em dia com tantas falhas e vulnerabilidades que os profissionais envolvidos no desenvolvimento de aplicações, seja o próprio desenvolvedor ou a gestão do projeto, tenham ciência da importância de manter tudo atualizado e protegido.
Negligenciar isto pode prejudicar sua empresa com prejuízos que podem ocorrer desde a legislação vigente (ex: LGPD) até danos estruturais.
Espero que o conteúdo tenha servido para se aperfeiçoar na área de segurança – mais precisamente no desenvolvimento seguro de aplicações Android – ou para te deixar mais curioso(a) sobre este mundo que se demonstra cada vez mais fundamental para uma empresa e usuários de smartphones.