Ishigami-Erdna/Projeto_IAAPLI

GitHub: Ishigami-Erdna/Projeto_IAAPLI

Ishigami-Erdna/Projeto_IAAPLI是一个用于网络安全入侵检测的机器学习实验平台。

Stars: 0 | Forks: 0

# 入侵检测系统人工智能 (IDSAI) ![Python](https://img.shields.io/badge/Python-3.14-blue?style=for-the-badge&logo=python) ![Scikit-Learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge&logo=scikit-learn&logoColor=white) ![XGBoost](https://img.shields.io/badge/XGBoost-15C4CE?style=for-the-badge) ![CustomTkinter](https://img.shields.io/badge/CustomTkinter-Dark_UI-2ea44f?style=for-the-badge) 本项目是作为波尔图高等工程学院(ISEP)应用人工智能(IAAPLI)课程的一部分开发的。 本存储库的目标是展示 *机器学习* 技术在网络安全中的应用。它包含一个完全动态的 **桌面应用程序**,充当实验沙盒,允许用户测试和比较不同的 ML 模型和分类策略,针对 **NSL-KDD** 网络流量数据集。 ## 关于本项目 该系统从标准数据科学脚本发展成为一个完整的软件架构。该应用程序不是硬编码一个单一的解决方案,而是训练了一个“工厂”的 **6 个不同的 AI 大脑**,并允许用户通过图形用户界面(GUI)实时切换它们,即时呈现性能指标和动态混淆矩阵。 ### 关键特性 * **模型对决(随机森林 vs. XGBoost):** 比较了随机森林的稳健、并行架构与 XGBoost(通过编译的 C++ 二进制文件动态集成)的激进、高度精确的顺序架构。 * **三种分类策略:** 1. **二元分类:**(正常 vs. 攻击)- 在三种策略中提供最高的相对精度,作为有效的早期预警系统。 2. **家族分组:** 将攻击分类为 4 个主要的网络安全领域(*DoS、探测、R2L、U2R*)。 3. **多类分类:** 识别特定网络攻击的确切签名(例如,*Neptune、Smurf、Satan*)。 * **零日威胁处理与注入:** 解决监督学习算法的固有局限性。该系统具有一个专门的管道,将未知的攻击签名从测试数据集中隔离出来,将 50% 的样本注入到训练阶段。这允许对模型的真正分类精度进行公平评估,同时仍然在应用程序逻辑中保持一个稳健的“未知威胁”回退机制。 * **稳健的数据管道:** 具有定制的 `LabelEncoder` 状态管理,以防止在训练和现实世界推理之间转换时特征损坏和数据管道失忆。 * **独立可执行文件:** 通过 PyInstaller 打包成独立的 `.exe` 文件,无需 Python 环境即可无缝部署。 ## 使用的技术 * **语言:** Python 3.14 * **GUI/前端:** CustomTkinter,Matplotlib(FigureCanvasTkAgg),Seaborn * **后端/机器学习:** Scikit-Learn(`RandomForestClassifier`,`LabelEncoder`),XGBoost(`XGBClassifier`) * **数据处理:** Pandas,NumPy * **模型序列化:** Joblib * **打包:** PyInstaller ## 架构与文件结构 * `preparar_dados.py`:数据清洗脚本。在测试集中识别零日攻击,将其分割,并创建 `_modificado.txt` 数据集,以确保模型在评估之前可以学习新的签名。 * `treinador_ia.py`:后端“工厂”脚本。处理修改后的训练数据集,执行特征工程,训练所有 6 个模型变体,并将它们作为 `.pkl` 文件及其特定词汇表导出。 * `app.py`:前端图形用户界面。根据用户下拉选择动态加载预训练模型,评估修改后的测试文件,并生成分析仪表板。 * `app.exe`:编译好的、可直接使用的桌面应用程序(v1.1.0)。 ## 如何运行 **选项 1:运行可执行文件(无需安装)** 1. 导航到本存储库的 **发布** 部分,下载最新的 `v1.1.0` ZIP 文件。 2. 提取内容(确保 `app.exe` 与 `.pkl` 模型文件和 `.txt` 数据集位于同一目录)。 3. 双击 `app.exe`。 4. 选择您想要的 AI 引擎和策略。 5. 点击“选择要分析的文件”并加载测试数据集(例如,`KDDTest+_modificado.txt`,`KDDTest+.txt`)。 **选项 2:从源代码运行** 1. 克隆此存储库。 2. 安装依赖项:`pip install pandas numpy scikit-learn xgboost matplotlib seaborn customtkinter joblib` 3. 准备数据集(零日注入):`python preparar_dados.py` 4. 运行工厂以生成模型:`python treinador_ia.py` 5. 启动应用程序:`python app.py` *由安德烈·科拉索和 Guilherme Franco - ISEP 开发*
标签:Apex, CustomTkinter, DNS枚举, NSL-KDD, PFX证书, Python, Scikit-Learn, XGBoost, 二分类, 人工智能, 人工智能应用, 入侵检测系统, 分类策略, 图形用户界面, 多分类, 安全数据湖, 工程应用, 攻击分类, 攻击检测, 攻击识别, 攻击防御, 教育项目, 数据科学, 无后门, 机器学习, 机器学习模型, 桌面应用程序, 模型比较, 混淆矩阵, 漏洞挖掘, 用户模式Hook绕过, 网络安全, 网络安全工具, 网络安全防御, 资源验证, 逆向工具, 随机森林, 隐私保护