VAROIndustries/LinkGuard
GitHub: VAROIndustries/LinkGuard
一款 Windows 系统托盘反钓鱼应用,通过启发式评分和可选 API 在恶意 URL 打开前进行实时拦截与预警。
Stars: 1 | Forks: 0
# LinkGuard
_由 [VARØ Industries](https://varo.industries/apps) 开发_
一款 Windows 系统托盘应用程序,可静默监控 URL——包括您的剪贴板以及您点击的每一个链接——并在钓鱼网页加载之前向您发出警告。



## 功能
- **剪贴板监控** — 您一复制即可检测到 URL
- **链接拦截** — 可选注册为系统 `http`/`https` 处理程序,以便优先检查每一个点击的链接(无需管理员权限)
- **启发式分析** — 无需任何 API 密钥,即可根据 12 个以上的风险信号对 URL 进行评分
- **API 集成** — 可选的 Google Safe Browsing 和 VirusTotal 检查
- **白名单 / 黑名单** — 一键始终允许或始终阻止某个域名
- **历史记录** — 记录每个检查过的 URL 及其得分和采取的操作
- **随 Windows 启动** — 可在“设置”窗口中进行配置
- **无控制台窗口** — 通过系统托盘在后台静默运行
## 风险信号
| 信号 | 得分 |
|---|---|
| 以原始 IP 地址作为主机名 | +40 |
| URL 中包含 `@`(凭据嵌入技巧) | +35 |
| 同形异义字 / 拼写仿冒(`paypa1.com`) | +35 |
| 子域名中包含品牌名称(`paypal.evil.com`) | +30 |
| 域名标签中嵌入品牌名称(`bankofamerica-secure.tk`) | +22 |
| IDN punycode 域名(`xn--`) | +22 |
| URL 缩短器(隐藏最终目的地) | +22 |
| 高风险 TLD(`.tk`, `.ml`, `.ga`, `.cf`, `.gq`, `.xyz`, …) | +18 |
| 开放重定向参数 | +15 |
| 子域名深度过大 | +15 |
| 可疑路径关键字(login、verify、account、…) | +5–12 |
| 未加密的 HTTP + 敏感路径 | +8 |
**风险等级:** 干净 (0–21) · 可疑 (22–54) · 钓鱼 (55+)
## 安装
**环境要求:** Python 3.12 · Windows 10/11
```
git clone https://github.com/VAROIndustries/LinkGuard.git
cd LinkGuard
pip install -r requirements.txt
```
**运行(无控制台窗口):**
```
pythonw LinkGuard.pyw
```
或者在资源管理器中双击 `LinkGuard.pyw`。
**构建独立的 `.exe`:**
```
build.bat
```
## 使用说明
启动后,系统托盘中会出现一个盾牌图标。
| 托盘操作 | 描述 |
|---|---|
| **检查 URL…** | 手动粘贴并检查任意 URL |
| **设置…** | 打开设置窗口 |
| **暂停监控** | 临时停止剪贴板检查 |
| **退出** | 退出应用程序 |
### 警报对话框
当检测到可疑或钓鱼 URL 时,您会看到一个弹窗,显示风险等级、得分条以及具体发现。您可以:
- **仍然打开** — 仅此一次访问该 URL
- **始终允许** — 将该域名添加到您的白名单(不再提示)
- **阻止域名** — 添加到黑名单(今后将被静默阻止)
- **关闭** — 不执行任何操作
### 链接拦截(协议处理程序)
在“设置” → “常规”中启用 **“拦截所有 http/https 链接点击”**。LinkGuard 会将自己注册为 `HKEY_CURRENT_USER` 下的系统 URL 处理程序(无需管理员权限)。在任何应用程序中点击的每个链接,在浏览器打开之前都会先经过检查。
如需禁用,请取消勾选同一设置,您之前的默认浏览器会自动恢复。
## 设置
| 设置 | 描述 |
|---|---|
| 随 Windows 启动 | 在 `HKCU\...\Run` 中添加一个条目 |
| 监控剪贴板 | 每 600 毫秒轮询一次剪贴板 |
| 拦截链接点击 | 注册为 http/https 协议处理程序 |
| 风险阈值 | 在 *可疑及以上* 或 *仅钓鱼* 时发出警报 |
| Google Safe Browsing 密钥 | 免费 — 每天 10,000 次请求 |
| VirusTotal 密钥 | 免费 — 每分钟 4 次请求 |
### 添加 API 密钥
这两个 API 都是可选的。启发式检查无需任何密钥即可运行。
- **Google Safe Browsing:** [console.cloud.google.com](https://console.cloud.google.com) → 启用 Safe Browsing API → 创建 API 密钥
- **VirusTotal:** [virustotal.com](https://www.virustotal.com) → 注册 → My API key
密钥本地存储在 `%APPDATA%\LinkGuard\linkguard.db` 中,除了发送至各自的 API endpoint 外,绝不会发送到任何其他地方。
## 数据与隐私
所有数据都保留在您的机器上:
- **数据库:** `%APPDATA%\LinkGuard\linkguard.db` — 白名单、黑名单、历史记录、设置
- **日志:** `%APPDATA%\LinkGuard\linkguard.log`
- **无遥测。** 只有在您配置了 Google Safe Browsing 或 VirusTotal API 密钥时,URL 才会发送到外部。
## 许可证
MIT
标签:Python, URL检测, Windows客户端, 威胁情报, 开发者工具, 无后门, 桌面工具, 网络安全, 防钓鱼, 隐私保护