hackyshadab/SecureAPK

GitHub: hackyshadab/SecureAPK

一个集成了静态分析、机器学习和威胁情报的混合式Android恶意软件分析平台,提供可解释的判定结果。

Stars: 1 | Forks: 0

# SecureAPK ![Python](https://img.shields.io/badge/Python-3.10+-blue) ![Flask](https://img.shields.io/badge/Flask-Backend-black) ![AWS Lightsail](https://img.shields.io/badge/AWS_Lightsail-Cloud-orange) ![Flutter](https://img.shields.io/badge/Flutter-Mobile-blueviolet) ![Android Malware Analysis](https://img.shields.io/badge/Android_Malware_Analysis-Security-red) ![Security](https://img.shields.io/badge/Security-DevSecOps-red) ![Status](https://img.shields.io/badge/Status-Production--Ready-brightgreen) ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4f5cd067e3193519.png) SecureAPK 是一个针对 APK 文件的混合移动恶意软件分析平台。它结合了: - 针对 manifest、权限、熵、字符串、图标和证书特征的 **静态 APK 分析** - 使用 VirusTotal 和 MalwareBazaar 的 **威胁情报查询** - 具备 SHAP 风格可解释性的 **机器学习分类** 该项目包含一个 Flask 后端、一个基于浏览器的仪表盘、一个公共落地页以及一个 Flutter 移动客户端入口。 ## 在线演示

👉 https://secureapk.online/ ## 系统架构 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/aaa1b39348193533.png) ## 项目快照 | 领域 | 详情 | |---|---| | 后端 | Flask + Gunicorn | | 分析引擎 | `analysis/` 下的 Python 辅助模块 | | ML 模型包 | `datamodel.pkl` | | 威胁情报 | VirusTotal + MalwareBazaar | | 仪表盘 | `templates/index.html` | | 公共网站 | `templates/landing.html` | | 移动客户端 | `flutter/lib/main.dart` | | 部署 | AWS Lightsail 就绪 | ## SecureAPK 的功能 用户上传一个 `.apk` 文件。SecureAPK 随后: 1. 验证文件类型和大小。 2. 提取 APK 元数据,如包名、版本、权限、证书提示和图标特征。 3. 从 `classes.dex` 和 manifest 字符串中读取静态指标。 4. 使用文件哈希值查询 VirusTotal 和 MalwareBazaar。 5. 从静态信号构建 ML 特征向量。 6. 生成带有综合评分和人类可读决策的最终判定。 7. 返回 JSON 报告并渲染仪表盘以供交互式审查。 该评分并非基于单一信号。它是模型输出、威胁情报和静态分析的融合。 ## 为什么选择 SecureAPK - 混合检测(ML + 静态分析 + 威胁情报) - 使用 SHAP 的可解释 AI - 实时 APK 分析流水线 - 集成 DevSecOps 流水线 - 在 AWS 上的生产就绪部署 ## 仓库结构 ``` SecureAPK/ ├─ app.py ├─ config.py ├─ analysis/ │ ├─ static_analyzer.py │ ├─ icon_utils.py │ ├─ vt_lookup.py │ └─ utils.py ├─ templates/ │ ├─ landing.html │ └─ index.html ├─ static/ │ └─ assets/ ├─ images/ ├─ flutter/ │ └─ lib/main.dart ├─ requirements.txt ├─ requirements-lightsail.txt ├─ wsgi.py ├─ start.sh ├─ secureapk.service.sample └─ nginx-secureapk.conf.sample ``` ## 核心应用流程 ``` flowchart TD A[User uploads APK] --> B[Flask /analyze] B --> C[Validate extension and size] C --> D[Static analysis] D --> D1[Manifest and permissions] D --> D2[DEX entropy and strings] D --> D3[Icon extraction and hash] D --> D4[Certificate fingerprint] D --> E[Threat intelligence] E --> E1[VirusTotal hash lookup] E --> E2[MalwareBazaar hash lookup] D --> F[Feature vector] E --> F F --> G[ML model prediction] G --> H[SHAP explanation] H --> I[Combined verdict] I --> J[JSON response + dashboard] ``` ## 仪表盘部分 Web 仪表盘被组织成多个命名标签页,以便日后能以清晰、适合向招聘人员展示的方式记录截图。 ### 1. 上传与分析 这是 APK 提交的入口点。它包含拖放上传区域、文件选择、分析触发器和进度指示器。 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6c2957a8b7193601.png) ### 2. 概览 此标签页总结了扫描结果、最终评分、判定和高级指标。它是分析的摘要说明。 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7a97e5bbd5193611.png) ### 3. 静态 此标签页显示 APK 元数据和静态分析结果,例如: - 包名 - 应用标签 - 版本详情 - 权限 - 危险权限 - 证书指纹 - 图标相似度 - 熵 - 可疑字符串和指标 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/618868e191193623.png) ### 4. 情报 此标签页显示来自 VirusTotal 和 MalwareBazaar 的威胁情报输出。 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5ea29cc7b8193633.png) ### 5. ML 此标签页展示机器学习概率、最终模型决策以及用于论证预测的 SHAP 风格解释。 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ae0c41be46193642.png) ### 6. YARA 规则 此标签页为分析师风格的使用渲染了一个生成的规则视图,并提供复制/下载操作。 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/69e54a4884193653.png) ### 7. 移动 UI 提供了一个基于 Flutter 的轻量级界面,用于上传 APK 文件和查看分析结果。 专为与 SecureAPK 后端快速交互而设计,支持实时移动恶意软件扫描。 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a4a2aa0779193703.png) ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/128515a99c193708.png) ## 落地页部分 `templates/landing.html` 中的公共落地页与仪表盘是分开的,作为产品官方网站。其部分包括: - **主视觉区域**:第一印象、产品定位和主要行动号召 - **为严谨安全而生**:功能价值主张 - **工作原理**:分析流水线演练 - **核心功能**:用于静态分析、ML、威胁情报、混合评分和仪表盘的功能卡片 - **为什么 SecureAPK 更胜一筹**:比较风格的部分 - **立即开始**:下载和访问的行动号召 - **定价方案**:产品风格的包装部分 - **API 与开发者访问**:集成和协作区域 - **深受安全专业人士信赖**:用户评价模块 - **获取最新威胁警报**:邮件通讯订阅部分 - **联系我们**:联系和销售部分 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/43c28cd8c2193713.png) ## API 端点 ### `GET /` 返回公共落地页。 ### `GET /dashboard` 返回分析仪表盘。 ### `GET /health` 用于部署和正常运行时间监控的健康检查端点。 ### `POST /analyze` 接受名为 `file` 的文件字段的多部分表单上传。 #### 请求 ``` POST /analyze Content-Type: multipart/form-data ``` #### 输入约束 - 仅接受 `.apk` 文件 - 最大上传大小:**50 MB** #### 响应 该端点返回包含三个主要模块的 JSON: - `meta` - `analysis` - `model` 示例结构: ``` { "meta": { "sha256": "...", "package": "...", "app_label": "...", "version_name": "...", "version_code": "..." }, "analysis": { "permissions": [], "dangerous_permissions": [], "cert_fingerprint": "...", "cert_trusted_match": false, "icon_hash": "...", "icon_similarity_score": 0.0, "entropy_classes_dex": 0.0, "suspicious": { "url_count": 0, "ip_count": 0, "keyword_hits": 0 }, "vt": { "detections": 0, "total": 0 }, "malwarebazaar": { "detections": 0, "query_status": "ok" } }, "model": { "probability_fake": 0.0, "final_score": 0.0, "decision": "Likely Safe", "explanations": [] } } ``` ## ML 特征集 后端根据以下特征构建模型输入: - `permissions_score` - `entropy` - `cert_mismatch` - `suspicious_strings` - `icon_similarity` - `ip_count` - `url_count` - `dangerous_permissions` - `cert_trusted_match` - `perm_dangerous_count` - `perm_normal_count` - `perm_custom_count` 最终评分是 ML 和威胁情报信号的加权混合。 ## 技术栈 - 用于后端 Web 服务的 **Flask** - 用于生产 WSGI 服务的 **Gunicorn** - 用于 ML 运行时的 **Pandas / NumPy / SciPy / scikit-learn** - 用于可解释性的 **SHAP** - 用于 APK 检查的 **Androguard / apkutils2** - 用于图标相似性检查的 **Pillow / imagehash** - 用于 API 查询的 **Requests** - 用于移动客户端入口的 **Flutter** - 用于 Web UI 的 **Tailwind CSS** 和前端 JavaScript ## 设置说明 ### 生产环境运行 推荐的生产环境入口点是配合 Gunicorn 的 `wsgi.py`。 ### 本地运行 安装依赖后,可从项目根目录启动后端。 ``` python3 -m venv venv source venv/bin/activate pip install -r requirements-lightsail.txt gunicorn --workers 1 --threads 2 --bind 0.0.0.0:8000 wsgi:app ``` ## 在 AWS Lightsail 上部署 1. 创建一个 Ubuntu Lightsail 实例。 2. 附加一个静态 IP。 3. 开放端口 `22`、`80` 和 `443`。 4. 上传此仓库的 zip 文件或在服务器上克隆该仓库。 5. 创建并激活 Python 虚拟环境。 6. 安装 `requirements-lightsail.txt`。 7. 运行 `start.sh` 或 `gunicorn wsgi:app`。 8. 将 nginx 放置在 Gunicorn 前面以供公共访问。 9. 使用 `A` 记录将您的域名 `secureapk.online` 指向实例的静态 IP。 ## DevSecOps 与安全流水线 SecureAPK 不仅专注于检测 APK 文件中的恶意软件,还确保**应用程序本身是使用 DevSecOps 方法安全构建的**。 使用 GitHub Actions 集成了一个完整的 CI/CD 安全流水线,以便在部署前自动扫描代码库。 ### 流水线概览 ``` flowchart LR A[Developer Push] --> B[GitHub Actions Pipeline] B --> C[Gitleaks] B --> D[Bandit] B --> E[pip-audit] B --> F[Syft] B --> G[Grype] C --> H[Secrets Detection] D --> I[Static Code Analysis] E --> J[Dependency Vulnerability Scan] F --> K[SBOM Generation] G --> L[SBOM Vulnerability Scan] H --> M[Security Report] I --> M J --> M K --> M L --> M ``` ## 安全阶段 ### 1. 密钥检测 (Gitleaks) - 检测硬编码的密钥,例如: - API 密钥 - token - 凭证 - 防止敏感数据的意外泄露 ### 2. 静态应用程序安全测试 (SAST - Bandit) - 扫描 Python 代码以查找: - 不安全的函数 - 弱加密使用 - 命令注入风险 - 帮助在开发早期识别漏洞 ### 3. 软件成分分析 (SCA - pip-audit) - 扫描 Python 依赖项是否存在已知 CVE - 确保第三方库不受漏洞影响 ### 4. SBOM 生成 (Syft) - 生成软件物料清单 (SBOM) - 提供对所有使用依赖项的可见性 ### 5. SBOM 漏洞扫描 (Grype) - 扫描 SBOM 以查找已知漏洞 - 增加了一层额外的供应链安全 ## 流水线设计理念 - **非阻塞式流水线** → 不会激进地使构建失败 - **安全优先的开发** → 问题可及早发现 - **可扩展设计** → 便于日后添加 DAST、容器扫描或云扫描 ## 流水线位置 .github/workflows/pipeline.yaml ## 为什么这很重要 - 展示了 **安全的 SDLC 实践** - 符合 **现代 DevSecOps 标准** - 展示了对 **真实生产环境** 的准备就绪 ## 用例 - 分析未知 APK 的安全研究人员 - 执行快速分类的 SOC 团队 - Bug 赏金猎人 - 移动应用安全测试 - 恶意软件检测领域的学术研究 ## 贡献 欢迎贡献。 清晰的贡献流程是: 1. Fork 该仓库 2. 创建一个功能分支 3. 进行修改 4. 在本地运行应用程序 5. 打开一个包含简短摘要和相关截图的 Pull Request 针对本项目的推荐 PR: - 更好的检测规则 - 新的 APK 元数据信号 - 额外的威胁情报源 - 仪表盘的 UI 优化 - 分析辅助模块的测试覆盖
标签:Android恶意软件分析, Apex, APK分析, Ask搜索, AWS Lightsail, DevSecOps, Flask, Flutter, MalwareBazaar, Python, SHAP, VirusTotal, Web仪表盘, 上游代理, 云安全监控, 云部署, 可解释人工智能, 后端开发, 威胁情报, 应用程序安全, 开发者工具, 无后门, 机器学习, 混合分析平台, 目录枚举, 移动安全, 移动客户端, 网络安全, 逆向工具, 隐私保护, 静态分析