harborgrid-justin/black-cross
GitHub: harborgrid-justin/black-cross
一套企业级网络威胁情报平台,提供涵盖威胁情报、事件响应、漏洞管理、SIEM 和合规管理等 15 个模块的完整安全运营解决方案。
Stars: 1 | Forks: 0
# Black-Cross:企业级网络威胁情报平台
Black-Cross 是一个综合性的企业级网络威胁情报平台,旨在帮助安全分析师和团队高效地管理、分析和应对网络威胁。该平台提供 15 项核心企业级功能,每项功能均包含多个子模块,可实现完整的威胁生命周期管理。
## 快速开始
### 前置条件
- **Node.js** >= 20.0.0 和 **npm** >= 9.0.0
- **Docker** 和 **Docker Compose**
### 1. 启动基础设施服务
PostgreSQL 是必需的。MongoDB、Redis、Elasticsearch 和 RabbitMQ 是可选的。
```
# 启动所有基础设施 (推荐)
docker-compose up -d postgres mongodb redis elasticsearch rabbitmq
# 或者仅启动 PostgreSQL (最低要求)
docker-compose up -d postgres
```
| 服务 | 端口 | 状态 |
|----------------|-------|---------|
| PostgreSQL | 5433 | 必需 |
| MongoDB | 27017 | 可选 |
| Redis | 6379 | 可选 |
| Elasticsearch | 9200 | 可选 |
| RabbitMQ | 5672 / 15672 (UI) | 可选 |
### 2. 安装依赖
```
npm install --ignore-scripts
```
### 3. 同步数据库
```
npm run db:sync
```
这将在 PostgreSQL 中使用 sequelize 创建所有必需的表。
### 4. 初始化数据库
```
npm run db:seed
```
这将创建默认用户和示例数据(事件、漏洞、资产、IOC、威胁行为者)。
### 5. 启动平台
```
npm run dev
```
这将同时启动前端和后端:
| 组件 | URL |
|--------------|----------------------------------|
| 前端 | http://localhost:3000 |
| Backend API | http://localhost:8080/api/v1 |
| 健康检查 | http://localhost:8080/health |
| API 文档 | http://localhost:8080/api/v1/docs |
## 默认登录凭据
所有初始化用户的密码均为 `Password123!`
| 邮箱 | 角色 |
|--------------------------|---------|
| admin@blackcross.com | Admin |
| analyst@blackcross.com | Analyst |
| hunter@blackcross.com | Hunter |
| manager@blackcross.com | Manager |
| viewer@blackcross.com | Viewer |
## 技术栈
| 层级 | 技术 |
|-----------|-------------------------------------------------------|
| 前端 | React 18, TypeScript, Vite, Material-UI, Redux Toolkit |
| 后端 | Node.js, Express, TypeScript (正逐步从 JS 迁移) |
| 数据库 | PostgreSQL (Sequelize ORM), MongoDB (可选), Redis, Elasticsearch |
| 测试 | Cypress (E2E), Jest (后端单元测试) |
## 项目结构
```
black-cross/
├── frontend/ # React 18 + TypeScript + Vite
│ ├── src/
│ │ ├── components/ # Reusable UI components (layout, auth)
│ │ ├── pages/ # Feature pages (one per security module)
│ │ ├── store/ # Redux Toolkit slices
│ │ ├── services/ # API client and service modules
│ │ └── types/ # TypeScript type definitions
│ └── cypress/ # E2E test specs
├── backend/
│ ├── index.ts # Express entry point
│ ├── models/ # Sequelize models (User, Incident, Vulnerability, etc.)
│ ├── modules/ # 15 feature modules (routes, controllers, services)
│ │ ├── auth/ # Authentication (login, logout, JWT)
│ │ ├── threat-intelligence/
│ │ ├── incident-response/
│ │ ├── vulnerability-management/
│ │ ├── siem/
│ │ ├── threat-actors/
│ │ ├── ioc-management/
│ │ ├── threat-feeds/
│ │ ├── threat-hunting/
│ │ ├── risk-assessment/
│ │ ├── collaboration/
│ │ ├── reporting/
│ │ ├── malware-analysis/
│ │ ├── dark-web/
│ │ ├── compliance/
│ │ └── automation/
│ ├── middleware/ # Auth, rate limiting, validation, error handling
│ ├── config/ # Database and app configuration
│ └── scripts/ # DB sync, seed, admin creation utilities
├── docker-compose.yml # All infrastructure services
└── package.json # npm workspaces root
```
## 命令参考
### 开发
```
npm run dev # Start frontend + backend concurrently
npm run dev:backend # Backend only (port 8080)
npm run dev:frontend # Frontend only (port 3000)
```
### 数据库
```
npm run db:sync # Create/update tables from Sequelize models
npm run db:seed # Seed default users and sample data
npm run db:seed -- --full # Seed comprehensive dataset
npm run db:seed -- --force # Clear and reseed
npm run create-admin # Interactive admin user creation
```
### 测试
```
npm run test:backend # Jest backend tests
npm run test:e2e # Cypress E2E tests (headless)
npm run cypress # Cypress GUI
```
### 构建和 Lint
```
npm run build # Build frontend + backend
npm run lint # Lint both projects
npm run type-check # TypeScript type checking
```
### Docker
```
docker-compose up -d postgres mongodb redis elasticsearch rabbitmq # Start infrastructure
docker-compose ps # Check service status
docker-compose down # Stop all services
docker-compose down -v # Stop and remove volumes
```
## API Endpoint
所有路由均带有 `/api/v1/` 前缀:
| Endpoint | 描述 |
|----------------------------|--------------------------|
| `POST /auth/login` | 用户认证 |
| `POST /auth/logout` | 退出登录 (需要 token) |
| `GET /auth/me` | 当前用户资料 |
| `GET /health` | 平台健康状态 |
| `/threat-intelligence` | 威胁数据管理 |
| `/incidents` | 事件响应 |
| `/vulnerabilities` | 漏洞追踪 |
| `/iocs` | 失陷标示 |
| `/threat-actors` | 威胁行为者档案 |
| `/threat-feeds` | Feed 管理 |
| `/threat-hunting` | 威胁狩猎操作 |
| `/siem` | SIEM 事件和规则 |
| `/risk-assessment` | 风险评分 |
| `/collaboration` | 团队协作 |
| `/reporting` | 报告和分析 |
| `/malware-analysis` | 恶意软件沙箱 |
| `/dark-web` | 暗网监控 |
| `/compliance` | 合规性管理 |
| `/automation` | Playbook 自动化 |
## 环境配置
环境变量文件:
- `backend/.env` — 后端配置 (数据库、JWT、API 密钥)
- `frontend/.env` — 前端配置 (`VITE_API_URL=http://localhost:8080/api/v1`)
`backend/.env` 中的关键后端设置:
```
DATABASE_URL=postgresql://blackcross:blackcross_secure_password@localhost:5433/blackcross?schema=public
JWT_SECRET=blackcross_development_jwt_secret_32_chars_minimum_length
CORS_ORIGIN=http://localhost:3000
```
## 故障排除
**`npm install` 失败并提示 "Invalid Version":**
删除 `package-lock.json` 并运行 `npm install --ignore-scripts`。
**前端显示空白页面:**
检查浏览器控制台是否有错误。必须确保在 `App.tsx` 中导入了 `SimpleDashboard` 组件。
**登录返回 401 错误:**
运行 `npm run db:seed` 来创建默认用户。凭据为 `admin@blackcross.com` / `Password123!`。
**RabbitMQ 不断重启:**
这是可选组件,不会影响核心功能。在没有它的情况下平台也能正常运行。
**后端无法连接到 PostgreSQL:**
确保 Docker PostgreSQL 正在运行 (`docker-compose ps`),并且 `backend/.env` 中的端口与 Docker 映射匹配(默认:5433)。
## 功能
1. **威胁情报** — 实时威胁数据收集、富化和关联
2. **事件响应** — 工单创建、优先级排序、工作流自动化
3. **威胁狩猎** — 查询构建器、狩猎 playbook、异常检测
4. **漏洞管理** — CVE 追踪、资产映射、补丁工作流
5. **SIEM** — 日志标准化、事件关联、检测规则
6. **威胁行为者** — TTP 映射、归因分析、攻击活动追踪
7. **IoC 管理** — 多格式 IoC 支持、置信度评分、数据富化
8. **威胁 Feed** — 多源聚合、可靠性评分、去重
9. **风险评估** — 资产关键性、影响分析、风险评分模型
10. **协作** — RBAC、任务管理、实时团队工具
11. **报告** — 自定义模板、计划报告、数据可视化
12. **恶意软件分析** — 静态/动态分析、沙箱、YARA 规则
13. **暗网监控** — 论坛监控、凭证泄露检测
14. **合规性** — NIST/ISO/PCI-DSS 映射、差距分析、审计追踪
15. **自动化** — Playbook 构建器、条件逻辑、SOAR 集成
## 许可证
MIT — 查看 [LICENSE](./LICENSE)。
标签:Docker, GNU通用公共许可证, HTTPX, masscan, MITM代理, Node.js, PostgreSQL, 威胁情报平台, 安全管理, 安全防御评估, 搜索引擎查询, 测试用例, 自动化攻击, 请求拦截