Cel0519/Advanced-Phishing-Detection-System-Using-Natural-Language-Processing
GitHub: Cel0519/Advanced-Phishing-Detection-System-Using-Natural-Language-Processing
基于 DistilBERT 的多语言钓鱼检测系统,通过 NLP 与机器学习对邮件内容和 URL 进行分类,防御社交工程攻击。
Stars: 0 | Forks: 0
高级钓鱼检测系统
概述
本项目旨在使用基于 DistilBERT 的多语言机器学习模型来检测电子邮件和 URL 中的钓鱼企图。该系统能够将多种语言的输入分类为“合法”或“钓鱼”。
前置条件
请确保已安装以下工具和包:
1. Python 3.8 或更高版本
2. 必需的 Python 包:
- pandas
- torch
- transformers
- datasets
- scikit-learn
- nltk
- matplotlib
- seaborn
使用以下命令安装所需的包:
pip install pandas torch transformers datasets scikit-learn nltk matplotlib seaborn
3. NLTK 数据:
下载必要的 NLTK 数据集:
import nltk
nltk.download('stopwords')
nltk.download('punkt')
4. 硬件要求**:
- GPU(可选,但建议使用以加快模型训练和推理速度)
- 至少 8GB RAM
项目目录结构
确保项目目录包含以下文件和文件夹:
- `distilbert_phishing_model/` - 用于保存已训练模型的目录
- `results/` - 用于保存模型训练结果的目录
- `templates/` - 包含 index.html 文件的附加模板
- `Hugging_face_transformer.ipynb` - 包含主要代码的 Python 文件
- `app.py` - 用于运行模型的主应用程序脚本
- `dataset_phishing.csv` - 包含钓鱼数据的 Dataset
- `emails.csv` - 包含电子邮件样本的 Dataset
- `Phishing_Legitimate_full.csv` - 包含钓鱼和合法样本的综合 Dataset
- `readme.txt` - 运行项目的说明
运行项目的步骤
1. 解压项目文件夹
解压提供的文件夹并导航至项目目录。
```
unzip advanced_phishing_detection.zip
cd advanced_phishing_detection
```
2. 准备数据集
确保数据集(`dataset_phishing.csv`、`emails.csv`、`Phishing_Legitimate_full.csv`)位于项目目录中。
3. 预处理数据
运行脚本中包含的预处理步骤以:
- 移除 stopwords
- 对文本进行 tokenize
- 拼接电子邮件信息和 URL
预处理已在 `app.py` 脚本和 Jupyter Notebook 中实现自动化。
4. 训练模型
5. 打开 Jupyter Notebook `Hugging_face_transformer.ipynb` 或在终端中运行脚本。
6. 运行训练脚本以微调 DistilBERT 模型:
python app.py
7. 确保在代码中取消注释 `trainer.train()` 方法,以便在提供的数据集上训练模型。
8. 评估模型
评估包括:
- 计算准确率、F1 score、精确率和召回率等指标。
- 显示混淆矩阵。
- 生成多语言准确率图表。
训练完成后,在 Jupyter Notebook 或终端中运行评估。
6. 预测钓鱼企图
使用 `classify_email` 函数对单个电子邮件和 URL 进行分类:
```
from app import classify_email
def example_prediction():
email = "Your account has been compromised."
url = "http://fake-url.com"
result = classify_email(email, url)
print(result) # Outputs: 'Phishing' or 'Legitimate'
example_prediction()
```
7. 复现结果
要复现结果:
8. 使用提供的数据集运行训练脚本。
9. 在测试数据集上评估训练好的模型。
10. 查看准确率、F1 score 和其他指标。
## 附加说明
1. 如果数据集被移动到其他目录,请更新代码中的文件路径。
2. 使用 GPU 加速以加快训练和评估速度。
3. 如有问题或疑问,请查看 `results/` 目录中的错误日志。
如需进一步的帮助,请通过 ishikaupadhyay01@gmail.com 联系 ishika upadhyay
标签:Apex, DistilBERT, 代码示例, 凭据扫描, 安全防护, 数据分析, 机器学习, 系统调用监控, 逆向工具, 钓鱼检测