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), 无后门, 无服务器架构, 机器学习, 梯度提升, 测试用例, 特征提取, 系统调用监控, 网络安全, 网络测绘, 网络钓鱼防御, 请求拦截, 逆向工具, 邮件安全, 随机森林, 隐私保护