sehamothman/AI-Malware-Detector

GitHub: sehamothman/AI-Malware-Detector

一个基于随机森林的静态恶意软件检测项目,用于演示AI在安全分析中的应用。

Stars: 0 | Forks: 0

# 🛡️ 用于恶意软件检测的机器学习(静态分析)💻 ## ✨ 项目概述 本项目构建了一个使用**随机森林**的**模型**,通过分析可执行文件(*无需运行它们!*)来检测恶意软件。我们专注于**静态分析** – 检查文件特征和结构。 由于访问大型外部数据集存在挑战,本项目使用一个**小型、自定义收集的数据集**(包含良性和模拟可疑文件)来演示一个稳健的概念验证。这展示了人工智能驱动的静态恶意软件检测的核心方法。 ## 🚀 工作原理与关键特性 我们的AI通过查看文件的独特"指纹"(特征)而非其行为来识别恶意软件。 * **静态检测:** 安全快速的分析,无需执行。 * **AI驱动:** 使用随机森林模型进行智能模式识别。 * **可控的数据处理:** 使用受控的、自定义的数据集演示特征提取和模型训练。 ## 📊 数据集:自定义样本 对于本项目,我们使用了一个自定义数据集,包含: * **良性样本:** 常见的Windows可执行文件(例如,`notepad.exe`、`calc.exe`)。 * **可疑样本:** 无害的 `eicar.com` 测试文件(用于模拟可疑的可执行文件)。 使用 `pefile` 库从这些文件中提取特征。这种方法允许在不需要大型外部恶意软件数据集的情况下,对静态分析流程进行自包含的演示。 ## 🛠️ 快速设置指南 几个步骤即可运行此项目! ### 1. 准备系统 💻 * **Python (推荐 3.10/3.11):** [Python 官网](https://www.python.org/downloads/) (请添加到 PATH!)。🐍 * **7-Zip (Windows):** [7-zip.org](https://www.7-zip.org/download.html) (一般用途,虽然对于这个小数据集并非严格必需)。 * **Visual C++ 可再发行组件 (x64):** [Microsoft Learn](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-visual-cpp-redistribution?view=msvc-170)。安装并重启。 * **磁盘空间:** 几GB的可用空间对于此自定义数据集已足够。💾 ### 2. 获取代码并设置环境 📂 ``` # 克隆此 repo git clone [https://github.com/U210709718/AI-Agents-for-malware-analysis-and-detection.git](https://github.com/U210709718/AI-Agents-for-malware-analysis-and-detection.git) cd AI-Agents-for-malware-analysis-and-detection # 设置 virtual environment 和 安装 libraries py -m venv .venv .\.venv\Scripts\activate # Windows pip install -r requirements.txt # (You'll create this file) ``` ### 3. 准备自定义数据并提取特征 🔬 1. **创建数据文件夹:** ``` mkdir -p data/my_test_data/benign_samples mkdir -p data/my_test_data/suspicious_samples ``` 2. **收集样本:** * **良性:** 将 `notepad.exe`、`calc.exe`、`mspaint.exe` 从 `C:\Windows\System32\` 复制到 `data/my_test_data/benign_samples/`。 * **可疑:** 在 `data/my_test_data/suspicious_samples/` 中手动创建 `eicar.com`。 * 打开记事本,准确粘贴 `X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*`。 * 另存为 `eicar.com`,类型选择"所有文件 (\*.\*)"。(你的杀毒软件可能会将其隔离;如有需要,请恢复它。) 3. **提取特征:** 此步骤使用 `custom_feature_extractor.py` 从你的样本中获取数值特征。 * 确保 `custom_feature_extractor.py`(来自 `src/`)位于 `src/` 目录下。 * 在你的虚拟环境激活状态下,从项目根目录(`AI-Agents-for-malware-analysis-and-detection/`)运行: ``` py src/custom_feature_extractor.py ``` 这将在 `data/my_test_data/` 目录下创建 `extracted_features.csv`。 ### 4. 运行检测器! ▶️ 特征提取完成后: ``` cd src py malware_detector.py ``` 此脚本会加载你的 `extracted_features.csv`,对特征进行缩放,训练一个**随机森林模型**,评估它,并将训练好的模型(`.pkl` 文件)保存到 `models/` 目录。 *(在这个小数据集上的训练速度非常快!)* ## 📈 结果 *(此部分来自 `malware_detector.py` 的输出。由于数据集非常小,某些指标可能是 0.0 或 1.0,并且关于 y_test 中单一标签的 `UserWarning` 是预期且正常的。)* 随机森林模型在自定义测试集上取得了以下性能: * **准确率:** 1.0000 * **精确率:** 1.0000 * **召回率:** 1.0000 * **F1分数:** 1.0000 **混淆矩阵:** ``` [[2 0 ] [0 1]] ``` ## 🎥 视频演示: (https://youtu.be/bZv6dZoknXk) ## 用户界面 使用Python语言的streamlit,以下是分析结果的屏幕截图: ![演示截图](https://raw.githubusercontent.com/sehamothman/AI-Malware-Detector/master/) ![演示截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/9794664d0d145510.png) ## 💡 未来增强 * **整合大型数据集:** 一旦可以访问,调整项目以处理和训练更大的、真实世界的数据集(如 EMBER 2018),并利用内存高效加载(例如,`np.memmap`)。 * **实时PE文件分析:** 实现一个模块,从任何新的PE文件中提取特征,并使用训练好的模型进行实时预测。 * **更多机器学习模型:** 探索其他机器学习算法(例如,梯度提升、SVM、简单神经网络)。 * **使模型能够预测未来风险
标签:AI安全应用, AI驱动安全, Apex, DAST, Kubernetes, pefile库, Python开发, URL发现, 云安全监控, 人工智能, 可执行文件分析, 安全检测, 恶意软件分析, 恶意软件识别, 教育项目, 机器学习, 机器学习模型, 检测模型, 模式识别, 特征提取, 用户模式Hook绕过, 网络安全, 课程项目, 逆向工具, 随机森林算法, 隐私保护, 静态分析, 静态分析技术, 静态恶意软件检测