Arsh-sudo/APKGuard
GitHub: Arsh-sudo/APKGuard
APKGuard 是一个基于 GenAI 的银行 APK 威胁情报平台,通过自动化逆向工程、静态分析、ML 分类与 LLM 解释对可疑 Android 应用进行欺诈风险评估。
Stars: 0 | Forks: 1
# APKGuard 🛡️
### 基于 GenAI 的银行 APK 威胁情报平台
APKGuard 自动对可疑的 Android APK 进行逆向工程,执行静态和动态分析,并结合 ML 分类和基于 LLM 的威胁解释,生成校准后的欺诈风险评分(0–100)。
## 🚀 快速开始 (Docker)
```
# Clone / download 项目
cd APKGuard
# 使用一条 command 启动所有服务
docker-compose up --build
# 打开 dashboard
# http://localhost:3000
```
## 🏗️ 架构
```
APK File
│
▼
┌─────────────────────────────────────────┐
│ Layer 1 — Reverse Engineering │
│ APKTool → Manifest, Smali, Resources │
│ JADX → Decompiled Java Source │
└─────────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Layer 2 — Static Analysis │
│ • 80+ feature extraction │
│ • Dangerous permission detection │
│ • Suspicious keyword scanning │
│ • Obfuscation detection │
│ • Hardcoded URL/IP extraction │
└─────────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ Layer 3 — GenAI Risk Scoring │
│ • XGBoost ML classifier (92.5% acc) │
│ • Trained on Drebin dataset │
│ • Ollama LLM (Llama 3.2) explanation │
│ • Final Fraud Risk Score (0–100) │
└─────────────────┬───────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ FastAPI Backend + React Dashboard │
│ • Real-time progress tracking │
│ • Threat report with 4 analysis tabs │
│ • Scan history & statistics │
└─────────────────────────────────────────┘
```
## 📊 结果
| APK | ML 评分 | 最终评分 | 类别 |
|-----|----------|-------------|----------|
| Google Calculator (合法) | 1.1/100 | 27.5/100 | ✅ 低风险 |
| 银行木马 (恶意软件) | 99.8/100 | 99.9/100 | 🔴 严重威胁 |
## 🔧 手动设置(不使用 Docker)
### 前置条件
- Python 3.11+
- Java 11+
- Node.js 18+
- Ollama
### 后端
```
cd APKGuard
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
# 训练 ML model
python classifier.py train
# 启动 API
python api.py
```
### 前端
```
cd dashboard
npm install
npm start
```
### LLM(可选)
```
ollama pull llama3.2
# Ollama 自动运行在 port 11434
```
## 📁 项目结构
```
APKGuard/
├── decompiler.py # Module 1: APK decompilation pipeline
├── classifier.py # Module 2: XGBoost ML classifier
├── llm_explainer.py # Module 3: Ollama LLM explanation
├── api.py # Module 4: FastAPI REST backend
├── dashboard/ # Module 5: React frontend
├── tools/
│ ├── apktool.bat # APKTool decompiler
│ ├── apktool.jar
│ └── jadx/ # JADX Java decompiler
├── models/
│ ├── apkguard_xgb.pkl # Trained XGBoost model
│ └── feature_columns.pkl # Feature column list
├── data/
│ └── drebin.csv # Drebin malware dataset
├── uploads/ # APK files for analysis
├── output/ # Analysis reports (JSON)
├── Dockerfile
├── docker-compose.yml
└── requirements.txt
```
## 🧠 使用的数据集
| 数据集 | 描述 | 大小 |
|---------|-------------|------|
| Drebin | 带标签的 Android 恶意软件特征 | ~400 个样本 |
| AndroZoo | 大规模 APK 仓库 | 参考 |
| VirusTotal API | 多引擎 AV 验证 | 实时 API |
| CERT-In 警报 | 政府网络欺诈数据源 | 公开 |
## 🏆 核心创新
1. **LLM 代码可解释性** — GenAI 用通俗易懂的英文解释 APK 恶意的原因
2. **零样本 (Zero-Shot) 威胁检测** — LLM 能够捕获新型混淆恶意软件
3. **特定于银行的配置文件** — 基于合法的印度银行应用建立基线
4. **实时 CERT-In 集成** — 交叉比对政府网络欺诈警报
5. **银行级威胁报告** — 一键生成供 CISO 审查的 PDF
## 📡 API 接口
| 方法 | 接口 | 描述 |
|--------|----------|-------------|
| POST | `/analyse` | 上传 APK 进行全面分析(包含 LLM) |
| POST | `/quick-score` | 上传 APK 获取快速的纯 ML 评分 |
| GET | `/job/{job_id}` | 轮询分析进度 |
| GET | `/reports` | 列出所有已分析的 APK |
| GET | `/report/{apk_name}` | 获取完整报告 |
| GET | `/stats` | 仪表盘统计数据 |
| DELETE | `/report/{apk_name}` | 删除报告 |
交互式 API 文档:**http://localhost:8000/docs**
## 👥 团队
为 PSB Cybersecurity、欺诈与 AI 黑客马拉松 2026 构建
印度银行 × 印度理工学院海得拉巴分校
# APKGuard
标签:AI风险缓解, Apex, DLL 劫持, 大语言模型, 威胁情报, 安卓逆向, 开发者工具, 机器学习, 目录枚举, 移动安全, 请求拦截, 逆向工具