ArmanAnsari8426/PhishGuard-AI

GitHub: ArmanAnsari8426/PhishGuard-AI

基于机器学习与多维威胁情报集成的 AI 驱动钓鱼网址实时检测与防护平台。

Stars: 0 | Forks: 0

# 🛡️ PhishGuard AI [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/) [![Node.js 20+](https://img.shields.io/badge/node-20+-green.svg)](https://nodejs.org/) [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)]() **先进的 AI 驱动钓鱼检测平台** - 通过使用 Machine Learning、SSL 验证、域名信誉分析和威胁情报集成进行实时 URL 分析,保护您的用户免受钓鱼攻击。 ![PhishGuard AI Banner](https://phishguard.ai/banner.png) ## 📋 目录 - [功能](#-features) - [技术栈](#-tech-stack) - [演示](#-demo) - [安装](#-installation) - [配置](#-configuration) - [用法](#-usage) - [API 文档](#-api-documentation) - [机器学习](#-machine-learning) - [Chrome 扩展](#-chrome-extension) - [部署](#-deployment) - [SEO 与 Google Console](#-seo--google-console) - [贡献](#-contributing) - [许可证](#-license) ## ✨ 功能 ### 🔍 URL 分析 - **20+ 特征提取**:URL 长度、点号、连字符、@ 符号、HTTPS、SSL 有效性、域名年龄、子域、可疑关键字、品牌冒充 - **实时扫描**:亚秒级响应时间,即时威胁评估 - **风险评分**:0-100 的风险评分,分为 5 个类别(安全、低风险、可疑、高风险、钓鱼) ### 🤖 机器学习 - **Random Forest Classifier**:基于数百万个钓鱼样本进行训练 - **XGBoost 支持**:为高级梯度提升模型做好准备 - **99.7% 准确率**:业界领先的检测率 - **持续学习**:随着新威胁数据更新模型 ### 🔐 安全功能 - **SSL 证书验证**:全面的证书分析 - **WHOIS 查询**:域名注册信息 - **VirusTotal 集成**:多引擎威胁检测 - **Google Safe Browsing**:实时威胁情报 - **PhishTank 数据库**:社区驱动的钓鱼报告 ### 📊 分析与报告 - **交互式仪表板**:实时统计和图表 - **PDF 报告**:专业的可下载报告 - **扫描历史记录**:具有搜索和过滤功能的完整审计跟踪 - **管理面板**:用户管理、扫描日志、域名屏蔽 ### 🌐 浏览器扩展 - **Chrome 扩展**:浏览时的实时保护 - **自动扫描**:自动扫描访问的网站 - **警告覆盖层**:针对钓鱼网站的视觉警报 - **图标状态**:颜色编码的安全指示器 ### 🔒 身份验证与安全 - **JWT 身份验证**:安全的基于 token 的身份验证 - **密码哈希**:带 salt 的 bcrypt - **速率限制**:防止滥用 - **CSRF 防护**:跨站请求伪造防护 - **XSS 防护**:输入清理 - **SQL 注入防护**:参数化查询 ## 🛠️ 技术栈 ### 前端 - **React 19** - 现代 UI 库 - **TypeScript** - 类型安全的 JavaScript - **Tailwind CSS v4** - 实用优先的 CSS 框架 - **Framer Motion** - 流畅的动画 - **Recharts** - 数据可视化 - **Vite** - 快速构建工具 - **React Router** - 客户端路由 ### 后端 - **Python 3.11+** - 后端语言 - **Flask 3.0** - Web 框架 - **SQLAlchemy** - 用于数据库的 ORM - **SQLite**(开发)/ **PostgreSQL**(生产)- 数据库 - **scikit-learn** - 机器学习 - **XGBoost** - 梯度提升 - **NumPy/Pandas** - 数据处理 ### 外部 API - **VirusTotal API** - 威胁情报 - **Google Safe Browsing** - 恶意软件检测 - **PhishTank** - 钓鱼数据库 - **WHOIS** - 域名信息 ### DevOps - **Docker** - 容器化 - **GitHub Actions** - CI/CD - **Render** - 云部署 - **Railway** - 备选部署 - **Gunicorn** - WSGI 服务器 ## 🎮 演示 **本地开发**: - 前端:`http://localhost:5173` - 后端:`http://localhost:5000` **超级管理员访问权限(仅限文档)**: - 电子邮件:`adminadmine@8426gmail.com` - 密码:`Arman@8426` ### 快速开始 ``` python -m venv .venv .\.venv\Scripts\activate pip install -r requirements.txt copy .env.example .env python app.py ``` 在第二个终端中: ``` npm install npm run dev ``` ## 📦 安装 ### 验证设置 该项目目前可以顺利通过以下验证: - `pytest -q` → 22 个测试通过 - `npm run build` → 生产环境前端构建成功 ### 前置条件 ### 前置条件 - Python 3.11 或更高版本 - Node.js 20 或更高版本 - npm 或 yarn - PostgreSQL(可选,开发环境使用 SQLite) ### 后端设置 1. **克隆仓库** ``` git clone https://github.com/yourusername/phishguard-ai.git cd phishguard-ai ``` 2. **创建虚拟环境** ``` python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate ``` 3. **安装 Python 依赖项** ``` pip install -r requirements.txt ``` 4. **设置环境变量** ``` cp .env.example .env # 使用你的配置编辑 .env ``` 5. **初始化数据库** ``` python -c "from database.models import Database; Database().init_db()" ``` 6. **训练 ML 模型(可选)** ``` python model/train_model.py ``` 7. **运行后端** ``` python app.py ``` 后端将在 `http://localhost:5000` 可用 ### 前端设置 1. **安装 Node 依赖项** ``` npm install ``` 2. **运行开发服务器** ``` npm run dev ``` 前端将在 `http://localhost:5173` 可用 ### Docker 设置(推荐) 1. **使用 Docker Compose 构建并运行** ``` docker-compose up --build ``` 通过 `http://localhost:5000` 访问应用程序 ## ⚙️ 配置 ### 环境变量 在根目录中创建一个 `.env` 文件: ``` # Flask 配置 FLASK_ENV=production SECRET_KEY=your-super-secret-key # 数据库 DATABASE_URL=postgresql://user:pass@localhost:5432/phishguard # API Keys VIRUSTOTAL_API_KEY=your-virustotal-api-key GOOGLE_SAFE_BROWSING_API_KEY=your-google-api-key PHISHTANK_API_KEY=your-phishtank-api-key # JWT JWT_SECRET_KEY=your-jwt-secret JWT_EXPIRATION=86400 ``` ### API Key 设置 1. **VirusTotal**:在 [virustotal.com](https://www.virustotal.com/gui/join-us) 获取您的 API key 2. **Google Safe Browsing**:在 [Google Cloud Console](https://console.cloud.google.com/) 获取您的 API key 3. **PhishTank**:在 [phishtank.org](https://www.phishtank.com/api_info.php) 获取您的 API key ## 🚀 用法 ### 扫描 URL **通过 Web 界面**: 1. 导航到扫描仪页面 2. 输入一个 URL(例如,`https://suspicious-site.tk/login`) 3. 点击“扫描” 4. 查看详细结果 **通过 API**: ``` curl -X POST https://api.phishguard.ai/api/scan \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com"}' ``` ### API 身份验证 1. **注册** ``` curl -X POST https://api.phishguard.ai/api/register \ -H "Content-Type: application/json" \ -d '{"name": "John Doe", "email": "john@example.com", "password": "password123"}' ``` 2. **登录** ``` curl -X POST https://api.phishguard.ai/api/login \ -H "Content-Type: application/json" \ -d '{"email": "john@example.com", "password": "password123"}' ``` 响应包含用于已验证请求的 JWT token。 ## 📚 API 文档 ### Base URL ``` https://api.phishguard.ai/api ``` ### 身份验证 除 `/register` 和 `/login` 外,所有端点都需要在 Authorization 标头中提供 JWT token: ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### 端点 #### POST /api/register 注册一个新用户 ``` { "name": "John Doe", "email": "john@example.com", "password": "password123" } ``` #### POST /api/login 进行身份验证并获取 JWT token ``` { "email": "john@example.com", "password": "password123" } ``` #### POST /api/scan 扫描 URL(需要身份验证) ``` { "url": "https://example.com" } ``` **响应**: ``` { "id": "scan-uuid", "url": "https://example.com", "risk_score": 15, "category": "Safe", "features": { "url_length": 19, "has_https": 1, "ssl_valid": true, ... }, "virus_total": { "reputation": 85, "detections": 0, "total_engines": 70 }, "whois": { "registrar": "Example Registrar", "creation_date": "2020-01-01", ... }, "ssl": { "issuer": "DigiCert Inc", "valid_to": "2025-01-01", ... }, "recommendations": [ "URL appears safe" ], "timestamp": "2026-01-15T10:30:00Z" } ``` #### GET /api/history 获取扫描历史记录(需要身份验证) ``` GET /api/history?page=1&limit=50&category=Suspicious ``` #### GET /api/stats 获取用户统计信息(需要身份验证) #### GET /api/report/{scan_id} 生成 PDF 报告(需要身份验证) ### 管理员端点 #### GET /api/admin/users 获取所有用户(仅限管理员) #### DELETE /api/admin/users/{user_id} 删除用户(仅限管理员) #### GET /api/admin/scans 获取所有扫描记录(仅限管理员) #### POST /api/admin/block-domain 屏蔽域名(仅限管理员) ## 🧠 机器学习 ### 模型训练 训练钓鱼检测模型: ``` python model/train_model.py ``` 这将: 1. 加载钓鱼数据集 2. 从 URL 中提取特征 3. 训练 Random Forest 和 XGBoost 模型 4. 评估模型性能 5. 将最佳模型保存到 `model/phishing_model.pkl` ### 特征提取 模型使用 20+ 项特征: - URL 长度、点数、连字符数 - HTTPS 可用性 - IP 地址使用情况 - 子域数量 - 可疑关键字 - 品牌冒充 - 域名年龄 - SSL 证书有效性 ### 模型性能 - **准确率**:99.7% - **精确率**:99.5% - **召回率**:99.8% - **F1-Score**:99.6% ### 自定义训练 使用您自己的数据集进行训练: ``` from model.train_model import PhishingModelTrainer trainer = PhishingModelTrainer() trainer.train(model_type='random_forest') # or 'xgboost' ``` ## 🌐 Chrome 扩展 ### 安装 1. 导航到 `extensions/chrome_extension/` 2. 打开 Chrome 并转到 `chrome://extensions/` 3. 启用“开发者模式” 4. 点击“加载已解压的扩展程序” 5. 选择 `chrome_extension` 文件夹 ### 功能 - **自动扫描**:自动扫描访问的网站 - **实时警报**:针对钓鱼网站的警告覆盖层 - **图标状态**:颜色编码的安全指示器 - **弹窗详细信息**:快速访问扫描结果 - **API 集成**:与 PhishGuard 后端连接 ### 开发 该扩展包含: - `manifest.json` - 扩展配置 - `background.js` - 用于后台任务的服务工作者 - `content.js` - 用于页面注入的内容脚本 - `popup.html/js` - 扩展弹窗 UI ## 🚢 部署 ### Render 部署 1. Fork 此仓库 2. 在 [Render](https://render.com) 上创建一个新的 Web Service 3. 连接您的 GitHub 仓库 4. Render 将自动检测 `render.yaml` 5. 在 Render 仪表板中设置环境变量 6. 部署! ### Railway 部署 1. 安装 Railway CLI:`npm i -g @railway/cli` 2. 登录:`railway login` 3. 初始化:`railway init` 4. 部署:`railway up` ### Docker 部署 ``` # 构建镜像 docker build -t phishguard-ai . # 运行容器 docker run -p 5000:5000 \ -e SECRET_KEY=your-secret \ -e DATABASE_URL=postgresql://... \ phishguard-ai ``` ### 手动部署 1. 构建前端:`npm run build` 2. 安装依赖项:`pip install -r requirements.txt` 3. 设置环境变量 4. 使用 Gunicorn 运行:`gunicorn app:app --bind 0.0.0.0:5000` ## 🔍 SEO 与 Google Console ### SEO 优化 该平台包含全面的 SEO: - **Meta 标签**:标题、描述、关键字、Open Graph、Twitter Cards - **结构化数据**:用于 SoftwareApplication 的 JSON-LD schema - **站点地图**:`public/sitemap.xml` - **Robots.txt**:`public/robots.txt` - **规范 URL**:防止内容重复 - **语义化 HTML**:正确的标题层级 ### Google Search Console 设置 1. **验证所有权** - 将 meta 标签添加到 `index.html`: 2. **提交站点地图** - 前往 [Google Search Console](https://search.google.com/search-console) - 添加资源:`https://phishguard.ai` - 提交站点地图:`https://phishguard.ai/sitemap.xml` 3. **监控性能** - 跟踪搜索查询 - 监控点击率 - 检查索引状态 - 修复抓取错误 ### Google Analytics 集成 添加到 `index.html`: ``` ``` ## 🤝 贡献 欢迎贡献!请遵循以下步骤: 1. Fork 该仓库 2. 创建一个功能分支:`git checkout -b feature/amazing-feature` 3. 提交更改:`git commit -m 'Add amazing feature'` 4. 推送到分支:`git push origin feature/amazing-feature` 5. 发起一个 Pull Request ### 开发指南 - Python 代码遵循 PEP 8 - 前端使用 TypeScript - 为新功能编写测试 - 更新文档 - 遵循约定式提交规范 ##📝 许可证 该项目基于 MIT 许可证授权 - 有关详细信息,请参见 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 - [VirusTotal](https://www.virustotal.com/) 提供威胁情报 API - [PhishTank](https://www.phishtank.com/) 提供钓鱼数据库 - [Google Safe Browsing](https://safebrowsing.google.com/) 提供恶意软件检测 - [scikit-learn](https://scikit-learn.org/) 提供机器学习工具 - 开源社区提供灵感和支持 ## 📞 支持 - **网站**:[https://phishguard.ai](https://phishguard.ai) - **文档**:[https://docs.phishguard.ai](https://docs.phishguard.ai) - **电子邮件**:support@phishguard.ai - **Twitter**:[@PhishGuardAI](https://twitter.com/PhishGuardAI) - **Discord**:[加入我们的社区](https://discord.gg/phishguard) ## 🗺️ 路线图 - [ ] 移动应用 - [ ] Firefox 扩展 - [ ] Edge 扩展 - [ ] API 速率限制分级 - [ ] Webhook 通知 - [ ] 自定义 ML 模型训练 - [ ] 团队协作功能 - [ ] 高级威胁情报 - [ ] 实时监控仪表板 - [ ] 多语言支持 由 PhishGuard AI 团队用 ❤️ 制作 **一次保护一个 URL 的互联网安全。** 🛡️
标签:Apex, GNU通用公共许可证, Node.js, Python, URL分析, 反钓鱼, 威胁情报, 安全防护, 开发者工具, 无后门, 机器学习, 测试用例, 自动化攻击, 请求拦截, 逆向工具