恶意WebURL检测系统

作品简介


📋 项目概述

本项目是一个基于机器学习和深度学习的恶意WebURL检测系统,能够自动识别和分类恶意URL请求,保护Web应用安全。

🎯 项目目标

  • 开发高效的恶意URL检测算法
  • 解决数据不平衡问题,提高检测准确率
  • 提供易于使用的Web服务接口
  • 支持实时URL安全检测

🏗️ 技术架构

核心技术栈

  • 编程语言: Python 3.11
  • 深度学习框架: PyTorch 2.0.0
  • 机器学习库: scikit-learn 1.3.0
  • Web框架: Flask
  • 前端技术: HTML, CSS, JavaScript

模型架构

1. 深度学习模型

  • VGGFWithResidualF: 改进的VGG网络架构,包含残差连接
  • 输入特征: 1000维TF-IDF特征(3-gram分词)
  • 网络结构:
  • 输入层 → 128维全连接层
  • 残差块1(128维)
  • 256维全连接层
  • 残差块2(256维)
  • 128维 → 64维 → 输出层

2. 机器学习模型

  • 逻辑回归 (LR): 传统机器学习方法
  • XGBoost: 梯度提升决策树

📊 数据集

数据来源

  • 正常请求: 1,294,531条正常Web请求
  • 恶意请求: 48,065条恶意URL样本

恶意请求类型

  • SQL注入攻击
  • 跨站脚本攻击 (XSS)
  • 路径遍历攻击
  • 命令注入攻击
  • 其他Web安全威胁

数据预处理

  • URL解码处理
  • 3-gram特征提取
  • TF-IDF向量化
  • 数据平衡处理

🔧 项目文件结构

Identifying-Malicious-WebURLs-Based-on-Machine-Learning-and-Deep-Learning/
├── dataset/                          # 数据集文件夹
│   ├── goodqueries.txt              # 正常请求数据
│   ├── badqueries.txt               # 恶意请求数据
│   └── readme                       # 数据集说明
├── 深度学习模型文件/
│   ├── Deeplearing_VGGFWithResidualFnet_Web.py    # 残差网络训练
│   ├── Deeplearing_VGGFnet_Web.py                 # VGG网络训练
│   ├── Deeplearing_FCnet_Web.py                   # 全连接网络训练
│   └── DeeplearingforWeb.py                       # 深度学习主程序
├── 机器学习模型文件/
│   ├── LRforWeb.py                   # 逻辑回归训练
│   └── XboostforWeb.py               # XGBoost训练
├── Web应用文件/
│   ├── Weburl_test_app.py            # Flask Web应用
│   ├── templates/index.html          # 前端页面
│   └── static/                       # 静态资源
├── 改进的训练脚本/
│   ├── improved_training.py          # 完整改进训练脚本
│   ├── medium_training.py            # 中等规模训练脚本
│   └── quick_training.py             # 快速验证脚本
├── 模型文件/
│   ├── model.pth                     # 原始模型权重
│   ├── medium_model.pth              # 改进模型权重
│   ├── quick_model.pth               # 快速训练模型
│   ├── medium_vectorizer.pkl         # 特征提取器
│   ├── FCnet_model.onnx              # ONNX格式模型
│   └── VGGnet_model.onnx             # ONNX格式模型
├── 评估图表/
│   ├── medium_confusion_matrix.png   # 混淆矩阵
│   ├── medium_training_curves.png    # 训练曲线
│   ├── confusion_matrix.png          # 原始混淆矩阵
│   └── convergence_plot.png          # 收敛曲线
└── 工具脚本/
    ├── Load_test_model.py            # 模型加载测试
    └── test_predict.py               # 预测测试

🚀 快速开始

环境要求

  • Python 3.8+
  • PyTorch 2.0.0
  • scikit-learn 1.3.0
  • Flask
  • 其他依赖见requirements.txt

安装步骤

  1. 克隆项目
git clone <项目地址>
cd Identifying-Malicious-WebURLs-Based-on-Machine-Learning-and-Deep-Learning
  1. 安装依赖
pip install -r requirements.txt
  1. 训练模型
# 快速训练验证
python quick_training.py

# 中等规模训练
python medium_training.py

# 完整训练
python improved_training.py
  1. 启动Web服务
python Weburl_test_app.py




创作时间: