SnehalPrince/UMBRA-Intelligence-platform

GitHub: SnehalPrince/UMBRA-Intelligence-platform

UMBRA 是一个 AI 原生的暗网与网络威胁情报监控平台,旨在帮助组织在数据泄露和凭证外泄被利用前实现快速检测、智能分析与多渠道告警。

Stars: 0 | Forks: 0

``` ██╗ ██╗███╗ ███╗██████╗ ██████╗ █████╗ ██║ ██║████╗ ████║██╔══██╗██╔══██╗██╔══██╗ ██║ ██║██╔████╔██║██████╔╝██████╔╝███████║ ██║ ██║██║╚██╔╝██║██╔══██╗██╔══██╗██╔══██║ ╚██████╔╝██║ ╚═╝ ██║██████╔╝██║ ██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ``` ### **影子情报平台** *在暗处的威胁找到你之前,洞察它们的一切。* [![License](https://img.shields.io/badge/license-MIT-red.svg?style=flat-square)](LICENSE) [![Node](https://img.shields.io/badge/Node.js-22_LTS-339933?style=flat-square&logo=node.js)](https://nodejs.org) [![Next.js](https://img.shields.io/badge/Next.js-16.x-000000?style=flat-square&logo=next.js)](https://nextjs.org) [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?style=flat-square&logo=typescript)](https://typescriptlang.org) [![Prisma](https://img.shields.io/badge/Prisma-ORM-2D3748?style=flat-square&logo=prisma)](https://prisma.io) [![Redis](https://img.shields.io/badge/Redis-7.x-DC382D?style=flat-square&logo=redis)](https://redis.io) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-4169E1?style=flat-square&logo=postgresql)](https://postgresql.org) [![pnpm](https://img.shields.io/badge/pnpm-workspace-F69220?style=flat-square&logo=pnpm)](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 分诊可有效降低噪音 | ## 仪表盘预览 ![UMBRA 指挥中心 — 平台概览,展示实时威胁遥测、风险评分、监视列表、关键发现,以及由 Claude 驱动的 AI 洞察](https://static.pigsec.cn/wp-content/uploads/repos/cas/e7/e7f8f074650c929334ca75935892bb556f52143946870b27ab8d164d91282d4c.png) ## 核心功能 - 🕵️ **暗网监控** — 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绕过, 网络测绘, 自动化攻击, 请求拦截