SnehalPrince/UMBRA-Intelligence-platform
GitHub: SnehalPrince/UMBRA-Intelligence-platform
UMBRA 是一个 AI 原生的暗网与网络威胁情报监控平台,旨在帮助组织在数据泄露和凭证外泄被利用前实现快速检测、智能分析与多渠道告警。
Stars: 0 | Forks: 0
```
██╗ ██╗███╗ ███╗██████╗ ██████╗ █████╗
██║ ██║████╗ ████║██╔══██╗██╔══██╗██╔══██╗
██║ ██║██╔████╔██║██████╔╝██████╔╝███████║
██║ ██║██║╚██╔╝██║██╔══██╗██╔══██╗██╔══██║
╚██████╔╝██║ ╚═╝ ██║██████╔╝██║ ██║██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
```
### **影子情报平台**
*在暗处的威胁找到你之前,洞察它们的一切。*
[](LICENSE)
[](https://nodejs.org)
[](https://nextjs.org)
[](https://typescriptlang.org)
[](https://prisma.io)
[](https://redis.io)
[](https://postgresql.org)
[](https://pnpm.io)
## 什么是 UMBRA?
**UMBRA** 是一个**开发者优先、AI 原生的网络威胁情报平台**,用于监控地下网络(Tor、I2P、Telegram 频道、代码粘贴网站、暗网市场和黑客论坛),以发现针对您组织的凭证泄露、PII 泄露、品牌威胁以及攻击者计划信号。
### 为什么选择 UMBRA?
| 现有工具的问题 | UMBRA 的解决方案 |
|---|---|
| 仅限企业级定价($50K–$100K+/年) | 自助订阅计划仅需 **$99/月** 起 |
| 受销售限制,上手需要数周时间 | **不到 5 分钟**即可收到首个警报 |
| 原始数据转储,毫无上下文 | **AI 生成**的摘要 + 修复方案 |
| 过时、缓慢的仪表盘 | **现代化**的 Next.js UI,带有实时 WebSocket 数据流 |
| 没有优先考虑 API | 提供带有完整 OpenAPI 3.0 规范的 **REST API** |
| 高误报的警报噪音 | **XGBoost 风险评分** + LLM 分诊可有效降低噪音 |
## 仪表盘预览

## 核心功能
- 🕵️ **暗网监控** — Tor、I2P、Telegram、Discord、代码粘贴网站、勒索软件泄露网站
- 🔐 **凭证泄露检测** — 从采集到警报不到 60 分钟
- 🤖 **AI 威胁情报** — 由 Claude 驱动的摘要、风险评分、MITRE ATT&CK 映射
- 📊 **实时仪表盘** — 实时警报流、威胁指标、监视列表管理
- 🔔 **多渠道警报** — 电子邮件、Slack、Teams、webhooks、PagerDuty、Jira
- 🗄️ **监视列表管理** — 监控域名、邮箱范围、品牌关键词、IP 范围
- 📈 **高管报告** — PDF/CSV 导出、每周摘要、符合合规要求的审计日志
- 🔑 **API 优先** — 完整的 REST API + SDK,支持在 CI/CD pipeline 中进行编程集成
- 🏢 **多租户 (MSSP)** — 通过一个仪表盘管理多个客户组织
- 🛡️ **隐私设计** — 凭证经过哈希/匿名化处理;绝不存储明文 PII
## 架构概览
UMBRA 是一个 **pnpm monorepo**,包含领域驱动的微服务后端和 Next.js 前端。当前代码库包含 Web 仪表盘和 REST API;完整的微服务平台设计为在 Kubernetes (EKS) 上运行。
```
umbra-platform/
├── apps/
│ ├── api/ ← Express + TypeScript REST API (Node.js 22)
│ └── web/ ← Next.js 16 dashboard (React 19, TailwindCSS 4)
├── docs/ ← Architecture, PRD, API contracts, roadmap
├── docker-compose.yml← Local dev: PostgreSQL + Redis
└── package.json ← pnpm workspace root
```
### 数据 Pipeline
```
Dark Web Sources Intelligence Pipeline Delivery
───────────────── ────────────────────── ────────
Tor .onion sites ──▶ Content Classifier ──▶ Email
Telegram channels ──▶ Credential Extractor ──▶ Slack / Teams
Paste sites ──▶ MinHash Deduplication ──▶ Webhook
Ransomware leaks ──▶ Risk Scorer (XGBoost) ──▶ PagerDuty
I2P / ZeroNet ──▶ LLM Enrichment (Claude) ──▶ Dashboard UI
Hacker forums ──▶ MITRE ATT&CK Mapper ──▶ REST API
```
## 技术栈
### 前端 (`apps/web`)
| 层级 | 技术 |
|---|---|
| 框架 | **Next.js 16**(App Router + Turbopack) |
| UI | **React 19**(并发渲染) |
| 样式 | **TailwindCSS 4**(自定义设计 token) |
| 组件 | **Radix UI** 原语 |
| 动画 | **Motion** + **GSAP** + **Lenis** 平滑滚动 |
| 状态管理 | **Zustand** |
| 数据获取 | **TanStack Query** |
| 图表 | **Recharts** |
| 表单 | **React Hook Form** + **Zod** 验证 |
### 后端 (`apps/api`)
| 层级 | 技术 |
|---|---|
| 运行环境 | **Node.js 22 LTS** |
| 框架 | **Express** + TypeScript |
| 数据库 | 通过 **Prisma ORM** 使用 **PostgreSQL 16** |
| 缓存 / Pub-Sub | **Redis 7** (ioredis) |
| 任务队列 | **Bull**(后台任务处理) |
| 认证 | **JWT**(access + refresh token) |
| AI 集成 | **Google Gemini** API |
| 泄露查询 | **HaveIBeenPwned** API |
| 电子邮件 | **Nodemailer** (SMTP/SendGrid) |
### 基础设施(生产环境)
| 关注点 | 技术 |
|---|---|
| 云服务 | **AWS**(主要在 us-east-1,GDPR 在 eu-west-1) |
| 编排 | **Kubernetes 1.30** (EKS) |
| 服务网格 | **Istio** (mTLS) |
| IaC | **Terraform** + **Helm** |
| CI/CD | **GitHub Actions** → ECR → EKS |
| 边缘 / WAF | **Cloudflare** |
| 密钥管理 | **HashiCorp Vault** |
| 可观测性 | Prometheus + Grafana + OpenTelemetry + Jaeger |
## 快速开始
### 前置条件
- [Node.js 22 LTS](https://nodejs.org)
- [pnpm 9+](https://pnpm.io/installation)
- [Docker Desktop](https://www.docker.com/products/docker-desktop/)(用于本地 PostgreSQL + Redis)
### 1. 克隆代码库
```
git clone https://github.com/SnehalPrince/UMBRA-Intelligence-platform.git
cd UMBRA-Intelligence-platform
```
### 2. 安装依赖
```
pnpm install
```
### 3. 启动本地基础设施
```
# 启动 PostgreSQL (端口 5432) 和 Redis (端口 6379)
docker-compose up -d
```
### 4. 配置环境
```
# API 环境
cp apps/api/.env.example apps/api/.env
```
使用您的值编辑 `apps/api/.env`:
```
DATABASE_URL="postgresql://umbra:umbra@localhost:5432/umbra_db"
REDIS_URL="redis://localhost:6379"
JWT_SECRET="your-super-secret-jwt-key"
JWT_REFRESH_SECRET="your-refresh-secret"
GEMINI_API_KEY="your-gemini-api-key"
HIBP_API_KEY="your-hibp-api-key"
SMTP_HOST="smtp.sendgrid.net"
SMTP_USER="apikey"
SMTP_PASS="your-sendgrid-api-key"
```
### 5. 运行数据库迁移
```
pnpm db:migrate
```
### 6. 启动开发服务器
```
# 同时启动 API 和 Web
pnpm dev
# 或单独启动:
pnpm --filter api dev # API on http://localhost:4000
pnpm --filter web dev # Web on http://localhost:3000
```
## 项目结构
### API (`apps/api/src`)
```
src/
├── index.ts ← Server entry point
├── app.ts ← Express app setup (CORS, helmet, morgan)
├── controllers/
│ ├── auth.controller.ts ← Register, login, logout, token refresh
│ ├── dashboard.controller.ts ← Threat metrics and summary stats
│ ├── findings.controller.ts ← CRUD for threat findings
│ └── watchlist.controller.ts ← Target watchlist management
├── routes/
│ ├── auth.routes.ts ← POST /api/auth/*
│ ├── dashboard.routes.ts ← GET /api/dashboard/*
│ ├── findings.routes.ts ← GET/POST/PATCH /api/findings/*
│ └── watchlist.routes.ts ← GET/POST/DELETE /api/watchlist/*
├── services/
│ ├── ai.service.ts ← Gemini AI threat analysis
│ ├── email.service.ts ← Alert email delivery
│ └── hibp.service.ts ← HaveIBeenPwned breach lookup
├── middlewares/
│ ├── auth.ts ← JWT bearer token verification
│ └── error.ts ← Centralized error handler
└── lib/
├── prisma.ts ← Singleton Prisma client
├── redis.ts ← ioredis client
├── jwt.ts ← JWT sign/verify helpers
└── queue.ts ← Bull background job queue
```
### Web (`apps/web/src`)
```
src/
├── app/
│ ├── layout.tsx ← Root layout, fonts, metadata
│ ├── page.tsx ← Landing / splash page
│ ├── globals.css ← UMBRA dark theme + CSS variables
│ ├── (auth)/
│ │ ├── layout.tsx ← Centered auth layout
│ │ ├── login/page.tsx ← Login form with JWT flow
│ │ └── register/page.tsx ← Registration with validation
│ └── (dashboard)/
│ ├── layout.tsx ← Sidebar navigation
│ ├── dashboard/page.tsx ← Threat intelligence overview
│ ├── search/page.tsx ← Dark web search interface
│ ├── watchlist/page.tsx ← Monitored target management
│ ├── alerts/page.tsx ← Security alerts feed
│ ├── reports/page.tsx ← Threat analytics & exports
│ └── settings/page.tsx ← Account & org settings
├── components/
│ └── ui/
│ ├── button.tsx ← Variant-based Button (CVA)
│ └── input.tsx ← Styled Input with ref forwarding
├── providers/
│ ├── QueryProvider.tsx ← TanStack React Query setup
│ └── SmoothScrollProvider.tsx ← Lenis smooth scroll
└── lib/
└── utils.ts ← cn() class merging utility
```
## API 参考
Base URL: `http://localhost:4000/api`
### 认证
| 方法 | Endpoint | 描述 |
|---|---|---|
| `POST` | `/auth/register` | 注册新组织和用户 |
| `POST` | `/auth/login` | 认证并接收 JWT token |
| `POST` | `/auth/logout` | 使 refresh token 失效 |
| `POST` | `/auth/refresh` | 使用 refresh token 轮换 access token |
### 仪表盘
| 方法 | Endpoint | 描述 |
|---|---|---|
| `GET` | `/dashboard/stats` | 威胁指标和 KPI 摘要 |
| `GET` | `/dashboard/recent-alerts` | 最近的警报事件 |
### 发现
| 方法 | Endpoint | 描述 |
|---|---|---|
| `GET` | `/findings` | 列出所有威胁发现(分页) |
| `GET` | `/findings/:id` | 获取带有 AI 富集的单个发现 |
| `PATCH` | `/findings/:id/status` | 更新发现状态(已解决 / FP) |
### 监视列表
| 方法 | Endpoint | 描述 |
|---|---|---|
| `GET` | `/watchlist` | 列出受监控的资产 |
| `POST` | `/watchlist` | 添加域名、邮箱范围或关键词 |
| `DELETE` | `/watchlist/:id` | 移除受监控的资产 |
## 数据库 Schema
由 Prisma + PostgreSQL 管理的核心实体:
```
User ──────────────────── Organization
│ │
├── Sessions ├── WatchlistItems (domains, emails, keywords)
│ │
└── (via org) ├── Findings (threat events)
│ └── AI Enrichment (summary, severity, remediation)
│
└── Alerts (delivery log)
```
## 文档
| 文档 | 描述 |
|---|---|
| [`docs/PRD.md`](docs/PRD.md) | 产品需求文档 — 愿景、用户画像、功能、定价 |
| [`docs/Architecture.md`](docs/Architecture.md) | 完整的系统架构图 |
| [`docs/TechStack.md`](docs/TechStack.md) | 技术选型及理由 |
| [`docs/API.md`](docs/API.md) | API endpoint 契约和请求/响应 schema |
| [`docs/Database.md`](docs/Database.md) | 数据库 schema 设计和 ERD |
| [`docs/Design.md`](docs/Design.md) | UI/UX 设计系统和组件库 |
| [`docs/Roadmap.md`](docs/Roadmap.md) | 跨越 4 个阶段的产品路线图 |
| [`docs/Requirements.md`](docs/Requirements.md) | 功能性和非功能性需求 |
| [`docs/Implementation.md`](docs/Implementation.md) | 实施计划和开发者指南 |
| [`docs/Contracts.md`](docs/Contracts.md) | 服务契约和服务间 API 规范 |
| [`docs/Progress.md`](docs/Progress.md) | 构建进度追踪器 |
| [`docs/ProjectStructure.md`](docs/ProjectStructure.md) | Monorepo 目录映射 |
| [`docs/Mobile-Responsiveness.md`](docs/Mobile-Responsiveness.md) | 移动端 UX 策略 |
## 路线图
### ✅ 第一阶段 — 基础(当前)
- [x] Monorepo 脚手架(pnpm workspaces)
- [x] 包含认证、发现、监视列表、仪表盘的 Express REST API
- [x] 包含所有核心实体的 Prisma schema
- [x] 带有认证流程和所有页面路由的 Next.js 仪表盘
- [x] 实时 WebSocket 警报基础设施
- [x] AI 服务集成
- [x] HIBP 泄露查询服务
- [x] Redis 缓存 + Bull 任务队列
### 🔄 第二阶段 — 情报层(第 4–6 个月)
- [ ] AI 威胁摘要(针对每个发现的 Claude 富集)
- [ ] 暗网论坛和代码粘贴网站监控
- [ ] 勒索软件泄露网站监控(200+ 个网站)
- [ ] SIEM 集成(Splunk、Microsoft Sentinel)
- [ ] 多租户 MSSP 工作区支持
- [ ] Python + Node.js SDK
- [ ] Stripe 计费集成
### 🔮 第三阶段 — 可视化与深度(第 7–9 个月)
- [ ] 3D 威胁情报图谱(Three.js / R3F)
- [ ] 威胁行为者画像和 MITRE ATT&CK 映射
- [ ] 初始访问经纪人 (IAB) 监控
- [ ] 自动化修复工作流(Okta、Azure AD)
- [ ] 品牌保护和仿冒域名检测
- [ ] SOC 2 Type II 认证
### 🚀 第四阶段 — 企业级与扩展(第 10–12 个月)
- [ ] 高管 / VIP 监控模块
- [ ] 移动应用(React Native + Expo)
- [ ] 面向 MSSP 的白标解决方案
- [ ] 自定义威胁情报报告生成
- [ ] 集成市场生态系统
## 安全与隐私
UMBRA 的构建秉承**隐私设计**理念:
- ✅ **绝不存储明文凭据** — 电子邮件使用 SHA-256 哈希处理;密码进行部分掩码
- ✅ **零信任网络** — 通过 Istio 服务网格在所有微服务之间实施 mTLS
- ✅ **全面加密** — 静态数据使用 AES-256,传输中数据使用 TLS 1.3
- ✅ **密钥存放在 Vault 中** — HashiCorp Vault;生产环境的环境变量中不包含任何密钥
- ✅ **符合 GDPR** — 欧盟数据驻留在 eu-west-1;强制执行数据最小化
- ✅ **不可变的审计日志** — 采用 S3 WORM bucket,保留期为 7 年
- ✅ **仅进行被动监控** — UMBRA 仅执行防御性情报;不进行任何攻击性操作
## 定价
| 计划 | 价格 | 适用对象 |
|---|---|---|
| **Scout** | 免费 | 个人、研究人员 — 1 个域名,手动查询 |
| **Operator** | $99/月 | 初创企业、中小企业 — 3 个域名,API 访问,Slack 警报 |
| **Sentinel** | $299/月 | 发展中的团队 — 10 个域名,SIEM 集成 |
| **Guardian** | $599/月 | 安全团队 — 25 个域名,修复流 |
| **Enterprise** | $999+/月 | 大型组织、MSSP — 无限制,白标,SLA |
## 许可证
MIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。
**由 [SnehalPrince](https://github.com/SnehalPrince) 用 🖤 打造**
*UMBRA Intelligence — 防御性暗网监控。所有数据仅用于组织保护。*
标签:ESC4, GNU通用公共许可证, MITM代理, Node.js, OSINT, 人工智能, 威胁情报, 子域名突变, 实时处理, 开发者工具, 搜索引擎查询, 数据泄露, 暗网监控, 测试用例, 用户模式Hook绕过, 网络测绘, 自动化攻击, 请求拦截