MeAkash77/PhishGuard-Layered-Phishing-Detection-Explainable-Threat-Intelligence-System

GitHub: MeAkash77/PhishGuard-Layered-Phishing-Detection-Explainable-Threat-Intelligence-System

PhishGuard 是一个分层钓鱼检测与可解释威胁情报系统,通过多引擎共识分析为安全分析师提供深入的 URL 风险评估与取证报告。

Stars: 0 | Forks: 0

🛡️ PhishGuard

分层钓鱼检测与可解释威胁情报系统

[![Next.js](https://img.shields.io/badge/Next.js-16-black?style=flat-square&logo=next.js)](https://nextjs.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.109-009688?style=flat-square&logo=fastapi)](https://fastapi.tiangolo.com/) [![Supabase](https://img.shields.io/badge/Supabase-DB-3ECF8E?style=flat-square&logo=supabase)](https://supabase.com/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-3178C6?style=flat-square&logo=typescript)](https://www.typescriptlang.org/) [![Python](https://img.shields.io/badge/Python-3.11-3776AB?style=flat-square&logo=python)](https://python.org/) [![PWA Ready](https://img.shields.io/badge/PWA-Ready-5A0FC8?style=flat-square&logo=pwa)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT) [![Cybersecurity](https://img.shields.io/badge/Cybersecurity-Advanced-red?style=flat-square&logo=security)](#)
## 📖 项目概述 **PhishGuard** 是一个高级的、分析师级别的网络安全情报平台。它提供对 URL 深入且可解释的分析,以主动检测钓鱼、欺骗和恶意基础设施。超越了简单的二元黑名单,PhishGuard 采用分层架构来构建 **共识威胁评分**,结合了启发式规则、机器学习分类以及交叉引用的威胁情报数据集。 其设计侧重于现代 SOC(安全运营中心)工作流,提供动态可视化报告、可导出的 PDF 取证审计,以及沉浸式、具有触感的 Progressive Web App (PWA) 体验。 ## 📈 项目统计 * **500,000+** 训练样本 * **RandomForest** 机器学习模型 * **10+** 提取的 URL 特征 * **3** 威胁情报来源 * **5** 判定级别 * **9** 威胁类别 * **3** 导出格式 * **二维码** 扫描支持 * **Progressive Web App** (PWA) * **分析师级别** 报告系统 ## ⚠️ 威胁分类 PhishGuard 根据情报发现、规则触发、欺骗分析和威胁指标,动态将威胁分类为以下层级类别: * **金融诈骗**:潜在冒充金融机构(例如 PayPal、Chase)。 * **凭证窃取**:旨在窃取用户名和密码凭证的虚假登录门户。 * **品牌欺骗**:模仿受信任品牌的错拼域名或同形异义字。 * **恶意软件投递**:与恶意软件 payload 关联的结构(例如 `.exe`、`.apk`、可疑 shell)。 * **账户验证骗局**:敦促立即采取行动以确认凭证的虚假安全警告。 * **URL 混淆**:使用原始 IP 地址、过多的子域名或百分号编码。 * **可疑重定向**:绕过验证屏幕以转发用户的开放重定向。 * **管理面板滥用**:针对管理员控制台(例如 `wp-admin`、`cpanel`)。 * **新注册域名**:极近期注册的基础设施,几乎没有信誉历史。 * **通用钓鱼企图**:与钓鱼活动相关的一般行为模式。 ## ✨ 核心功能 ### 身份验证与访问 * 用户注册 * 登录 * 登出 * 受保护路由 * 会话持久化 * 访客模式 ### 检测引擎 * 基于规则的检测引擎 * RandomForest 机器学习引擎 * 比较引擎 * 共识分析 * 决策引擎 ### 威胁情报 * 白名单情报 * 黑名单情报 * OpenPhish 集成 * PhishTank 集成 * URLHaus 集成 * 威胁情报源缓存 * 威胁情报源同步 ### 品牌保护 * 品牌欺骗检测 * 同形异义字检测 * 关键词模仿检测 * 商标相似度分析 ### 域名情报 * RDAP 查询 * WHOIS 后备 * 域名年龄分析 * 域名风险信号 ### 用户功能 * 二维码 URL 扫描器 * 手动 URL 扫描器 * 扫描历史记录 * 威胁时间线 * 分析仪表板 * 访客历史记录 * PWA 支持 ### 报告与导出 * PDF 报告 * JSON 报告 * TXT 报告 * 执行摘要 * 调查时间线 * 支持性证据 * 决策快照 * 执行结论 ## 🚦 威胁情报来源 PhishGuard 集成了动态的、交叉引用的威胁情报数据集,并本地存储以实现快速查询: ### OpenPhish 社区驱动的钓鱼情报源。 ### PhishTank 经过验证的钓鱼 URL 仓库。 ### URLHaus 恶意软件和恶意基础设施情报源。 *这些情报源已在 Supabase 中同步并本地缓存,以在扫描过程中提供零延迟查询。* ## 🧠 机器学习引擎 **当前模型:** RandomForestClassifier **框架:** scikit-learn **检测特征:** * URL 长度 * HTTPS 使用情况 * 数字数量 * 连字符数量 * 可疑关键词 * 子域名数量 * 重定向指标 * IP 地址使用 * 编码字符 * TLD 指标 **可解释性:** * 特征重要性分析 * 置信度评分 ### 训练数据集 **数据集名称:** Phishing URLs Dataset **数据集来源:** Hugging Face (`ealvaradob/phishing-dataset`) **样本数量:** 500,000+ **特征数量:** 10+ **训练方法:** 使用提取的词汇特征进行离线监督学习,经过训练和序列化以实现快速的 API 推理。 ### 当前限制 * RandomForest 目前是生产模型。 * 模型主要集中在词汇 URL 分析。 * 尚未包含 ASN(自治系统号)情报。 * 尚未包含扩展的域名信誉情报。 ## ⚖️ 决策引擎 PhishGuard 不依赖单一的数值评分。最终判定是通过结合来自以下几个方面的洞察生成的: * 威胁情报源 * 品牌欺骗检测 * 域名情报 * 基于规则的引擎 * 机器学习引擎 * 共识分析 ### 升级逻辑 决策引擎基于严格的判定优先级层次结构执行绝对规则,该层次结构会覆盖标准的数值阈值: * **品牌欺骗检测** → 将最低判定升级为 **SUSPICIOUS**。 * **品牌欺骗 + 未注册域名** → 将最低判定升级为 **HIGH RISK**。 * **金融品牌欺骗** → 将最低判定升级为 **HIGH RISK**。 * **威胁源匹配或被列入黑名单** → 将最低判定升级为 **CRITICAL**。 * **威胁源 + 品牌欺骗** → 将最终判定升级为 **MALICIOUS**(最高优先级)。 ## 🛡️ 判定级别 判定是通过决策引擎升级产生的,而不仅仅是数值评分。 * **SAFE** 未检测到明显的钓鱼指标。域名看起来合法且结构健全。 * **SUSPICIOUS** 检测到轻微指标或严重程度较低的品牌欺骗。需保持谨慎。 * **HIGH RISK** 检测到强烈的钓鱼指标(例如,金融品牌欺骗或未注册域名)。避免输入凭证。 * **CRITICAL** 多个情报层指示存在恶意行为,包括活跃的威胁源匹配。 * **MALICIOUS** 已知正在积极冒充受信任品牌的恶意基础设施。已确认存在严重的多层证据。 ## 🔢 威胁评分方法 虽然决策引擎可以将判定升级到超出数值界限,但基准严重程度范围是按满分 100 分评估的: * **0 – 34** 安全 / 信息性 * **35 – 69** 可疑 / 低至中度风险 * **70 – 84** 危险 / 高风险 * **85 – 100** 严重 / 恶意 ### 影响因素: * 规则引擎启发式 * 威胁源匹配(每个源 +50 到 +60 分) * 品牌欺骗检测(+25 分) * 域名年龄信号(对于未注册的活动域名为 +35 分) * 黑名单指标 * URL 混淆 *注意:严重性评分与最终判定本质上是相关的,但决策引擎的升级规则保证了已确认的威胁无论原始数学评分如何,都能获得最高的严重程度。* ## 📊 分析仪表板 * 总扫描次数 * 安全 URL * 可疑 URL * 危险 URL * ML 扫描 * 基于规则的扫描 * 平均威胁评分 * 威胁分布 * 时间线活动 * 引擎使用情况 这些指标是通过聚合存储在 Supabase PostgreSQL 数据库中的用户扫描历史和全球平台遥测数据动态生成的,并通过交互式 Recharts 界面呈现运营洞察。 ## 🎯 应用场景 PhishGuard 可用于: - 网络安全教育 - 威胁情报演示 - 研究论文原型 - 安全意识培训 - URL 风险评估 - 钓鱼检测研究 ## 🚦 威胁情报 Pipeline ``` flowchart TD A[Input URL] --> B[Whitelist Check] B --> C[Blacklist Check] C --> D[Threat Feed Intelligence OpenPhish • PhishTank • URLHaus] D --> E[Brand Spoof Detection Homoglyph • Levenshtein • Trademark Analysis] E --> F[Domain Intelligence RDAP • WHOIS • Domain Age] F --> G[Rule Engine] G --> H[Machine Learning Engine RandomForest Classifier] H --> I[Consensus Analysis] I --> J[Decision Engine] J --> K[Threat Classification] K --> L[Analyst Report Generation] ``` PhishGuard 遵循分层情报工作流,其中每个 URL 都会通过多个独立的安全引擎。来自威胁情报源、品牌欺骗分析、域名情报、启发式规则和机器学习的结果通过决策引擎进行聚合,以生成可解释的最终判定和分析师级别的威胁报告。 ## 🏛️ 系统架构 - **前端层**:高度交互的 Next.js 16 (React) 应用程序,利用 Tailwind CSS 和 Framer Motion 实现 SOC 级别的电影级视觉效果。通过 Zustand 和 React Query 管理状态。 - **后端层**:由 FastAPI (Python 3.11) 提供支持的高性能异步 REST API。编排核心应用程序逻辑和路由处理。 - **数据库层**:Supabase PostgreSQL 负责处理身份验证、行级安全 (RLS) 以及扫描历史的持久化存储。 - **威胁情报层**:审查外部情报源(OpenPhish、PhishTank、URLHaus)并执行实时的 WHOIS/RDAP 查询。 - **检测引擎层**:品牌欺骗检测(同形异义字、Levenshtein)、词汇规则引擎。 - **ML 引擎层**:由 scikit-learn 驱动的推理,评估提取的 URL 向量。 - **决策引擎层**:评估所有上游情报层的输出,以计算统一的共识评分和判定。 - **报告与导出层**:生成严格格式化的取证 JSON、TXT 和 PDF 文档(通过 ReportLab)。 ### 系统架构图 ``` graph TD User([User]) --> Frontend[Next.js Frontend] Frontend --> Backend[FastAPI Backend] subgraph Core Services Backend --> Intel[Threat Intelligence] Intel --> Cache[Threat Feed Cache] Backend --> Domain[Domain Intelligence] Backend --> Spoof[Brand Spoof] Backend --> Rule[Rule Engine] Backend --> ML[ML Engine] Backend --> Decision[Decision Engine] Backend --> Analytics[Analytics Engine] Backend --> Reporting[Reporting Engine] Reporting --> Export[Export Engine] end Decision --> DB[(Supabase Database)] Backend --> DB ``` ## 🔄 数据流 ``` graph TD A([User]) -->|URL Submission| B[Next.js Frontend] B -->|API Request| C[Backend Validation] C --> D[Threat Intelligence Checks] D --> E[Brand Spoof Detection] E --> F[Domain Intelligence] F --> G[Rule Engine] G --> H[ML Engine] H --> I[Consensus Analysis] I --> J[Decision Engine] J --> K[(Storage / Supabase)] J --> L[Report Generation] L --> M[Dashboard / History View] ``` ## 📸 截图 | 登录页面 | 仪表板概览 | | :---: | :---: | | 登录页面 | 仪表板 | | 比较扫描分析 | 分析仪表板 | | :---: | :---: | | 比较扫描 | 分析 | | PDF 导出报告 | 移动端视图 | | :---: | :---: | | PDF 导出 | 移动端视图 | ## 🛠️ 技术栈 **前端** * Next.js 16 * TypeScript * Tailwind CSS * ShadCN UI * Framer Motion * Zustand * React Query * Axios **后端** * FastAPI * Python * Pydantic * scikit-learn * ReportLab **数据库** * Supabase Auth * PostgreSQL **部署** * Vercel * Render ## 🚀 安装与设置 ### 前置条件 - Node.js (v20+) - Python (v3.10+) - Supabase 账户 ### 1. 后端设置 ``` cd backend python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` pip install -r requirements.txt cp .env.example .env # Configure your environment variables python run.py # Starts FastAPI server on port 8000 ``` ### 2. 前端设置 ``` cd frontend npm install cp .env.example .env.local # Configure your environment variables npm run dev # Starts Next.js server on port 3000 ``` ## 🔐 环境变量 您必须根据提供的 `.env.example` 模板创建 `.env` 文件。 ### 前端 (`frontend/.env.local`) - `NEXT_PUBLIC_SUPABASE_URL`:您的 Supabase 项目 URL。 - `NEXT_PUBLIC_SUPABASE_ANON_KEY`:您的 Supabase 公共匿名密钥。 - `NEXT_PUBLIC_API_URL`:FastAPI 后端的 URL(例如,`http://localhost:8000`)。 ### 后端 (`backend/.env`) - `SUPABASE_URL`:您的 Supabase 项目 URL。 - `SUPABASE_KEY`:您的 Supabase 服务角色密钥(请妥善保密!)。 - `DATABASE_URL`:PostgreSQL 连接字符串。 - `FRONTEND_URL`:前 URL,用于 CORS 策略(例如,`http://localhost:3000`)。 ## 🌍 部署 ### Vercel (前端) 1. 将存储库推送到 GitHub。 2. 在 Vercel 中将 `frontend/` 目录作为新项目导入。 3. 添加 `NEXT_PUBLIC_*` 环境变量。 4. 部署。 ### Render / Railway (后端) 1. 将您的存储库连接到 Render 或 Railway。 2. 将根目录设置为 `backend/`。 3. 构建命令:`pip install -r requirements.txt` 4. 启动命令:`uvicorn app.main:app --host 0.0.0.0 --port $PORT` 5. 注入后端环境变量。 ### Supabase (身份验证与数据库) 1. 在 Supabase SQL 编辑器中运行数据库迁移/模式设置。 2. 确保为 `scans` 表启用了行级安全 (RLS)。 ## 📱 PWA 支持 PhishGuard 被构建为完全可安装的 Progressive Web App。 - **桌面端**:在 Chrome/Edge 的 URL 栏中点击安装图标。 - **移动端**:在 iOS Safari 上点击“分享” > “添加到主屏幕”,或在 Android 上通过 Chrome 安装。 包括动态缓存、离线后备横幅以及针对现代设备的安全区域插入填充。 ## 📄 导出系统 扫描结果可以立即导出,用于取证审计或合规归档: - **PDF**:生成格式严格的多页文档,具有严重性颜色、时间线日志和真实性水印。 - **JSON**:用于 API 集成的机器可读格式。 - **TXT**:用于快速分享的轻量级文本格式。 ## 📈 当前项目状态 **当前阶段:** 高级网络安全 SaaS 原型 **已完成:** * 二维码扫描器 * 威胁情报源 * 域名情报 * 决策引擎 * 分析师报告 * 威胁分类 * 品牌欺骗情报 **生产组件:** * 前端 * 后端 * 数据库 * 情报层 * 报告系统 ## 🔭 未来路线图 ### 高优先级 * **自定义集成情报模型** * 组件:RandomForest、GradientBoosting、LogisticRegression、加权投票 * 目的:提高检测稳健性并减少误报。 ### 中优先级 * ASN / 主机情报 * 域名信誉情报 ### 未来范围 * 浏览器扩展 * 企业威胁情报扩展 * 高级威胁追踪仪表板 * 实时威胁情报扩展 ## 📄 许可证 该项目基于 [MIT 许可证](LICENSE) 授权。 ## 🤝 贡献者 / 致谢 设计与开发侧重于现代网络安全用户体验和稳健的机器学习分析。 欢迎贡献、问题和功能请求!随时欢迎查看 [问题页面](../../issues)。 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解我们的行为准则以及向我们提交 Pull Request 的流程详情。有关安全问题,请参阅 [SECURITY.md](SECURITY.md)。
标签:Apex, AV绕过, FastAPI, 威胁情报, 开发者工具, 机器学习, 测试用例, 网络安全, 自动化攻击, 逆向工具, 钓鱼检测, 隐私保护