Zoro0830/phish-guard

GitHub: Zoro0830/phish-guard

一款基于规则引擎与 AI 大模型的 Chrome 扩展,实时分析网页并给出可解释的钓鱼网站判定。

Stars: 0 | Forks: 0

# 🛡️ Phish Guard Phish Guard 实时分析网页,并告知您网站是**合法**、**可疑**还是**极可能是钓鱼网站**——并为每个判定提供明确理由。 ## 截图 | ✅ 合法 | ⚠️ 可疑 | 🚨 钓鱼 | |---|---|---| | ![合法](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6473803dc5065732.png) | ![可疑](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/217b0c6f2e065737.png) | ![钓鱼](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0c222abff7065743.png) | | instagram.com | juice-shop.herokuapp.com | phishing-test.html | ## 工作原理 1. **content.js** 被注入到每个页面中,并收集信号:密码字段、表单、内联脚本和表单 action URL。 2. **service_worker.js** 接收信号并将其传递给规则引擎。 3. **rules.js** 根据这些信号对页面进行评分并给出判定。 4. 如果判定模棱两可且域名受信任,结果将被升级至 **Flask AI 后端**,该后端使用 **Llama 3 (通过 Groq)** 给出最终意见。 5. **popup.js** 显示判定结果、风险评分、置信度、威胁条以及每个信号的解释。 ## 项目结构 ``` Phish Guard/ ├── backend/ │ ├── app.py # Flask API — AI review endpoint │ └── requirements.txt └── chrome-extension/ ├── assets/ │ │ ├── icon16.png │ │ ├── icon48.png │ │ └── icon128.png ├── background/ │ ├── rules.js # Scoring & verdict logic │ └── service_worker.js ├── content/ │ └── content.js # Page signal collector ├── popup/ │ ├── popup.html │ ├── popup.css │ └── popup.js ├── utils/ │ ├── brandRules.js │ ├── brandUtils.js │ └── urlUtils.js └── manifest.json ``` ## 开始使用 ### 前置条件 - Python 3.9+ - Google Chrome - 一个免费的 [Groq API key](https://console.groq.com) ### 第 1 步 — 运行后端 ``` cd backend pip install -r requirements.txt ``` 设置您的 Groq API key: **Windows (PowerShell)** ``` $env:GROQ_API_KEY="your_key_here" python app.py ``` **Mac / Linux** ``` export GROQ_API_KEY="your_key_here" python app.py ``` 服务器运行在 `http://localhost:5000`。在使用扩展程序时,请保持此终端处于打开状态。 ### 第 2 步 — 加载 Chrome 扩展程序 1. 打开 Chrome 并访问 `chrome://extensions` 2. 启用右上角的**开发者模式** 3. 点击**加载已解压的扩展程序** 4. 选择 `chrome-extension/` 文件夹 5. Phish Guard 盾牌图标将出现在您的工具栏中 ### 第 3 步 — 进行测试 1. 访问任何网站(例如 `instagram.com`、`juice-shop.herokuapp.com`) 2. 点击 Chrome 中的 **Phish Guard** 图标 3. 点击**扫描当前页面** 4. 查看判定结果、评分和理由 ## 评分逻辑 | 信号 | 严重程度 | 评分 | |--------|----------|-------| | 不受信任域名上的密码字段 | 高 | +15 | | 不受信任域名上的登录表单 | 高 | +10 | | 过多的内联 JavaScript | 中 | +5 | | 检测到品牌冒充 | 严重 | +20 | | 总分 | 判定结果 | |-------------|---------| | 0 – 14 | ✅ 可能合法 | | 15 – 29 | ⚠️ 可疑 | | 30+ | 🚨 极可能为钓鱼网站 | ## AI 升级 仅当满足**所有三个**条件时,才会调用 Flask 后端: - 判定结果不为“可能合法” - 域名在受信任列表中 - 置信度分数低于 0.6 这避免了在情况明确的案例中进行不必要的 API 调用。 使用的 AI 模型是通过 Groq API 调用的 **Llama 3 70B**。 ## 技术栈 | 层级 | 技术 | |-------|-----------| | Chrome 扩展程序 | Manifest V3, Vanilla JS | | 后台逻辑 | Service Worker | | AI 后端 | Python, Flask, Groq SDK | | AI 模型 | Llama 3 70B (通过 Groq) | ## 已知限制 - 必须在本地运行 Flask 后端才能进行 AI 审查。 - 受信任域名列表较小——尚未包含 Amazon、LinkedIn、Twitter 等大型网站。 - `brandRules.js`、`brandUtils.js` 和 `urlUtils.js` 目前为存根。 ## 许可证 MIT
标签:DLL 劫持, Flask, 可解释AI, 大语言模型, 网络安全, 自定义脚本, 逆向工具, 钓鱼检测, 隐私保护