
mobileAudit v3.2.0
Django 应用程序,用于对 Android APK 执行 SAST 和恶意软件分析。
Mobile Audit

MobileAudit - Android移动APK的SAST与恶意软件分析
一个Django Web应用程序,用于对Android APK进行静态分析并检测恶意内容。该项目提取应用元数据,扫描源代码中的弱点,并将结果(SAST发现、最佳实践、证书信息、字符串、数据库、文件、VirusTotal等)聚合到可浏览的仪表盘和API中。
DeepWiki文档:https://deepwiki.com/mpast/mobileAudit

每次扫描都会包含以下信息:
- APK信息与分析:应用信息、安全信息、组件、证书信息、字符串、数据库、文件
- SAST发现,按CWE和Mobile Top 10映射分类
- 带有可切换规则的模式引擎
- 针对MalwareDB和Maltrail的恶意软件域名检查
- VirusTotal (API v3) 查找与可选上传(默认禁用)
- DefectDojo集成(API v2,可选)用于导出发现
- 支持Swagger和ReDoc的API,以及基于令牌的身份验证
- 将扫描报告导出为PDF
- 可编辑的发现,用于误报分类

为了方便访问,扫描页面左侧有一个侧边栏:

组件

- 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基础镜像
镜像基于Python buster。链接到Docker Hub镜像
| 镜像 | 标签 | 基础 |
|---|---|---|
| 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文档
- 支持生产环境的TLS Nginx配置
计划/愿望清单
- LDAP集成
- 导出为Markdown / CSV
- 动态页面重新加载改进(进行中)
模式
- 该应用包含一个规则/模式引擎,用于检测APK内的潜在漏洞和恶意代码片段。
- 模式可配置,并可从
/patternsUI启用/禁用。 - 注意:部分硬编码模式源自apkleaks项目:https://github.com/dwisiswant0/apkleaks

模型
应用程序为扫描信息的每个实体创建了模型,以便能够建立关系并对每个APK获得最佳结论。

要查看完整的模型架构,请转到models
安装
使用Docker-compose:
提供的docker-compose.yml文件允许你在本地开发环境中运行该应用。
要构建本地镜像,并且如果本地Application Dockerfile有更改,你可以使用以下命令构建镜像:
docker-compose build
然后,启动容器:
docker-compose up
可选:以分离模式运行(不查看日志)
docker-compose up -d
应用启动后,你可以通过导航到 http://localhost:8888/ 来测试应用,以访问仪表盘。

另外,还有一个使用docker-compose.prod.yaml的TLS版本,运行在443端口
要使用它,执行
docker-compose -f docker-compose.prod.yaml up
然后,你可以通过导航到 https://localhost/ 来测试应用,以访问仪表盘。
更多信息,请参见TLS
要停止并移除容器,运行
docker-compose down
API v1
与Swagger和ReDoc的REST API集成。
使用
- 用于认证并获取令牌的端点:
/api/v1/auth-token/

- 认证后,在所有请求中使用头:
Authorization: Token <ApiKey>
Swagger

ReDoc

端点
- API规范的JSON视图位于
/swagger.json - API规范的YAML视图位于
/swagger.yaml - API规范的Swagger UI视图位于
/swagger/ - API规范的ReDoc视图位于
/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、数据库凭据和管理员用户凭据。
- 除非你有有效的API密钥和可用的服务,否则保持VirusTotal / DefectDojo禁用。
贡献
如果你愿意贡献,请参见贡献指南