Dipto2611/Enterprise_AI-Phishing_Spam_Detection_System

GitHub: Dipto2611/Enterprise_AI-Phishing_Spam_Detection_System

结合机器学习与威胁情报规则的邮件安全检测系统,可将邮件分为安全、垃圾与钓鱼三类并提供风险评估和企业级报告。

Stars: 0 | Forks: 0

# 🛡️ 企业级 AI 驱动的钓鱼与垃圾邮件检测系统

使用自然语言处理、机器学习和基于规则的威胁情报的智能邮件安全系统

## 📌 概述 本项目是一个**受企业级应用启发的网络安全应用**,可分析邮件/消息并将其分类为**安全、垃圾邮件和钓鱼邮件**。它结合了: - 用于文本分类的**机器学习** - 用于安全指标的**基于规则的威胁情报** - 用于最终评估的**企业决策逻辑** - 用于交互式分析的**Streamlit UI** - 用于专业输出的**PDF 报告生成** 与简单的垃圾邮件过滤器不同,该系统旨在表现得更像一个**真正的安全产品**:它不仅预测标签,还会解释*为什么*该消息被标记,分配风险评分,并生成可操作的建议。 ## ✨ 核心功能 - 🧠 **三分类**:安全 / 垃圾邮件 / 钓鱼邮件 - ⚠️ **威胁分析器**:检测 URL、凭证、紧迫性和金融关键词 - 🎯 **企业决策引擎**:用于最终安全评估 - 📊 **置信度和风险评分**展示 - 🛡️ **威胁等级**映射:低 / 中 / 高 / 严重 - 📋 **威胁指标**和**安全建议** - 📝 **执行摘要**:提供人类可读的解读 - 🌐 **现代 Streamlit 仪表板** - 📄 **专业 PDF 报告导出** - 🧪 **测试用例**:涵盖安全、垃圾邮件、钓鱼邮件和易混淆的边缘情况 - 💾 **保存的推理流水线**:便于可重现的部署 - 🧰 **模块化代码库**:清晰的关注点分离 ## 🏗️ 系统架构 ``` User Message │ ▼ Preprocessing │ ▼ Machine Learning Model │ ▼ Threat Analyzer │ ▼ Decision Engine │ ▼ Enterprise Report │ ▼ Streamlit Dashboard │ ▼ PDF Export ``` ## 🔁 端到端工作流 1. 用户输入一封邮件或消息。 2. ML 模型预测**安全 / 垃圾邮件 / 钓鱼邮件**。 3. 威胁引擎检测可疑指标。 4. 决策引擎融合 ML 与威胁信号。 5. 仪表板显示: - 预测结果 - 置信度 - 风险评分 - 威胁等级 - 最终评估 - 建议 6. 可以下载 PDF 报告以供审查或提交。 ## 🧠 技术栈 | 类别 | 技术 | |---|---| | 语言 | Python | | 机器学习 | Scikit-learn | | NLP | TF-IDF Vectorizer | | 数据处理 | Pandas, NumPy | | 可视化 | Matplotlib | | UI | Streamlit | | PDF | ReportLab | | 序列化 | Joblib | | 测试 | Pytest | ## 📂 项目结构 ``` CyberSec_Final_Project/ ├── app/ │ ├── streamlit_app.py │ ├── pdf_generator.py │ ├── ui_helpers.py │ └── styles.py ├── backend/ ├── data/ │ ├── raw/ │ └── processed/ ├── models/ ├── notebooks/ ├── scripts/ ├── src/ ├── tests/ ├── visualizations/ ├── DATASET_NOTES.md ├── PROJECT_LOG.md ├── requirements.txt └── README.md ``` ## 📊 数据集 ### 使用的数据集 **最大的垃圾邮件、正常邮件与钓鱼邮件数据集 (250000+)** - 来源:Kaggle - 镜像:Hugging Face - 开发格式:Parquet shards - 处理记录数:**365,448** - 列:`label`, `text` ### 标签映射 | 原始标签 | 含义 | 应用标签 | |---:|---|---| | `0` | 正常 / 合法消息 | 安全 | | `1` | 钓鱼消息 | 钓鱼邮件 | | `2` | 垃圾邮件 | 垃圾邮件 | ### 类别平衡 | 类别 | 记录数 | 占比 | |---|---:|---:| | 安全 | 168,455 | 46.095477% | | 钓鱼邮件 | 42,845 | 11.723966% | | 垃圾邮件 | 154,148 | 42.180556% | **重要提示:** 钓鱼邮件属于少数类,因此必须采用分层划分并侧重于钓鱼邮件的评估。 ## 🧹 数据质量亮点 - 处理了缺失的文本值 - 分析并记录了重复的行 - 检查了具有冲突标签-文本的分组 - 文本长度分布呈现高度偏态 - 记录了超长消息的极端异常值 有关更多详细信息,请参阅 `DATASET_NOTES.md`。 ## 🔧 预处理策略 预处理流水线保留了与钓鱼邮件相关的信号,而不是将其过于激进地删除。 已实现的预处理包括: - HTML 移除 - 将 URL 作为显式 token 保留 - 将电子邮件地址作为显式 token 保留 - 数字规范化 - 标点符号清理 - 停用词移除 - Porter 词干提取 - Unicode 安全处理 - 缺失输入处理 这有助于模型从以下模式中学习: - 可疑的 URL - 制造紧迫感的语言 - 与账号相关的关键词 - 电子邮件/域名引用 - 充满数字的请求 ## 🤖 训练的模型 在相同的 TF-IDF 特征空间中对比了三种分类器: - Multinomial Naive Bayes - Logistic Regression - Random Forest ### 最佳模型选择 **Logistic Regression** 它在以下方面取得了最佳的平衡: - 准确率 - 宏平均 F1 - 钓鱼邮件精确率 - 钓鱼邮件召回率 - 钓鱼邮件 F1 分数 ## 📈 模型性能 | 模型 | 准确率 | 宏平均 F1 | 加权 F1 | 钓鱼邮件精确率 | 钓鱼邮件召回率 | 钓鱼邮件 F1 | |---|---:|---:|---:|---:|---:|---:| | Multinomial Naive Bayes | 91.58% | 0.8893 | 0.9139 | 0.8921 | 0.7366 | 0.8069 | | **Logistic Regression** | **94.86%** | **0.9377** | **0.9489** | **0.8682** | **0.9355** | **0.9006** | | Random Forest | 91.29% | 0.9036 | 0.9136 | 0.8649 | 0.8781 | 0.8715 | ## 🔐 威胁情报逻辑 威胁分析器可检测: - 可疑 URL - 多个 URL - 电子邮件地址 - 紧急请求语言 - 凭证请求 - 金融 / 银行术语 - 过度的标点符号 / 大写字母 决策引擎将这些结果与 ML 预测相结合,生成最终的企业评估结果,例如: - 似乎合法 - 疑似垃圾邮件 - 可疑垃圾邮件 - 可能的误报 - 可疑消息 - 高置信度威胁 - 严重威胁 ## 📷 应用程序截图 ### 🏠 仪表板 ![仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/48/486fb74fdde3e999fa24a9e4152e94cc338a1b95761936e9390485dc2c58f47d.png) ### ✅ 安全消息输入 ![安全消息](https://static.pigsec.cn/wp-content/uploads/repos/cas/e1/e12ec091a8adc51e0e54d52576b21a70ee54773325fea220a61f16e2c3e8fa5e.png) ### 🛡️ 安全分析结果 ![安全结果](https://static.pigsec.cn/wp-content/uploads/repos/cas/07/07e523ceedc7b57cfa40324ccd375b3d9c6a8b4271cb0bb37049b405f7e8b360.png) ### ⚠️ 钓鱼消息输入 ![钓鱼消息](https://static.pigsec.cn/wp-content/uploads/repos/cas/f9/f988c082f1852148451442f437d6ade1b1d99fbc3bf6d7926d25c433de3bb78f.png) ### 🚨 钓鱼分析结果 ![钓鱼结果](https://static.pigsec.cn/wp-content/uploads/repos/cas/fa/fa83a5aa60cdfde354094599fb69596176990cee4dee29db96ca954e852b5600.png) ### 📄 生成的 PDF 报告 ![PDF 报告](https://static.pigsec.cn/wp-content/uploads/repos/cas/80/805fdc623da28e3f0ee35288c51466b79f0d597fed8fb8e1c374abe99cc8c170.png) ## 🚀 安装 ``` git clone cd CyberSec_Final_Project pip install -r requirements.txt ``` ## ▶️ 运行项目 ### 1) 训练并生成构件 ``` python scripts/run_days_3_6.py ``` ### 2) 启动 Streamlit 应用 ``` streamlit run app/streamlit_app.py ``` ## 🧪 测试用例示例 ### 安全 ``` Hi Rahul, Just a reminder that our meeting is tomorrow at 11:00 AM in Lab 3. Please bring the updated presentation and final documentation. ``` ### 垃圾邮件 ``` Congratulations!! You have won a FREE iPhone and a shopping voucher. Offer expires today. Click now to claim your reward. ``` ### 钓鱼邮件 ``` Dear Customer, Your bank account has been suspended. Verify immediately using the link below: https://secure-bank-login.xyz ``` ### 易混淆的边缘情况 ``` Dear Customer, We noticed unusual activity on your account. Please do not click links in suspicious emails. Open your banking app directly or type the official website manually. ``` ## 📌 本项目的亮点 这不仅仅是一个基础的垃圾邮件分类器。 它的设计目标是: - **三分类** - **具备防范钓鱼意识** - **模块化** - **可复现** - **评估驱动** - **适合作品集展示** - **随时可用于演示** 这使得它比标准的教程项目要强大得多。 ## 📚 项目文档 - `PROJECT_LOG.md` — 逐日开发日志 - `DATASET_NOTES.md` — 来源、标签映射、数据质量和工程决策 ## 🔮 未来规划 - 基于 BERT / Transformer 的分类器 - 使用 SHAP/LIME 的可解释 AI - URL 信誉 API - 附件扫描 - 浏览器扩展 - 多语言支持 - 实时邮件集成 - 在 Streamlit Cloud 上部署 ## 👨‍💻 作者 **Your Name Here** - GitHub: `https://github.com/Dipto2611` - LinkedIn: `https://www.linkedin.com/in/dipto26` - 电子邮件: `diptoraj.ch.26@gmail.com` ## 📜 许可证 为教育和学术目的而开发。 ## ⭐ 结语 本仓库遵循清晰的 ML 流水线模式: 原始数据 → 预处理 → TF-IDF → 模型训练 → 评估 → 保存的流水线 → 威胁情报 → 企业仪表板 → PDF 报告。 这使得它易于测试、解释、扩展,并能专业地进行展示。
标签:AI安全, Apex, Chat Copilot, Kubernetes, Streamlit, 垃圾邮件过滤, 机器学习, 访问控制, 逆向工具, 钓鱼检测