SaiVardhanReddy18/Email-Threat-Intelligence-System

GitHub: SaiVardhanReddy18/Email-Threat-Intelligence-System

基于机器学习与多层威胁情报的钓鱼邮件检测平台,结合URL信誉分析、域名相似度检测等功能综合评估邮件风险并生成可视化报告。

Stars: 0 | Forks: 0

![Python](https://img.shields.io/badge/Python-3.11-blue?logo=python) ![Flask](https://img.shields.io/badge/Flask-Web%20Framework-black?logo=flask) ![机器学习](https://img.shields.io/badge/Machine-Learning-green) ![VirusTotal](https://img.shields.io/badge/VirusTotal-API-blue) ![许可证](https://img.shields.io/badge/License-MIT-yellow) # 🛡️ 邮件威胁情报系统 (ETIS) ### 基于机器学习的钓鱼邮件检测与威胁分析平台 邮件威胁情报系统 (ETIS) 是一款智能网络安全应用,它将**机器学习**与**实时威胁情报**相结合,通过高级邮件分析来识别钓鱼邮件。该系统集成了多种安全技术以增强钓鱼检测能力,包括 **VirusTotal API**、**URL 信誉分析**、**发件人伪造检测**、**域名相似度检测**、**品牌冒充检测**、**附件风险分析**以及**基于关键字的威胁评分**。 与仅依赖机器学习预测的传统钓鱼检测系统不同,ETIS 执行多层安全分析以提高检测准确性并提供有意义的威胁洞察。该应用具有一个交互式仪表板,可显示钓鱼概率、置信度分数、威胁分数、风险等级、URL 分析、VirusTotal 检测结果、扫描历史记录以及可下载的 PDF 安全报告。 本项目展示了**机器学习**、**网络安全**、**威胁情报**、**自然语言处理 (NLP)** 和 **Web 应用开发**的实际应用,非常适合用于学术研究、网络安全学习和专业作品集展示。 ## 📑 目录 - [项目概述](#-project-overview) - [项目亮点](#-project-highlights) - [功能](#-features) - [技术栈](#-tech-stack) - [项目结构](#-project-structure) - [安装](#-installation) - [配置](#-configuration) - [用法](#-usage) - [工作原理](#-how-it-works) - [应用工作流程](#-application-workflow) - [截图](#-screenshots) - [未来增强功能](#-future-enhancements) - [贡献](#-contributing) - [许可证](#-license) - [作者](#-author) # 📖 项目概述 邮件威胁情报系统 (ETIS) 是一个由机器学习驱动的钓鱼邮件检测平台,旨在使用多层网络安全分析来识别恶意邮件。 该应用将人工智能与现实世界的威胁情报相结合,比单纯的传统机器学习模型能更准确地检测钓鱼攻击。它会分析邮件内容、发件人信息、URL、附件和域名相似度,然后计算整体的威胁分数。 ETIS 为用户提供全面的安全报告,其中包括钓鱼概率、置信度分数、使用 VirusTotal 的 URL 信誉分析、发件人验证结果、威胁分数可视化、风险分类以及可下载的 PDF 报告。 本项目使用 **Python**、**Flask**、**Scikit-learn**、**TF-IDF Vectorization**、**Chart.js** 和 **VirusTotal API** 开发,旨在演示如何将机器学习与实用的网络安全技术相结合以进行钓鱼检测。 # 🚀 项目亮点 - 🤖 基于机器学习的邮件分类 - 🛡️ 实时 VirusTotal API 集成 - 🔗 URL 威胁检测与信誉分析 - 📧 发件人伪造检测 - 🌐 使用 Levenshtein Distance 进行域名相似度检测 - 🏦 品牌冒充检测 - 📎 附件风险分析 - 📊 交互式威胁仪表板 - 📈 威胁分数可视化 - 📄 可下载的 PDF 安全报告 - 📚 扫描历史记录管理 - 🌍 响应式 Web 界面 # ✨ 功能 - 基于机器学习的钓鱼邮件检测 - 实时 VirusTotal API 集成 - URL 提取与信誉分析 - 检测可疑的缩短 URL - 发件人伪造检测 - 使用 Levenshtein Distance 进行域名相似度检测 - 品牌冒充检测 - 附件风险扫描器 - 基于关键字的钓鱼检测 - 置信度分数计算 - 动态威胁分数生成 - 风险等级分类(低、中、高) - 交互式安全仪表板 - 使用图表进行威胁可视化 - 上传并分析 `.txt` 邮件文件 - 可下载的 PDF 安全报告 - 近期扫描历史跟踪 - 用户友好的 Flask Web 界面 # 💻 技术栈 ## 编程语言 - Python ## 后端框架 - Flask ## 机器学习 - Scikit-learn - TF-IDF Vectorizer ## 前端 - HTML5 - CSS3 - JavaScript - Chart.js ## 库 - NumPy - Pandas - Requests - ReportLab - Python-Levenshtein - python-dotenv ## 威胁情报 - VirusTotal API # 📁 项目结构 ``` Email-Threat-Intelligence-System/ │ ├── app.py ├── requirements.txt ├── README.md ├── LICENSE ├── .gitignore │ ├── data/ │ ├── phishing_emails.csv │ └── preprocessed_data.pkl │ ├── models/ │ ├── phishing_detector.pkl │ └── tfidf_vectorizer.pkl │ ├── src/ │ ├── preprocess.py │ ├── train.py │ └── predict.py │ └── templates/ └── index.html ``` # ⚙️ 安装 ## 1. 克隆仓库 ``` git clone https://github.com/SaiVardhanReddy18/Email-Threat-Intelligence-System.git cd Email-Threat-Intelligence-System ``` ## 2. 创建虚拟环境 ### Windows ``` python -m venv venv venv\Scripts\activate ``` ### macOS / Linux ``` python3 -m venv venv source venv/bin/activate ``` ## 3. 安装依赖 安装所有必需的 Python 库。 ``` pip install -r requirements.txt ``` # ⚙️ 配置 在项目根目录下创建一个 `.env` 文件。 ``` VT_API_KEY=YOUR_VIRUSTOTAL_API_KEY ``` 将 `YOUR_VIRUSTOTAL_API_KEY` 替换为您自己的 VirusTotal API 密钥。 # 🚀 用法 ## 启动 Flask 应用 运行: ``` python app.py ``` 服务器成功启动后,打开浏览器并访问: ``` http://127.0.0.1:5000 ``` ## 如何使用该应用 1. 输入发件人的电子邮件地址。 2. 将邮件内容粘贴到文本区,**或者**上传一个 `.txt` 邮件文件。 3. 点击 **Analyze Email**。 4. 系统将执行多层安全分析。 5. 查看生成的安全报告。 报告包括: - 机器学习预测 - 置信度分数 - 威胁分数 - 风险等级 - URL 信誉分析 - VirusTotal 检测结果 - 发件人伪造检测 - 域名相似度检测 - 品牌冒充检测 - 附件风险分析 - 扫描历史记录 - 可下载的 PDF 安全报告 ## 邮件分析示例工作流程 ``` Enter Email │ ▼ Click Analyze Email │ ▼ Machine Learning Prediction │ ▼ Threat Intelligence Analysis │ ▼ Interactive Dashboard │ ▼ Download Security Report ``` # 🔍 工作原理 邮件威胁情报系统 (ETIS) 遵循多层安全方法来准确检测钓鱼邮件。该应用并未仅依赖机器学习预测,而是将人工智能与威胁情报及基于规则的安全分析相结合,以提高检测准确性。 工作流程包含以下几个阶段: ### 1. 邮件输入 用户可以: - 将邮件内容直接粘贴到应用程序中。 - 上传一个 `.txt` 邮件文件进行分析。 同时还会收集发件人的电子邮件地址,以进行额外的安全验证。 ### 2. 机器学习分类 邮件内容使用 **TF-IDF Vectorization** 转换为数值型特征向量。 训练好的机器学习模型会分析这些特征并预测邮件是否为: - 合法 - 钓鱼 每次预测都会生成一个置信度分数。 ### 3. 关键字分析 应用程序会扫描邮件中与钓鱼相关的关键字,例如: - 验证 - 紧急 - 重置密码 - 账号被暂停 - 支付失败 - 安全警报 同时还会分析合法的商业关键字,以提高预测准确性。 ### 4. URL 提取与分析 自动提取邮件中存在的所有 URL。 应用程序会检查其是否具有可疑特征,包括: - URL 缩短服务 - 登录 URL - 安全 URL - 验证 URL - 基于 IP 的 URL ### 5. VirusTotal 集成 提取到的每个 URL 都会提交给 VirusTotal API 进行信誉分析。 VirusTotal 会根据多家安全供应商的数据库检查 URL,并返回: - 恶意检测 - 可疑检测 - 干净的信誉 检测结果将计入整体的威胁分数中。 ### 6. 发件人伪造检测 分析发件人的电子邮件域以检测可能的伪造企图。 示例: ``` support@paypaI.com ``` 而不是 ``` support@paypal.com ``` 系统会识别出试图冒充受信任组织的可疑发件域名。 ### 7. 域名相似度检测 应用程序使用 **Levenshtein Distance** 将发件域名与受信任的域名进行比较。 这有助于识别钓鱼攻击中常用的相似域名。 示例: ``` paypaI.com paypal.com ``` ### 8. 附件风险分析 应用程序会扫描上传的邮件内容中是否存在高风险的附件类型,包括: - .exe - .scr - .zip - .docm - .xlsm - .js 潜在的危险附件会增加整体的威胁分数。 ### 9. 品牌冒充检测 系统会检测是否存在冒充受信任组织的行为,例如: - Google - Microsoft - Amazon - PayPal - Apple - 银行 ### 10. 威胁分数计算 最终的安全分数是通过综合以下因素计算得出的: - 机器学习预测 - VirusTotal 结果 - URL 风险分析 - 发件人伪造检测 - 域名相似度 - 附件分析 - 品牌冒充 然后,应用程序会将该邮件分类为: - 🟢 低风险 - 🟡 中等风险 - 🔴 高风险 ### 11. 交互式仪表板 结果通过交互式仪表板呈现,其中包含: - 预测结果 - 置信度分数 - 威胁分数 - 风险等级 - VirusTotal 结果 - URL 分析 - 扫描历史记录 - 威胁可视化图表 ### 12. PDF 报告生成 用户可以下载包含以下内容的全面 PDF 报告: - 邮件分类 - 威胁分数 - 置信度分数 - VirusTotal 结果 - 安全发现 - 风险等级 - 分析摘要 # 🔄 应用工作流程 ``` Email Input │ ▼ Machine Learning Prediction │ ▼ Keyword-Based Analysis │ ▼ URL Extraction │ ▼ VirusTotal URL Reputation │ ▼ Sender Spoof Detection │ ▼ Domain Similarity Detection │ ▼ Attachment Risk Analysis │ ▼ Brand Impersonation Detection │ ▼ Threat Score Calculation │ ▼ Interactive Dashboard │ ▼ PDF Report Generation ``` # 📸 截图 ### 🏠 主页 _在此处添加应用主页截图。_ ### 📊 威胁仪表板 _在此处添加仪表板截图。_ ### 🌐 URL 信誉分析 _在此处添加 VirusTotal 分析截图。_ ### 📄 PDF 安全报告 _在此处添加 PDF 报告截图。_ # 🚀 未来增强功能 以下功能计划在未来版本中发布: - Gmail API 集成 - Microsoft Outlook 集成 - Docker 部署 - 用户身份验证 - 数据库存储 - 二维码钓鱼检测 - 恶意软件附件扫描 - 实时邮件监控 - AI 驱动的威胁情报 - REST API 支持 - 多语言支持 - 云部署 # 🤝 贡献 欢迎并感谢您的贡献。 如果您想改进此项目,请按照以下步骤操作: 1. Fork 此仓库。 2. 创建一个新的功能分支。 ``` git checkout -b feature-name ``` 3. 提交您的更改。 ``` git commit -m "Add new feature" ``` 4. 推送该分支。 ``` git push origin feature-name ``` 5. 发起一个 Pull Request。 请确保您的代码遵循项目的编码标准,并在适用处包含清晰的文档说明。 # 📄 许可证 本项目基于 **MIT License** 获得许可。 有关更多信息,请参阅 **LICENSE** 文件。 # 👨‍💻 作者 ## Sai Vardhan **MCA 学生 | 网络安全爱好者 | Python 开发者 | 机器学习者** ### 与我联系 - **GitHub:** https://github.com/SaiVardhanReddy18 - **电子邮件:** saivardhanreddy.2802@gmail.com # 🙏 鸣谢 特别感谢使本项目得以实现的以下技术和社区: - Python - Flask - Scikit-learn - VirusTotal API - Chart.js - ReportLab - 开源社区 # ⭐ 支持 如果您觉得这个项目有用: ⭐ 为本仓库点 Star 🍴 Fork 本仓库 📢 与他人分享 非常感谢您的支持! # ⚠️ 免责声明 本项目的开发仅用于**教育、研究和网络安全学习目的**。 VirusTotal API 的使用符合其公共 API 服务条款。 在使用本软件时,用户有责任遵守所有适用的法律和组织政策。 # 🎯 项目状态 **当前版本:** v1.0 ### 已实现的功能 - ✅ 机器学习邮件分类 - ✅ VirusTotal API 集成 - ✅ URL 信誉分析 - ✅ 发件人伪造检测 - ✅ 域名相似度检测 - ✅ 附件风险分析 - ✅ 品牌冒充检测 - ✅ 威胁分数仪表板 - ✅ PDF 报告生成 - ✅ 扫描历史记录 ### 计划中的功能 - 🔄 Gmail API 集成 - 🔄 Outlook 集成 - 🔄 Docker 部署 -🔄 用户身份验证 - 🔄 数据库支持 - 🔄 云部署 ## 💙 谢谢 感谢您访问本仓库。 如果您有任何建议、改进意见或反馈,请随时发起一个 issue 或提交一个 pull request。 祝您编码愉快!🚀
标签:Apex, Flask, Python, 威胁情报, 开发者工具, 无后门, 机器学习, 网络安全, 逆向工具, 钓鱼检测, 隐私保护