
Application Django qui effectue une analyse SAST et une analyse de malwares pour les APK Android.
Analyse de sécurité pour les APK Android, du téléversement à des résultats exploitables.
Mobile Audit est une application Django destinée aux tests de sécurité statique des applications et à l'inspection des logiciels malveillants. Elle extrait les métadonnées des APK, détecte les schémas d'implémentation à risque, organise les résultats par gravité et fournit un espace de travail dédié à la revue et au reporting.

Docker Compose exécute l'ensemble de la pile locale : Django, PostgreSQL, RabbitMQ, Celery et Nginx.
docker compose build
docker compose up
Ouvrez http://localhost:8888 lorsque les services sont prêts.
Pour exécuter en arrière-plan ou arrêter la pile :
docker compose up -d
docker compose down
Avant d'utiliser Mobile Audit en dehors d'un environnement local, remplacez le secret d'exemple, les identifiants de base de données et les identifiants administrateur dans .env.example.
| Domaine | Ce que Mobile Audit fournit |
|---|---|
| Inspection des APK | Métadonnées de l'application, composants, permissions, certificats, chaînes, bases de données et fichiers |
| Analyse statique | Règles SAST configurables avec correspondances CWE et Mobile Top 10 |
| Vérifications de logiciels malveillants | Vérifications de domaines via les sources MalwareDB et Maltrail |
| Gestion des résultats | Résumés par gravité, preuves détaillées, édition et tri des faux positifs |
| Intégrations | Inspection VirusTotal en option et export DefectDojo |
| Reporting | Exports PDF ainsi qu'une API REST authentifiée par jeton |
Consultez l'historique des analyses d'une application et comparez l'évolution du nombre de résultats entre les versions d'APK.

Passez du résumé de sécurité aux métadonnées de l'application, permissions, composants, résultats, certificats, chaînes, fichiers et bases de données.

L'interface utilise Bootstrap 5 et du JavaScript natif. La navigation, le filtrage de tableaux en direct, le tri, la pagination, les confirmations et les mises à jour du statut des scans ne nécessitent pas jQuery.
Les règles d'analyse peuvent être activées ou désactivées depuis l'écran Patterns. Certains motifs codés en dur sont dérivés de apkleaks.

| Service | Responsabilité |
|---|---|
| Django 5.2 LTS | Application web et API REST |
| PostgreSQL 16 | Données persistantes de l'application |
| Celery | Analyse des APK en arrière-plan |
| RabbitMQ 4.2 | Courtier de tâches |
| Nginx | Point d'entrée HTTP ou TLS |
L'environnement d'exécution de l'application utilise Python 3.12. La décompilation des APK est assurée par JADX.
Demandez un jeton :
POST /api/v1/auth-token/
Authentifiez les requêtes suivantes :
Authorization: Token <api-key>
| Documentation | Chemin |
|---|---|
| Swagger UI | /swagger/ |
| ReDoc | /redoc/ |
| OpenAPI JSON | /swagger.json |
| OpenAPI YAML | /swagger.yaml |
Les fonctionnalités suivantes sont désactivées par défaut et se configurent via .env.example :
N'activez que les services pour lesquels vous disposez d'endpoints et d'identifiants valides.
Placez le certificat et la clé privée dans nginx/ssl, puis démarrez la configuration TLS :
docker compose -f docker-compose.prod.yaml up -d
L'application sera disponible à l'adresse https://localhost.
Pour des tests locaux, générez un certificat auto-signé d'un jour :
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