BATTASIVASANKAR/PhishGuard
GitHub: BATTASIVASANKAR/PhishGuard
PhishGuard 是一款结合机器学习与启发式分析的钓鱼检测工具,帮助用户评估 URL 和电子邮件的钓鱼风险。
Stars: 0 | Forks: 0
# 🛡️ PhishGuard — 基于 AI 的钓鱼检测工具
## 📑 目录
1. [简介](#-introduction)
2. [问题陈述](#-problem-statement)
3. [目标](#-objectives)
4. [功能](#-features)
5. [系统架构](#-system-architecture)
6. [技术栈](#-technology-stack)
7. [项目结构](#-project-structure)
8. [模块说明](#-module-descriptions)
9. [机器学习模型](#-machine-learning-model)
10. [URL 分析流程](#-url-analysis-pipeline)
11. [邮件分析流程](#-email-analysis-pipeline)
12. [用户界面](#-user-interface)
13. [安装与设置](#-installation--setup)
14. [部署](#-deployment-on-render)
15. [测试与结果](#-testing--results)
16. [局限性](#-limitations)
17. [未来改进](#-future-enhancements)
18. [结论](#-conclusion)
19. [参考资料](#-references)
20. [许可证](#-license)
## 📖 简介
钓鱼攻击是现代数字领域中最普遍且最具破坏性的网络犯罪形式之一。攻击者精心制作欺骗性的 URL 和电子邮件, closely 模仿合法组织,诱骗用户泄露敏感信息,如登录凭证、财务数据和个人详细信息。
**PhishGuard** 通过将 **Random Forest 机器学习分类器**的预测能力与基于规则的**启发式模式分析**相结合,针对钓鱼威胁提供了双层防御。该应用程序提供了一个直观、现代的 Web 界面,用户可以扫描可疑的 URL 和电子邮件内容,并收到即时、可操作的风险评估。
本项目作为网络安全工具开发,旨在展示机器学习在威胁检测中的实际应用,同时也作为提高钓鱼意识的的教育资源。
## 🎯 问题陈述
钓鱼攻击的复杂性和数量持续增长,占全球所有数据泄露事件的 **36%** 以上。传统的基于黑名单的方法无法检测到新创建的钓鱼网站(零日钓鱼)。用户通常缺乏识别 URL 和电子邮件中细微钓鱼指标的技术知识。
需要一款易于访问、智能的工具来:
- 利用结构特征和行为特征分析 URL,而不仅仅是简单的黑名单查找
- 检测电子邮件内容中的社会工程学模式
- 以清晰、非技术性的格式呈现结果,使任何用户都能理解
- 以最小的延迟实时运行
## 🏆 目标
1. **开发基于 ML 的 URL 扫描器** — 训练并部署一个 Random Forest 分类器,能够根据提取的结构特征区分钓鱼 URL 和合法 URL。
2. **构建电子邮件内容分析器** — 实现基于启发式的电子邮件分析,检测涵盖 8 类社会工程策略的钓鱼指标。
3. **创建用户友好的 Web 界面** — 设计一个现代、响应式的 UI,采用网络安全深色主题,使非技术用户也能轻松进行安全分析。
4. **提供风险评估等级** — 将 ML 预测与模式分析相结合,产生分级风险等级(低、中、高),并附上人类可读的说明。
5. **支持云端部署** — 对应用程序进行打包,以便在 Render 等云平台上使用 Gunicorn 无缝部署。
## ✨ 功能
| 功能 | 描述 |
|---------|-------------|
| **🔗 URL 扫描器** | 使用经过训练的 Random Forest ML 模型结合 9 项以上的基于模式的检查,分析任何 URL 的钓鱼指标 |
| **📧 邮件扫描器** | 通过对 8 个指标类别和 80 多个关键词进行启发式分析,检测电子邮件内容中的钓鱼企图 |
| **📊 风险评估** | 为每次扫描提供分级风险等级(低/中/高)及详细解释 |
| **🔍 模式分析** | 检测基于 IP 的 URL、URL 缩短服务、可疑关键词、过多子域名、缺失 HTTPS 等 |
| **📚 帮助中心** | 关于钓鱼意识、攻击类型和安全最佳实践的综合教育指南 |
| **🎨 网络安全深色主题** | 采用毛玻璃效果的高级 UI,具有动画背景、微动画和响应式设计 |
| **☁️ 云端就绪** | 预配置为通过 `Procfile`、`requirements.txt` 和动态端口绑定在 Render 上部署 |
| **⚡ 实时分析** | 即时提供结果,无需依赖外部 API —— 所有处理均在服务器端进行 |
## 🏗️ 系统架构
```
┌──────────────────────────────────────────────────────────────────┐
│ USER (Browser) │
│ Homepage │ URL Scanner │ Email Scanner │ Help │
└────────────────────────────┬─────────────────────────────────────┘
│ HTTP Requests (GET / POST)
▼
┌──────────────────────────────────────────────────────────────────┐
│ Flask Web Server (app.py) │
│ │
│ ┌──────────────┐ ┌──────────────────┐ ┌─────────────────┐ │
│ │ URL Routes │ │ Email Routes │ │ Static Routes │ │
│ │ /scan-url │ │ /scan-email │ │ / /help │ │
│ └──────┬───────┘ └──────┬───────────┘ └─────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ URL Analysis │ │ Email Analysis │ │
│ │ Pipeline │ │ Pipeline │ │
│ └──────┬───────┘ └──────┬───────────┘ │
│ │ │ │
│ ┌────┴────┐ ┌────┴────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌───────┐ │
│ │ ML │ │Patt. │ │Heuri.│ │Brand │ │
│ │Model │ │Anal. │ │Match │ │Detect │ │
│ └──┬───┘ └──┬───┘ └──┬───┘ └──┬────┘ │
│ └────┬───┘ └────┬───┘ │
│ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ Risk Level │ │ Risk Level │ │
│ │ Computation │ │ Computation │ │
│ └──────┬───────┘ └──────┬───────────┘ │
│ │ │ │
└─────────┼─────────────────┼──────────────────────────────────────┘
▼ ▼
┌──────────────────────────────────────────────────────────────────┐
│ Jinja2 HTML Templates + CSS Theme │
│ result.html │ email_result.html │ help.html │
└──────────────────────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
| 层级 | 技术 | 用途 |
|-------|-----------|---------|
| **Backend** | Flask (Python 3.8+) | Web 框架、路由、请求处理 |
| **机器学习** | scikit-learn (Random Forest) | URL 钓鱼分类 |
| **数据处理** | NumPy, Pandas | 特征提取、数组操作 |
| **模型序列化** | Pickle | 保存/加载训练好的 ML 模型 |
| **模板** | Jinja2 | 动态 HTML 渲染 |
| **Frontend** | HTML5, CSS3 | 带有毛玻璃主题的响应式 UI |
| **排版** | Google Fonts (Inter, JetBrains Mono) | 现代、易读的字体 |
| **生产服务器** | Gunicorn | 用于部署的 WSGI HTTP 服务器 |
| **云端托管** | Render | 平台即服务部署 |
## 📂 项目结构
```
phishguard/
├── app.py # Main Flask application — routes, analysis logic, ML integration
├── train_model.py # ML model training script — synthetic data + Random Forest
├── model.pkl # Serialized trained ML model (Random Forest classifier)
├── requirements.txt # Python package dependencies
├── Procfile # Gunicorn configuration for Render deployment
├── README.md # Project documentation (this file)
│
├── templates/ # Jinja2 HTML templates
│ ├── index.html # Homepage with navigation cards
│ ├── url_scanner.html # URL scanner input page
│ ├── email_scanner.html # Email scanner input page
│ ├── result.html # URL scan results page
│ ├── email_result.html # Email scan results page
│ └── help.html # Help center & phishing education
│
└── static/ # Static assets
└── style.css # Dark cybersecurity theme (1000+ lines)
```
## 📦 模块说明
### `app.py` — 主应用程序(432 行)
核心 Flask 应用程序,负责处理所有路由、URL/邮件分析逻辑及 ML 模型集成。核心组件:
| 组件 | 描述 |
|-----------|-------------|
| `validate_url()` | 使用正则表达式验证 URL 格式,如果缺失则自动添加 `http://` |
| `extract_features()` | 从 URL 中提取 14 个数值特征供 ML 预测使用 |
| `analyze_url_patterns()` | 执行 9 项启发式检查以检测可疑的 URL 模式 |
| `compute_url_risk()` | 结合 ML 预测和模式评分,得出风险等级(低/中/高) |
| `analyze_email()` | 根据 8 类钓鱼指标(80+ 关键词)扫描电子邮件内容 |
| `compute_email_risk()` | 根据总分和命中类别数判定邮件风险等级 |
| **路由** | `GET /` · `GET /url-scanner` · `POST /scan-url` · `GET /email-scanner` · `POST /scan-email` · `GET /help` |
### `train_model.py` — 模型训练(182 行)
在包含 **40 个安全 URL** 和 **40 个钓鱼 URL** 的精选数据集上训练 Random Forest 分类器。特性包括:
- 从每个 URL 中提取 14 个结构特征
- 应用**噪声增强**(高斯噪声,σ=0.5)以提升模型的鲁棒性
- 使用 `class_weight='balanced'` 处理任何类别不平衡问题
- 配置为 100 棵决策树(`n_estimators=100`),最大深度为 10
- 通过 Python 的 `pickle` 序列化输出 `model.pkl`
### `static/style.css` — UI 主题(1019 行)
实现以下功能的综合 CSS 设计系统:
- 使用 `backdrop-filter: blur(20px)` 的**毛玻璃(Glassmorphism)**效果
- 带有赛博网格叠加层的动画径向渐变背景
- CSS 自定义属性(变量)以保持主题的一致性
- 带有交错延迟的淡入动画
- 风险等级颜色编码(绿 → 黄 → 红)
- 适用于移动端和桌面端的响应式设计
## 🤖 机器学习模型
### 算法:Random Forest 分类器
| 参数 | 值 |
|-----------|-------|
| 算法 | Random Forest(决策树集成) |
| 树的数量 | 100 (`n_estimators=100`) |
| 最大深度 | 10 |
| 类别权重 | 平衡(根据类别比例自动调整) |
| 随机状态 | 42(确保结果可复现) |
| 训练数据 | 80 个 URL(40 个安全 + 40 个钓鱼)× 2(带有噪声增强)= 160 个样本 |
### 特征向量(14 个特征)
| 索引 | 特征 | 描述 | 钓鱼信号 |
|-------|---------|-------------|-----------------|
| 0 | URL 长度 | 总字符数 | 过长的 URL 通常用来混淆真实域名 |
| 1 | 点的数量 | `.` 字符的数量 | 过多的点表示存在许多子域名 |
| 2 | 连字符数量 | `-` 字符的数量 | 用连字符来模仿合法域名 |
| 3 | @ 符号 | URL 中是否存在 `@` | 用于重定向到攻击者的网站 |
| 4 | 双斜杠数量 | `//` 出现的次数 | URL 路径内的重定向欺骗 |
| 5 | HTTPS 标志 | URL 是否使用 HTTPS | 钓鱼网站通常缺乏 SSL 证书 |
| 6 | 域名中的数字 | 域名中是否包含数字 | 基于 IP 或随机生成的域名 |
| 7 | 可疑关键词 | 钓鱼相关关键词的计数 | 如 "login"、"verify"、"password" 等词汇 |
| 8 | URL 缩短服务 | URL 是否使用已知的缩短服务 | 缩短服务隐藏了实际目的地 |
| 9 | 斜杠数量 | `/` 字符总数 | 过深的路径可能指向钓鱼页面 |
| 10 | 查询参数 | `?` 字符的数量 | 过多的查询字符串用于跟踪 |
| 11 | 等号数量 | `=` 字符的数量 | 参数过多,通常用于会话劫持 |
| 12 | 域名长度 | 域名部分的长度 | 过长的域名十分可疑 |
| 13 | 过多子域名 | 如果点数 > 4 则标记 | 滥用子域名以模仿合法网站 |
## 🔗 URL 分析流程
URL 扫描器采用**双重分析**方法:
```
User Input (URL string)
│
▼
┌──────────────────┐
│ Input Validation │ ── regex check, auto-prefix http://
└────────┬─────────┘
│
┌────┴─────┐
▼ ▼
┌────────┐ ┌──────────────┐
│ ML │ │ Pattern │
│ Model │ │ Analysis │
│ Predict│ │ (9 checks) │
└───┬────┘ └──────┬───────┘
│ │
└──────┬──────┘
▼
┌──────────────┐
│ Combined │
│ Risk Engine │
└──────┬───────┘
▼
┌──────────────┐
│ Result │
│ (Level + │
│ Explanation) │
└──────────────┘
```
### 执行的模式检查
| # | 检查项 | 风险评分 |
|---|-------|-----------|
| 1 | 使用 IP 地址代替域名 | +3 |
| 2 | URL 异常长(>75 个字符) | +2 |
| 3 | 检测到 `@` 符号(凭证重定向欺骗) | +3 |
| 4 | 域名中包含过多连字符(≥3) | +2 |
| 5 | 过多子域名(主机名中 >3 个点) | +2 |
| 6 | 检测到 URL 缩短服务(bit.ly, tinyurl 等) | +2 |
| 7 | 缺少 HTTPS 加密 | +1 |
| 8 | URL 中包含可疑关键词 | +1 到 +3 |
| 9 | 异常的编码/特殊字符 | +1 |
### 风险等级判定矩阵
| ML 预测 | 模式评分 | 最终风险等级 |
|:---:|:---:|:---:|
| 钓鱼 | ≥ 4 | 🔴 **高** |
| 钓鱼 | < 4 | 🔴 **高** |
| 安全 | ≥ 6 | 🔴 **高** |
| 安全 | 3 – 5 | 🟡 **中** |
| 安全 | 1 – 2 | 🟢 **低** |
| 安全 | 0 | 🟢 **低** |
## 📧 邮件分析流程
邮件扫描器采用基于关键词的**启发式**方法,涵盖 8 个类别:
### 指标类别
| 类别 | 示例 | 描述 |
|----------|----------|-------------|
| **紧迫感** | "act now"、"expires today"、"limited time" | 制造压力促使未加思索地行动 |
| **凭证请求** | "verify your account"、"update your password" | 直接索要登录信息 |
| **威胁** | "account will be suspended"、"unauthorized access" | 威胁会产生负面后果 |
| **奖励** | "you have won"、"free gift"、"cash prize" | 用好得不真实的优惠进行诱惑 |
| **冒充** | "dear customer"、"security department" | 假装是权威人物 |
| **可疑链接** | "click here"、"open attachment" | 指向恶意链接或文件 |
| **敏感信息请求** | "credit card number"、"social security" | 索要高度敏感的个人数据 |
| **伪造发件人** | "noreply@"、"support@secure" | 使用可疑的发件人地址 |
### 额外的邮件检查
- **嵌入的可疑 URL** — 检测邮件正文中包含钓鱼关键词的 URL
- **邮件中基于 IP 的 URL** — 标记使用 IP 地址而非域名的 URL
- **过度大写** — 检测“大喊大叫”的文本(>3 个完全大写的单词)
- **品牌拼写错误** — 识别域名抢注/仿冒模式(如 "paypa1"、"amaz0n"、"g00gle")
### 件风险评分
| 条件 | 风险等级 |
|-----------|-----------|
| 钓鱼标志 + 评分 ≥ 8 | 🔴 **高** |
| 钓鱼标志 + ≥ 3 个类别 | 🔴 **高** |
| 钓鱼标志(评分 ≥ 3) | 🟡 **中** |
| 评分 ≥ 2(低于阈值) | 🟢 **低** |
| 评分 < 2 | 🟢 **低**(安全) |
## 🎨 用户界面
应用程序采用了**网络安全深色主题**,并包含以下设计元素:
- **调色板**:深海军蓝背景(`#020a1a`)搭配电光蓝(`#1e90ff`)装饰
- **毛玻璃效果**:半透明的卡片背景,使用 `backdrop-filter: blur(20px)`
- **动画背景**:带有淡淡赛博网格叠加效果的径向渐变球体
- **排版**:来自 Google Fonts 的 Inter(UI 文本)和 JetBrains Mono(URL/代码显示)
- **微动画**:带有交错延迟的淡入向上效果、脉冲指示器和结果弹出动画
- **风险颜色编码**:绿色(安全)→ 黄色(中等)→ 红色(危险),配有发光徽章
- **响应式布局**:最大宽度为 900px 的容器,可自适应移动端屏幕
### 页面
| 页面 | 路由 | 描述 |
|------|-------|-------------|
| **主页** | `/` | 英雄区、功能统计数据以及指向 URL/邮件扫描器的导航卡片 |
| **URL 扫描器** | `/url-scanner` | 用于分析 URL 的输入表单,带有验证反馈 |
| **邮件扫描器** | `/email-scanner` | 用于粘贴邮件内容的文本区域输入框 |
| **URL 结果** | `/scan-url` (POST) | 显示钓鱼判定、风险等级、解释以及模式发现 |
| **邮件结果** | `/scan-email` (POST) | 显示钓鱼判定以及分类的指标标签 |
| **帮助中心** | `/help` | 关于钓鱼类型、防范技巧和安全准则的教育内容 |
## 🚀 安装与设置
### 前置条件
- **Python** 3.8 或更高版本
- **pip**(Python 包管理器)
### 分步安装指南
1. **克隆仓库:**
git clone
cd phishguard
2. **创建虚拟环境**(推荐):
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
3. **安装依赖:**
pip install -r requirements.txt
4. **训练 ML 模型**(如果 `model.pkl` 不存在):
python train_model.py
这将在项目根目录下输出 `model.pkl`。
5. **运行应用程序:**
python app.py
6. **打开浏览器:**
访问 `http://localhost:5000`
### 依赖项(`requirements.txt`)
| 包 | 用途 |
|---------|---------|
| `flask` | Web 框架 |
| `gunicorn` | 生产环境 WSGI 服务器 |
| `scikit-learn` | 机器学习 (Random Forest) |
| `pandas` | 数据处理 |
| `numpy` | 数值运算 |
| `pickle-mixin` | 模型序列化支持 |
## 🌐 在 Railway 上部署
PhishGuard 部署在 Railway 云平台上。
### 在线演示
https://phishguard-siva.up.railway.app
### 部署步骤
1. 将项目推送到 GitHub。
2. 在 Railway 上创建一个新项目。
3. 连接 GitHub 仓库。
4. Railway 会自动检测 Python 应用程序。
5. 应用程序随即部署,并可通过公共 URL 访问。
### 部署平台
- Railway Cloud
- 自动 GitHub 部署
- 生产级 WSGI 服务器 (Gunicorn)
## 🧪 测试与结果
### URL 扫描器测试
| 测试 URL | 预期结果 | ML 预测 | 模式评分 | 最终判定 |
|----------|----------------|:---:|:---:|:---:|
| `https://www.google.com` | 安全 | 安全 | 0 | 🟢 低 |
| `https://www.github.com` | 安全 | 安全 | 0 | 🟢 低 |
| `http://192.168.1.1/login/verify` | 钓鱼 | 钓鱼 | 6+ | 🔴 高 |
| `http://paypal-secure-update.com/confirm` | 钓鱼 | 钓鱼 | 4+ | 🔴 高 |
| `http://bit.ly/3xYz123` | 可疑 | 视情况而定 | 3+ | 🟡 中 |
### 邮件扫描器测试
| 测试用例 | 发现的指标 | 风险等级 |
|-----------|:---:|:---:|
| 正常的商务邮件 | 0 | 🟢 低 |
| 包含 "verify your account" + "click here" 的邮件 | 2+ 个类别 | 🟡 中 |
| 包含紧迫感 + 威胁 + 凭证请求 + 可疑 URL 的邮件 | 4+ 个类别 | 🔴 高 |
| 包含 "paypa1.com"(品牌拼写错误)的邮件 | 伪造域名 | 🔴 高 |
## ⚠️ 局限性
1. **训练数据集规模** — ML 模型是在 80 个合成 URL(40 个安全 + 40 个钓鱼)上训练的。更大规模的真实数据集将显著提高准确性。
2. **仅限静态分析** — 该工具仅分析 URL 结构和电子邮件文本,而不访问实际网站或执行实时的 DNS/WHOIS 查找。
3. **无实时数据库** — 系统不会查询实时的钓鱼数据库(如 Google Safe Browsing、PhishTank)以获取已知威胁。
4. **未分析邮件元数据** — 仅扫描邮件正文;不分析邮件头、SPF/DKIM 记录以及发件人信誉。
5. **仅限英语检测** — 钓鱼关键词检测仅局限于英语指标。
6. **无用户身份验证** — 应用程序不需要用户登录,因此不会按用户持久化保存扫描历史。
## 🔮 未来改进
1. **扩充训练数据集** — 整合来自 PhishTank、OpenPhish 或 Kaggle 的大规模钓鱼数据集,以提高 ML 的准确性。
2. **深度学习模型** — 尝试使用 LSTM 或基于 Transformer 的模型进行字符级别的 URL 分析。
3. **实时 URL 检查** — 添加实时网站截图、SSL 证书验证和 WHOIS 数据查询。
4. **API 集成** — 查询 Google Safe Browsing API、VirusTotal 和 PhishTank 以增强威胁情报。
5. **浏览器扩展** — 开发 Chrome/Firefox 扩展程序,以便在浏览时进行实时 URL 扫描。
6. **扫描历史与仪表板** — 添加用户身份验证和带有扫描历史、统计数据和趋势的仪表板。
7. **邮件头分析** — 解析完整的邮件头以验证 SPF、DKIM 和 DMARC 身份验证。
8. **多语言支持** — 扩展关键词检测,以覆盖其他语言的钓鱼模式。
9. **REST API** — 将扫描功能作为 REST API 公开,以便与其他安全工具集成。
## 📝 结论
**PhishGuard** 成功地展示了机器学习和启发式分析在对抗钓鱼威胁(我们这个时代最普遍的网络安全挑战之一)方面的实际应用。
### 主要成果
- **双层检测引擎** — 通过将 **Random Forest ML 分类器**(基于 14 个 URL 特征训练)与**基于规则的模式分析系统**(9 项启发式检查)相结合,PhishGuard 实现了比任何单一方法都更强大的检测能力。ML 模型能够捕获复杂的特征交互,而模式分析器可以捕获明确的危险信号,从而为用户提供可解释的结果。
- **全面的邮件分析** — 启发式邮件扫描器涵盖了 **8 个不同的钓鱼指标类别**和超过 **80 个关键词**,包括对品牌域名抢注/仿冒的检测(如 "paypa1"、"amaz0n")、基于 IP 的嵌入 URL 和过度大写检测 — 从而实现对常见社会工程策略的有效检测。
- **易于访问的安全工具** — 采用毛玻璃风格深色主题的 UI,具有**分级风险等级**(低 → 中 → 高)和**通俗易懂的解释**,使没有网络安全专业知识的用户也能轻松进行复杂的安全分析。该应用程序既是一个实用工具,也是一个教育资源。
- **生产级架构** — 该应用程序使用 Flask 和 Gunicorn 构建,遵循最佳实践,包括输入验证、错误处理、基于环境的配置以及云端部署就绪状态 — 使其非常适合在 Render 等平台上进行实际托管。
### 总结
本项目展示了如何将现代 Web 开发技术和机器学习技术相结合,以创建有效且用户友好的网络安全工具。虽然 PhishGuard 主要作为教育的概念验证,但其模块化架构和可扩展设计为未来的增强功能(包括实时威胁情报集成、深度学习模型和浏览器扩展程序开发)奠定了坚实的基础。
**PhishGuard 强化了这样一个原则:网络安全不仅是一项技术挑战,更是一项用户意识挑战** —— 而那些易于理解和使用的工具在保护个人免受钓鱼攻击方面发挥着至关重要的作用。
## 📚 参考资料
1. **Anti-Phishing Working Group (APWG)** — 钓鱼活动趋势报告 — [https://apwg.org](https://apwg.org)
2. **scikit-learn 文档** — Random Forest 分类器 — [https://scikit-learn.org/stable/modules/ensemble.html#forests-of-randomized-trees](https://scikit-learn.org/stable/modules/ensemble.html#forests-of-randomized-trees)
3. **Flask 文档** — Web 框架 — [https://flask.palletsprojects.com](https://flask.palletsprojects.com)
4. **OWASP Foundation** — 钓鱼防范速查表 — [https://cheatsheetseries.owasp.org](https://cheatsheetseries.owasp.org)
5. **Verizon DBIR 2024** — 数据泄露调查报告 — [https://www.verizon.com/business/resources/reports/dbir](https://www.verizon.com/business/resources/reports/dbir)
6. **Google Safe Browsing** — 透明度报告 — [https://transparencyreport.google.com/safe-browsing](https://transparencyreport.google.com/safe-browsing)
## ⚠️ 免责声明
## 👨💻 作者
**Siva Sankar** — 开发者兼网络安全爱好者
## 📄 许可证
本项目采用 [MIT 许可证](LICENSE) 开源。
标签:Apex, Go语言工具, Python, URL分析, 威胁情报, 开发者工具, 无后门, 机器学习, 逆向工具, 钓鱼检测