Waqarahmd222/phishguard-ai

GitHub: Waqarahmd222/phishguard-ai

一款单文件、零配置的 AI 钓鱼检测平台,通过多引擎并行分析 URL 并提供 Web 控制台与 REST API。

Stars: 1 | Forks: 0

# 🛡️ PhishGuard AI **基于 AI 的钓鱼检测与威胁情报平台** [![Python 3.10+](https://img.shields.io/badge/Python-3.10+-3776ab.svg)](https://python.org) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Single File](https://img.shields.io/badge/Setup-Zero%20Config-22d3a7.svg)](#quick-start) 一个独立的钓鱼检测平台,使用多种检测引擎实时分析 URL —— 包括 URL 启发式分析、内容分析、基于 ML 的评分、威胁情报查询以及自定义检测规则。它被构建为一个包含完整 Web 控制面板的单一 Python 文件。 ![控制面板](https://static.pigsec.cn/wp-content/uploads/repos/cas/b7/b7b397e9569661e4fec9bb568b78bc0c0ad05617b5d262df33ca574f5e7ecdb3.png) ## 快速开始 ``` 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仪表盘, 威胁情报, 安全, 开发者工具, 无后门, 机器学习, 超时处理, 逆向工具, 钓鱼检测