Drushyagowda17/SkillCraft-Technology-Basic-Antivirus-Simulation

GitHub: Drushyagowda17/SkillCraft-Technology-Basic-Antivirus-Simulation

一个基于机器学习的教育用反病毒模拟器,用于通过静态分析检测Windows PE文件中的恶意软件。

Stars: 0 | Forks: 0

# AV-ML — 基于机器学习的反病毒模拟 ## 下载 / 克隆 ``` git clone https://github.com/Drushyagowda17/SkillCraft-Technology-Basic-Antivirus-Simulation.git cd SkillCraft-Technology-Basic-Antivirus-Simulation ``` ## 数据集 本项目使用 **Kaggle 上的一个免费公共恶意软件检测数据集**。 数据集来源: https://www.kaggle.com/datasets/ann6667gyq/malware-detection-data # 快速开始 ## 1. 安装依赖 ``` pip install -r requirements.txt ``` ## 2. 运行仪表板 ``` python app.py ``` 打开: ``` http://127.0.0.1:5000 ``` ## 3. 运行命令行扫描器 ``` python scanner.py test_folder --quarantine --algorithm sha256 ``` # 项目概述 AV-ML 是一个基于 Python 的反病毒模拟程序,它使用**机器学习**将 Windows 可执行文件(**PE 文件**)分类为**恶意软件**或**良性软件**。 扫描器不执行文件,而是通过**静态分析**从 PE 头部提取结构信息,并通过训练好的**随机森林分类器**预测威胁。 检测到的威胁可选择性地移动到隔离目录,并且每次扫描都会生成报告。 # 功能特性 - 基于机器学习的恶意软件检测 - 静态 PE 头部分析(无文件执行) - 随机森林分类 - 置信度分数预测 - 文件隔离支持 - Flask Web 仪表板 - 扫描历史报告 - 命令行扫描支持 - PE / 非 PE 文件识别 - 安全的教育用恶意软件分析工作流 # 工作原理 ``` Select Folder ↓ Read Files ↓ Check PE Structure ↓ Extract 77 Features ↓ Run ML Prediction ↓ SAFE / THREAT ↓ Generate Report ↓ Optional Quarantine ``` # 检测流水线 ``` Stage 1 → Parse File Open executable Validate MZ + PE signature ↓ Stage 2 → Feature Extraction Extract: • DOS Header • COFF Header • Optional Header • Section Statistics • Entropy • Import Heuristics ↓ Stage 3 → Machine Learning Random Forest Model ↓ Predict: SAFE or THREAT ↓ Stage 4 → Response Generate report Move file to quarantine ``` # 技术栈 ## 后端 - Python - Flask ## 机器学习 - Scikit-learn - 随机森林分类器 - Pandas - NumPy ## 安全概念 - 静态恶意软件分析 - PE 解析 - 香农熵 - 特征工程 - 隔离逻辑 # 项目结构 ``` antivirus/ ├── scanner.py │ ├── app.py │ ├── model.pkl │ ├── model_features.json │ ├── reduced_dataset_2000.csv │ ├── requirements.txt │ ├── EXPLANATION.md │ ├── templates/ │ └── index.html │ ├── test_folder/ │ ├── safe_program.exe │ ├── malware_sample.exe │ ├── safe_notes.txt │ ├── invoice.pdf │ └── script.py │ ├── quarantine/ │ └── reports/ ``` # 核心概念 ## PE (可移植可执行文件) Windows 可执行文件格式: ``` .exe .dll .sys ``` 扫描器分析内部 PE 元数据,而不是运行文件。 ## 特征提取 模型提取 **77 个特征**,包括: - DOS 头部值 - COFF 头部值 - 可选头部字段 - 节区熵 - 导入统计信息 - 文件特性 ## 随机森林分类 训练好的模型进行预测: ``` Malware Probability ↓ < 55% SAFE ≥ 55% THREAT ``` 置信度分数显示在扫描结果中。 # 示例输出 ``` File: malware.exe PE File: YES Confidence: 92.3% Status: THREAT Action: Moved to quarantine ``` # API 端点 ## 扫描文件夹 ``` POST /api/scan ``` ## 模型信息 ``` GET /api/model ``` ## 报告 ``` GET /api/reports ``` ## 隔离 ``` GET /api/quarantine ``` # 模型信息 | 属性 | 值 | |---|---| | 算法 | 随机森林 | | 特征数量 | 77 | | 数据集 | Kaggle 恶意软件数据集 | | 检测方式 | 静态分析 | | 需要执行 | 否 | # 局限性 - 仅支持 PE 文件 - 仅限静态分析 - 无沙箱执行 - 无云信誉 - 训练数据集规模有限 # 学习成果 本项目演示了: - 反病毒基础 - 恶意软件分析概念 - 机器学习工作流 - PE 文件解析 - 安全自动化 - Flask API 开发 # 文档 完整的技术说明: ``` EXPLANATION.md ``` # 免责声明 本项目仅为教育和实习目的创建。 它不能可靠地检测真实世界的恶意软件,不应被用作生产环境的反病毒软件。
标签:Apex, Conpot, Flask Web应用, PE文件, Python项目, Web仪表板, Windows安全, 云安全监控, 开源安全工具, 扫描报告, 教育项目, 数据科学应用, 文件隔离, 机器学习, 杀毒模拟, 特征提取, 网络安全, 逆向工具, 逆向工程平台, 随机森林分类器, 隐私保护, 静态分析