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
分层钓鱼检测与可解释威胁情报系统
[](https://nextjs.org/)
[](https://fastapi.tiangolo.com/)
[](https://supabase.com/)
[](https://www.typescriptlang.org/)
[](https://python.org/)
[](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
[](https://opensource.org/licenses/MIT)
[](#)
## 📖 项目概述
**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 导出报告 | 移动端视图 |
| :---: | :---: |
|

|

|
## 🛠️ 技术栈
**前端**
* 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, 威胁情报, 开发者工具, 机器学习, 测试用例, 网络安全, 自动化攻击, 逆向工具, 钓鱼检测, 隐私保护