raajks/PhishGuard

GitHub: raajks/PhishGuard

一个基于混合机器学习与规则引擎的钓鱼 URL 检测系统,以高准确率与可解释分析解决钓鱼威胁识别问题。

Stars: 0 | Forks: 0

## ✨ 功能 | 功能 | 描述 | |------|------| | 🧠 **混合检测** | 结合随机森林机器学习(70%)+ 基于规则的评分(30%),实现稳健预测 | | 🔍 **30 个 UCI 特征** | 提取 URL 长度、IP 存在、HTTPS 状态、子域名、可疑 TLD 等 | | ⚡ **实时扫描** | 在 2 秒内分析任意 URL 并提供详细的威胁分解 | | 🛡️ **智能覆盖** | 自动识别 50+ 个已知安全域名和明显的钓鱼模式 | | 📊 **丰富结果** | 域名信息、SSL 证书、托管提供商、地理位置、威胁情报 | | 🎨 **现代 UI** | 暗黑玻璃拟态设计,带动画雷达扫描器和响应式布局 | | 🔌 **REST API** | JSON 端点(`POST /predict`),便于与其他工具集成 | ## 🖼️ 截图
主页 — 动画扫描器英雄

带有旋转雷达扫描器动画的专业落地页,包含信任统计和功能亮点。

URL 检查器 — 实时威胁分析

输入任意 URL 即可获得置信度评分、威胁分解、SSL 信息、域名分析和易读解释。

## 🚀 快速开始 ### 前置条件 - Python 3.10 或更高版本 - pip(Python 包管理器) ### 安装 ``` # 克隆仓库 git clone https://github.com/raajks/PhishGuard.git cd PhishGuard # 创建虚拟环境(推荐) python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt ``` ### 运行应用 ``` python app.py ``` 在浏览器中打开 **http://localhost:5000**。 ### 使用真实数据集训练(可选) 应用附带预训练的 `model.pkl`。如需在 UCI 钓鱼网站数据集(11,055 个样本)上重新训练: ``` python train_model.py ``` 这将从 [UCI 机器学习仓库](https://archive.ics.uci.edu/ml/datasets/Phishing+Websites) 下载数据集并训练新的随机森林模型。 ## 🏗️ 架构 ``` PhishGuard/ ├── app.py # Flask server, routes, prediction pipeline ├── utils.py # Feature extraction, rule engine, hybrid scoring ├── train_model.py # Dataset download & model training script ├── model.pkl # Pre-trained Random Forest model (~53KB) ├── requirements.txt # Python dependencies ├── .gitignore │ ├── templates/ │ ├── home.html # Landing page with scanner animation │ ├── checker.html # URL analysis interface │ └── index.html # Alternate index │ └── static/ ├── css/ │ ├── style.css # Global styles + navbar overrides │ ├── scanner.css # Scanner animation styles │ └── hacker-style.css # Alternative theme └── js/ └── script.js # Frontend API calls & UI logic ``` ## ⚙️ 工作原理 ``` URL Input → Validation → Feature Extraction (30 features) ↓ ┌───────────────┴───────────────┐ │ │ ML Prediction (70%) Rule-based Score (30%) Random Forest Classifier Keyword, TLD, IP, HTTPS checks │ │ └───────────────┬───────────────┘ ↓ Hybrid Score (0-100) ↓ Override Rules Applied ↓ Safe | Suspicious | Phishing ``` ### 检测流程 1. **URL 验证** — 拒绝垃圾输入,自动补全协议 2. **特征提取** — 30 个 UCI 标准特征(IP 检测、URL 长度、HTTPS、短链接检测、子域名计数等) 3. **机器学习预测** — 100 棵树的随机森林,max_depth=15 → 钓鱼概率 4. **基于规则的评分** — 匹配可疑关键词、TLD、IP地址 → 风险评分(0–100) 5. **混合融合** — `(ML × 0.7) + (Rules × 0.3)` → 最终置信度 6. **智能覆盖** — 已知安全域名强制为安全;仅含 IP 的 URL 强制为可疑;无 HTTPS 的登录页面强制为钓鱼 ## 🔌 API 参考 ### `POST /predict` 分析 URL 的钓鱼威胁。 **请求:** ``` { "url": "https://example.com" } ``` **响应:** ``` { "success": true, "url": "https://example.com", "prediction": "Safe", "confidence": 92.5, "score_breakdown": { "ml_score": 8.2, "rule_score": 5.0, "hybrid_score": 7.24 }, "domain_info": { "domain": "example.com", "tld": "com", "protocol": "https" }, "certificate": { "valid": true, "issued_by": "Let's Encrypt" }, "hosting": { "name": "Cloudflare", "type": "CDN" }, "location": { "country": "US" }, "threat_intelligence": { "malware_detected": false }, "explanation": { "summary": "This URL appears safe..." } } ``` ### `GET /health` 健康检查端点。 ``` { "status": "healthy", "model_loaded": true } ``` ## 🧪 示例测试 ``` # 安全网址 curl -X POST http://localhost:5000/predict \ -H "Content-Type: application/json" \ -d '{"url": "https://google.com"}' # 可疑网址 curl -X POST http://localhost:5000/predict \ -H "Content-Type: application/json" \ -d '{"url": "http://192.168.1.1"}' # 钓鱼网址 curl -X POST http://localhost:5000/predict \ -H "Content-Type: application/json" \ -d '{"url": "http://free-login-secure.xyz"}' ``` ## 🛠️ 技术栈 | 层级 | 技术 | |------|------| | **后端** | Python、Flask 2.3 | | **机器学习模型** | scikit-learn RandomForestClassifier(100 棵树) | | **数据集** | UCI 钓鱼网站数据集(11,055 个样本,30 个特征) | | **前端** | HTML5、CSS3、JavaScript、Bootstrap 5.3 | | **字体** | Inter、JetBrains Mono | | **图标** | Font Awesome 6.5 | | **设计** | 暗黑玻璃拟态、动画雷达扫描器 | ## 📈 模型性能 | 指标 | 得分 | |------|------| | 准确率 | ~95% | | 精确率 | ~94% | | 召回率 | ~95% | | F1 分数 | ~94% | *基于 UCI 钓鱼网站数据集,80/20 分层抽样训练。* ## 📄 许可证 本项目采用 MIT 许可证授权 — 详细信息请参阅 [LICENSE](LICENSE) 文件。 ## 🙏 感谢 - [UCI 机器学习仓库](https://archive.ics.uci.edu/ml/datasets/Phishing+Websites) — 钓鱼网站数据集 - [scikit-learn](https://scikit-learn.org/) — 机器学习库 - [Flask](https://flask.palletsprojects.com/) — Web 框架 - [Bootstrap](https://getbootstrap.com/) — CSS 框架 - [Font Awesome](https://fontawesome.com/) — 图标

❤️ 为更安全的互联网而制作

标签:AI安全, Apex, Chat Copilot, Flask, HTTPS, IP识别, JSON接口, REST API, Sigma 规则, SSL证书, UCI数据集, URL检测, 云计算, 可疑TLD, 后端开发, 响应式UI, 地理定位, 域名分析, 威胁情报, 子域名, 实时扫描, 开发者工具, 智能覆盖, 暗色主题, 机器学习, 模型训练, 混合模型, 特征提取, 玻璃拟态设计, 网络安全, 网络测绘, 置信度评分, 规则引擎, 逆向工具, 钓鱼检测, 随机森林, 隐私保护, 雷达动画