MehakEjaz/MalSecure

GitHub: MehakEjaz/MalSecure

MalSecure 是一款结合静态分析、机器学习与启发式规则的非执行型恶意软件检测与分类系统,旨在应对现代混淆与规避技术带来的传统特征码查杀不足。

Stars: 0 | Forks: 0

b08b8a9a-b529-4279-9db4-33bce4ec938c ### MALSECURE:使用静态分析、基于机器学习的行为分析和启发式分析的智能恶意软件检测与分类系统 **毕业设计 — NED 工程与技术大学 计算机科学与 IT 系** 小组:CS-22054 | 批次:2022 | 指导教师:Dr. Muhammad Mubashir Khan
NED University EMBER 2024 MITRE ATT&CK VirusTotal
## 📺 宣传视频 ## 🧠 关于本项目 现代恶意软件变得越来越复杂,利用**多态**、**变形**和**基于混淆的规避**技术,使得传统的基于特征码的防病毒工具显得力不从心。 **MalSecure** 是在 NED 大学本科毕业设计中开发的一个混合恶意软件分析工具包。它通过将三个互补的分析层结合到一个**安全、非执行**的平台上,从而弥补了这一空白: 1. **静态分析** — 在不执行文件的情况下对其进行检查,提取元数据、字符串、导入表、文件特征码和结构特征指标。 2. **基于机器学习的行为分析** — 使用预训练的 **EMBER 2024** 模型将文件分类为恶意或良性,并预测恶意软件家族。 3. **启发式分析** — 应用基于规则的评分机制来检测可疑模式,如混淆、高熵、加壳二进制文件和恶意宏。 MalSecure 还集成了 **VirusTotal** 用于获取外部威胁情报,并集成了 **MITRE ATT&CK** 用于对抗技术映射,为分析人员提供对任何可疑文件的全面且可解释的视图。 ## ✨ 核心功能 - 🔒 **安全的非执行分析** — 所有扫描均以静态方式完成;绝不运行任何文件 - 🧱 **三层检测引擎** — 静态分析 + 机器学习 + 启发式分析协同工作 - 🤖 **EMBER 2024 机器学习模型** — 用于 PE 文件分类的预训练梯度提升模型 - 🌐 **VirusTotal 集成** — 基于 hash 在 70 多个防病毒引擎中进行查询 - 🗺️ **MITRE ATT&CK 映射** — API 到技术的关联以及热力图可视化 - 📄 **文档恶意软件检测** — 扫描 DOCX、PDF、XLS 中的宏、嵌入式漏洞利用和可疑脚本 - 📦 **压缩包与加壳检测** — 解压并检查 ZIP、RAR;检测 UPX 和其他加壳工具 - 🔍 **IOC 提取** — 从分析的样本中提取 IP、域名、URL 和文件路径 - 📊 **YARA 规则匹配** — 使用社区 YARA 规则检测已知的恶意软件特征码 - 📑 **可下载报告** — 为每次扫描生成结构化的 JSON 恶意软件报告 - 🖥️ **现代 Web UI** — 带有基于队列的任务管理功能的简洁交互式仪表板 - ⌨️ **CLI 支持** — 为高级用户提供完整的命令行界面 ## 🏗️ 系统架构 MalSecure 采用**模块化、分层架构**构建: ``` graph LR Start([Start]) --> UserInput[User Inputs File] UserInput --> TypeDecision{Analysis Type} %% --- STATIC PATH --- TypeDecision -->|Static| Static[Static Analysis] Static --> FeatExt[Feature Extraction & MITRE Map] FeatExt --> VTInt[VirusTotal Integration] VTInt --> VTLinked{VT Linked?} VTLinked -->|No| NoVT[No VT Integration] VTLinked -->|Yes| StaticOut([Static Out]) NoVT --> StaticOut %% --- BEHAVIORAL PATH --- TypeDecision -->|Behavioral| Behav[Behavioral Analysis] Behav --> ExtBehav[Extract Features] ExtBehav --> EmberModel[Ember 2024 Model] EmberModel --> BehavOut([Behavioral Out]) %% --- HEURISTIC PATH --- TypeDecision -->|Heuristic| Heur[Heuristic Analysis] Heur --> StaticRes[Static Rules Applied] StaticRes --> CombineML[Combine ML Probabilities] CombineML --> HeurOut([Heuristic Out]) %% --- EVALUATION & REPORT --- StaticOut --> ThreatEval{Threat Evaluation} BehavOut --> ThreatEval HeurOut --> ThreatEval ThreatEval --> DownRep[Download Report] DownRep --> End([End]) ``` ## 🔬 分析模块 ### 第 1 层 — 静态分析 | 模块 | 描述 | |---|---| | 基础文件分析 | 文件类型、大小、头部信息、字符串、导入/导出 | | 基于 Hash 的扫描 | MD5、SHA1、SHA256 生成及已知 hash 匹配 | | 文档分析 | DOCX / PDF / XLS / RTF — 宏、脚本、可疑 URL | | 压缩包分析 | ZIP / RAR — 嵌套解压与递归扫描 | | IOC 提取 | IP 地址、域名、URL、文件路径 | | MITRE ATT&CK 映射 | 针对 ATT&CK 数据库的 API 到技术关联 | | 编程语言检测 | 识别可疑可执行文件的语言/框架 | | VirusTotal 查询 | 通过 VT 公共 API 进行基于 hash 的信誉查询 | | YARA 规则匹配 | 使用社区 YARA 规则集进行基于特征码的匹配 | ### 第 2 层 — 基于机器学习的行为分析 预训练的 EMBER 2024 LightGBM 模型分析提取的 PE 特征,以预测: - **恶意与良性** 分类 - **恶意软件家族**(基于 EMBER 数据集的聚类标签) - **AI 风险评分**(0–100)和**行为评分** - **加壳/混淆评分** - **最终加权风险评分** 提取的特征包括:导入的 API 函数、节区熵、头部值、字符串模式、资源指标和结构统计数据。 ### 第 3 层 — 启发式分析 基于规则的引擎评估: - 可疑 API 导入(键盘记录器、进程注入、网络信标) - 高熵节区(加壳/加密代码) - 文档中的宏自动执行触发器 - 混淆和编码的 payload 启发式评分与机器学习概率相融合,进行最终的置信度加权风险评估。 ## 🛠️ 技术栈 | 层级 | 技术 | |---|---| | 前端 UI | React.js, Tailwind CSS, JavaScript | | 后端 | Python 3.10+, REST API | | 静态分析 | `hashlib`, `regex`, `yara-python`, `lief`, `oletools`, `pefile` | | 机器学习 | `scikit-learn`, `LightGBM`, `numpy`, `pandas` — EMBER 2024 模型 | | 启发式引擎 | 自定义基于规则的评分,熵分析 | | 队列管理 | 基于 Python 的任务队列 | | 数据存储 | 基于 JSON 的扫描报告 | | 外部 API | VirusTotal API | | 部署 | 本地 Python 环境 | ## 📸 截图 **主页 - 分析配置文件选择** 8b22badc-ec57-4709-b9ca-15e90db8ed5c **VirusTotal 集成结果** 56ec70e0-eb4a-4857-a17e-b4728205e8ee **MITRE ATT&CK 热力图** 48ba9cff-4758-4235-aee3-ff6cfd77d217 4436a101-c5f5-48a0-812a-086751c0f1c5 **文档恶意软件分析输出** a9ff580b-4b35-49d4-b48e-0421de0634a8 **域名 / IOC 提取输出** a9ff580b-4b35-49d4-b48e-0421de0634a8 **压缩包与加壳分析输出** e52d7a1e-e02f-4155-b1e0-00f705e26c49 cb1f4a85-064e-483f-9f36-50cb72dc8f5b **机器学习行为分析输出** 50fc652d-b33f-4659-a1f7-8fb2330a9fd9 **YARA 规则匹配** de901263-4689-46b6-a63d-81290e7a19fc ## 💻 安装说明 — Windows ### 前置条件 - Windows 10 / 11 - Python 3.10–3.12([在此下载](https://www.python.org/downloads/)) - Git([在此下载](https://git-scm.com/)) ### 步骤 1 — 克隆代码库 以管理员身份打开 **命令提示符** 或 **PowerShell**: ``` git clone https://github.com/YOUR_USERNAME/MalSecure.git cd MalSecure ``` ### 步骤 2 — 创建并激活虚拟环境 ``` python -m venv Malsec_venv Malsec_venv\Scripts\activate ``` ### 步骤 3 — 安装依赖项 ``` pip install --upgrade pip setuptools wheel pip install -r requirements.txt ``` ### 步骤 4 — 配置 VirusTotal API 密钥 ``` python Malsecure.py --key_init ``` 系统会提示您输入 VirusTotal API 密钥。在 [virustotal.com](https://www.virustotal.com) 获取免费密钥。 ### 步骤 5 — 启动应用程序 **GUI 模式:** ``` python Malsecure.py --ui ``` 然后在浏览器中打开 `http://localhost:5055` ### 步骤 6 — 停用环境(使用完毕后) ``` deactivate ``` ## 🐧 安装说明 — Linux / Kali Linux ### 前置条件 - Ubuntu 20.04+ / Kali Linux(推荐) - Python 3.10–3.13 - Git,构建工具,YARA ### 步骤 1 — 克隆代码库 ``` git clone https://github.com/YOUR_USERNAME/MalSecure.git cd MalSecure ``` ### 步骤 2 — 安装系统依赖项 ``` sudo apt update sudo apt install -y \ build-essential \ python3-dev \ libssl-dev \ libffi-dev \ yara \ libyara-dev \ git ``` ### 步骤 3 — 创建并激活虚拟环境 ``` python3 -m venv malsec_venv source malsec_venv/bin/activate pip install --upgrade pip setuptools wheel ``` ### 步骤 4 — 安装 Python 依赖项 ``` pip install yara-python lief streamlit pandas scikit-learn pip install -r requirements.txt ``` ### 步骤 5 — 配置 VirusTotal API 密钥 ``` python3 Malsecure.py --key_init ``` 出现提示时输入您的 VirusTotal API 密钥。 ### 步骤 6 — 启动应用程序 **GUI 模式:** ``` python3 Malsecure.py --ui ``` 然后在浏览器中打开 `http://localhost:5055` ### 步骤 7 — 停用环境(使用完毕后) ``` deactivate ``` 在仪表板中,您可以: 1. **上传** 可疑文件(EXE、DLL、PDF、DOCX、ZIP、RAR 等) 2. **选择** 分析配置文件(标准、文档、压缩包、加壳检测、机器学习行为、IOC、语言) 3. **排队** 分析任务 4. **查看** 实时结果并下载 JSON 报告 ### 可用的分析配置文件 | 配置文件 | 功能说明 | |---|---| | **标准分析** | 完整的静态分诊 — MITRE 映射、VT 查询、YARA、IOC 提取 | | **文档** | 检测 DOCX/PDF/XLS 中的宏和 IOC | | **压缩包** | 对 ZIP/RAR 文件进行嵌套的 IOC/YARA 扫描 | | **加壳检测** | 基于熵的加壳工具和混淆器检测 | | **域名 / IOC** | URL、IP、域名和文件路径提取 | | **语言** | 编程语言指纹识别 | | **机器学习行为扫描** | EMBER 2024 模型 — 风险评分、恶意软件家族、置信度 | ## 🔑 VirusTotal API 密钥设置 MalSecure 使用 **VirusTotal Public API v3** 进行基于 hash 的恶意软件信誉查询。 **步骤 1:** 在 [https://www.virustotal.com](https://www.virustotal.com) 创建一个免费账户 **步骤 2:** 导航到您的个人资料 → **API Key** **步骤 3:** 复制您的 API 密钥并运行: ``` # Windows python Malsecure.py --key_init # Linux python3 Malsecure.py --key_init ``` 出现提示时输入您的密钥。它将保存在项目的本地环境配置中。 ## ⌨️ CLI 使用说明 MalSecure 为高级用户和脚本化 pipeline 提供了完整的 CLI 模式支持。 ``` # 基础文件分析 python3 Malsecure.py --file suspicious.exe --analyze # Hash 扫描 python3 Malsecure.py --file suspicious.exe --hashscan # 文档分析 python3 Malsecure.py --file malicious.docx --docs # Archive 分析 python Malsecure.py --file suspicious_archive_file --archive # 设置 VirusTotal key python3 Malsecure.py --key_init ``` ## 🔧 故障排除 ### Windows | 问题 | 解决方案 | |---|---| | `Scripts is disabled on this system` | 在 PowerShell(以管理员身份运行)中执行 `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser` | | `ModuleNotFoundError` | 确保您的虚拟环境已激活:`Malsec_venv\Scripts\activate` | ### Linux | 问题 | 解决方案 | |---|---| | `python3.11-dev: Unable to locate package` | 改用 `python3-dev` — 它会匹配您已安装的 Python 版本 | | `yara-python` 构建失败 | 首先安装系统级 YARA:`sudo apt install yara libyara-dev` | | 首次启动 GUI 时出现 `BrokenPipeError` | 这是首次运行时已知的 Streamlit 管道问题 — 只需重新运行 `streamlit run gui.py` | | VirusTotal 结果未显示 | 运行 `python3 Malsecure.py --key_init` 并输入有效的 API 密钥 | | Linux 上提示 Permission denied | 使用 `sudo` 运行或确保您拥有项目目录的所有权 | ## 👥 项目团队 | 姓名 | 学号 | 邮箱 | 贡献 | |---|---|---|---| | **Syeda Mehak Ali** | CR-22001 | ali4502643@cloud.neduet.edu.pk | 静态分析、基础代码结构、GUI 布局、启发式分析 | | **Hafsa Usman** | CR-22003 | usman4500959@cloud.neduet.edu.pk | 行为分析(EMBER 集成)、报告撰写(第 1、2 章)、测试 | | **Syeda Abiha Shams** | CR-22018 | shams4520533@cloud.neduet.edu.pk | 行为分析(EMBER 集成)、系统架构、图表、测试 | | **Ayesha Majid Chugtai** | CR-22026 | chughtai4501705@cloud.neduet.edu.pk | VirusTotal 与 MITRE ATT&CK 集成、执行摘要、启发式分析 | **指导教师:** Dr. Muhammadubashir Khan — NED 大学 CSIT 系教授兼系主任 **副指导教师:** Miss Sadia Arshad ## 🙏 致谢 我们向以下人员表达感激之情: - **Dr. Muhammad Mubashir Khan**,感谢他在整个项目过程中的指导、建设性反馈和持续的帮助。 - **Miss Sadia Arshad**,感谢她的支持、对细节的关注以及在完善 MalSecure 工具包时提供的宝贵建议。 - **NED 工程与技术大学**,计算机科学与信息技术系。 ## 📄 许可证 本项目的提交旨在部分满足 **NED 工程与技术大学计算机工程学士学位** 的要求,卡拉奇,2026 年 6 月。 © NED 工程与技术大学。保留所有权利。
由 CS-22054 团队倾力呈现 · NED 大学 · 2026 images
标签:Apex, DNS 反向解析, 云安全监控, 人工智能, 启发式分析, 机器学习, 用户模式Hook绕过, 逆向工具, 静态分析