sheeryn123/phishnet
GitHub: sheeryn123/phishnet
一个基于多模型集成学习的全栈 AI 钓鱼检测平台,提供 URL 和邮件分析、浏览器实时防护以及威胁情报聚合能力。
Stars: 0 | Forks: 0
# PhishNet — AI 驱动的钓鱼检测系统
PhishNet 是一个全栈钓鱼检测平台,通过结合多个机器学习模型来分析 URL、电子邮件和网页内容。它将 Random Forest、Gradient Boosting 和 BERT 分类器与从 WHOIS、DNS、SSL 证书和页面内容中进行的实时特征提取相结合,以提供准确的钓鱼判定结果及可解释的置信度分数。
## 功能特性
- **URL 扫描** — 词法分析、域名年龄/WHOIS、DNS 记录、SSL 证书验证、页面内容检查和品牌冒充检测。
- **电子邮件扫描** — SPF/DKIM/DMARC 身份验证解析、NLP 紧急性检测、品牌冒充评分、嵌入 URL 提取和附件风险分析。
- **ML 集成模型** — Random Forest + Gradient Boosting + BERT 软投票集成模型,带有校准后的概率估计和可配置权重。
- **置信度聚合** — 加权模型融合与一致性奖励、威胁情报覆盖和白名单抑制。
- **威胁情报** — 接入 IOC 源(CSV、JSON、STIX/TAXII),将扫描的工件与已知指标进行匹配,并自动丰富判定结果。
- **仪表盘和报告** — 实时统计数据、威胁趋势图、热门威胁域名、近期扫描动态,以及定时的 PDF/CSV/JSON 报告生成。
- **浏览器扩展** — Chrome MV3 扩展,支持弹出窗口 URL 检查、后台导航拦截和页面内可疑链接高亮。
- **REST API** — 版本化 JSON API(`/api/v1`),支持 JWT + API-key 认证、速率限制、异步 Celery 扫描和 OpenAPI 文档。
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| 后端 | Python 3.11, FastAPI, SQLAlchemy 2 (async), Celery, Redis |
| 机器学习 | scikit-learn, PyTorch, Transformers (BERT), spaCy |
| 数据库 | PostgreSQL 15, Alembic migrations |
| 前端 | React 18, Vite, Tailwind CSS, Zustand, Recharts |
| 扩展程序 | Chrome Manifest V3, Service Worker |
| 基础设施 | Docker Compose, Flower, Prometheus, Sentry |
## 项目结构
```
phishnet/
├── backend/ # FastAPI application
│ ├── app/
│ │ ├── api/ # Route handlers
│ │ ├── core/ # Security, exceptions
│ │ ├── features/ # Feature extractors (URL, domain, email, content, cert)
│ │ ├── ml/ # Classifiers, preprocessor, trainer, aggregator
│ │ ├── models/ # SQLAlchemy ORM models
│ │ ├── schemas/ # Pydantic request/response schemas
│ │ └── services/ # Business logic services
│ ├── alembic/ # Database migrations
│ └── tests/ # pytest test suite
├── frontend/ # React SPA
│ └── src/
│ ├── api/ # Axios API client modules
│ ├── components/ # Reusable UI components
│ ├── pages/ # Route-level page components
│ └── stores/ # Zustand state stores
├── extension/ # Chrome browser extension
├── docker-compose.yml
└── .env.example
```
## 设置
### 前置条件
- Docker & Docker Compose(推荐)**或者** Python 3.11+, Node.js 18+, PostgreSQL 15, Redis 7
### 快速开始(Docker)
```
cp .env.example .env # edit secrets before production use
docker compose up -d # starts all services
# API: http://localhost:8000/docs
# Frontend: http://localhost:3000
# Flower: http://localhost:5555
```
### 本地开发
```
# Backend
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload
# Frontend
cd frontend
npm install
npm run dev # http://localhost:5173
# Tests
cd backend
pytest --cov=app tests/
```
## API 参考
所有端点都带有 `/api/v1` 前缀。需要身份验证的路由需要在 `Authorization` 请求头中提供 `Bearer` JWT 或提供 `X-API-Key` 请求头。
| 方法 | 端点 | 认证 | 描述 |
|--------|----------|------|-------------|
| POST | `/auth/register` | 否 | 创建账户 |
| POST | `/auth/login` | 否 | 获取 JWT token |
| POST | `/auth/refresh` | 否 | 刷新访问 token |
| POST | `/urls/scan` | 是 | 扫描单个 URL |
| POST | `/urls/batch` | 是 | 最多扫描 100 个 URL |
| GET | `/urls/{scan_id}` | 是 | 获取扫描结果 |
| POST | `/emails/scan` | 是 | 扫描电子邮件 |
| GET | `/emails/{scan_id}` | 是 | 获取电子邮件扫描结果 |
| GET | `/threats` | 是 | 列出威胁指标 |
| POST | `/threats` | 管理员 | 创建指标 |
| GET | `/dashboard/stats` | 是 | 仪表盘统计数据 |
| GET | `/dashboard/trend` | 是 | 威胁趋势图数据 |
| GET | `/dashboard/recent` | 是 | 近期扫描活动 |
| POST | `/reports/generate` | 是 | 生成分析报告 |
| POST | `/extension/check` | API-Key | 快速 URL 检查(扩展) |
## 环境变量
有关完整列表,请参见 [`.env.example`](.env.example)。主要变量包括:
- `DATABASE_URL` — PostgreSQL 异步连接字符串
- `REDIS_URL` — 用于缓存和 Celery broker 的 Redis
- `JWT_SECRET_KEY` — 用于签署 JWT 的密钥(在生产环境中务必更改)
- `ML_CONFIDENCE_THRESHOLD` — 钓鱼分类阈值(默认 0.7)
- `ENSEMBLE_WEIGHTS_RF/GB/BERT` — 每个模型的投票权重
## 许可证
MIT
标签:AI钓鱼检测, Apex, API安全, AV绕过, BERT, Celery, DNS分析, FastAPI, IOC指标, JSON输出, NLP, PostgreSQL, Python, PyTorch, React, Redis, scikit-learn, SSL证书验证, STIX/TAXII, Syscalls, Tailwind CSS, URL扫描, Vite, WHOIS查询, Zustand, 凭据扫描, 协议探测, 后端开发, 威胁情报, 开发者工具, 异步任务, 微调, 搜索引擎查询, 搜索语句(dork), 无后门, 无服务器架构, 机器学习, 梯度提升, 测试用例, 特征提取, 系统调用监控, 网络安全, 网络测绘, 网络钓鱼防御, 请求拦截, 逆向工具, 邮件安全, 随机森林, 隐私保护