indrasena001/Data-Engineering-Anomaly-Analysis-and-Detection-

GitHub: indrasena001/Data-Engineering-Anomaly-Analysis-and-Detection-

基于 CICIDS2017 数据集构建的端到端网络入侵检测数据管线,集成 ETL、机器学习异常检测与实时可视化 dashboard。

Stars: 0 | Forks: 0

# 🛡️ NetSentinel — 网络入侵与系统日志异常检测器 一个完整的**数据工程 pipeline**,通过 ETL、基于 ML 的异常检测和可视化来处理 CICIDS2017 入侵检测数据集——并将结果馈送至实时网络安全 dashboard。 ## 📋 项目结构 ``` network-anomaly-detector/ ├── data/ │ ├── raw/ # Place CICIDS2017 CSVs here │ ├── processed/ # Cleaned & transformed data │ └── results/ # ML outputs & dashboard JSON ├── src/ │ ├── config.py # Centralized configuration │ ├── data_ingestion.py # Load & merge raw CSVs │ ├── data_cleaning.py # Handle nulls, inf, duplicates │ ├── data_transformation.py # Feature engineering & scaling │ ├── anomaly_detection.py # Isolation Forest + Random Forest │ ├── analysis.py # Statistical analysis │ ├── visualization.py # Chart generation (8 PNGs) │ └── export_dashboard.py # JSON export for web dashboard ├── dashboard/ # Web-based real-time dashboard │ ├── index.html │ ├── style.css │ └── app.js ├── output/charts/ # Generated visualization PNGs ├── main.py # Pipeline orchestrator ├── requirements.txt └── README.md ``` ## 🚀 快速开始 ### 1. 安装依赖项 ``` pip install -r requirements.txt ``` ### 2. 下载 CICIDS2017 数据集 从以下来源之一下载 **MachineLearningCSV** 文件: - **Kaggle**: - **UNB CIC**: 将所有 `.csv` 文件放入 `data/raw/` 目录中。 ### 3. 运行 Pipeline ``` python main.py ``` 该 pipeline 将执行 7 个步骤: 1. **数据提取 (Data Ingestion)** — 加载并合并所有 CSV 文件(约 280 万行) 2. **数据清洗 (Data Cleaning)** — 移除 inf、NaN、重复项,修复类型 3. **特征工程 (Feature Engineering)** — 选择特征、缩放、划分训练/测试集 4. **异常检测 (Anomaly Detection)** — 训练 Isolation Forest + Random Forest 5. **统计分析 (Statistical Analysis)** — 计算摘要和分布 6. **可视化 (Visualization)** — 生成 8 张出版级质量的图表 7. **Dashboard 导出** — 创建 `dashboard_data.json` ### 4. 查看结果 在浏览器中打开 `dashboard/index.html`。如果 pipeline 数据可用,dashboard 将自动加载真实的分析结果。 ## 📊 数据集:CICIDS2017 | 属性 | 值 | |----------|-------| | 来源 | Canadian Institute for Cybersecurity | | 记录 | 约 280 万条网络流 | | 特征 | 78 个数值列 + 1 个标签列 | | 攻击类型 | DoS, DDoS, Brute Force, Web Attack, PortScan, Botnet, Infiltration, Heartbleed | | 格式 | CSV (MachineLearningCSV) | ## 🤖 ML 模型 ### Isolation Forest (无监督) - 无需标签即可检测统计异常值 - Contamination 参数已根据攻击比例进行调优 - 输出每个网络流的异常分数 ### Random Forest Classifier (有监督) - 针对所有攻击类型的多分类 - 使用平衡的 class weights 处理类别不平衡问题 - 提供 feature importance 排名 ## 📈 生成的可视化 以下是 pipeline 生成的出版级质量的可视化图表,位于 `output/charts/` 目录中: ### 1. 分类与模型性能 | 攻击类型分布 | 混淆矩阵 | |:---:|:---:| | ![攻击分布](https://static.pigsec.cn/wp-content/uploads/repos/cas/a6/a60d288bdd6f333cc9c505b9a3484a7dd02f0fc1e333bd7af90a70916211b332.png) | ![混淆矩阵](https://static.pigsec.cn/wp-content/uploads/repos/cas/38/388942844f7a7d9655a6fe0536992ab69a5e63ecdfd5d2ef98bf76261f1bf313.png) | | *网络流量类别分布(Benign vs. 攻击)* | *Random Forest 多分类混淆矩阵* | | ROC 曲线 (One-vs-Rest) | Feature Importance | |:---:|:---:| | ![ROC 曲线](https://static.pigsec.cn/wp-content/uploads/repos/cas/1a/1aac836795cf0dce7b79e9b991423f68d7916117c0a14b21f4be58e0a17a6e4c.png) | ![特征重要性](https://static.pigsec.cn/wp-content/uploads/repos/cas/7f/7f5ec5bb1bddc4b005019cddb0349398b29475e3780e11de44de566556e1f81f.png) | | *多分类的 ROC 曲线* | *Random Forest 中排名前 20 的特征重要性* | ### 2. 异常分析与数据洞察 | Isolation Forest 异常分数 | 特征相关性热力图 | |:---:|:---:| | ![异常分数](https://static.pigsec.cn/wp-content/uploads/repos/cas/f7/f72428d349a5baad33cc156d337199de804ce79c25e481e696179d72f22509a1.png) | ![相关性热力图](https://static.pigsec.cn/wp-content/uploads/repos/cas/44/44a73bc27bab9b2ae93b23eafb5b747baea818a1e32c4bdbac52debec237a157.png) | | *每个流的异常分数分布* | *特征相关性矩阵热力图* | | 严重程度分布 | 协议与攻击细分 | |:---:|:---:| | ![严重程度分布](https://static.pigsec.cn/wp-content/uploads/repos/cas/f6/f6df5941e44bfa4484888b4b1e3efda9a002fbebb906fcfa2a0ae9217badc208.png) | ![协议分布](https://static.pigsec.cn/wp-content/uploads/repos/cas/11/1156e6aea72a6e66c3b8074784cbcd43eea5698f8601a5e67be039a1c397c70d.png) | | *攻击严重程度级别分布* | *按协议划分的攻击类别细分* | ## 🖥️ Web Dashboard 内置的 web dashboard 提供: - 实时网络流量可视化 - 带有动态攻击弧线的全球威胁地图 - 带有严重程度过滤的实时系统日志信息流 - 活跃威胁表 - 协议和严重程度分布图 - 最常受攻击的端口 当 pipeline 结果存在时,dashboard 会将真实的 CICIDS2017 分析数据与模拟数据一同展示。 ## ⚙️ 配置 所有设置都集中在 `src/config.py` 中: - 文件路径 - 特征选择列表 - 攻击类别映射 - 模型超参数 - 训练/测试集划分比例 - 子采样阈值 ## 📝 许可证 本项目使用由 University of New Brunswick 的 Canadian Institute for Cybersecurity 创建的 CICIDS2017 数据集。
标签:Apex, Python, 多模态安全, 异常检测, 数据可视化, 数据工程, 无后门, 机器学习, 网络安全, 逆向工具, 隐私保护