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, 威胁情报平台, 安全管理, 安全防御评估, 搜索引擎查询, 测试用例, 自动化攻击, 请求拦截