Waqarahmd222/phishguard-ai
GitHub: Waqarahmd222/phishguard-ai
一款单文件、零配置的 AI 钓鱼检测平台,通过多引擎并行分析 URL 并提供 Web 控制台与 REST API。
Stars: 1 | Forks: 0
# 🛡️ PhishGuard AI
**基于 AI 的钓鱼检测与威胁情报平台**
[](https://python.org)
[](LICENSE)
[](#quick-start)
一个独立的钓鱼检测平台,使用多种检测引擎实时分析 URL —— 包括 URL 启发式分析、内容分析、基于 ML 的评分、威胁情报查询以及自定义检测规则。它被构建为一个包含完整 Web 控制面板的单一 Python 文件。

## 快速开始
```
python phishguard.py
```
就这么简单。程序会自动在 **http://localhost:5000** 打开。无需 Docker,无需数据库设置,无需配置文件 —— 一切都是自包含的。
## 工作原理
将任何 URL 粘贴到扫描器中。PhishGuard 会**同时**通过 **4 个分析引擎**对其进行处理:
### 1. URL 启发式分析(15 项检查)
- **可疑 TLD 检测** —— 标记 `.tk`、`.ml`、`.ga`、`.cf`、`.gq` 以及 15 个以上的高风险 TLD
- **品牌冒充** —— 捕获针对 25 个以上品牌(Google、PayPal、Microsoft、Amazon 等)的 typosquatting(拼写错误劫持),支持字符替换匹配(`0→o`、`1→l`、`3→e`)
- **同形异义词攻击** —— 检测用于欺骗合法域名的 Punycode/IDN 域名以及非 ASCII Unicode 字符
- **基于 IP 的 URL** —— 标记使用原始 IP 地址而非域名的情况
- **URL 缩短服务检测** —— 识别 bit.ly、tinyurl、t.co 及其他缩短服务
- **Shannon 熵分析** —— 测量 URL 路径的随机性,以检测自动生成的钓鱼 URL
- **可疑关键词检测** —— 标记 `login`、`verify`、`secure`、`account`、`password`、`banking` 等
- **@ 符号重定向技术** —— 捕获 `https://google.com@evil.tk` 样式的攻击
- **过多的子域名** —— 标记具有 3 层及以上的子域名
- **缺失 HTTPS**、异常端口、过多的连字符、过长的 URL、十六进制编码
### 2. 实时内容分析
实际获取目标网页并检查其 HTML:
- **凭证收集表单** —— 向外部域名提交的密码字段
- **隐藏的 iframe** —— 零大小或 display:none 的 iframe(用于跟踪/漏洞利用投放)
- **可疑的 JavaScript** —— `eval()`、`atob()`、`document.cookie` 访问、自动提交、重定向
- **Meta refresh 重定向** —— 自动重定向至恶意目标地址
- **禁用右键** —— 钓鱼工具包常用的反审查技术
### 3. 基于 ML 的评分
加权集成评分系统,结合来自所有引擎的信号,并在多个引擎标记同一 URL 时提供相关性加成。
### 4. 威胁情报
与本地 IOC(陷落标志)数据库进行交叉比对。每次扫描都会自动提取并存储新的 IOC —— 包括域名、IP —— 从而构建一个不断增长的威胁知识库。
### 检测规则引擎
8 条预置的类 YARA 规则,会在扫描期间自动触发:
| 规则 | 严重程度 | 捕获内容 |
|------|----------|-----------------|
| 可疑 TLD | HIGH | `.tk`、`.ml`、`.ga`、`.cf`、`.gq`、`.top`、`.xyz` 域名 |
| 同形异义词攻击 | CRITICAL | 域名中的 Unicode 相似字符 |
| 凭证收集 | CRITICAL | 向外部端点提交的登录表单 |
| 品牌冒充 | HIGH | 模仿 Google、Microsoft、PayPal、Apple、Amazon 的 URL |
| 基于 IP 的 URL | MEDIUM | 使用原始 IP 地址而非域名 |
| URL 缩短服务链 | MEDIUM | 多重缩短服务重定向 |
| 过多的子域名 | MEDIUM | 4 层及以上的子域名 |
| 数据窃取 JS | CRITICAL | 捕获/窃取表单数据的 JavaScript |
规则可以从控制面板中开启/关闭。系统会跟踪每条规则的触发次数。
## 控制面板功能
| 页面 | 描述 |
|------|-------------|
| **控制面板** | 实时统计(总扫描数、威胁数、IOC 数、规则触发数)、扫描趋势图、判定结果分布饼图、最近检测记录、热门威胁指标 |
| **扫描** | URL 输入与实时多引擎分析,每个引擎的详细评分明细、带有严重程度的指标列表、匹配到的检测规则 |
| **IOC 数据库** | 所有受跟踪的指标,包含类型、严重程度、来源、命中次数。支持搜索。根据扫描自动填充 + 预加载的种子数据 |
| **规则** | 8 条检测规则,带有开关、描述和触发计数器 |
| **警报** | 当扫描得分 ≥45 时自动生成。带有严重程度标签和确认工作流 |
## 尝试这些测试 URL
```
# 安全 — 应得低分
https://www.google.com
# 可疑 TLD + 品牌冒充 — 应得高分
https://secure-paypal-verify.tk/login.php
# 基于 IP 的 URL — 应触发标记
http://185.220.101.42/banking/login
# 多个危险信号 — 应得 critical 分数
https://login.secure.verify.micr0soft-account.gq/auth?token=abc123
# URL 缩短服务
https://bit.ly/3xAbCdE
# @ 符号重定向攻击
https://google.com@evil.tk/phish
```
## 架构
```
phishguard.py (single file)
├── Auto-dependency installer
├── SQLite database (auto-created)
│ ├── scans — scan history with full results
│ ├── iocs — indicators of compromise
│ ├── rules — detection rules + trigger counts
│ └── alerts — auto-generated threat alerts
├── Analysis Engines
│ ├── URL Heuristic Analyzer (15 checks)
│ ├── Content Analyzer (HTML/JS inspection)
│ ├── ML Scoring Engine (weighted ensemble)
│ └── Threat Intel (IOC cross-reference)
├── Detection Rules Engine (8 YARA-style rules)
├── REST API (14 endpoints)
│ ├── GET /api/stats
│ ├── POST /api/scan
│ ├── POST /api/scan/bulk
│ ├── GET /api/scans
│ ├── GET /api/iocs
│ ├── POST /api/iocs
│ ├── DELETE /api/iocs/:id
│ ├── GET /api/rules
│ ├── POST /api/rules/:id/toggle
│ ├── GET /api/alerts
│ ├── POST /api/alerts/:id/ack
│ ├── GET /api/top-threats
│ ├── GET /api/chart/trend
│ └── GET /api/chart/verdicts
└── Web Dashboard (embedded HTML/CSS/JS)
├── Dashboard — charts + stats
├── Scanner — URL analysis interface
├── IOC Database — searchable threat data
├── Rules Manager — toggle detection rules
└── Alerts Feed — threat notifications
```
## 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 语言 | Python 3.10+(标准库 + 2 个包) |
| Web 服务器 | `http.server`(标准库) |
| 数据库 | SQLite3(标准库,自动创建) |
| URL 解析 | `tldextract` |
| HTML 分析 | `BeautifulSoup4` |
| 前端 | 原生 HTML/CSS/JS(内嵌) |
| 图表 | Canvas API |
| 字体 | DM Sans + DM Mono (Google Fonts) |
## API 用法
REST API 功能完备 —— 你可以将其与其他工具集成:
```
# 扫描 URL
curl -X POST http://localhost:5000/api/scan \
-H "Content-Type: application/json" \
-d '{"url": "https://suspicious-site.tk/login"}'
# 批量扫描
curl -X POST http://localhost:5000/api/scan/bulk \
-H "Content-Type: application/json" \
-d '{"urls": ["https://google.com", "https://evil.tk/phish"]}'
# 获取所有 IOC
curl http://localhost:5000/api/iocs
# 搜索 IOC
curl http://localhost:5000/api/iocs?q=paypal
# 获取仪表盘统计数据
curl http://localhost:5000/api/stats
```
## 环境要求
- Python 3.10 或更高版本
- 网络连接(用于获取 URL 内容和 Google Fonts)
- 仅此而已
## 许可证
MIT 许可证 —— 详情请参阅 [LICENSE](LICENSE)。
PhishGuard AI —— 因为每一次点击都至关重要。
标签:Apex, Python, Web仪表盘, 威胁情报, 安全, 开发者工具, 无后门, 机器学习, 超时处理, 逆向工具, 钓鱼检测