KishoreGauthaman-ai/MALWARE_DETECT

GitHub: KishoreGauthaman-ai/MALWARE_DETECT

结合 Androguard 权限分析与 YARA 规则模式匹配的 Android APK 恶意软件检测工具,通过复合风险评分引擎生成量化的威胁评估报告。

Stars: 1 | Forks: 0

# 🛡️ Android Malware Detector 一款用于分析 Android APK 文件中潜在恶意软件和间谍软件行为的桌面和 Android 应用程序。它结合了 **Androguard** 权限分析、基于 **YARA** 规则的模式匹配以及复合 **风险评分** 引擎来生成威胁评估报告——所有这些都包装在时尚的 Material Design GUI 中。 ## ✨ 功能 - **APK 权限分析** — 使用 Androguard 提取并标记危险权限(SMS、相机、联系人、位置等)。 - **YARA 规则扫描** — 检测与间谍软件相关的模式,如 `sendTextMessage`、`DexClassLoader`、`Runtime.exec` 等。 - **复合风险评分** — 根据可疑权限和 YARA 匹配情况计算 0–100 的风险评分。 - **颜色编码结果** — 使用动态颜色显示风险严重程度: - 🟢 绿色 (0–30) · 🟡 黄色 (31–60) · 🔴 红色 (61–100) - 包名、权限和 YARA 命中结果都有各自独特的颜色编码。 - **可滚动的 Material Design GUI** — 使用 KivyMD 构建,具有可滚动布局、独立的状态和结果面板以及一键分析功能。 ## 📁 PRODUCT 结构 ``` Malware det/ ├── main.py # KivyMD GUI application entry point ├── main.kv # Kivy layout (ScrollView + Material cards) ├── androguard_scan.py # APK permission extraction & analysis ├── yara_rules.py # YARA rule compilation & scanning ├── yara_rules.yar # YARA rule definitions for spyware detection ├── risk_scoreing.py # Risk score calculation engine ├── api.py # Unified analysis pipeline (used by GUI) ├── sample.apk # Sample APK for testing └── README.md ``` ## 🔧 技术栈 | 组件 | 技术 | | ---------------- | ----------------------------- | | GUI 框架 | Kivy / KivyMD | | APK 分析 | Androguard | | 模式匹配 | YARA (通过 `yara-python`) | | 文件选择器 | Plyer | | API (实验性) | FastAPI | | 语言 | Python 3 | ## 🚀 快速开始 ### 前置条件 - Python 3.8+ - pip # 安装依赖 pip install -r requirements.txt ``` ### 运行 Desktop App ```bash python main.py ``` 1. 点击 **Select APK** 选择一个 `.apk` 文件。 2. 点击 **Analyze APK** 运行分析。 3. 在专用的结果面板中查看颜色编码的结果。 ## 🧠 工作原理 ``` ┌──────────────┐ ┌────────────────────┐ ┌─────────────────┐ ┌──────────────────┐ │ Select APK │────▶│ Androguard Scan │────▶│ Risk Scoring │────▶│ Color-Coded │ │ (.apk file) │ │ (permissions) │ │ Engine (0-100) │ │ Results Panel │ │ │────▶│ YARA Scan │ │ │ │ │ └──────────────┘ │ (pattern match) │ └─────────────────┘ └──────────────────┘ └────────────────────┘ ``` ### 风险评分明细 | 信号 | 最高分 | 逻辑 | | ------------------------ | -------- | ------------------------------------------ | | 可疑权限 | 40 | 每个危险权限 +10(最多计 4 项) | | YARA 检测(布尔值) | 40 | 如果发现 2 个或以上间谍软件模式则 +40 | | 额外的 YARA 匹配项 | 20 | 超出基础数量后每项匹配 +10(最多计 2 项) | | **总计** | **100** | | ### 结果颜色编码 | 元素 | 颜色 | 十六进制 | | ------------------------ | ----------------------------- | ----------- | | 包名 | 紫色 | `#B388FF` | | 风险评分(低,0–30) | 绿色 | `#00E676` | | 风险评分(中,31–60) | 黄色 | `#FFEA00` | | 风险评分(高,61–100) | 红色 | `#FF1744` | | 可疑权限 | 橙色 | `#FF9100` | | YARA 匹配项 | 青色 | `#00E5FF` | | 错误 | 红色 | `#FF1744` | ## 🚫 追踪的危险权限 该应用程序专门用于标记以下高风险的 Android 权限: - **SMS**: `READ_SMS`, `SEND_SMS`, `RECEIVE_SMS` - **联系人**: `READ_CONTACTS`, `WRITE_CONTACTS`, `GET_ACCOUNTS` - **硬件**: `RECORD_AUDIO`, `CAMERA` - **位置**: `ACCESS_FINE_LOCATION`, `ACCESS_COARSE_LOCATION` - **存储**: `READ_EXTERNAL_STORAGE`, `WRITE_EXTERNAL_STORAGE` - **系统**: `PACKAGE_USAGE_STATS`, `QUERY_ALL_PACKAGES`, `RECEIVE_BOOT_COMPLETED`, `FOREGROUND_SERVICE` ## 📜 YARA 规则 包含的 `yara_rules.yar` 可检测常见的间谍软件行为: - `sendTextMessage` / `READ_SMS` — SMS 访问 - `ContactsContract` — 收集联系人 - `MediaRecorder` — 麦克风录音 - `getLastKnownLocation` — 位置跟踪 - `Runtime.getRuntime().exec` — 执行 Shell 命令 - `DexClassLoader` — 动态加载代码 - `http://` / `https://` — 网络通信 当发现 **2 个或更多** 此类模式时,即会触发匹配。 ## 🖥️ UI 概览 该应用使用具有两个主面板的 **可滚动** 布局: | 面板 | 用途 | | ----------------- | ------------------------------------------------ | | **状态卡片** | 显示选中的 APK 文件名或选择提示 | | **结果卡片** | 分析后显示颜色编码的扫描结果 | ## 📄 许可证 买家仅能使用此应用程序。他/她不得将其出售。 ## 🤝 贡献 欢迎贡献代码、提出问题和功能请求!请随时开启一个 issue 或提交一个 pull request。
标签:Androguard, Android安全, KivyMD, YARA, 云安全监控, 云资产可视化, 逆向工具, 静态分析