📋 项目概述
本项目是一个基于机器学习和深度学习的恶意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
安装步骤
- 克隆项目
git clone <项目地址> cd Identifying-Malicious-WebURLs-Based-on-Machine-Learning-and-Deep-Learning
- 安装依赖
pip install -r requirements.txt
- 训练模型
# 快速训练验证
python quick_training.py
# 中等规模训练
python medium_training.py
# 完整训练
python improved_training.py
- 启动Web服务
python Weburl_test_app.py