f20221410-beep/Automated-Threat-Intelligence-A-Scalable-MLOps-Pipeline-for-Network-Security

GitHub: f20221410-beep/Automated-Threat-Intelligence-A-Scalable-MLOps-Pipeline-for-Network-Security

构建基于MLOps流水线的钓鱼URL自动检测系统,利用机器学习替代传统静态黑名单,实现模型自动训练、数据漂移监控与持续部署。

Stars: 0 | Forks: 0

项目概述 传统的网络入侵检测系统(NIDS)依赖于静态黑名单和手动规则更新——这些方法本质上是被动响应的,无法检测零日钓鱼攻击。本项目构建了一个 MLOps 流水线,利用机器学习自动将 URL 分类为钓鱼或合法网址,并随着流量模式的演变自动保持更新。 📂 数据集 UCI 钓鱼网站数据集 | 属性 | 详情 | |----------|---------| | **来源** | UCI Machine Learning Repository | | **引用** | Mohammad, R. M., Thabtah, F., & McCluskey, T. L. (2015). Phishing Websites Dataset. UCI ML Repository. https://archive.ics.uci.edu/ml/datasets/phishing+websites | | **记录数** | 11,055 个 URL | | **特征** | 30 个工程化特征 + 1 个目标列 (Result) | | **目标** | -1 = 钓鱼,+1 = 合法(在训练期间重新映射为 0/1) | | **存储** | 托管在 MongoDB Atlas 上,在流水线运行时通过编程方式摄取 | | **本地副本** | `Network_Data/phisingData.csv` | 特征类别 | 类别 | 特征 | |----------|---------| | **URL 结构** | `having_IP_Address`, `URL_Length`, `Shortining_Service`, `having_At_Symbol`, `double_slash_redirecting`, `Prefix_Suffix`, `having_Sub_Domain` | | **SSL 与域名** | `SSLfinal_State`, `Domain_registeration_length`, `HTTPS_token`, `age_of_domain`, `DNSRecord` | | **页面内容** | `Favicon`, `Request_URL`, `URL_of_Anchor`, `Links_in_tags`, `SFH`, `Submitting_to_email`, `Iframe`, `RightClick`, `popUpWidnow`, `on_mouseover` | | **流量与信誉** | `web_traffic`, `Page_Rank`, `Google_Index`, `Links_pointing_to_page`, `Statistical_report`, `Abnormal_URL`, `Redirect`, `port` | | **目标** | `Result` | 所有特征值均编码为 `-1`(钓鱼指标)、`0`(可疑/中立)或 `1`(合法指标)。 流水线架构 ``` MongoDB Atlas │ ▼ ┌─────────────────────┐ │ Data Ingestion │ → Feature Store CSV → train.csv + test.csv (80/20 split) └─────────────────────┘ │ ▼ ┌─────────────────────┐ │ Data Validation │ → Schema check (31 columns) + KS-test drift report └─────────────────────┘ │ ▼ ┌─────────────────────┐ │ Data Transformation │ → KNN Imputer (k=3) → train.npy + test.npy + preprocessing.pkl └─────────────────────┘ │ ▼ ┌─────────────────────┐ │ Model Training │ → 5-model grid search → best model → MLflow logging └─────────────────────┘ │ ▼ ┌─────────────────────┐ │ Flask REST API │ → /predict (batch CSV) + /train (trigger retraining) └─────────────────────┘ │ ▼ ┌─────────────────────┐ │ Docker → AWS ECR │ → GitHub Actions CI/CD → EC2 deployment └─────────────────────┘ ``` 🧪 评估的模型 | 模型 | 备注 | |-------|-------| | Random Forest | 表现最佳 — 由流水线自动选择 | | Gradient Boosting | 序列提升,在表格数据上表现强劲 | | AdaBoost | 轻量级提升,训练速度快 | | Decision Tree | 可解释的单树基线模型 | | Logistic Regression | 线性基线模型 — 用于对比的下限 | 所有模型均通过网格搜索交叉验证进行调优。最佳模型会根据测试集的 F1-score 自动选择,并保存至 `final_model/model.pkl`。
标签:Apex, MLOps, MongoDB Atlas, NIDS, SSL证书检测, UCI机器学习库, URL分类, 二分类模型, 入侵检测系统, 安全数据湖, 容器化, 搜索语句(dork), 机器学习, 模型训练流水线, 欺诈检测, 特征工程, 网络安全, 网络安全数据集, 网络流量分析, 网页安全, 请求拦截, 逆向工具, 钓鱼网站检测, 随机森林, 隐私保护, 零日攻击防御