Prerana25pradeep/phishing-url-detection
GitHub: Prerana25pradeep/phishing-url-detection
基于词法特征工程对多种机器学习与深度学习模型进行钓鱼URL检测的性能比较分析项目。
Stars: 0 | Forks: 0
# phishing-url-detection
对用于钓鱼 URL 检测的机器学习和深度学习模型进行比较分析,采用词法特征工程、SMOTE 平衡处理及性能基准测试。
# 使用机器学习和深度学习进行钓鱼 URL 检测
## 概述
本项目对用于钓鱼 URL 检测的机器学习和深度学习技术进行了比较分析。该系统提取 URL 的词法特征,应用数据预处理并使用 SMOTE 进行类别平衡,并评估了多种用于识别恶意 URL 的分类模型。
其目标是在比较模型性能、资源利用率和可扩展性的同时,提高钓鱼检测的准确率。
## 数据集
本项目使用了一个包含大量钓鱼 URL 的数据集,其中包括:
- 54,807 条恶意 URL
- 450,176 条合法 URL
在进行模型训练之前,数据集经过了清洗、归一化以及通过特征工程进行的转换。
## 特征工程
提取了以下 URL 词法特征:
- URL 长度
- 点的数量
- 连字符的数量
- 下划线的数量
- 问号的数量
- 等号的数量
- 子域名数量
- 域名长度
## 数据预处理
- URL 归一化与清洗
- 移除重复项
- 使用 StandardScaler 进行特征缩放
- 使用 SMOTE 处理类别不平衡问题
- 训练集-测试集划分 (70:30)
- 4 折交叉验证
## 评估模型
### 机器学习模型
- XGBoost
- 随机森林
- 线性 SVM
### 深度学习模型
- 深度神经网络 (DNN)
- 一维卷积神经网络 (CNN)
- 长短期记忆网络 (LSTM)
## 结果
随机森林模型取得了最佳的整体性能。
| 指标 | 得分 |
|----------|----------|
| 准确率 | 90.4% |
| F1 Score | 0.920 |
| AUC Score | 0.960 |
该研究表明,在基于词法的钓鱼 URL 检测中,传统的机器学习方法可以优于更复杂的深度学习架构。
## 技术栈
- Python
- Pandas
- NumPy
- Scikit-Learn
- XGBoost
- TensorFlow / Keras
- Matplotlib
- Seaborn
- SMOTE
- TLDExtract
## 安装说明
```
pip install -r requirements.txt
```
## 运行项目
```
python url_model_training.py
```
## 应用场景
- 钓鱼检测
- 威胁情报
- 安全浏览系统
- 电子邮件安全解决方案
- 网络安全分析
## 未来增强功能
- 实时 URL 分类 API
- 浏览器扩展集成
- 域名信誉分析
- 词法与基于内容的混合检测
- 集成学习方法
标签:逆向工具