
mobileAudit v3.2.0
Приложение на Django, выполняющее SAST и анализ вредоносного ПО для Android APK.
Mobile Audit

MobileAudit — SAST-анализ и анализ вредоносного ПО для Android APK
Веб-приложение на Django для статического анализа и обнаружения вредоносного содержимого в APK-файлах Android. Проект извлекает метаданные приложения, сканирует исходный код на уязвимости и агрегирует результаты (находки SAST, лучшие практики, информация о сертификатах, строки, базы данных, файлы, VirusTotal и другое) в обозреваемую панель управления и API.
Документация DeepWiki: https://deepwiki.com/mpast/mobileAudit
- Компоненты
- Базовые образы Docker
- Основные возможности
- Паттерны
- Модели
- Установка
- API v1
- TLS
- Переменные окружения

В каждом сканировании будет следующая информация:
- Информация и анализ APK: сведения о приложении, информация о безопасности, компоненты, информация о сертификатах, строки, базы данных, файлы
- Результаты SAST с привязкой к CWE и Mobile Top 10
- Движок правил с переключаемыми паттернами
- Проверка доменов вредоносного ПО через MalwareDB и Maltrail
- Поиск в VirusTotal (API v3) и опциональная загрузка (отключено по умолчанию)
- Интеграция с DefectDojo (API v2) (опционально) для экспорта находок
- API со Swagger и ReDoc, а также аутентификация по токенам
- Экспорт отчетов сканирования в PDF
- Редактируемые находки с триажем ложных срабатываний

Для быстрого доступа на левой панели сканирования есть боковое меню:

Компоненты

- db: PostgreSQL 3.11.5
- nginx: Nginx 1.23.3
- rabbitmq: RabbitMQ 3.11.5
- worker: Celery 5.2.2
- web: Приложение Mobile Audit (Django 3.2.16)
Базовые образы Docker
Образ основан на python buster. Ссылка на Docker Hub image
| Изображение | Теги | Основа |
|---|---|---|
| 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 |
Основные возможности
- Запуск в Docker для простого и воспроизводимого развертывания
- Извлечение и отображение подробной информации об APK
- Правила SAST, сопоставленные с CWE и рисками Mobile Top 10
- Обнаружение индикаторов вредоносного ПО (MalwareDB / Maltrail)
- Точки интеграции с VirusTotal и DefectDojo (опционально)
- Экспорт результатов сканирования в PDF
- Аутентификация пользователей, управление и API на основе токенов
- Документация Swagger и ReDoc
- Конфигурация Nginx с поддержкой TLS для продакшена
В планах / список желаемого
- Интеграция LDAP
- Экспорт в Markdown / CSV
- Улучшения динамической перезагрузки страниц (в разработке)
Паттерны
- Приложение включает движок правил/паттернов, который обнаруживает потенциальные уязвимости и вредоносные фрагменты внутри APK.
- Паттерны настраиваемы и могут быть включены/отключены через интерфейс
/patterns. - Примечание: Некоторые жестко заданные паттерны взяты из проекта apkleaks: https://github.com/dwisiswant0/apkleaks

Модели
В приложении созданы модели для каждой сущности информации сканирования, чтобы можно было создавать связи и получать наилучшие выводы для каждого APK.

Чтобы увидеть полную схему модели, перейдите к models
Установка
Использование Docker-compose:
Предоставленный файл docker-compose.yml позволяет запустить приложение локально в режиме разработки.
Чтобы собрать локальный образ, и если есть изменения в локальном Dockerfile приложения, можно собрать образ с помощью:
docker-compose build
Затем для запуска контейнера выполните:
docker-compose up
Опционально: запуск в detached-режиме (без просмотра логов)
docker-compose up -d
После запуска приложения вы можете проверить его, перейдя по адресу: http://localhost:8888/ для доступа к панели управления.

Также существует TLS-версия с использованием docker-compose.prod.yaml, работающая на порту 443
Чтобы использовать её, выполните
docker-compose -f docker-compose.prod.yaml up
Затем вы можете проверить приложение, перейдя по адресу: https://localhost/ для доступа к панели управления.
Для получения дополнительной информации см. TLS
Чтобы остановить и удалить контейнеры, выполните
docker-compose down
API v1
REST API с интеграцией Swagger и ReDoc.
Использование
- Эндпоинт для аутентификации и получения токена:
/api/v1/auth-token/

- После аутентификации используйте заголовок во всех запросах:
Authorization: Token <ApiKey>
Swagger

ReDoc

Эндпоинты
- JSON-представление спецификации API по адресу
/swagger.json - YAML-представление спецификации API по адресу
/swagger.yaml - swagger-ui представление спецификации API по адресу
/swagger/ - ReDoc представление спецификации API по адресу
/redoc/
TLS
Предварительные требования
- Поместите сертификаты в
nginx/ssl - Для генерации самоподписанного сертификата:
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
- TLS - порт 443:
nginx/app_tls.conf - Стандартный - порт 8888:
nginx/app.conf
Конфигурация Docker
По умолчанию в docker-compose.yml есть том с конфигурацией на порту 8888
- ./nginx/app.conf:/etc/nginx/conf.d/app.conf
В производственной среде используйте docker-compose.prod.yaml с портом 443
- ./nginx/app_tls.conf:/etc/nginx/conf.d/app_tls.conf
Переменные окружения
Все переменные окружения находятся в файле .env, есть файл .env.example со всеми необходимыми переменными. Также они собраны в app/config/settings.py
Рекомендуемые минимальные настройки .env для локальной разработки:
- Установите SECRET_KEY, учетные данные БД и учетные данные администратора.
- Оставьте VirusTotal / DefectDojo отключенными, если у вас нет действительных ключей API и доступных служб.
Участие в разработке
Если вы хотите внести вклад, см. Contributing