
mobileAudit v3.2.0
Aplicação Django que realiza SAST e Malware Analysis para APKs Android.
Mobile Audit

MobileAudit - Análise SAST e de Malware para APKs Android
Uma aplicação web Django para realizar análise estática e detectar conteúdo malicioso dentro de APKs Android. O projeto extrai metadados do app, examina o código-fonte em busca de vulnerabilidades e agrega resultados (achados SAST, boas práticas, informações de certificado, strings, bases de dados, arquivos, VirusTotal e muito mais) em um painel navegável e uma API.
Documentação DeepWiki: https://deepwiki.com/mpast/mobileAudit
- Componentes
- Imagens base Docker
- Principais funcionalidades
- Padrões
- Modelos
- Instalação
- API v1
- TLS
- Variáveis de ambiente

Em cada uma das análises, as seguintes informações estarão disponíveis:
- Informações e análise do APK: Informações do aplicativo, informações de segurança, componentes, informações de certificado, strings, bases de dados, arquivos
- Achados SAST categorizados com mapeamento para CWE e Mobile Top 10
- Motor de padrões com regras ativáveis/desativáveis
- Verificação de domínios maliciosos contra MalwareDB & Maltrail
- Consulta ao VirusTotal (API v3) e upload opcional (desativado por padrão)
- Integração com DefectDojo (API v2) (opcional) para exportar achados
- API com Swagger e ReDoc, além de autenticação baseada em token
- Exportação de relatórios de análise para PDF
- Achados editáveis com triagem de falsos positivos

Para fácil acesso, há uma barra lateral na página à esquerda da análise:

Componentes

- db: PostgreSQL 3.11.5
- nginx: Nginx 1.23.3
- rabbitmq: RabbitMQ 3.11.5
- worker: Celery 5.2.2
- web: Aplicação Mobile Audit (Django 3.2.16)
Imagens base Docker
A imagem é baseada em python buster. Link para a imagem no Docker Hub
| Imagem | Tags | Base |
|---|---|---|
| mpast/mobile_audit | 3.0.0 | python:3.9.16-buster |
| mpast/mobile_audit | 2.2.1 | python:3.9.7-buster |
| mpast/mobile_audit | 1.3.8 | python:3.9.4-buster |
| mpast/mobile_audit | 1.0.0 | python:3.9.0-buster |
Principais funcionalidades
- Executa em Docker para implantação fácil e reproduzível
- Extrai e exibe informações detalhadas do APK
- Regras SAST que mapeiam para riscos CWE e Mobile Top 10
- Detecção de indicadores de malware (MalwareDB / Maltrail)
- Pontos de integração para VirusTotal e DefectDojo (opcional)
- Exportação de resultados de análise para PDF
- Autenticação de usuário, gerenciamento e API baseada em token
- Documentação Swagger e ReDoc
- Configuração Nginx pronta para TLS em produção
Planejado / lista de desejos
- Integração LDAP
- Exportação para Markdown / CSV
- Melhorias no recarregamento dinâmico da página (em andamento)
Padrões
- O aplicativo inclui um motor de regras/padrões que detecta potenciais vulnerabilidades e trechos maliciosos dentro de APKs.
- Os padrões são configuráveis e podem ser ativados/desativados a partir da interface
/patterns. - Nota: Alguns padrões codificados são derivados do projeto apkleaks: https://github.com/dwisiswant0/apkleaks

Modelos
A aplicação possui modelos criados para cada uma das entidades das informações das análises, a fim de criar relações e obter as melhores conclusões para cada um dos APKs.

Para ver o esquema completo do modelo, vá para models
Instalação
Usando Docker-compose:
O arquivo docker-compose.yml fornecido permite executar a aplicação localmente em desenvolvimento.
Para construir a imagem local e se houver alterações no Dockerfile da aplicação local, você pode construir a imagem com:
docker-compose build
Em seguida, para iniciar o contêiner, execute:
docker-compose up
Opcional: execute em modo destacado (não veja os logs)
docker-compose up -d
Assim que a aplicação for iniciada, você pode testá-la navegando para: http://localhost:8888/ para acessar o painel.

Além disso, há uma versão TLS usando docker-compose.prod.yaml rodando na porta 443
Para usá-la, execute
docker-compose -f docker-compose.prod.yaml up
Em seguida, você pode testar a aplicação navegando para: https://localhost/ para acessar o painel.
Para mais informações, veja TLS
Para parar e remover os contêineres, execute
docker-compose down
API v1
Integração da API REST com Swagger e ReDoc.
Uso
- Endpoint para autenticar e obter token:
/api/v1/auth-token/

- Uma vez autenticado, use o cabeçalho em todas as requisições:
Authorization: Token <ApiKey>
Swagger

ReDoc

Endpoints
- Uma visualização JSON da especificação da API em
/swagger.json - Uma visualização YAML da especificação da API em
/swagger.yaml - Uma visualização swagger-ui da especificação da API em
/swagger/ - Uma visualização ReDoc da especificação da API em
/redoc/
TLS
Pré-requisitos
- Adicione os certificados em
nginx/ssl - Para gerar um certificado autoassinado:
openssl req -x509 -nodes -days 1 -newkey rsa:4096 -subj "/C=ES/ST=Madrid/L=Madrid/O=Example/OU=IT/CN=localhost" -keyout nginx/ssl/nginx.key -out nginx/ssl/nginx.crt
Configuração do Nginx
- TLS - porta 443:
nginx/app_tls.conf - Padrão - porta 8888:
nginx/app.conf
Configuração do Docker
Por padrão, há um volume em docker-compose.yml com a configuração tendo a porta 8888 disponível
- ./nginx/app.conf:/etc/nginx/conf.d/app.conf
Em um ambiente de produção use docker-compose.prod.yaml com a porta 443
- ./nginx/app_tls.conf:/etc/nginx/conf.d/app_tls.conf
Variáveis de ambiente
Todas as variáveis de ambiente estão em um arquivo .env. Há um .env.example com todas as variáveis necessárias. Também estão reunidas em app/config/settings.py
Ajustes mínimos sugeridos para .env em desenvolvimento local
- Defina SECRET_KEY, credenciais do banco de dados e credenciais do usuário admin.
- Deixe VirusTotal / DefectDojo desativados, a menos que você tenha chaves de API válidas e serviços disponíveis.
Contribuindo
Se você deseja contribuir, veja Contributing