rheairene/ai-phishing-detector

GitHub: rheairene/ai-phishing-detector

基于机器学习的邮件分类工具,用于检测 AI 生成的钓鱼邮件并区分安全邮件与传统钓鱼邮件,整体准确率达 97%。

Stars: 1 | Forks: 0

# 🛡️ AI 生成的钓鱼邮件检测器 这是一款机器学习工具,可将邮件分类为**安全**、**钓鱼**或 **AI 生成的钓鱼** —— 并配备了一个在线 Web 界面,任何人都可以粘贴邮件并立即获取结果。 由 18 岁的 Rhea Irene Albert 在 3 天内开发完成。 ## 开发动机 钓鱼邮件并不新鲜。但在 2026 年,AI 生成的钓鱼邮件正成为一种日益增长且难以被检测的威胁 —— 它们经过了精心润色,措辞正式,并且能够绕过许多旨在检测语法错误或明显危险信号的传统过滤器。 大多数公开的钓鱼邮件数据集根本不包含这一类别。本项目通过以下方式填补了这一空白: - 基于 18,000 多封真实的带标签邮件训练了一个分类器 - 添加了一个手工策划的 AI 生成钓鱼邮件自定义数据集 - 构建了一个任何人都可以用来检查可疑邮件的在线工具 ## 在线演示 使用 Streamlit 构建。粘贴任意邮件 → 即可获取带有置信度分数的即时分类结果。 ![混淆矩阵](https://raw.githubusercontent.com/rheairene/ai-phishing-detector/main/confusion_matrix.png) ## 结果 | 类别 | Precision | Recall | F1 Score | |---|---|---|---| | AI 钓鱼邮件 | 1.00 | 1.00 | 1.00 | | 钓鱼邮件 | 0.94 | 0.98 | 0.96 | | 安全邮件 | 0.99 | 0.96 | 0.97 | | **总体准确率** | | | **97%** | ## 工作原理 **数据集** - 基础数据:来自 Hugging Face 上 [zefang-liu/phishing-email-dataset](https://huggingface.co/datasets/zefang-liu/phishing-email-dataset) 的 18,650 封邮件(安全邮件 / 钓鱼邮件) - 自定义数据:新增 30 封手工制作的 AI 生成钓鱼邮件,作为第三个类别 **Pipeline** 1. 文本预处理 —— 转为小写、URL/电子邮件/链接规范化、去除标点符号 2. TF-IDF 向量化(5,000 个特征,unigrams + bigrams) 3. 使用带有 `class_weight='balanced'` 的 Logistic Regression 来处理类别不平衡问题 4. 使用 Streamlit Web 应用进行实时推理 **为什么使用 Logistic Regression?** 速度快、可解释性强,并且在文本分类方面非常有效。在该数据集上达到 97% 的准确率,意味着没有必要使用更复杂的模型 —— 而且在安全工具中,可解释性至关重要。 ## 项目结构 ``` ai-phishing-detector/ │ ├── app.py # Streamlit web app ├── train_model.py # Full training pipeline ├── phishing_model.pkl # Trained model ├── vectorizer.pkl # TF-IDF vectorizer ├── label_encoder.pkl # Label encoder ├── phishing_dataset_combined.csv # Final dataset (base + AI phishing) ├── confusion_matrix.png # Model evaluation visualization └── README.md ``` ## 自行运行 **安装依赖:** ``` pip install streamlit scikit-learn pandas datasets ``` **训练模型:** ``` python train_model.py ``` **启动应用:** ``` streamlit run app.py ``` ## 关键观察 在开发过程中,不同的邮件类别中呈现出了三种截然不同的模式: **安全邮件** —— 对话式、具备特定语境、没有行动呼吁、语气个性化 **人工钓鱼邮件** —— 紧急的措辞、威胁、语法糟糕、可疑的 URL、通用的问候语 **AI 生成的钓鱼邮件** —— 过于润色、极其正式(“我们希望您收到此邮件时一切安好”)、模糊的行动呼吁(“[验证我的账户]”)、没有具体的账户详情、通用的落款(“诚挚问候,客户支持团队”) 该模型学会了以 97% 的准确率区分这些模式 —— 并正确分类了测试集中全部 6 封 AI 钓鱼邮件。 ## 局限性与未来工作 - AI 钓鱼类别仅有 30 个训练样本 —— 更大、更多样化的数据集将提升模型的鲁棒性 - 该模型仅基于文本 —— 真正的钓鱼检测还需要使用元数据(发件人域名、邮件头、链接分析) - 未来版本可以使用基于 Transformer 的模型(BERT、RoBERTa)以获得更好的上下文理解能力 - 开发浏览器扩展将使其具备实际的部署应用价值 ## 关于 **Rhea Irene Albert** —— 18 岁。自学 AI/ML 和网络安全。 - IBM SkillsBuild 网络安全认证 (2026) - 泰国亚洲理工学院 AI 实习 (2024) - HubSpot 内容营销认证 (2025) 📧 rheairene007@gmail.com 🔗 [LinkedIn](https://www.linkedin.com/in/rheairene)
标签:Apex, Kubernetes, URL发现, 安全检测, 文本分类, 机器学习, 逆向工具, 钓鱼检测