ESSAKKI-RAJA/THREATWEAVE-Enterprise-Cyber-Risk-Intelligence-Platform
GitHub: ESSAKKI-RAJA/THREATWEAVE-Enterprise-Cyber-Risk-Intelligence-Platform
THREATWEAVE 是一个融合多源 OSINT 情报与机器学习预测的企业级供应链网络风险情报平台,帮助组织持续评估和可视化第三方供应商带来的网络安全风险。
Stars: 0 | Forks: 0
# ⚔️ THREATWEAVE
### 企业级供应链网络风险情报平台
*秒级检测隐性污染,追踪威胁行为者指纹,并生成可供 CISO 直接使用的叙述报告。*
[](LICENSE)
[](https://github.com/ESSAKKI-RAJA/THREATWEAVE/actions)
[](CHANGELOG.md)
[](https://www.typescriptlang.org/)
[](https://python.org)
[](https://react.dev)
[](https://fastapi.tiangolo.com)
[](https://supabase.com)
[](docker-compose.yml)
[](https://vercel.com)
[](SECURITY.md)
[](https://github.com/ESSAKKI-RAJA/THREATWEAVE/commits/main)
[](https://github.com/ESSAKKI-RAJA/THREATWEAVE/stargazers)
[](https://github.com/ESSAKKI-RAJA/THREATWEAVE/issues)
## 概述
现代企业信任数以百计的第三方供应商——云提供商、SaaS 工具、支付处理商和开源库——却对这些关系引入的网络风险缺乏足够的可见性。单个被攻破的供应商就可能引发全面的组织违规事件。
**THREATWEAVE** 解决了这个问题。它是一个企业级、AI 增强的网络风险情报平台,能够:
- **融合被动 OSINT 信号**——TLS 证书图谱、暴露的端口和 CVE、恶意软件信誉、泄露的凭证、暗网提及——形成统一的供应商风险画像
- **使用交互式图谱引擎映射 N 度供应链依赖关系**,揭示隐藏的爆炸半径
- **生成可供 CISO 使用的 AI 叙述报告**,将原始技术信号转化为适合董事会的语言
- **提供与您监控的供应商生态系统直接关联的实时威胁警报**
- **使用 ARIMA、Prophet 和 LSTM 时间序列模型预测风险轨迹**
**适用人群?**
- 需要执行级风险可见性的首席信息安全官 (CISO)
- 负责进行供应商风险评估和威胁调查的 SOC 团队
- 管理数百个供应商关系的第三方风险管理 (TPRM) 项目
- 构建内部威胁情报工具的安全工程师
**核心差异化优势:**
| 功能 | THREATWEAVE | 传统 TPRM 工具 |
|---|---|---|
| 实时 OSINT 融合 | ✅ 持续监控 | ❌ 定期问卷调查 |
| AI 叙述生成 | ✅ 自动化 | ❌ 人工分析师报告 |
| 交互式供应链图谱 | ✅ N 度映射 | ❌ 仅限第一方 |
| 风险预测 (ML) | ✅ ARIMA + Prophet + LSTM | ❌ 静态评分 |
| 支持自托管 | ✅ Docker / K8s 就绪 | ❌ 供应商锁定的 SaaS |
## 核心功能
### 🔍 OSINT 信号融合引擎
持续从以下来源聚合被动情报:
- **crt.sh** — TLS 证书子域名枚举和颁发者图谱
- **Shodan InternetDB** — 暴露的端口、服务、banners 和 CVE 关联
- **VirusTotal** — 文件哈希信誉、恶意软件家族分类
- **AlienVault OTX** — 威胁指标源 (IP、域名、哈希)
- **GreyNoise** — 互联网背景噪音过滤和大规模扫描归因
- **GitHub** — 公共存储库中的凭证泄露和密钥检测
- **AbuseIPDB** — IP 信誉评分和滥用报告
所有信号都会经过标准化、去重和加权,为每个供应商域生成综合的 **风险评分 (0–100)**。
### 🕸️ 交互式供应链图谱
基于 `@xyflow/react` (React Flow) 构建,该图谱引擎能够:
- 映射第一方、第二方和第三方供应商关系 (N 度)
- 可视化**爆炸半径**——“如果该供应商被攻破,我会损失什么?”
- 支持缩放、平移、展开/折叠以及供应商详细信息下钻
- 突出显示将供应商与已知威胁行为者联系起来的共享基础设施(TLS 颁发者、ASN 块、CDN 提供商)
### 🤖 AI 叙述生成
使用服务端 LLM 集成(兼容 OpenAI),THREATWEAVE 会自动生成:
- 关于供应商风险发现的通俗英文执行摘要
- 每个供应商的按严重性排名的指标叙述
- 用于分析师交接的调查简报
- 可导出的报告部分(PDF/Markdown)
### 📊 风险预测(ML 后端)
Python FastAPI 后端提供时间序列预测:
- **ARIMA** — 用于短期趋势的经典统计预测
- **Facebook Prophet** — 用于中期风险预测的季节性分解
- **LSTM (TensorFlow)** — 用于处理复杂、非线性模式的深度学习
- 供应商风险历史记录存储在 Supabase 中,并通过 `/forecast/arima` endpoint 提供
### 🚨 实时警报系统
- 与受监控的供应商事件绑定的实时警报
- 可配置的严重性阈值(危急、高、中、低)
- 批量管理(分配、抑制、升级)
- 通过 Webhook 发送至 Slack、Teams、PagerDuty
### 🔬 调查案例管理
完整的案例生命周期管理:
- 基于时间线的证据收集
- MITRE ATT&CK 技术标签
- 保管链跟踪
- 附件工件和分析师任务分配
### 🏢 企业级身份验证与多租户
- 使用 **Clerk** 进行企业级身份验证(SSO、SAML、WebAuthn、SCIM)
- 基于组织的工作空间隔离
- 基于角色的访问控制(CISO、SOC 经理、分析师、查看者)
- 保留 90 天的审计日志
## 系统架构
```
flowchart TD
subgraph Client["Client Layer"]
BROWSER["Browser / SSR"]
LANDING["Landing Page\n/index.tsx"]
DASH["Mission Control\n/dashboard"]
VENDOR["Vendor Intel\n/vendors/:domain"]
ALERTS["Alert Center\n/alerts"]
INV["Investigations\n/investigations"]
GRAPH["Supply Chain Graph\n@xyflow/react"]
end
subgraph Frontend["Frontend — TanStack Start + Nitro (Vercel)"]
SSR["SSR / Hydration\nserver.ts + start.ts"]
ROUTER["TanStack Router\nFile-based routing"]
RQ["TanStack Query\nData fetching + cache"]
CLERK_FE["Clerk\nAuth provider"]
SUPA_CLIENT["Supabase Client\nRLS-enforced queries"]
end
subgraph Backend["Forecasting Backend — FastAPI (Render)"]
FORECAST_API["Forecast API\n/forecast/arima"]
ARIMA["ARIMA\nstatsmodels"]
PROPHET["Prophet\nFacebook Prophet"]
LSTM["LSTM\nTensorFlow / Keras"]
FEAT_STORE["Feature Store\nfeature_store.py"]
MODEL_REG["Model Registry\nmodel_registry.py"]
end
subgraph Database["Data Layer — Supabase"]
PG["PostgreSQL\nRow-Level Security"]
REALTIME["Realtime\nWebSocket subscriptions"]
AUTH_SB["Supabase Auth\n(bridge to Clerk)"]
STORAGE["Supabase Storage\nReport artifacts"]
end
subgraph OSINT["OSINT Connectors — Server Functions"]
CRTSH["crt.sh\nCertificate graph"]
SHODAN["Shodan InternetDB\nPorts + CVEs"]
VT["VirusTotal\nMalware reputation"]
GN["GreyNoise\nNoise filtering"]
OTX["AlienVault OTX\nThreat indicators"]
GITHUB_CON["GitHub\nLeak detection"]
ABUSE["AbuseIPDB\nIP reputation"]
end
subgraph External["External Services"]
OPENAI["OpenAI API\nNarrative generation"]
CLERK_SVC["Clerk.com\nSSO + SCIM"]
end
BROWSER --> LANDING
BROWSER --> DASH
BROWSER --> VENDOR
BROWSER --> ALERTS
BROWSER --> INV
Client --> Frontend
CLERK_FE --> CLERK_SVC
RQ --> SUPA_CLIENT
SUPA_CLIENT --> PG
PG --> REALTIME
SSR -->|Server Functions| OSINT
SSR -->|Server Functions| OPENAI
SSR --> FORECAST_API
FORECAST_API --> ARIMA
FORECAST_API --> PROPHET
FORECAST_API --> LSTM
FEAT_STORE --> PG
MODEL_REG --> PG
```
## 技术栈
### 前端
| 类别 | 技术 | 版本 | 用途 |
|---|---|---|---|
| 框架 | TanStack Start | 1.167 | 具有基于文件路由的全栈 React SSR |
| 路由 | TanStack Router | 1.168 | 类型安全的基于文件路由,SSR 流式传输 |
| 服务器 | Nitro | 3.0-beta | 通用服务器,Vercel 部署预设 |
| 语言 | TypeScript | 5.8 | 跨所有层的类型安全开发 |
| 样式 | Tailwind CSS | 4.2 | 实用优先,零配置暗黑模式 |
| 认证 | Clerk | 1.4 | 企业 SSO、SAML、WebAuthn、SCIM |
| 数据库客户端 | Supabase JS | 2.108 | 带有 RLS + Realtime 的 PostgreSQL |
| 数据获取 | TanStack Query | 5.83 | 带有乐观更新的服务器状态管理 |
| 图谱可视化 | @xyflow/react | 12.11 | 交互式供应链依赖图谱 |
| 图表 | Recharts | 2.15 | 风险趋势图表和执行仪表板 |
| UI 组件 | Radix UI | 最新 | 无障碍的无头 UI 基础组件 |
| 图标 | Lucide React | 0.575 | 一致的图标系统 |
| 通知 | Sonner | 2.0 | 通知系统 |
| 命令面板 | cmdk | 1.1 | 全局搜索 (CTRL+K) |
| 虚拟化 | TanStack Virtual | 3.14 | 高性能供应商列表渲染 |
### 后端(预测服务)
| 类别 | 技术 | 版本 | 用途 |
|---|---|---|---|
| 框架 | FastAPI | 最新 | 高性能异步 REST API |
| 服务器 | Uvicorn | 最新 | ASGI 服务器 |
| 预测 | statsmodels | 最新 | ARIMA 时间序列模型 |
| 预测 | Prophet | 最新 | 季节性分解预测 |
| ML | TensorFlow / Keras | 最新 | LSTM 深度学习模型 |
| 数据 | Pandas + NumPy | 最新 | 数据处理和特征工程 |
| 数据库 | psycopg2-binary | 最新 | PostgreSQL 驱动程序 |
| 配置 | python-dotenv | 最新 | 环境变量管理 |
### 基础设施
| 类别 | 技术 | 用途 |
|---|---|---|
| 数据库 | Supabase (PostgreSQL) | 带有 RLS、Realtime、Auth 的主数据存储 |
| 前端托管 | Vercel | 通过 Nitro vercel 预设进行边缘优化的 SSR |
| 后端托管 | Render | Python FastAPI 预测服务 |
| 容器化 | Docker + Compose | 本地开发和自托管 |
| CI/CD | GitHub Actions | 构建、测试、lint、类型检查流水线 |
## 仓库结构
```
THREATWEAVE/
├── frontend/ # TanStack Start SSR application
│ ├── src/
│ │ ├── api/ # Server function API layer
│ │ │ ├── activities.api.ts # Activity log server functions
│ │ │ ├── forecast.api.ts # Forecasting backend proxy
│ │ │ ├── intelligence.api.ts # Threat intelligence queries
│ │ │ ├── investigations.api.ts # Case management CRUD
│ │ │ ├── settings.api.ts # Org settings read/write
│ │ │ └── vendor.api.ts # Vendor CRUD + scan triggers
│ │ ├── components/ # Shared UI components
│ │ │ └── ui/ # shadcn/ui primitives
│ │ ├── integrations/
│ │ │ └── supabase/
│ │ │ ├── auth-middleware.ts # Clerk JWT verification middleware
│ │ │ ├── mock-db.ts # E2E test mock database
│ │ │ └── types.ts # Generated Supabase types
│ │ ├── lib/
│ │ │ ├── connectors/ # OSINT data source connectors
│ │ │ │ ├── base.connector.ts # Abstract base with rate limiting
│ │ │ │ ├── crtsh.connector.ts # crt.sh certificate graph
│ │ │ │ ├── github.connector.ts# GitHub leak detection
│ │ │ │ ├── shodan.connector.ts# Shodan port/CVE enrichment
│ │ │ │ ├── threatfeeds.connector.ts # OTX, AbuseIPDB, GreyNoise
│ │ │ │ └── virustotal.connector.ts # VirusTotal reputation
│ │ │ ├── intelligence/ # Threat intelligence processing
│ │ │ ├── analytics/ # Risk scoring analytics
│ │ │ ├── scan.functions.ts # Orchestrated OSINT scan pipeline
│ │ │ ├── threats.functions.ts # Threat signature generation
│ │ │ ├── narrative.functions.ts # AI narrative generation
│ │ │ ├── vendor-intelligence.functions.ts # Vendor enrichment
│ │ │ ├── supplyChainDepth.functions.ts # Nth-party graph builder
│ │ │ ├── osint-types.ts # Shared TypeScript types
│ │ │ ├── rate-limit.ts # Exponential backoff + circuit breaker
│ │ │ └── health.functions.ts # Connector health checks
│ │ ├── routes/
│ │ │ ├── __root.tsx # Root layout + Clerk + QueryClient
│ │ │ ├── index.tsx # Enterprise landing page
│ │ │ ├── login.tsx # Clerk SignIn
│ │ │ ├── sign-up.tsx # Clerk SignUp → Onboarding
│ │ │ ├── auth.callback.tsx # Clerk OAuth callback handler
│ │ │ └── _authenticated/ # Protected routes (Clerk guard)
│ │ │ ├── route.tsx # Authenticated layout wrapper
│ │ │ ├── onboarding.tsx # Workspace setup wizard
│ │ │ ├── dashboard.tsx # Executive Mission Control
│ │ │ ├── vendors.$domain.tsx# Vendor deep-dive intelligence
│ │ │ ├── alerts.tsx # Live alert management
│ │ │ ├── investigations.tsx # Case management
│ │ │ ├── intelligence.tsx # Global threat intelligence
│ │ │ ├── supply-chain.tsx # Interactive dependency graph
│ │ │ ├── threats.tsx # Threat feed browser
│ │ │ └── settings.tsx # Enterprise control center
│ │ ├── server/ # Nitro server handlers
│ │ ├── routeTree.gen.ts # Auto-generated route manifest
│ │ ├── router.tsx # Router configuration
│ │ └── server.ts # SSR entry + error wrapper
│ ├── tests/
│ │ └── e2e/ # Playwright E2E test suite
│ │ ├── verification.spec.ts # Platform verification tests
│ │ ├── vendor-lifecycle.spec.ts# Vendor CRUD lifecycle
│ │ └── workflow.spec.ts # Full user workflow tests
│ ├── Dockerfile # Frontend container definition
│ ├── vite.config.ts # Vite + TanStack Start + Nitro config
│ ├── playwright.config.ts # E2E test configuration
│ └── package.json
│
├── backend/ # Python FastAPI forecasting service
│ ├── app/
│ │ ├── api/v1/
│ │ │ ├── vendors.py # Vendor data endpoints
│ │ │ ├── alerts.py # Alert endpoints
│ │ │ ├── threats.py # Threat intel endpoints
│ │ │ ├── investigations.py # Case management endpoints
│ │ │ ├── analytics.py # Analytics aggregations
│ │ │ └── settings.py # Settings CRUD
│ │ ├── core/ # Core config + dependencies
│ │ ├── main.py # FastAPI app + route registration
│ │ ├── feature_store.py # ML feature engineering pipeline
│ │ └── model_registry.py # ARIMA/Prophet/LSTM model management
│ ├── Dockerfile # Backend container definition
│ └── requirements.txt
│
├── docs/ # Extended documentation
├── scripts/ # Utility and automation scripts
├── .github/
│ ├── workflows/ # GitHub Actions CI/CD
│ └── ISSUE_TEMPLATE/ # Standardized issue templates
├── docker-compose.yml # Full-stack local development
├── render.yaml # Render.com deployment manifest
├── vercel.json # Vercel deployment configuration
└── README.md
```
## 快速开始
### 前置条件
| 要求 | 版本 | 备注 |
|---|---|---|
| Node.js | ≥ 22.x | 推荐 LTS |
| npm | ≥ 10.x | 随 Node 提供 |
| Python | ≥ 3.11 | 用于预测后端 |
| Docker Desktop | 最新 | 用于容器化设置 |
### 1. 克隆仓库
```
git clone https://github.com/ESSAKKI-RAJA/THREATWEAVE.git
cd THREATWEAVE
```
### 2. 前端设置
```
cd frontend
npm install
cp .env.example .env
```
使用您的凭证编辑 `.env`(参见[环境变量](#environment-variables))。
### 3. 后端设置
```
cd backend
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
```
### 4. 在开发模式下运行
**终端 1 — 前端:**
```
cd frontend
npm run dev
# → http://localhost:8080
```
**终端 2 — 预测后端:**
```
cd backend
uvicorn app.main:app --reload --port 8000
# → http://localhost:8000
# → Swagger UI: http://localhost:8000/docs
```
### 5. Docker Compose(全栈)
```
# 从 repo 根目录
cp .env.example .env # Fill in secrets
docker compose up --build
# → Frontend: http://localhost:3000
# → Backend: http://localhost:8000
```
### 6. 运行测试
```
# Frontend 单元测试
cd frontend && npm test
# Frontend E2E 测试(需要运行服务器)
npm run test:e2e
# TypeScript 类型检查
npx tsc --noEmit
# Lint
npm run lint
```
## 安装
Windows (PowerShell)
``` # 通过 winget 安装 Node.js winget install OpenJS.NodeJS.LTS # 安装 Python winget install Python.Python.3.11 # Clone 并设置 git clone https://github.com/ESSAKKI-RAJA/THREATWEAVE.git cd THREATWEAVE\frontend npm install cd ..\backend python -m venv .venv .venv\Scripts\Activate.ps1 pip install -r requirements.txt ```macOS (Homebrew)
``` brew install node python@3.11 git clone https://github.com/ESSAKKI-RAJA/THREATWEAVE.git cd THREATWEAVE/frontend && npm install cd ../backend && python3 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt ```Linux (Ubuntu/Debian)
``` curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs python3.11 python3.11-venv git clone https://github.com/ESSAKKI-RAJA/THREATWEAVE.git cd THREATWEAVE/frontend && npm install cd ../backend && python3.11 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt ```Docker
``` # 单个服务 docker build -t threatweave-frontend ./frontend docker run -p 3000:3000 --env-file .env threatweave-frontend docker build -t threatweave-backend ./backend docker run -p 8000:8000 --env-file .env threatweave-backend # 全栈(推荐) docker compose up --build ```
**带有目的地构建。精准部署。**
[报告 Bug](https://github.com/ESSAKKI-RAJA/THREATWEAVE/issues/new?template=bug_report.yml) · [请求功能](https://github.com/ESSAKKI-RAJA/THREATWEAVE/issues/new?template=feature_request.yml) · [阅读文档](docs/) · [安全政策](SECURITY.md)
*© 2026 THREATWEAVE。MIT Licensed。*
标签:GitHub, 企业安全, 威胁情报, 实时处理, 密码管理, 开发者工具, 测试用例, 漏洞分析, 网络安全, 网络资产管理, 自定义脚本, 请求拦截, 路径探测, 逆向工具, 隐私保护