RobertoBM21/CTI-platform

GitHub: RobertoBM21/CTI-platform

基于 STIX 2.1 标准构建的网络威胁情报平台,采用 DDD 与六边形架构解决复杂威胁数据的摄取、持久化与可视化问题。

Stars: 1 | Forks: 0

# 网络威胁情报 (CTI) 平台 ## 🎯 项目概述 本项目是一个严格围绕 **STIX 2.1 (Structured Threat Information Expression)** 标准构建的综合网络威胁情报 (CTI) 平台。它支持复杂网络威胁数据的摄取、处理和可视化,包括攻击行动、入侵集合、恶意软件和攻击模式。 该平台的主要工程挑战在于处理 STIX 2.1 关系深度互联的图状结构特性,同时保持高性能、严格的数据完整性以及清晰、解耦的架构。 ## 💻 技术栈 - **后端:** TypeScript, Node.js, NestJS - **前端:** Next.js (React), Tailwind CSS - **数据库与持久化:** MongoDB - **架构:** 领域驱动设计 (DDD)、六边形架构 (端口与适配器) - **QA 与测试:** Jest (单元/集成), Vitest, Playwright (E2E) - **DevOps:** Docker, Docker Compose, GitHub Actions (CI/CD) ## 🧠 架构与工程影响 作为该平台的唯一架构师和开发者,我专注于构建一个可维护且可扩展的系统,能够解析庞大的数据 payload。主要技术成就包括: - **严格的领域驱动设计 (DDD):** 采用六边形架构设计后端,将业务逻辑严格分离到不同的限界上下文(`Threat`、`Cyber`、`Reporting`、`Auth`)中。这确保了核心的 STIX 实体与基础设施和交付机制完全隔离。 - **复杂数据摄取引擎:** 设计了一个健壮的摄取 pipeline(`Bundle Ingestion Service`),能够处理大型 STIX 2.1 JSON bundle。该系统能高效解析、验证并将数百个实体及其复杂的相互关系持久化到 MongoDB 中。 - **NoSQL 数据建模:** 使用 MongoDB 设计了持久层,以自然适应 STIX 2.1 对象高度灵活和动态多态的特性,并实现了自定义 repository 来处理复杂的文档引用和查询。 - **全栈端到端交付:** 使用 Next.js 开发了一个响应式、类型安全的前端来可视化威胁态势,弥合了原始后端情报与可操作用户界面之间的差距。 - **全面的测试策略:** 从第一天起就通过为后端领域逻辑实现单元和集成测试,并使用 **Playwright** 对关键用户流程进行健壮的端到端 (E2E) 测试,从而保障了软件质量。 ## 🚀 快速开始 该平台已完全容器化,便于评估和部署。你可以使用 Docker Compose 启动整个技术栈: ``` # 复制示例环境变量 cp .env.example .env # 更新所需的 secrets (Google) # 构建并启动服务 docker-compose up -d --build ``` _如果你是技术主管或招聘人员,我鼓励你探索 `backend/src/contexts` 目录以审查 DDD 的实现,特别是 STIX 领域模型和摄取服务是如何使用端口与适配器进行隔离的。_
标签:MITM代理, MongoDB, NestJS, STIX, 威胁情报, 开发者工具, 版权保护, 特征检测, 网络安全, 自动化攻击, 请求拦截, 隐私保护, 领域驱动设计