krishyadav90/ThreatSpectra

GitHub: krishyadav90/ThreatSpectra

ThreatSpectra 是一个全栈钓鱼检测平台,通过机器学习与规则引擎对 URL、邮件、短信和二维码进行实时风险分析,帮助用户在点击前识别可疑内容。

Stars: 1 | Forks: 0

# ThreatSpectra ![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-2.3%2B-000000?logo=flask&logoColor=white) ![License](https://img.shields.io/badge/License-Permission--First-blue) ![Status](https://img.shields.io/badge/Status-Production%20Ready-2ea44f) ThreatSpectra 是一个全栈# ThreatSpectra ![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-2.3%2B-000000?logo=flask&logoColor=white) ![License](https://img.shields.io/badge/License-Permission--First-blue) ![Status](https://img.shields.io/badge/Status-Production%20Ready-2ea44f) ThreatSpectra 是一个全栈# ThreatSpectra ![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-2.3%2B-000000?logo=flask&logoColor=white) ![License](https://img.shields.io/badge/License-Permission--First-blue) ![Status](https://img.shields.io/badge/Status-Production%20Ready-2ea44f) ThreatSpectra 是一个全栈# ThreatSpectra ![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-2.3%2B-000000?logo=flask&logoColor=white) ![许可证](https://img.shields.io/badge/License-Permission--First-blue) ![状态](https://img.shields.io/badge/Status-Production%20Ready-2ea44f) ThreatSpectra 是一个全栈网络钓鱼检测平台,可在同一处分析多个攻击面:URL、电子邮件、短信和二维码。它将机器学习预测与实用的规则检查相结合,并提供现代化前端以实现快速安全筛查。 ## 概述 ThreatSpectra 可帮助用户在点击链接、回复消息或分享敏感数据之前识别可疑内容。 核心功能: - URL 网络钓鱼检测 - 电子邮件网络钓鱼检测 - 短信网络钓鱼检测 - 二维码 URL 提取与风险检测 - 带 SMTP 发送功能的联系表单 ## 功能特性 前端: - 多模式扫描器界面(URL、电子邮件、短信、二维码) - 带有置信度值的实时结果卡片 - 用于测试的快速样本输入 - 响应式网络安全主题 UI 后端: - 启用 CORS 的 Flask API - 基于 Random Forest 的 URL 检测 pipeline - 基于特征的电子邮件检测 pipeline - 基于 TF-IDF 的短信检测 pipeline - 使用 `zxing-cpp` 进行二维码解码,并以 `pyzbar` 作为备选 - 带 SMTP 转发的联系端点 ## 项目结构 ``` . |- app.py |- index.html |- .env.example |- requirements.txt |- runtime.txt |- email/ | |- email_features.py | |- email_predict.py | |- email_rules.py |- url/ | |- url_features.py | |- url_predict.py | |- url_rules.py |- sms/ | |- sms_predict.py |- models/ | |- load_models.py |- utils/ | |- helpers.py | |- text_utils.py |- static/ | |- css/style.css | |- js/script.js | |- images/ |- extension/ | |- manifest.json | |- background.js | |- content.js | |- popup.html | |- popup.css | |- popup.js | |- assets/ | |- dist/ |- website_detection/ | |- Phishing_website_detection.ipynb | |- phishing_model_complete.pkl |- email_detection/ | |- Model_Training.ipynb | |- email_phishing_model.pkl |- sms_detection/ | |- SMS_phishing_detection.ipynb | |- sms_phishing_model.pkl ``` ## API 端点 ### `GET /` 提供 ThreatSpectra 主网页服务。 ### `POST /predict` 分析 URL 网络钓鱼风险。 请求: ``` { "url": "https://example.com" } ``` ### `POST /predict_email` 分析电子邮件网络钓鱼风险。 请求: ``` { "email": "Paste full email content here" } ``` ### `POST /predict/email` 向后兼容的电子邮件路由。 请求: ``` { "text": "Paste full email content here" } ``` ### `POST /predict/sms` 分析短信网络钓鱼风险。 请求: ``` { "text": "Your package is on hold, verify now..." } ``` ### `POST /predict-qr` 接受二维码图像上传 (`qr_image`) 并分析解码后的 URL。 ### `POST /contact/send` 将网站联系表单的提交内容发送到已配置的收件箱。 请求: ``` { "name": "Your Name", "email": "you@example.com", "message": "Hello" } ``` ## 本地设置 ### 前置条件 - Python 3.9+ - `pip` ### 安装与运行 (Windows PowerShell) ``` cd "C:\Users\KRISH\OneDrive\Desktop\Cyber Security Projects\ThreatSpectra" python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install --upgrade pip pip install -r requirements.txt python app.py ``` 打开: - `http://127.0.0.1:5000` - `http://localhost:5000` ## 浏览器扩展 ThreatSpectra 在 `extension/` 目录中包含一个浏览器扩展。 功能: - 通过 `POST /predict` 自动扫描访问的网站 - 在页面右上角显示警告提示:`Safe` 或 `Unsafe` - 支持在弹出窗口中进行手动检查:URL、二维码、电子邮件、短信 - 包含带有删除和清除控制的扫描历史记录 历史记录免责声明: - 仅存储最近的 15 条检查记录 - 较早的记录会被自动删除 ### 1) 启动 API 服务器 ``` python app.py ``` ### 2) 在 Chrome / Edge / Brave / Opera 中加载扩展 1. 打开扩展页面: - Chrome:`chrome://extensions` - Edge:`edge://extensions` 2. 启用 `Developer mode`(开发者模式) 3. 点击 `Load unpacked`(加载已解压的扩展程序) 4. 选择文件夹:`ThreatSpectra/extension` ### 3) 在 Firefox 中加载扩展 1. 打开 `about:debugging#/runtime/this-firefox` 2. 点击 `Load Temporary Add-on`(加载临时附加组件) 3. 选择 `ThreatSpectra/extension/manifest.json` ### 4) 使用扩展 1. 点击扩展图标 2. 保持开启 `Automatic top-right alert`(自动右上角警告)以获取自动网站警告 3. 打开或刷新网站标签页以触发扫描 4. 使用弹出窗口标签页进行手动的 URL、二维码、电子邮件和短信扫描 5. 从 History(历史记录)标签页管理记录 如果弹出警告未出现: - 确认 Flask 服务器正在运行 - 在普通的 `http/https` 页面上测试(而不是浏览器的内部页面) - 启用扩展后刷新标签页 ## SMTP 配置(联系表单) 设置环境变量(或在本地 `.env` 文件中定义它们): ``` $env:CONTACT_SMTP_HOST="smtp.gmail.com" $env:CONTACT_SMTP_PORT="587" $env:CONTACT_SMTP_USERNAME="your-email@gmail.com" $env:CONTACT_SMTP_PASSWORD="your-app-password" $env:CONTACT_TO_EMAIL="your-email@gmail.com" $env:CONTACT_FROM_EMAIL="your-email@gmail.com" $env:CONTACT_SMTP_USE_TLS="true" ``` 更新变量后重启 Flask 服务器。 ## 代码健康检查 使用相同的虚拟环境并运行: ``` # 1) 对所有 Python 文件进行语法检查 python -m compileall -q . # 2) 运行时冒烟检查(导入 app + model 加载器) python -c "import app; print('APP_IMPORT_OK')" ``` 预期结果: - `compileall` 正常退出且无错误 - 导入冒烟测试打印 `APP_IMPORT_OK` ## 技术栈 - Flask - Flask-CORS - scikit-learn - pandas - numpy - requests - BeautifulSoup - Pillow - zxing-cpp - pyzbar - HTML, CSS, JavaScript, Bootstrap, AOS ## 贡献指南 欢迎贡献。 贡献方式: 1. 开启一个 issue 描述您的更改。 2. 在使用、修改、分发或部署本项目之前,请先请求许可。 3. Fork 仓库并创建一个功能分支。 4. 提交带有清晰说明和测试详细信息的 Pull Request。 通过贡献,您同意您的贡献可以在本仓库的许可证下使用。 ## 许可证 本仓库使用自定义的许可优先许可证: - 在使用、分发或部署本项目之前,您必须征得所有者的许可。 - 允许通过 Pull Request 进行贡献。 有关完整条款,请参见[许可证](LICENSE)。 ## 维护者 - 姓名:Krish - GitHub:https://github.com/krishyadav90 - LinkedIn:https://www.linkedin.com/in/krish-yadav-aba86a2bb/ ## 免责声明 ThreatSpectra 提供的是安全预测,而非绝对保证。在采取行动之前,请通过额外的安全检查来验证高风险结果。
标签:Apex, API服务, Chrome Extension, Flask, Python, SMTP, Splunk, TF-IDF, URL检测, Web安全, 二维码安全, 云计算, 前后端分离, 反欺诈, 多模态安全, 威胁情报, 实时检测, 开发者工具, 数据可视化, 无后门, 机器学习, 浏览器插件, 短信过滤, 网络安全, 蓝队分析, 规则引擎, 逆向工具, 邮件安全, 钓鱼检测, 随机森林, 隐私保护