mpast/mobileAudit
GitHub: mpast/mobileAudit
基于 Django 的 Android APK 静态安全分析平台,提供 SAST 漏洞检测、恶意软件分析和病毒扫描集成能力。
Stars: 224 | Forks: 49
## Mobile Audit

**MobileAudit** - 针对 Android 移动 APK 的 SAST 和恶意软件分析
一个基于 Django 的 Web 应用程序,用于执行静态分析并检测 Android APK 内部的恶意内容。该项目提取应用元数据,扫描源代码以查找弱点,并将结果(SAST 发现、最佳实践、证书信息、字符串、数据库、文件、VirusTotal 等)聚合到可浏览的仪表板和 API 中。
DeepWiki 文档:https://deepwiki.com/mpast/mobileAudit
- [组件](#components)
- [Docker 基础镜像](#docker-base-images)
- [主要功能](#main-features)
- [规则模式](#patterns)
- [模型](#models)
- [安装](#installation)
- [API v1](#api-v1)
- [使用](#usage)
- [Swagger](#swagger)
- [ReDoc](#redoc)
- [端点](#endpoints)
- [TLS](#tls)
- [前置条件](#pre-requirements)
- [Nginx 配置](#nginx-configuration)
- [Docker 配置](#docker-configuration)
- [环境变量](#environment-variables)

在每次扫描中,将包含以下信息:
- APK 信息和分析:应用信息、安全信息、组件、证书信息、字符串、数据库、文件
- 映射了 CWE 和 Mobile Top 10 的 SAST 发现分类
- 带有可切换规则的规则引擎
- 针对 MalwareDB 和 Maltrail 的恶意域名检查
- VirusTotal (API v3) 查询及可选上传(默认禁用)
- DefectDojo 集成 (API v2)(可选),用于导出发现
- 带有 Swagger 和 ReDoc 的 API,以及基于 Token 的认证
- 导出扫描报告为 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 镜像](https://hub.docker.com/repository/docker/mpast/mobile_audit)
| Image | Tags | Base |
|--------------------|-------|--------------------- |
| 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 信息
- 映射到 CWE 和 Mobile Top 10 风险的 SAST 规则
- 恶意软件指标检测 (MalwareDB / Maltrail)
- VirusTotal 和 DefectDojo 的集成点(可选)
- 导出扫描结果为 PDF
- 用户认证、管理和基于 Token 的 API
- Swagger 和 ReDoc 文档
- 面向生产环境的 TLS-ready Nginx 配置
计划中 / 愿望清单
- LDAP 集成
- 导出为 Markdown / CSV
- 动态页面重载改进 (WIP)
### 规则模式
- 该应用包含一个规则/模式引擎,用于检测 APK 内部的潜在漏洞和恶意代码片段。
- 模式是可配置的,可以在 `/patterns` UI 中启用/禁用。
- 注意:一些硬编码的模式源自 apkleaks 项目:https://github.com/dwisiswant0/apkleaks

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

要查看完整的模型架构,请访问 [models](app/static/models.png)
### 安装
使用 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](#tls)
要停止并移除容器,运行
```
docker-compose down
```
### API v1
REST API 集成,支持 Swagger 和 ReDoc。
#### 使用
* 用于认证并获取 Token 的端点:
`/api/v1/auth-token/`

* 认证通过后,在所有请求中使用 Header:
`Authorization: Token `
#### 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 禁用。
### 贡献
如果你想做出贡献,请参阅 [贡献](CONTRIBUTING.md)
标签:Android 安全, APK 信息提取, APK 扫描器, Ask搜索, Celery, Cuckoo Sandbox, DAST, DevSecOps, Django, Docker, Nginx, OWASP Top 10, PostgreSQL, Python, ReDoc, REST API, SAST, Swagger, TCP/UDP协议, VirusTotal, Web 应用, 上游代理, 后端开发, 后端开发, 威胁情报, 安全防御评估, 应用安全测试, 开发者工具, 恶意域名检测, 恶意软件分析, 无后门, 测试用例, 盲注攻击, 移动安全审计, 移动应用安全, 网络测绘, 请求拦截, 逆向工具, 错误基检测, 静态代码分析