
Applicazione Django che esegue SAST e Malware Analysis per APK Android
Analisi di sicurezza per APK Android, dal caricamento a risultati concreti.
Mobile Audit è un'applicazione Django per il test di sicurezza statico delle applicazioni e l'ispezione di malware. Estrae i metadati degli APK, rileva pattern di implementazione rischiosi, organizza i risultati per gravità e fornisce uno spazio di lavoro mirato per la revisione e la reportistica.

Docker Compose esegue l'intero stack locale: Django, PostgreSQL, RabbitMQ, Celery e Nginx.
docker compose build
docker compose up
Apri http://localhost:8888 quando i servizi sono pronti.
Per eseguire in background o arrestare lo stack:
docker compose up -d
docker compose down
Prima di utilizzare Mobile Audit al di fuori di un ambiente locale, sostituisci il segreto di esempio, le credenziali del database e le credenziali dell'amministratore in .env.example.
| Area | Cosa offre Mobile Audit |
|---|---|
| Ispezione APK | Metadati dell'applicazione, componenti, permessi, certificati, stringhe, database e file |
| Analisi statica | Regole SAST configurabili con mappature CWE e Mobile Top 10 |
| Controlli malware | Verifiche dei domini tramite le fonti MalwareDB e Maltrail |
| Gestione dei risultati | Riepiloghi per gravità, evidenze dettagliate, modifica e triage dei falsi positivi |
| Integrazioni | Ispezione opzionale con VirusTotal ed esportazione verso DefectDojo |
| Reportistica | Esportazioni PDF e API REST autenticata tramite token |
Esamina la cronologia delle scansioni di un'applicazione e confronta come cambia il numero di risultati tra le versioni dell'APK.

Passa dal riepilogo di sicurezza ai metadati dell'applicazione, permessi, componenti, risultati, certificati, stringhe, file e database.

L'interfaccia utilizza Bootstrap 5 e JavaScript nativo. Navigazione, filtraggio delle tabelle in tempo reale, ordinamento, paginazione, conferme e aggiornamenti dello stato della scansione non richiedono jQuery.
Le regole di analisi possono essere abilitate o disabilitate dalla schermata Patterns. Alcuni pattern hardcoded derivano da apkleaks.

| Servizio | Responsabilità |
|---|---|
| Django 5.2 LTS | Applicazione web e API REST |
| PostgreSQL 16 | Dati persistenti dell'applicazione |
| Celery | Analisi APK in background |
| RabbitMQ 4.2 | Broker delle attività |
| Nginx | Punto di ingresso HTTP o TLS |
Il runtime dell'applicazione utilizza Python 3.12. La decompilazione degli APK è fornita da JADX.
Richiedi un token:
POST /api/v1/auth-token/
Autentica le richieste successive:
Authorization: Token <api-key>
| Documentazione | Percorso |
|---|---|
| Swagger UI | /swagger/ |
| ReDoc | /redoc/ |
| OpenAPI JSON | /swagger.json |
| OpenAPI YAML | /swagger.yaml |
Le seguenti funzionalità sono disabilitate per impostazione predefinita e configurate tramite .env.example:
Abilita solo i servizi per cui disponi di endpoint e credenziali validi.
Posiziona il certificato e la chiave privata in nginx/ssl, quindi avvia la configurazione TLS:
docker compose -f docker-compose.prod.yaml up -d
L'applicazione sarà disponibile all'indirizzo https://localhost.
Per i test locali, genera un certificato autofirmato valido un giorno:
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