sudo-baoz/phishing-detector

GitHub: sudo-baoz/phishing-detector

一款结合传统OSINT技术与生成式AI的综合钓鱼检测系统,专为蓝队和安全研究人员设计,可实时分析恶意URL、钓鱼网站及规避技术。

Stars: 1 | Forks: 0

Phishing Detector Logo # 🛡️ Phishing Detector ### AI 驱动的取证与威胁情报系统 [![License](https://img.shields.io/badge/license-GPL--3.0-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.10%2B-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org/) [![React](https://img.shields.io/badge/react-19.0.0-61DAFB.svg?style=flat&logo=react&logoColor=black)](https://reactjs.org/) [![FastAPI](https://img.shields.io/badge/fastapi-0.115.6-009688.svg?style=flat&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com/) [![Security](https://img.shields.io/badge/security-Turnstile%20Protected-orange)](https://www.cloudflare.com/)

一款专为蓝队和安全研究人员设计的综合**钓鱼检测系统**。该工具结合了传统的 **OSINT** 技术(Whois、DNS、SSL 分析)与 **Generative AI (Gemini)**,以实时检测复杂的钓鱼攻击、规避技术和恶意基础设施。
## ✨ 主要特性 ### 🔍 深度取证分析 * **实时 URL 扫描:** 使用 ML 模型和启发式规则进行即时分析。 * **基础设施检查:** 自动检查域名年龄、注册商、ASN 和 IP 信誉。 * **规避检测:** 识别域名劫持(同形异义词攻击)、URL 混淆和多重重定向链。 * **基于内容的分析:** DOM 检查以检测虚假登录表单和隐藏技术。 ### 🤖 Sentinel AI 助手 * **情境感知情报:** 与 Sentinel AI 对话,解释 *为什么* 某个 URL 是恶意的。 * **自动检测:** 自动提取并扫描对话中提到的 URL。 * **双语支持:** 原生支持 **英语** 和 **越南语** (Tiếng Việt),针对区域威胁景观进行了定制。 ### 🛡️ 企业级安全 * **Cloudflare Turnstile 集成:** 使用智能 CAPTCHA 保护扫描器本身免受机器人滥用和 DDoS 攻击。 * **安全 API:** 支持 JWT 身份验证和速率限制。 ### 🎨 现代化 UX/UI * **赛博朋克美学:** 带有矩阵雨效应的玻璃拟态设计。 * **视觉裁决:** 动画圆形仪表,清晰显示“安全”与“钓鱼”评分。 * **响应式:** 针对快速现场分析优化的移动优先设计。 ## 🛠️ 技术栈 ### 核心引擎 (后端) * **框架:** FastAPI (高性能异步 Python) * **AI/ML:** Google Gemini Pro (LLM), Scikit-learn (特征提取) * **取证:** `python-whois`, `dnspython`, `requests` (Header 分析) * **安全:** Cloudflare Turnstile 验证 * **数据库:** SQLAlchemy (SQLite/PostgreSQL) ### 界面 (前端) * **库:** React 19 + Vite * **样式:** Tailwind CSS + Framer Motion (动画) * **状态管理:** React Hooks * **I18n:** `i18next` (国际化) ## 📦 安装说明 ### 前置条件 * Python 3.10+ * Node.js 18+ * Cloudflare 账户(用于 Turnstile 密钥) * Google AI Studio 账户(用于 Gemini API) ### 1. 克隆仓库 ``` git clone https://github.com/sudo-baoz/phishing-detector.git cd phishing-detector ``` ### 2. 后端设置 **Backend phải chạy trong môi trường ảo (venv).** Nếu không, dependencies có thể conflict với hệ thống. ``` # 创建虚拟环境 python -m venv .venv # 激活 venv(运行 backend 前必须执行) # Windows (PowerShell/CMD): .venv\Scripts\activate # Linux/macOS: source .venv/bin/activate # 安装 dependencies(在 venv 中) pip install -r requirements.txt ``` **配置 (.env):** 在根目录创建 `.env` 文件: ``` # Database DB_TYPE=sqlite DB_NAME=phishing_detector # Server PORT=8000 DEBUG=false # CORS(⚠️ 替换为你的 frontend 域名) CORS_ORIGINS=https://yourfrontend.com,http://localhost:5173 # Security CLOUDFLARE_SECRET_KEY=your_secret_key_here # Dev: 设置为 false 以跳过 Turnstile 验证(避免 console 出现 404/CSP 错误) TURNSTILE_ENABLED=true # AI GEMINI_API_KEY=your_gemini_api_key_here ``` **运行服务器 (始终在已激活的 venv 中):** ``` uvicorn app.main:app --reload --port 8000 ``` ### 3. 前端设置 ``` cd frontend npm install # 创建 .env cp .env.example .env # 编辑 .env 并添加: # VITE_API_URL=http://localhost:8000 # VITE_CLOUDFLARE_SITE_KEY=your_site_key # 启动 Dev Server npm run dev ``` 访问:`http://localhost:5173` **开发提示:** 如果使用默认 Turnstile 密钥(占位符),前端将 **不加载 widget**,以避免控制台出现 404 / "Private Access Token" / CSP 错误。后端需要在 `.env` 中设置 `TURNSTILE_ENABLED=false` 以接受没有令牌的请求。 ## 🏗️ 构建说明 ### 生产构建 - 后端 ``` # 激活虚拟环境 source .venv/bin/activate # 使用生产设置运行 uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4 ``` **Systemd 服务:** 创建 `/etc/systemd/system/phishing-api.service`: ``` [Unit] Description=Phishing Detector API After=network.target [Service] User=your-user WorkingDirectory=/path/to/phishing-detector Environment="PATH=/path/to/phishing-detector/.venv/bin" ExecStart=/path/to/phishing-detector/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 Restart=always [Install] WantedBy=multi-user.target ``` 启用并启动: ``` sudo systemctl daemon-reload sudo systemctl enable phishing-api sudo systemctl start phishing-api ``` ### 生产构建 - 前端 ``` cd frontend # 为生产环境构建 npm run build # 本地预览构建 npm run preview # 部署到 Vercel/Netlify vercel --prod # 或 netlify deploy --prod ``` 构建输出将位于 `frontend/dist/`。 ### Docker 部署 ``` # 使用 Docker Compose 构建并运行 docker-compose up -d # 查看日志 docker-compose logs -f # 停止 docker-compose down ``` ## 🧩 工作原理 1. **输入:** 用户提交 URL 或在聊天中提及它。 2. **预处理:** 系统解析 URL,跟随重定向(取消缩短),并规范化字符串。 3. **OSINT 收集:** 获取 Whois 数据、DNS 记录 (A, MX, NS, TXT) 和 SSL 证书详细信息。 4. **AI 分析:** 汇总的数据发送到 **Gemini AI**,配合特定的 Prompt 分析社会工程学特征。 5. **裁决:** 计算风险评分(0-100),并生成详细报告。 ## 📜 许可证 本项目根据 **GNU General Public License v3.0** 授权 - 详见 [LICENSE](LICENSE) 文件。 ### 这意味着: - ✅ 您可以使用、修改和分发本软件 - ✅ 分发时必须披露源代码 - ✅ 衍生作品必须使用相同的 GPL-3.0 许可证 - ✅ 您必须说明对代码所做的更改 ### 重要提示: - 本项目仅使用 **GPL-3.0 兼容** 的库 - 所有源文件均包含 GPL-3.0 要求的版权头 - 在 GPL-3.0 条款下允许商业用途 ## ⚠️ 法律免责声明 **仅供教育目的。** 本工具旨在帮助安全研究人员和用户识别潜在的钓鱼威胁。开发者不对本工具的任何滥用或因访问本系统检测到的恶意网站而造成的任何损害负责。在分析活体恶意软件或钓鱼网站时,请始终使用沙箱环境。
标签:AV绕过, Chatbot, Cloudflare Turnstile, DAST, DNS分析, ESC4, FastAPI, IPv6支持, Naabu, OSINT, Python, React, Sigma 规则, SSL证书分析, Syscalls, Typosquatting, URL扫描, 人工智能, 内容安全, 同形异义词攻击, 域名分析, 基础设施分析, 威胁情报, 开发者工具, 恶意软件分析, 无后门, 欺诈防护, 测试用例, 生成式AI, 用户模式Hook绕过, 索引, 网络安全, 规避技术检测, 请求拦截, 逆向工具, 配置审计, 钓鱼检测, 隐私保护