Alimddar/ThreatLens

GitHub: Alimddar/ThreatLens

基于 Chrome 扩展与 FastAPI 的 Gmail 安全扫描工具,集成多项威胁情报源与 Claude AI 实现深度的钓鱼邮件及恶意软件检测。

Stars: 0 | Forks: 0

ThreatLens

ThreatLens 是一个 Chrome 扩展程序,能够在几秒钟内对任意 Gmail 邮件执行完整的 SOC 级威胁情报扫描。它结合了实时的 VirusTotal URL 扫描、WHOIS/DNS 分析、IP 信誉和 abuse.ch 威胁情报源,以及 Claude AI 综合分析,生成通俗易懂的判定结果——无需具备任何安全专业知识。 ## 功能 ### Chrome 扩展程序 - 一键深度扫描任意打开的 Gmail 邮件 - 威胁等级横幅:**SAFE / SUSPICIOUS / MALICIOUS** - 持久化扫描历史(最近 25 次扫描在关闭弹窗后仍然保留) - 在每个嵌入链接上叠加 VT 徽章 - 动态 SOC 情报加载步骤 ### SOC 情报(并行运行 9 项检查) | 模块 | 来源 | API Key | |--------|--------|---------| | URL 信誉 | VirusTotal v3 | 必填 | | WHOIS / 域名年限 | python-whois | 无 | | TLS 证书历史 | crt.sh | 无 | | DNS — SPF / DMARC / MX | Google DoH | 无 | | GeoIP + 代理检测 | ip-api.com | 无 | | IP 滥用评分 | AbuseIPDB | 可选 | | 恶意软件 URL 数据库 | URLhaus (abuse.ch) | 无 | | IOC 威胁情报源 | ThreatFox (abuse.ch) | 无 | | URL 沙箱 | URLScan.io | 可选 | | 钓鱼数据库 | PhishTank | 无 | | Hash 查询 | MalwareBazaar (abuse.ch) | 无 | ### AI 分析 (Claude claude-sonnet-4-6) - PII 清理程序会在邮件正文**到达模型之前**去除信用卡、SSN、密码、IBAN 和电话号码 - 返回结构化 JSON:威胁等级、置信度评分、3 个关键发现以及一项建议操作 - 专为非技术人员编写——零行话 ### 邮件正文 Hash - 服务端计算 MD5 / SHA-1 / SHA-256 - 自动对照 MalwareBazaar 检查 SHA-256 ## 架构 ``` Gmail Tab Chrome Extension FastAPI Backend ───────────────── ────────────────────── ───────────────────────────── content.js popup.js /deep-analyze └─ scrapes DOM ────▶ background.js (cache) ────▶ VirusTotal (parallel) sender chrome.storage.local WHOIS subject scan history crt.sh body DNS DoH links ip-api + AbuseIPDB URLhaus + ThreatFox PhishTank URLScan.io MalwareBazaar └─ Claude claude-sonnet-4-6 (PII-sanitized prompt) ``` ## 快速开始 ### 1 — 克隆并设置后端 ``` git clone https://github.com/Alimddar/ThreatLens.git cd ThreatLens/server python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # 编辑 .env 并添加你的 VIRUS_TOTAL_API_KEY 和 ANTHROPIC_API_KEY ``` ### 2 — 启动服务器 ``` uvicorn main:app --reload --port 8000 ``` 验证运行状态: ``` curl http://localhost:8000/health ``` ### 3 — 加载 Chrome 扩展程序 1. 打开 **chrome://extensions** 2. 启用 **Developer mode**(右上角开关) 3. 点击 **Load unpacked** 4. 选择本仓库中的 `extension/` 文件夹 ### 4 — 扫描邮件 1. 在 Chrome 中打开 **Gmail** 并打开任意邮件 2. 点击工具栏中的 ThreatLens 图标 3. 点击 **Deep Scan Email** ## 环境变量 | 变量 | 是否必填 | 描述 | |----------|----------|-------------| | `VIRUS_TOTAL_API_KEY` | ✅ 是 | VirusTotal API v3 密钥 | | `ANTHROPIC_API_KEY` | ✅ 是 | Anthropic Claude API 密钥 | | `ABUSEIPDB_API_KEY` | 可选 | 启用 IP 滥用评分 | | `URLSCAN_API_KEY` | 可选 | 启用 URLScan.io 沙箱提交 | 复制 `server/.env.example` → `server/.env` 并填入你的密钥。`.env` 文件已被 gitignore,绝不会提交。 ## 隐私与安全 - **邮件正文绝不存储。** 仅在扫描期间存在于内存中。 - **在 AI 处理前去除 PII。** 正则清理程序会在将邮件正文发送给 Claude 之前,去除信用卡号、SSN、IBAN、密码、电话号码和护照号。 - **扫描历史不存储正文内容** —— 仅包含发件人、主题、威胁等级、AI 摘要和 Hash 值。 - **所有 API 密钥均位于服务器**(`.env`)上,绝不存放在扩展程序中。 - **扫描历史** 保存在 `chrome.storage.local` 中(仅限本地设备,绝不上传)。 ## 技术栈 **扩展程序** — Manifest V3, Vanilla JS, 自定义 CSS 设计系统(无 CDN 依赖 —— MV3 CSP 要求) **后端** — Python 3.11+, FastAPI, uvicorn, httpx (async), python-whois, Anthropic SDK **AI** — Claude claude-sonnet-4-6 (`claude-sonnet-4-6`) **威胁情报** — VirusTotal v3, URLhaus, ThreatFox, PhishTank, MalwareBazaar, AbuseIPDB, URLScan.io, ip-api.com, crt.sh, Google DNS-over-HTTPS ## 项目结构 ``` ThreatLens/ ├── extension/ # Chrome MV3 extension │ ├── manifest.json │ ├── background.js # Service worker — message broker + history store │ ├── content.js # Gmail DOM scraper │ ├── popup.html # Dashboard UI │ ├── popup.js # UI logic + SOC section renderers │ ├── styles.css # Full custom design system │ └── icons/ # Extension icons (16/32/48/128 px) │ └── server/ # FastAPI backend ├── main.py # All endpoints + intelligence modules ├── requirements.txt └── .env.example # Template — copy to .env ``` ## 许可证 MIT — 参见 [LICENSE](LICENSE)。
标签:AbuseIPDB, API集成, Ask搜索, AV绕过, Claude AI, DMARC, DNS分析, FastAPI, GeoIP, Gmail, IP信誉, MalwareBazaar, MX记录, PhishTank, PII脱敏, SPF, ThreatFox, TLS证书, URLhaus, VirusTotal, Web安全, WHOIS, 人工智能, 代理检测, 反钓鱼, 可观测性, 哈希查询, 威胁情报, 安全运营中心, 开发者工具, 浏览器插件, 用户模式Hook绕过, 端点安全, 网络安全, 网络安全, 网络映射, 自定义脚本, 蓝队分析, 补丁管理, 逆向工具, 邮件安全, 钓鱼检测, 隐私保护, 隐私保护