RIPJAW1316/NEXAR-MAAS
GitHub: RIPJAW1316/NEXAR-MAAS
基于 FastAPI 和 React 构建的 AI 驱动 Android 恶意软件分析与评估系统,通过静态分析、YARA 扫描、风险评分和本地 LLM 解读将 APK 转化为结构化威胁情报。
Stars: 0 | Forks: 0
NEXAR-MAAS 将 Android APK 转化为结构化的威胁情报。
上传样本。提取指标。评估风险。扫描签名。让本地 LLM 解释其行为。以 JSON 和 PDF 格式导出分析结论。
快速开始
·
演示
·
流水线
·
API
·
结构
## 目标
NEXAR-MAAS,全称为 **Malware Analysis and Assessment System**(恶意软件分析与评估系统),是一个为快速进行 APK 分流而构建的防御性 Android 安全研究平台。
它将经典的静态恶意软件分析技术与 AI 辅助解读以及可视化分析师仪表板结合在一起。该项目默认设计为离线工作,并可选择通过 VirusTotal 进行在线丰富化。
```
APK IN
|
|-- Static APK analysis
|-- Permission and component mapping
|-- IOC, secret, and suspicious API extraction
|-- YARA family signature scanning
|-- Risk scoring
|-- Optional VirusTotal hash intelligence
|-- Optional Frida + ADB dynamic instrumentation
|-- Local LLM threat explanation
|
REPORT OUT: JSON + PDF + Dashboard
```
## 演示
演示视频包含在此代码仓库中:
直接访问文件:[docs/NEXAR-MAAS.mp4](docs/NEXAR-MAAS.mp4)
## 检测内容
| 功能 | NEXAR-MAAS 的检测目标 |
|---|---|
| 危险权限 | SMS、联系人、通话记录、相机、麦克风、位置、overlay、设备管理员、开机持久化 |
| 硬编码 IOC | URL、IP 地址、可疑域名、网络 endpoint |
| 可疑 API | Runtime 执行、动态类加载、发送 SMS、反射、加密、电话访问 |
| 内嵌机密信息 | API 密钥、token、密码、Firebase 密钥、AWS 风格密钥 |
| 混淆 | 短类名、高熵字符串、base64 数据块 |
| Native 代码 | 内置的 `.so` 库 |
| 滥用 Accessibility | 潜在的 overlay/键盘记录工作流 |
| 动态加载 | `DexClassLoader`、`PathClassLoader`、`InMemoryDexClassLoader`、`loadDex` |
| YARA 家族 | 银行木马、间谍软件、勒索软件、RAT、dropper、广告软件 |
| 威胁情报 | 可选的 VirusTotal 哈希查询 |
| Runtime 行为 | 可选的 Frida hook,用于监控网络、文件、SMS、加密、剪贴板、shell 命令以及敏感数据库查询 |
## 分析 Pipeline
```
flowchart LR
A["APK Upload"] --> B["Validation"]
B --> C["Static Analysis"]
C --> D["Risk Engine"]
D --> E["YARA Scan"]
E --> F["Hashing"]
F --> G["VirusTotal Optional"]
G --> H["Local AI Analysis"]
H --> I{"Dynamic Enabled?"}
I -- "No" --> J["PDF + JSON Report"]
I -- "Yes" --> K["ADB + Frida Runtime Hooks"]
K --> J
J --> L["React Dashboard"]
```
### 静态引擎
由 Androguard 驱动,并提供字符串提取回退机制。它提取包元数据、权限、应用组件、native 库、可疑 API、硬编码指标、机密信息、混淆信号、动态代码加载指标以及滥用 Accessibility 的线索。
### 风险引擎
使用加权检测结果生成 0-100 的风险评分:
| 信号 | 权重策略 |
|---|---|
| 危险权限 | 缩放并设置上限 |
| 硬编码 IOC | 缩放并设置上限 |
| 可疑 API | 缩放并设置上限 |
| 混淆 | 固定扣分 |
| 内嵌机密信息 | 缩放并设置上限 |
| Native 库 | 缩放并设置上限 |
| 滥用 Accessibility | 高风险固定扣分 |
| 动态代码加载 | 高风险固定扣分 |
风险等级:
```
0 CLEAN
1-20 LOW
21-45 MEDIUM
46-70 HIGH
71-100 CRITICAL
```
### AI 引擎
NEXAR-MAAS 与兼容 OpenAI 的本地 LM Studio 服务器通信,并要求本地 Llama 3 模型生成:
- 技术威胁摘要
- 疑似恶意软件家族
- 可能的攻击向量
- 行为解释
- 修复步骤
- 执行摘要
如果 LM Studio 不可用,它将回退到确定性的基于规则的分析。
## 仪表板
React 仪表板包含:
- 拖拽上传 APK
- 分析进度时间轴
- 任务队列
- 风险评分可视化
- 权限热力图
- IOC 资源管理器
- YARA 检测结果
- VirusTotal 选项卡
- AI 摘要选项卡
- 动态分析选项卡
- 原始 JSON 报告查看器
- PDF 报告下载
## 技术栈
| 层级 | 技术栈 |
|---|---|
| 后端 API | FastAPI, Uvicorn, Pydantic |
| APK 分析 | Androguard, ZIP/字符串提取 |
| 签名 | YARA / yara-python |
| 报告 | ReportLab |
| AI | LM Studio 兼容 OpenAI 的 API, Llama 3 |
| 威胁情报 | VirusTotal API v3 |
| 动态分析 | ADB, Frida |
| 前端 | React 18 |
## 快速开始
### 1. 克隆
```
git clone https://github.com/
/NEXAR-MAAS.git
cd NEXAR-MAAS
```
### 2. 后端
```
pip install -r requirements.txt
python main.py
```
后端:
```
http://localhost:8000
```
Swagger 文档:
```
http://localhost:8000/docs
```
### 3. 前端
```
cd frontend
npm install
npm start
```
仪表板:
```
http://localhost:3000
```
## 可选配置
复制示例环境文件:
```
copy .env.example .env
```
启用 VirusTotal:
```
set VT_API_KEY=your_api_key
```
覆盖动态分析工具:
```
set ADB_PATH=adb
set FRIDA_PATH=frida
```
LM Studio 的配置位于 `config.py` 中:
```
LM_STUDIO_BASE_URL = "http://localhost:1234/v1"
LM_STUDIO_MODEL = "llama3"
LM_STUDIO_TIMEOUT = 120
```
## API
上传 APK:
```
curl -X POST "http://localhost:8000/api/upload" -F "file=@sample.apk"
```
开始分析:
```
curl -X POST "http://localhost:8000/api/analyze/{file_id}"
```
运行可选的动态分析:
```
curl -X POST "http://localhost:8000/api/analyze/{file_id}?run_dynamic=true"
```
轮询状态:
```
curl "http://localhost:8000/api/status/{file_id}"
```
获取 JSON 报告:
```
curl "http://localhost:8000/api/report/{file_id}/json"
```
下载 PDF 报告:
```
GET http://localhost:8000/api/report/{file_id}/pdf
```
列出任务:
```
curl "http://localhost:8000/api/jobs"
```
## 项目结构
```
NEXAR-MAAS/
|-- main.py # FastAPI app entry point
|-- config.py # Paths, scoring weights, detection constants
|-- requirements.txt # Backend dependencies
|-- routers/
| `-- analysis.py # Upload, analysis, report, and job endpoints
|-- engines/
| |-- static_engine.py # Static APK analysis
| |-- risk_engine.py # Risk scoring
| |-- ai_engine.py # Local LLM analysis
| |-- yara_engine.py # YARA scanning
| |-- virustotal_engine.py # VirusTotal hash lookup
| `-- dynamic_engine.py # ADB + Frida dynamic analysis
|-- models/
| `-- schemas.py # Pydantic models
|-- utils/
| `-- apk_utils.py # Hashing, APK validation, extraction helpers
|-- yara_rules/ # Built-in malware rules
|-- frontend/ # React dashboard
|-- docs/
| `-- NEXAR-MAAS.mp4 # Demo video
|-- uploads/ # Runtime uploads, ignored by Git
`-- reports/ # Runtime reports, ignored by Git
```
## 安全提示
- 上传的 APK 和生成的报告会被 Git 忽略。
- `.env` 文件会被 Git 忽略。
- APK 二进制文件默认会被 Git 忽略。
- 只有在恶意软件样本经过脱敏、合法分发且明确标记的情况下,才可发布。
- 仅在受控的实验室设备/模拟器中使用动态分析。
## 路线图
- 持久化任务存储
- Docker Compose 部署
- 沙箱模拟器编排
- 报告模板
- MITRE ATT&CK 映射
- SBOM 与证书检查
- 多样本活动聚类
- 导出至 STIX/TAXII
## 免责声明
NEXAR-MAAS 专为防御性安全研究、恶意软件分流和教育而构建。仅对你拥有或被授权分析的文件使用此工具。作者不对任何滥用行为负责。
标签:Android, AV绕过, DAST, DSL, FastAPI, React, Syscalls, YARA, 云安全监控, 云资产可视化, 威胁情报, 开发者工具, 恶意软件分析, 逆向工具, 静态分析