AtharDar/smart-decoy-ransomware-defense
GitHub: AtharDar/smart-decoy-ransomware-defense
基于机器学习与诱饵技术的勒索软件实时检测与自动化响应防御系统。
Stars: 0 | Forks: 0
实时勒索软件检测、智能诱饵文件、基于机器学习的威胁分析以及自动化事件响应。
这是一个计算机科学与工程专业的本科毕业设计项目,重点关注通过欺骗技术、行为分析和机器学习来实现主动的勒索软件防御。
     
     
# 概述 勒索软件已演变成为最具破坏性的网络威胁之一,其攻击目标涵盖个人系统、企业、教育机构、医疗组织以及关键基础设施。传统的安全解决方案通常依赖于基于签名的检测,或者只有在加密过程已经开始之后才能识别攻击,从而导致严重的数据丢失。 **基于机器学习的勒索软件防御智能诱饵系统**旨在通过将欺骗技术与行为机器学习相结合,在早期阶段检测出勒索软件。 系统不再被动等待合法用户文件被加密,而是战略性地在受监控的目录中部署智能诱饵 (honeypot) 文件。这些文件充当早期预警传感器,可以在宝贵数据受到影响之前吸引勒索软件。 一旦检测到与诱饵文件的可疑交互,系统就会执行实时行为分析,提取相关特征,使用训练好的 Random Forest 模型评估该活动,并自动对威胁进行分类。 如果确认存在勒索软件行为,平台将立即启动自动化缓解措施,包括: - 进程识别 - 威胁严重性评估 - 证据收集 - 事件创建 - 进程隔离 - 响应日志记录 - Dashboard 通知 整个工作流程通过现代化的 Streamlit dashboard 进行可视化,提供实时监控、事件管理、分析和系统健康报告。 本项目演示了如何将基于欺骗的网络安全技术与机器学习相结合,构建一个智能、主动的勒索软件防御系统,该系统能够进行早期检测和自动化响应。 # 仓库亮点 ✔ 智能诱饵文件系统 ✔ 基于机器学习的检测 ✔ 实时文件监控 ✔ 自动化事件响应 ✔ 交互式 Streamlit Dashboard ✔ 模块化架构 # 核心功能 ## 智能诱饵系统 - 智能诱饵 (honeypot) 文件部署 - 自动重构诱饵 - 隐藏的监控目录 - 多目录保护 - 使用 SHA-256 哈希进行完整性验证 ## 实时文件监控 - 持续的文件系统监控 - 文件创建检测 - 文件修改检测 - 文件重命名检测 - 文件删除检测 - 突发活动检测 - 扩展名更改监控 - 使用进程 ID 进行进程归因 ## 活动日志记录 - 结构化事件日志记录 - JSON 事件存储 - CSV 数据集生成 - 历史活动记录 - 带时间戳的事件追踪 ## 机器学习 Pipeline - 行为特征工程 - 自动特征提取 - Random Forest 分类器 - 模型持久化 - 实时预测引擎 - 特征重要性分析 - 混淆矩阵评估 ## 实时威胁检测 - 实时行为分析 - 基于概率的分类 - 动态严重性评分 - 事件生成 - 告警创建 - 威胁分类 ## 自动化缓解 - 进程隔离 - 自动化响应引擎 - 证据保全 - 事件管理 - 响应日志记录 - 严重性管理 - 恢复就绪的工作流 ## 交互式 Dashboard - 实时监控 Dashboard - 事件时间轴 - 威胁分析 - 系统健康可视化 - 缓解历史记录 - 事件详情 - 响应式模块化界面 ## 数据集生成框架 - 正常活动模拟器 - 安全的勒索软件模拟器 - 自动化数据集创建 - 特征预处理 - 训练数据集生成 - 平衡的机器学习数据集准备 ## 模块化架构 - 独立的项目模块 - 清晰的项目组织 - 易于维护 - 可扩展的设计 - 职责分离 # 项目状态 ## 项目状态 **当前版本:** v1.0.0 **状态:** 可投入使用的学术项目 **开发状态:** 已完成 **最后更新:** 2026年7月 # 为什么选择这个项目? 与主要依赖签名或已知恶意软件指标的传统勒索软件检测方法不同,本项目强调**基于行为的检测**。 通过监控与战略部署的诱饵文件的交互,并分析行为特征而非仅仅依赖恶意软件签名,该系统能够识别可疑的文件系统行为,而不受勒索软件家族的限制。 这使得该方法对以前未见过或经过修改的勒索软件变种具有更强的抵御能力。 # 目录 - [概述](#overview) - [核心功能](#key-features) - [为什么选择这个项目?](#why-this-project) - [项目架构](#project-architecture) - [项目结构](#project-structure) - [技术栈](#technology-stack) - [安装说明](#installation) - [快速开始](#quick-start) - [数据集生成](#dataset-generation) - [机器学习 Pipeline](#machine-learning-pipeline) - [实时检测](#real-time-detection) - [自动化缓解](#automated-mitigation) - [Dashboard](#dashboard) - [截图](#screenshots) - [实验结果](#experimental-results) - [未来增强](#future-enhancements) - [贡献](#contributing) - [许可证](#license) - [作者](#author) - [致谢](#acknowledgements) # 项目架构 智能诱饵系统遵循模块化、事件驱动的架构,其中每个组件都承担专门的责任。这种设计提高了可维护性、可扩展性,并使各个模块能够独立演进。 ``` flowchart LR A[User Activity / Ransomware] --> B[Smart Decoy System] B --> C[Decoy File Monitoring] C --> D[Activity Logger] D --> E[Live Feature Extraction] E --> F[Machine Learning Model] F --> G{Threat Detected?} G -->|No| H[Continue Monitoring] G -->|Yes| I[Incident Manager] I --> J[Severity Manager] J --> K[Evidence Manager] K --> L[Quarantine Manager] L --> M[Mitigation Manager] M --> N[Dashboard Manager] N --> O[Streamlit Dashboard] ``` # 系统工作流 本项目持续监控受保护目录中策略性放置的诱饵文件。每当发生文件事件时,系统都会记录该事件,并在特定时间窗口内提取行为特征。 这些特征由训练好的机器学习模型进行评估。如果预测概率超过检测阈值,该事件将被归类为勒索软件,并启动自动化响应 pipeline。 完整的工作流程如下所示。 ``` Filesystem Event │ ▼ Smart Decoy Files │ ▼ Real-Time File Monitoring │ ▼ Event Logging │ ▼ Live Feature Extraction │ ▼ Random Forest Prediction │ ▼ ──────────────────────────── Prediction = Normal ──────────────────────────── Continue Monitoring ──────────────────────────── Prediction = Ransomware ──────────────────────────── │ ▼ Incident Creation │ ▼ Severity Assessment │ ▼ Evidence Collection │ ▼ Process Quarantine │ ▼ Mitigation Logging │ ▼ Dashboard Notification ``` # 项目结构 ``` smart-decoy-ransomware-defense/ │ ├── dashboard/ │ ├── app.py │ ├── components/ │ ├── pages/ │ ├── utils/ │ ├── dashboard_data/ │ └── assets/ │ ├── dataset/ │ ├── raw/ │ ├── processed/ │ ├── final_dataset.csv │ ├── normal_features.csv │ └── ransomware_features.csv │ ├── decoy_system/ │ ├── generate_decoys.py │ ├── monitor_files.py │ ├── decoy_manager.py │ ├── log_activity.py │ └── system_controller.py │ ├── manager/ │ ├── dashboard_manager.py │ ├── evidence_manager.py │ ├── incident_manager.py │ ├── mitigation_manager.py │ ├── process_response.py │ ├── quarantine_manager.py │ ├── response_logger.py │ └── severity_manager.py │ ├── ml_engine/ │ ├── feature_extract/ │ ├── live_feature_extract/ │ └── ml_model/ │ ├── train_model.py │ ├── ml_model.py │ ├── ml_predictor.py │ └── ransomware_model.pkl │ ├── simulator/ │ ├── normal_activity_simulator.py │ └── ransomware_simulator.py │ ├── logs/ │ ├── evidence/ │ ├── quarantine/ │ ├── docs/ │ ├── diagrams/ │ ├── images/ │ ├── reports/ │ └── screenshots/ │ ├── requirements.txt ├── .gitignore ├── LICENSE └── README.md ``` # 技术栈 ## 编程语言 | 技术 | 用途 | |------------|---------| | Python 3 | 核心应用程序开发 | ## 机器学习 | 技术 | 用途 | |------------|---------| | Scikit-learn | 模型训练与评估 | | Random Forest | 行为勒索软件分类 | | Pandas | 数据集处理 | | NumPy | 数值计算 | ## 文件监控 | 技术 | 用途 | |------------|---------| | Watchdog | 实时文件系统监控 | | psutil | 进程信息与归因 | | hashlib | SHA-256 完整性验证 | ## Dashboard | 技术 | 用途 | |------------|---------| | Streamlit | 交互式 Web Dashboard | | Plotly | 交互式图表 | | Altair | 统计可视化 | ## 数据存储 | 格式 | 用法 | |--------|-------| | CSV | 机器学习数据集 | | JSON | 事件记录 | | Log Files | 系统日志记录 | ## 开发环境 | 组件 | 值 | |-----------|-------| | 操作系统 | Ubuntu Linux | | IDE | Visual Studio Code | | 版本控制 | Git | | 仓库托管 | GitHub | # 核心设计原则 本项目的架构受以下工程原则指导。 ## 主动防御 系统通过监控智能诱饵文件来尝试识别勒索软件,而不是等待破坏发生,从而在宝贵用户数据被加密之前进行防范。 ## 基于行为的检测 检测决策基于观察到的文件系统行为,而非静态的恶意软件签名,从而提高了对以前未见的勒索软件变种的抵御能力。 ## 模块化架构 每个子系统都作为独立模块实现,允许在不影响应用程序其余部分的情况下对各个组件进行维护、替换或扩展。 ## 自动化优先 一旦检测到恶意活动,响应 pipeline 将以最少的用户干预自动执行证据收集、事件生成、隔离和日志记录。 ## 可解释的机器学习 本项目使用经过工程处理的行为特征和 Random Forest 分类器,使得检查特征重要性和理解检测决策变得更加容易。 ## 易于演示 本仓库包含: - 用于演示的 Dashboard 示例事件。 - 预训练的机器学习模型。 - 为保证可复现性而生成的数据集。 - 模块化文档。 - 用于实时可视化的 Streamlit dashboard。 # 安装说明 本节介绍如何在 Linux 环境中设置和运行智能诱饵系统。 本项目是在 **Ubuntu Linux** 上开发和测试的。其他 Linux 发行版在进行少量修改后可能也可以运行。 # 前置条件 在安装本项目之前,请确保您的系统上已具备以下软件。 | 要求 | 版本 | |-------------|---------| | Python | 3.10 或更高版本 | | Git | 最新版 | | pip | 最新版 | | Ubuntu Linux | 推荐 | # 克隆仓库 ``` git clone git@github.com:AtharDar/smart-decoy-ransomware-defense.git cd smart-decoy-ransomware-defense ``` # 创建虚拟环境 (推荐) 虽然不是必需的,但强烈建议使用虚拟环境。 ``` python3 -m venv venv source venv/bin/activate ``` # 安装依赖 使用以下命令安装所有必需的 Python 包: ``` pip install -r requirements.txt ``` # 验证安装 运行以下命令以确保所有必需的包都已正确安装。 ``` python -c "import sklearn, watchdog, streamlit, psutil; print('Installation Successful')" ``` # 仓库布局 安装完成后,仓库结构应类似于以下布局。 ``` smart-decoy-ransomware-defense/ │ ├── dashboard/ ├── dataset/ ├── decoy_system/ ├── manager/ ├── ml_engine/ ├── simulator/ ├── logs/ ├── evidence/ ├── quarantine/ ├── docs/ ├── requirements.txt ├── README.md └── LICENSE ``` # 快速开始 本项目由多个独立组件组成,这些组件协同工作以提供实时的勒索软件检测和自动化缓解。 推荐的执行顺序如下所示。 ``` Generate Decoys │ ▼ Start File Monitoring │ ▼ Run Dashboard │ ▼ (Optional) Generate Dataset │ ▼ Train ML Model │ ▼ Real-Time Detection ``` # 第 1 步 — 生成智能诱饵文件 在配置的目录中生成诱饵文件。 ``` python decoy_system/generate_decoys.py ``` 此步骤会创建策略性放置的诱饵文件,作为勒索软件活动的早期预警传感器。 # 第 2 步 — 启动实时监控 启动实时监控引擎。 ``` python decoy_system/monitor_files.py ``` 该模块持续监控已部署的诱饵文件,寻找可疑的文件系统事件,例如: - 文件创建 - 文件修改 - 文件删除 - 文件重命名 - 突发活动 - 扩展名更改 提取出的行为特征将实时传递给机器学习预测引擎。 # 第 3 步 — 启动 Dashboard 启动 Streamlit Dashboard。 ``` streamlit run dashboard/app.py ``` 该 Dashboard 提供: - 实时事件监控 - 威胁分析 - 缓解历史记录 - 系统健康状况 - Dashboard 统计数据 - 交互式可视化 # 运行完整系统 在典型的部署中,以下组件将在不同的终端中同时运行。 ### 终端 1 ``` python decoy_system/monitor_files.py ``` ### 终端 2 ``` streamlit run dashboard/app.py ``` ### 终端 3 (可选) 正常活动模拟 ``` python simulator/normal_activity_simulator.py ``` ### 终端 4 (可选) 安全勒索软件模拟 ``` python simulator/ransomware_simulator.py ``` # 配置 大多数可配置参数都在项目源代码中定义。 示例包括: - 受监控的目录 - 诱饵文件位置 - 检测阈值 - 时间窗口大小 - 机器学习参数 - 日志位置 - Dashboard 配置 可以调整这些设置以适应不同的部署环境。 #机器学习模型 仓库中包含一个预训练的 Random Forest 模型。 ``` ml_engine/ └── ml_model/ └── ransomware_model.pkl ``` 这使得项目在安装后即可立即执行实时预测,而无需重新训练模型。 # 包含的数据集 本仓库包含了在模型开发期间使用的数据集。 ``` dataset/ ├── raw/ ├── processed/ ├── final_dataset.csv ├── normal_features.csv └── ransomware_features.csv ``` 提供这些数据集是为了支持可复现性、实验和进一步的研究。 # 示例 Dashboard 数据 Dashboard 包含一小组示例事件记录。 ``` dashboard/dashboard_data/incidents.json ``` 这些记录仅用于演示目的。 在实时执行期间,事件管理 pipeline 会根据检测到的勒索软件活动动态生成新的事件。 # 日志记录 运行时日志将写入相应的项目目录中。 ``` logs/ evidence/ quarantine/ ``` 仓库中的每个目录都包含一个占位符 `.gitkeep` 文件,以保留目录结构。在执行期间,应用程序会自动在这些位置生成运行时数据。 # 更新依赖 要更新已安装的包: ``` pip install --upgrade -r requirements.txt ``` # 故障排除 ## Dashboard 无法启动 确保已安装 Streamlit。 ``` streamlit --version ``` ## 模块导入错误 验证是否已安装所有依赖项。 ``` pip install -r requirements.txt ``` ## 找不到机器学习模型 确保以下文件存在。 ``` ml_engine/ml_model/ransomware_model.pkl ``` ## Dashboard 上未显示任何事件 验证以下几点: - 文件监控正在运行。 - 诱饵文件已生成。 - 受监控的目录配置正确。 - 存在示例事件(用于演示模式)。 ## 权限错误 根据部署环境的不同,某些受监控目录可能需要提升权限。 如有必要,请使用适当的权限运行应用程序。 # 数据集生成 Pipeline 与许多完全依赖公开可用数据集的勒索软件检测项目不同,本项目使用受控模拟生成自己的行为数据集。 其目的是捕获由良性的用户行为和类似勒索软件的操作所产生的真实文件系统行为。 生成的事件将被转换为适合行为分类的机器学习特征。 ## 数据集生成工作流 ``` flowchart LR A[Normal Activity Simulator] B[Ransomware Simulator] A --> C[Filesystem Events] B --> C C --> D[Event Logger] D --> E[Feature Extraction] E --> F[Feature Dataset] F --> G[Dataset Preprocessing] G --> H[Model Training] ``` ## 正常活动模拟 正常活动模拟器生成真实的用户行为,包括: - 文件创建 - 文件编辑 - 文件复制 - 文件重命名 - 文件移动 - 目录遍历 生成的活动代表普通的文件系统使用情况,并被标记为 **Normal (0)**。 ## 勒索软件活动模拟 勒索软件模拟器安全地重现了在勒索软件攻击期间常见的行为特征。 示例包括: - 快速文件修改 - 批量文件访问 - 大规模重命名操作 - 扩展名更改 - 高频文件系统事件 - 突发活动 该模拟器**不执行恶意加密**,仅供研究、测试和教育目的使用。 生成的样本被标记为 **Ransomware (1)**。 # 特征工程 原始的文件系统事件会被转换为数值形式的行为特征。 模型不分析文件内容,而是基于可配置时间窗口内的文件系统行为来学习模式。 提取出的特征示例包括: | 特征 | 描述 | |----------|-------------| | Files Modified | 已修改文件的数量 | | Files Created | 已创建文件的数量 | | Files Renamed | 重命名操作 | | Event Rate | 每秒事件数 | | Modification Rate | 修改频率 | | Rename Rate | 重命名频率 | | Rename Ratio | 重命名/事件比例 | | Modification Ratio | 修改/事件比例 | | Unique Files | 访问的不同文件数 | | Unique Extensions | 观察到的扩展名数量 | | Directory Spread | 涉及的目录数量 | | Average Time Gap | 事件之间的平均间隔 | | Minimum Time Gap | 最小间隔 | | Maximum Time Gap | 最大间隔 | 这些经过工程处理的特征构成了 Random Forest 分类器的输入。 # 机器学习 Pipeline 机器学习组件将行为特征转化为勒索软件预测结果。 该 pipeline 包括: ``` flowchart LR A[Behavioral Events] A --> B[Feature Extraction] B --> C[Feature Vector] C --> D[Random Forest Model] D --> E[Prediction] E --> F[Threat Probability] F --> G[Decision Engine] ``` ## 训练工作流 ``` Filesystem Events │ ▼ Feature Extraction │ ▼ Feature Dataset │ ▼ Dataset Cleaning │ ▼ Training Dataset │ ▼ Random Forest Training │ ▼ Model Evaluation │ ▼ Saved Model (.pkl) ``` ## 机器学习模型 本项目使用 **Random Forest Classifier**,因为它具有以下优点: - 高分类准确率 - 对噪声数据的鲁棒性 - 抵抗过拟合 - 快速预测 - 特征重要性估计 - 最少的预处理要求 训练好的模型被持久化为: ``` ml_engine/ml_model/ransomware_model.pkl ``` 并在实时监控期间自动加载。 ## 模型评估 模型使用标准的机器学习指标进行评估,包括: - 准确率 - 精确率 - 召回率 - F1-Score - 混淆矩阵 - 特征重要性 这些指标有助于评估分类器区分良性行为与勒索软件行为的能力。 # 实时检测 Pipeline 模型训练完成后,它将成为实时检测引擎的一部分。 每个文件系统事件都会通过以下 pipeline 进行处理。 ``` flowchart LR A[Filesystem Event] A --> B[Event Logger] B --> C[Live Feature Extraction] C --> D[Random Forest] D --> E{Prediction} E -->|Normal| F[Continue Monitoring] E -->|Threat| G[Incident Manager] ``` ## 实时检测过程 监控引擎持续监视已部署的诱饵文件。 每当发生可疑活动时: 1. 记录文件系统事件。 2. 更新行为特征。 3. 训练好的 Random Forest 模型评估特征向量。 4. 生成勒索软件概率得分。 5. 如果概率超过配置的阈值,则创建事件。 6. 触发自动化缓解措施。 整个过程通常在观察到可疑活动后的几秒钟内完成。 ## 威胁分类 每个预测都会被分配一个置信度得分。 示例: ``` Probability = 0.94 Classification Threat Level: HIGH Recommended Action: Immediate Mitigation ``` 这种基于概率的方法允许针对不同的部署环境灵活调整阈值。 # 自动化缓解 仅靠检测不足以防御勒索软件。 一旦识别出勒索软件活动,项目将自动启动事件响应工作流。 ## 缓解工作流 ``` flowchart LR A[Threat Detected] A --> B[Incident Manager] B --> C[Severity Manager] C --> D[Evidence Manager] D --> E[Quarantine Manager] E --> F[Response Logger] F --> G[Dashboard Manager] G --> H[Dashboard Notification] ``` ## 事件响应 响应 pipeline 自动执行以下任务: - 创建唯一的事件记录。 - 确定威胁严重性。 - 保留取证证据。 - 记录受影响的文件。 - 识别相关进程。 - 启动进程隔离 (在适用情况下)。 - 记录所有响应操作。 - 更新 Streamlit Dashboard。 ## 证据收集 为了协助取证分析,系统会存储与检测到的事件相关的证据。 示例包括: - 事件时间戳 - 文件路径 - 进程信息 - 威胁概率 - 严重程度 - 触发行为特征 这些信息支持事后调查和报告。 ## Dashboard 集成 每个确认的事件都会立即转发到 Dashboard 子系统。 该 Dashboard 显示: - 新事件 - 威胁严重性 - 检测时间轴 - 缓解状态 - 历史事件 - 系统统计信息 允许管理员实时监控勒索软件活动。 # 端到端处理 Pipeline 智能诱饵系统的完整工作流程总结如下。 ``` User Activity │ ▼ Decoy Files │ ▼ Filesystem Monitoring │ ▼ Activity Logging │ ▼ Live Feature Extraction │ ▼ Random Forest Prediction │ ▼ Threat Classification │ ▼ Incident Creation │ ▼ Evidence Collection │ ▼ Automated Mitigation │ ▼ Dashboard Notification ``` # 设计亮点 本项目将多种网络安全技术结合到一个统一的防御平台中。 主要功能包括: - 使用诱饵文件进行智能欺骗。 - 持续的行为监控。 - 基于机器学习的勒索软件检测。 - 自动化事件响应。 - 证据保全。 - 交互式监控 Dashboard。 - 为未来可扩展性设计的模块化架构。 这些组件共同展示了一种主动的勒索软件防御方法,强调早期检测、快速响应和操作可见性。 # Dashboard 智能诱饵系统包含一个现代化的**基于 Streamlit 的 Dashboard**,它提供对勒索软件检测、事件响应、缓解活动以及整体系统健康状况的实时可见性。 该 Dashboard 旨在演示完整的检测生命周期——从监控文件系统事件到可视化事件和缓解措施。 ## Dashboard 模块 ### 主页 提供系统的高级概述,包括: - 整体系统状态 - 活动监控状态 - 事件摘要 - 快速统计数据 - 近期活动 ### 事件监控器 实时显示检测到的事件,包含如下信息: - 时间戳 - 威胁严重性 - 检测状态 - 文件路径 - 触发进程 - 威胁概率 ### 事件详情 提供每个事件的详细取证信息,包括: - 事件标识符 - 受影响的文件 - 事件时间轴 - 收集的证据 - 严重程度 - 响应操作 ### 缓解日志 追踪系统执行的每项自动化响应。 示例包括: - 进程响应 - 证据收集 - 隔离操作 - 响应时间戳 - 事件解决状态 ### 分析 使用交互式图表可视化历史活动。 典型指标包括: - 事件趋势 - 严重性分布 - 检测频率 - 事件统计 - 系统活动 ### 系统健康 显示有关监控平台的运行信息,包括: - 监控引擎状态 - 模型可用性 - 活动事件 - 日志可用性 - 资源使用情况 - 整体系统健康状况 # Dashboard 截图 ## 主页 Dashboard ``` docs/screenshots/home_dashboard.png ```
**基于机器学习的勒索软件防御智能诱饵系统** 早期检测 • 智能欺骗 • 行为分析 • 自动化响应
使用 ❤️ 以及 Python、机器学习和 Streamlit 制作