PedroSct/malware-detection-honeypot
GitHub: PedroSct/malware-detection-honeypot
该项目构建了一个三虚拟机蜜罐架构,结合随机森林分类器对进入诱饵目录的文件进行实时静态分析与自动隔离,实现恶意软件的自动化检测。
Stars: 0 | Forks: 0
# Honeypot-IDS: 基于 Machine Learning 的恶意软件检测
## 概述
本项目将 **Honeypot** 与 **Machine Learning 分类器** 相结合,在受控环境中自动检测并隔离恶意软件。进入 honeypot 诱饵文件夹的文件会经过训练好的 Random Forest 模型进行实时分析,并被自动路由至安全文件夹或隔离区——全程无需人工干预。
该研究已获得 FATEC Ourinhos 学术评估委员会的批准,是信息安全技术本科课程的一部分。
## 架构
该系统在隔离网络中的 **3 台虚拟机** 上运行:
```
┌─────────────────┐ (1) sends files ┌─────────────────────┐
│ VM Windows │ ───────────────────────► │ VM Debian │
│ Client/Attacker│ │ Honeypot Observer │
└─────────────────┘ │ (watcher.py) │
└──────────┬──────────┘
│ (2) forwards for analysis
▼
┌─────────────────────┐
│ VM Ubuntu │
│ Analyzer API │
│ (Random Forest) │
└──────────┬──────────┘
│ (3) returns verdict
▼
┌──────────────────────────────┐
│ VM Debian routes file to: │
│ ✅ /safe (benign) │
│ 🔴 /quarantine (malware) │
└──────────────────────────────┘
│ (5)
▼
📊 Performance Report (FP/FN/TP/TN)
```
**流程:**
1. Windows VM 持续将文件发送到 honeypot 诱饵文件夹
2. `watcher.py` 检测到新文件并将其转发给 analyzer API
3. Ubuntu VM 使用训练好的 Random Forest 模型对每个文件进行分类
4. Debian VM 根据判定结果将文件路由至 `/safe` 或 `/quarantine`
5. 生成包含完整 TP/TN/FP/FN 指标的性能报告
## 数据集
在对三个数据集进行基准测试后,由于在所有分类器中均表现出色,**CIC-MalMem-2022** 被选为主要数据集。
| 数据集 | 最佳算法 | 准确率 |
|---|---|---|
| **CIC-MalMem-2022** | Random Forest | **99.99% (二分类)** |
| DikeDataset | Random Forest | 96.00% |
| Malware Datasets (Adep) | Random Forest | ~95–97% |
CIC-MalMem-2022 数据集涵盖了 Windows 环境下恶意软件家族(包括 **Ransomware、Spyware 和 Trojans**)的内存分析。
## 算法对比
所有分类器均在 CIC-MalMem-2022 数据集上进行了二分类测试:
| 算法 | 准确率 | 精确率 | 召回率 | F1-Score |
|---|---|---|---|---|
| **Random Forest** | 99.99% | 100% | 100% | 100% |
| Decision Tree | 99.99% | 100% | 100% | 100% |
| SVM | 99.95% | ~99.9% | ~99.9% | ~99.9% |
| KNN | 99.95% | ~99.9% | ~99.9% | ~99.9% |
| Random Forest (多分类) | ~88.70% | ~88% | ~88% | ~88% |
由于在多分类场景中具有鲁棒性和可解释性,Random Forest 被选为实际实施方案。
## 最终结果(实际模拟 — 1 周)
模拟期间共处理了 **1,542 个文件**:
| 指标 | 计数 | 描述 |
|---|---|---|
| 分析的文件总数 | 1,542 | 完整样本量 |
| 真实良性文件 | 1,215 | 发送到诱饵的合法文件 |
| 真实恶意文件 | 327 | 来自多个家族的恶意软件样本 |
| True Positives (TP) | 318 | 被正确隔离的恶意软件 |
| True Negatives (TN) | 1,198 | 被正确放行的良性文件 |
| False Positives (FP) | 17 | 被错误隔离的良性文件 |
| False Negatives (FN) | 9 | 被错误放行并视为安全的恶意软件 |
### 性能指标
| 指标 | 结果 |
|---|---|
| **总体准确率** | **98.31%** |
| 精确率 | 94.93% |
| **召回率(检测率)** | **97.25%** |
| F1-Score | 96.08% |
## 失败分析
**False Positives(17 个文件):** 主要是使用了与恶意软件类似加壳工具的软件安装程序,以及行为模式与 spyware 特征重叠的系统管理工具。这是静态分析模型的预期行为。
**False Negatives(9 个文件):** 所有 9 个未检测到的威胁均为**多态恶意软件**或**零日变种**,这些变种专门通过改变自身结构来逃避静态分析。这突显了纯静态方法的已知局限性,并强调了采用多层防御策略的必要性(例如,将动态/内存分析作为第二层)。
## 技术栈
| 层级 | 技术 |
|---|---|
| 虚拟化 | VirtualBox — 3 台 VM (Debian, Ubuntu, Windows) |
| Honeypot 观察者 | Python (`watcher.py`) |
| Analyzer API | Python + Flask (`analyzer_api.py`) |
| ML 模型 | Scikit-learn — Random Forest |
| 数据集 | CIC-MalMem-2022 |
| 流量监控 | Wireshark |
| ML 基准测试 | RapidMiner, Jupyter Notebook |
## 源代码
论文(葡萄牙语)可在 [`TG_Honeypot.pdf`](./TG_Honeypot.pdf) 中查看。
## 作者
| 姓名 | 联系方式 |
|---|---|
| Pedro Augusto Scoton Alves | [linkedin.com/in/pedroscoton](https://linkedin.com/in/pedroscoton) |
| Pedro Lucas de Souza | pedro.souza92@fatec.sp.gov.br |
| Gian Luca Monticeli | gian.monticeli@fatec.sp.gov.br |
**指导教师:** Prof. Dr. Thiago José Lucas — thiago@fatecourinhos.edu.br
**所属机构:** FATEC Ourinhos — Faculdade de Tecnologia de Ourinhos
**专业:** Tecnólogo em Segurança da Informação
**年份:** 2025
## 相关工作
本研究建立在 IEEE Xplore、Wiley 和 ACM 的 10 篇同行评审论文(2022–2025)基础之上,对比了包括 ML-IDHIF、强化学习 honeypot (DQN)、生成式 honeypot (GPT-3.5) 以及专注于 IoT 的检测系统在内的多种方法。
在大多数被调查的研究中,Random Forest 算法在不同数据集和攻击场景下均表现出最稳定的性能。
标签:Apex, Go语言工具, NoSQL, 云安全监控, 数据泄露, 机器学习, 生成式AI安全, 网络信息收集, 自动化隔离, 虚拟机, 蜜罐, 证书利用, 逆向工具, 随机森林, 静态分析