shaikriyazuddin550/AI-Powered-Cyber-Threat-Intelligence-for-Phishing-Detection
GitHub: shaikriyazuddin550/AI-Powered-Cyber-Threat-Intelligence-for-Phishing-Detection
基于机器学习的钓鱼检测系统,通过对比多种分类算法在邮件和URL两类任务上的表现,实现恶意邮件与URL的自动识别。
Stars: 0 | Forks: 0
# 使用机器学习的 AI 驱动网络威胁情报钓鱼检测
基于 AI 的钓鱼检测系统,使用机器学习来识别恶意电子邮件和 URL。SVM 在邮件检测中实现了最佳准确率,而 Random Forest 在 URL 分类中表现最好。
# 使用机器学习的基于 AI 的钓鱼检测
# 概述
本项目提出了一个基于 AI 的钓鱼检测框架,该框架使用机器学习技术识别钓鱼邮件和恶意 URL。该系统评估了多种分类算法,以确定每个任务最有效的模型。
该项目专注于两个相关但不同的任务:
任务 1 — 电子邮件分类
系统查看电子邮件的内容并预测它是:
钓鱼邮件还是合法邮件
对于电子邮件分类:
SVM 表现最好,准确率为 97.28%,F1分数为 97.29%。
任务 2 — URL 分类
系统查看 URL 的结构和特征,并预测它是恶意的还是合法的。
对于 URL 分类:
Random Forest 表现最好,准确率为 87.53%,F1分数为 87.51%。
重要的一点是,同一个模型并没有在两个任务中都表现最佳。这是因为电子邮件和 URL 数据包含不同类型的信息。
## 目标
- 自动检测钓鱼邮件。
- 识别恶意 URL。
- 比较不同机器学习算法的性能。
- 使用标准性能指标评估模型。
## 使用的技术
- Python
- Scikit-learn
- Pandas
- NumPy
- Matplotlib
- Jupyter Notebook
## 机器学习模型
- 支持向量机 (SVM)
它对于高维数据和文本分类特别有效。
使用这三个模型使我可以比较不同的方法,而不是仅仅依赖一种算法。
- Random Forest
它是一个概率模型,并且计算效率高。
它通常用于文本分类。
- Naive Bayes
它是一个由多个决策树组成的集成模型。
它可以捕获特征之间的非线性关系。
## 数据集
该项目使用来自 Kaggle 的公开钓鱼数据集,包括:
- 钓鱼邮件检测数据集
- 钓鱼网站 URL 数据集
- 多分类垃圾/钓鱼邮件数据集
- 恶意 URL 数据集
这些数据集能够评估涵盖电子邮件和 URL 任务的钓鱼检测,包括二分类和扩展分类场景。
# 完整的项目工作流
数据集
↓
数据清洗
↓
预处理
↓
特征提取
↓
邮件分类
→ TF-IDF
→ Naive Bayes / Random Forest / SVM
↓
URL 分类
→ URL 词汇和结构特征
→ Naive Bayes / Random Forest / SVM
↓
评估
→ 准确率
→ 精确率
→ 召回率
→ F1
→ 假阳性率
→ ROC-AUC
→ 混淆矩阵
↓
模型对比
↓
选择最佳模型
邮件选择 SVM
URL 选择 Random Forest
该报告将该项目描述为一个涵盖钓鱼邮件分类和恶意 URL 检测的基于 AI 的检测系统。
## 特征工程
- 邮件分类
TF-IDF 向量化-
TF-IDF 代表:
词频-逆文档频率
它是一种将文本表示为数字的方法。
它赋予那些有助于区分不同文档的单词更多的重要性,并降低在许多文档中频繁出现的单词的重要性。
例如,常见的词例如:
"the" (这/那)
在识别钓鱼方面可能帮助不大。
但与以下内容相关的词汇或术语:
"verify" (验证)
"account" (账户)
"password" (密码)
"urgent" (紧急)
根据数据集的不同可能会更有用。
TF-IDF 帮助模型识别这些模式。
- URL 分类
URL 与电子邮件不同,因为它们包含的自然语言文本非常少。
因此,我没有像电子邮件分类那样应用 TF-IDF,而是从 URL 中提取了结构和词汇特征。
这些包括以下特征:
• URL 长度
• 点号数量
• 数字数量
• 特殊字符数量
• 是否包含 HTTPS
• 可疑关键字
• 与域名相关的结构特征
然后,机器学习模型使用了这些特征。
## 评估指标
- 准确率
准确率衡量正确预测的总体百分比。
例如,如果模型正确分类了 100 个样本中的 97 个,则准确率为 97%。
然而,准确率并不能告诉我们模型犯了哪些类型的错误。
因此,我还使用了精确率、召回率、F1分数和假阳性率。
- 精确率
高精确率意味着模型产生的误报较少。
例如,如果系统将许多合法电子邮件标记为钓鱼邮件,则精确率会下降。
在实际的电子邮件过滤系统中,高精确率非常有用,因为过多的误报会惹恼用户并降低对系统的信任。
- 召回率
高召回率意味着模型漏掉的钓鱼攻击更少。
对于钓鱼检测,召回率非常重要,因为假阴性意味着钓鱼攻击可能会在未被检测到的情况下通过。
- F1分数
F1分数将精确率和召回率结合到一个指标中。
它很有用,因为钓鱼检测需要平衡两个问题:
避免误报
和
尽可能多地检测出真实的钓鱼攻击。
具有高 F1分数的模型在精确率和召回率之间取得了良好的平衡。
- ROC-AUC
ROC-AUC 衡量分类模型在不同决策阈值下区分不同类别的能力。
更高的 AUC 通常表明模型在区分钓鱼和合法示例方面做得更好。
它很有用,因为它在不同的分类阈值上评估模型,而不是仅仅依赖于一个阈值。
- 假阳性率
当模型错误地将合法内容归类为钓鱼时,就会发生假阳性。
这很重要,因为错误地阻止过多合法电子邮件的钓鱼检测器可能会变得难以使用。
- 混淆矩阵
混淆矩阵是一个表格,显示了有多少预测是正确的和错误的。
对于二分类钓鱼检测,它包含:
• 真阳性
• 真阴性
• 假阳性
• 假阴性
它不仅帮助我们了解模型的准确度,还帮助我们了解模型犯了哪些类型的错误。
## 结果
-邮件分类
邮件分类结果大约为:
模型 准确率 F1分数
SVM 97.28% 97.29%
Random Forest 96.49% 96.50%
Naive Bayes 95.92% 95.92%
因此,SVM 是邮件分类中表现最好的模型。
-URL 分类
URL 分类结果大约为:
模型 准确率 F1分数
Random Forest 87.53% 87.51%
Naive Bayes 73.97% 64.93%
SVM 68.93% 69.95%
因此,Random Forest 显然在 URL 分类任务中表现最好。
# 结论
该项目展示了机器学习如何成功识别恶意 URL 和钓鱼邮件。SVM 在电子邮件分类方面优于其他模型,而 Random Forest 在 URL 分类方面优于其他模型。研究结果表明,根据数据类型选择合适的模型可以提高钓鱼检测的准确性,并促进更强大的网络安全。
标签:Apex, NoSQL, Scikit-learn, URL分析, 人工智能, 机器学习, 用户模式Hook绕过, 网络安全, 逆向工具, 邮件分类, 钓鱼检测, 隐私保护