hamzajawad11/phishguard-cti

GitHub: hamzajawad11/phishguard-cti

PhishGuard 是一款用于分析可疑 URL 和域名的网络安全威胁情报平台。

Stars: 0 | Forks: 0

# PhishGuard CTI [![Python](https://img.shields.io/badge/Python-3.12-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?style=for-the-badge&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com/) [![Vercel](https://img.shields.io/badge/Live%20Demo-Vercel-000000?style=for-the-badge&logo=vercel&logoColor=white)](https://phishguard-cti.vercel.app/) [![Tests](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/82f3ad5124014648.svg)](https://github.com/hamzajawad11/phishguard-cti/actions/workflows/tests.yml) PhishGuard 是一个用于可疑 URL 和域名调查的网络安全威胁情报平台。它将链接转换为可解释的风险评分、丰富情报、动态沙箱证据、IOC 提取、保存历史记录和分析师准备好的报告。 实时演示:[phishguard-cti.vercel.app](https://phishguard-cti.vercel.app/) 安全沙箱演示 URL: ``` https://phishguard-cti.vercel.app/secure-login/account/verify/billing/update?redirect=http%3A%2F%2F192.168.10.20%2Fportal&continue=microsoft-office-sso&session=verify-account-payment-update&token=ZXhhbXBsZS1kZW1v ``` 此演示 URL 故意看起来可疑但无害。它存在是为了测试 PhishGuard 的评分、动态 urlscan.io 截图捕获和下载检测工作流程。 ## 预览 ![PhishGuard 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5c8cc8b311014651.png) ![PhishGuard 分析器](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c65fd32297014655.png) ## 功能 PhishGuard 是为战术 CTI 和 SOC 风格的分级而构建的: - 分析 URL、域名和可疑文本提交。 - 提取包括 URL、域名、IP 地址、哈希和 CVE 在内的 IOC。 - 从透明证据而不是黑盒标签中评分风险。 - 使用 RDAP、DNS、重定向、订阅源、可选声誉 API 和 urlscan.io 丰富指标。 - 通过 urlscan.io 支持主动动态扫描。 - 检测观察到的下载并使用 VirusTotal 检查文件哈希。 - 将调查保存到 SQLite 以供本地/演示使用。 - 将报告导出为 JSON、可打印的 HTML 和 CSV 历史记录。 ## 关键功能 | 区域 | 功能 | | --- | --- | | URL 惯例 | HTTPS 检查、IP 主机、punycode、风险 TLD、URL 缩短、长 URL、深路径、编码字符、重定向参数 | | 钓鱼信号 | 可疑关键词、品牌模仿提示、嵌入的 IP 指示器 | | 被动情报 | RDAP 域名年龄、注册商、到期时间、DNS A/AAAA/MX/NS/TXT 记录、重定向跟踪 | | 公共订阅源 | URLHaus、PhishStats、CISA 已知利用漏洞目录 | | 可选 API | VirusTotal、AbuseIPDB、AlienVault OTX、urlscan.io | | 动态沙箱 | urlscan.io 浏览器扫描、截图链接、DOM 链接、最终 URL、观察到的下载 | | 文件判断 | 下载哈希提取和 VirusTotal 文件哈希查找 | | 报告 | 仪表板、历史记录、过滤器、JSON 导出、HTML 报告导出、CSV 导出 | ## 架构 ``` flowchart LR A["User submits URL, domain, or text"] --> B["FastAPI routes"] B --> C["Analyzer"] C --> D["Local heuristics and IOC extraction"] C --> E["Passive enrichment"] E --> E1["RDAP"] E --> E2["DNS"] E --> E3["Redirect trace"] E --> F["Threat feeds"] F --> F1["URLHaus"] F --> F2["PhishStats"] F --> F3["CISA KEV"] C --> G["Optional APIs"] G --> G1["VirusTotal"] G --> G2["AbuseIPDB"] G --> G3["AlienVault OTX"] G --> G4["urlscan.io"] G4 --> H["Dynamic sandbox screenshot and downloads"] H --> I["VirusTotal file hash verdicts"] D --> J["Risk score and evidence"] E --> J F --> J G --> J I --> J J --> K["SQLite history and reports"] ``` ## 实时演示说明 托管在 Vercel 上的演示对于 UI 和工作流程测试很有用,但 Vercel 无服务器存储是临时的。SQLite 记录可能会重置或在不同实例之间出现不一致。 为了可靠的长期历史记录和稳定的报告 URL,请使用持久存储部署: - Vercel Postgres - Neon Postgres - Supabase Postgres - Railway Postgres - Render 或 Fly.io 与持久磁盘/数据库 ## 快速入门 ``` git clone https://github.com/hamzajawad11/phishguard-cti.git cd phishguard-cti python -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install --upgrade pip python -m pip install -r requirements.txt python -m uvicorn app.main:app --reload ``` 打开: ``` http://127.0.0.1:8000 ``` ## 可选 API 密钥 应用程序无需密钥即可运行,但可选提供程序可以提高丰富质量。 复制示例文件: ``` Copy-Item .env.example .env ``` 配置值: ``` VIRUSTOTAL_API_KEY= ABUSEIPDB_API_KEY= OTX_API_KEY= URLSCAN_API_KEY= ENABLE_URLSCAN_SUBMISSION=false URLSCAN_VISIBILITY=unlisted URLSCAN_INITIAL_WAIT_SECONDS=10 URLSCAN_POLL_INTERVAL_SECONDS=5 URLSCAN_POLL_TIMEOUT_SECONDS=45 ``` 重要: - 永远不要提交 `.env`。 - 将 `ENABLE_URLSCAN_SUBMISSION=false` 设置为仅被动 urlscan.io 搜索。 - 仅当您有意向将 URL 提交给 urlscan.io 进行动态浏览器扫描时,才将 `ENABLE_URLSCAN_SUBMISSION=true`。 - 当您的账户支持时,使用 `URLSCAN_VISIBILITY=unlisted` 或 `private`。 ## 演示输入 用于快速课堂或作品集演示: ``` https://www.microsoft.com/security http://login-microsoft-security-update.xyz/verify/account?redirect=http://192.168.10.20 http://paypal.com.account-verify-login.top/session/update http://bit.ly/security-verification-login paypal-login-check.xyz verify-account-update.top ``` 安全动态沙箱演示: ``` https://phishguard-cti.vercel.app/secure-login/account/verify/billing/update?redirect=http%3A%2F%2F192.168.10.20%2Fportal&continue=microsoft-office-sso&session=verify-account-payment-update&token=ZXhhbXBsZS1kZW1v ``` ## 测试 ``` python -m pytest ``` 当前本地套件: ``` 34 tests passing ``` ## 部署 ### Vercel 此存储库包含一个与 Vercel 兼容的 FastAPI 入口点: ``` app/app.py ``` Vercel 检测 FastAPI 应用程序并从 GitHub 存储库部署。 ### Render `render.yaml` 包含用于 Render 风格 Python 托管的配置: ``` Build command: pip install -r requirements.txt Start command: uvicorn app.main:app --host 0.0.0.0 --port $PORT ``` ### Docker ``` docker build -t phishguard-cti . docker run --rm -p 8000:8000 phishguard-cti ``` ## 项目结构 ``` app/ analyzer.py URL parsing, IOC extraction, and risk scoring config.py Timeouts, limits, and shared configuration database.py SQLAlchemy engine and session management dns_intel.py DNS record enrichment domain_intel.py RDAP/domain-age intelligence enrichment.py URLHaus, PhishStats, and CISA KEV enrichment main.py FastAPI routes and web pages optional_sources.py VirusTotal, AbuseIPDB, OTX, and urlscan.io integrations redirects.py Passive redirect tracing reports.py CSV, JSON, and HTML report rendering static/ UI CSS, JavaScript, and logo templates/ Jinja dashboard, analyzer, history, and report pages tests/ Backend tests data/ Runtime SQLite database ``` ## 安全范围 PhishGuard 是一个防御性 CTI 项目。它不收集凭证、执行下载的文件或执行利用。包含的攻击者风格演示 URL 故意无害,仅用于检测、截图和下载观察测试。 ## 作者 Ali Ahsan / Hamza Jawad / Arun Lal / Taha Nasir
标签:逆向工具