
mobileAudit v3.2.0
Django-Anwendung, die SAST und Malware-Analyse für Android-APKs durchführt.
Mobile Audit

MobileAudit – SAST und Malware-Analyse für Android-Mobil-APKs
Eine Django-Webanwendung zur statischen Analyse und Erkennung von bösartigem Inhalt in Android-APKs. Das Projekt extrahiert App-Metadaten, scannt Quellcode auf Schwachstellen und fasst Ergebnisse (SAST-Funde, Best Practices, Zertifikatsinformationen, Strings, Datenbanken, Dateien, VirusTotal und mehr) in einem durchsuchbaren Dashboard und einer API zusammen.
DeepWiki-Dokumentation: https://deepwiki.com/mpast/mobileAudit
- Komponenten
- Docker-Basisimages
- Hauptfunktionen
- Muster
- Modelle
- Installation
- API v1
- TLS
- Umgebungsvariablen

Bei jedem Scan sind folgende Informationen enthalten:
- APK-Informationen und -Analyse: App-Informationen, Sicherheitsinformationen, Komponenten, Zertifikatsinformationen, Strings, Datenbanken, Dateien
- SAST-Funde, kategorisiert mit CWE- und Mobile-Top-10-Zuordnung
- Muster-Engine mit umschaltbaren Regeln
- Malware-Domain-Prüfungen gegen MalwareDB & Maltrail
- VirusTotal (API v3)-Lookup & optionaler Upload (standardmäßig deaktiviert)
- DefectDojo-Integration (API v2) (optional) zum Exportieren von Ergebnissen
- API mit Swagger und ReDoc sowie tokenbasierter Authentifizierung
- Export von Scanberichten als PDF
- Ergebnisse bearbeitbar mit False-Positive-Triage

Für den schnellen Zugriff gibt es eine Seitenleiste auf der linken Seite des Scans:

Komponenten

- db: PostgreSQL 3.11.5
- nginx: Nginx 1.23.3
- rabbitmq: RabbitMQ 3.11.5
- worker: Celery 5.2.2
- web: Mobile Audit App (Django 3.2.16)
Docker-Basisimages
Das Image basiert auf Python Buster. Link zum Docker Hub-Image
| Image | Tags | Basis |
|---|---|---|
| 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 |
Hauptfunktionen
- Läuft in Docker für einfache, reproduzierbare Bereitstellung
- Extrahiert und zeigt detaillierte APK-Informationen an
- SAST-Regeln, die auf CWE und Mobile Top 10-Risiken abbilden
- Erkennung von Malware-Indikatoren (MalwareDB / Maltrail)
- Integrationspunkte für VirusTotal und DefectDojo (optional)
- Export von Scanergebnissen als PDF
- Benutzerauthentifizierung, -verwaltung und tokenbasierte API
- Swagger- und ReDoc-Dokumentation
- TLS-fähige Nginx-Konfiguration für die Produktion
Geplant / Wunschliste
- LDAP-Integration
- Export nach Markdown / CSV
- Verbesserungen beim dynamischen Seiten-Neuladen (in Arbeit)
Muster
- Die App enthält eine Regel-/Muster-Engine, die potenzielle Schwachstellen und bösartige Snippets in APKs erkennt.
- Muster sind konfigurierbar und können über die
/patterns-Oberfläche aktiviert/deaktiviert werden. - Hinweis: Einige fest codierte Muster stammen aus dem Projekt apkleaks: https://github.com/dwisiswant0/apkleaks

Modelle
Die Anwendung hat Modelle für jede der Entitäten der Scaninformationen erstellt, um Beziehungen herzustellen und die besten Schlussfolgerungen für jede der APKs zu erhalten.

Das gesamte Modellschema finden Sie unter Modelle
Installation
Verwendung von Docker-Compose:
Die bereitgestellte docker-compose.yml-Datei ermöglicht es Ihnen, die App lokal in der Entwicklung auszuführen.
Um das lokale Image zu erstellen und wenn es Änderungen am lokalen Application Dockerfile gibt, können Sie das Image mit folgendem Befehl erstellen:
docker-compose build
Um den Container zu starten, führen Sie dann aus:
docker-compose up
Optional: Im Hintergrund ausführen (Logs nicht anzeigen)
docker-compose up -d
Sobald die Anwendung gestartet ist, können Sie sie testen, indem Sie zu http://localhost:8888/ navigieren, um das Dashboard aufzurufen.

Es gibt auch eine TLS-Version mit docker-compose.prod.yaml, die auf Port 443 läuft.
Um sie zu verwenden, führen Sie aus:
docker-compose -f docker-compose.prod.yaml up
Dann können Sie die Anwendung testen, indem Sie zu https://localhost/ navigieren, um das Dashboard aufzurufen.
Weitere Informationen finden Sie unter TLS
Um die Container zu stoppen und zu entfernen, führen Sie aus:
docker-compose down
API v1
REST-API-Integration mit Swagger und ReDoc.
Verwendung
- Endpunkt zur Authentifizierung und zum Abrufen des Tokens:
/api/v1/auth-token/

- Nach der Authentifizierung verwenden Sie den Header in allen Anfragen:
Authorization: Token <ApiKey>
Swagger

ReDoc

Endpunkte
- Eine JSON-Ansicht der API-Spezifikation unter
/swagger.json - Eine YAML-Ansicht der API-Spezifikation unter
/swagger.yaml - Eine Swagger-UI-Ansicht der API-Spezifikation unter
/swagger/ - Eine ReDoc-Ansicht der API-Spezifikation unter
/redoc/
TLS
Voraussetzungen
- Fügen Sie die Zertifikate in
nginx/sslein - So generieren Sie ein selbstsigniertes Zertifikat:
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
Nginx-Konfiguration
- TLS – Port 443:
nginx/app_tls.conf - Standard – Port 8888:
nginx/app.conf
Docker-Konfiguration
Standardmäßig gibt es ein Volume in docker-compose.yml mit der Konfiguration, die Port 8888 bereitstellt:
- ./nginx/app.conf:/etc/nginx/conf.d/app.conf
In einer Produktionsumgebung verwenden Sie docker-compose.prod.yaml mit Port 443:
- ./nginx/app_tls.conf:/etc/nginx/conf.d/app_tls.conf
Umgebungsvariablen
Alle Umgebungsvariablen befinden sich in einer .env-Datei; es gibt eine .env.example mit allen benötigten Variablen. Außerdem sind sie in app/config/settings.py gesammelt.
Empfohlene minimale .env-Anpassungen für die lokale Entwicklung:
- Setzen Sie SECRET_KEY, DB-Anmeldeinformationen und Anmeldeinformationen des Administrators.
- Lassen Sie VirusTotal / DefectDojo deaktiviert, es sei denn, Sie besitzen gültige API-Schlüssel und verfügbare Dienste.
Mitwirken
Wenn Sie einen Beitrag leisten möchten, finden Sie Informationen unter Contributing