ankan123basu/DARK-SHIELD

GitHub: ankan123basu/DARK-SHIELD

一个基于 Spring Boot 和 React 构建的全栈实时安全运营中心平台,通过 3D 可视化和 NIST 标准工作流帮助安全团队进行威胁监控与事件响应。

Stars: 1 | Forks: 0


🛡️ DARKSHIELD

Immersive Cybersecurity Operations Center (SOC)

A high-fidelity, real-time threat intelligence and digital forensics platform engineered for enterprise-grade incident response.

image ## 📖 概述 **DarkShield** 是一个全栈、实时的安全运营中心 (SOC) 模拟器与管理平台。它接收全球威胁情报,在完全交互式的 3D WebGL 地球上绘制攻击轨迹,并为安全分析师提供完整的符合 NIST 标准的事件响应流程。凭借集成的实时 WebSocket 通信、自动化漏洞扫描以及严格的基于角色的访问控制 (RBAC),DarkShield 成功在原始数据与可执行的网络安全防御之间架起了桥梁。 ## ✨ 核心平台功能 ### 🌍 全球威胁可视化 * **3D 威胁地球仪**: 由 Three.js 和 `@react-three/fiber` 驱动,渲染从攻击源到目标坐标的实时弹道弧线。 * **国内影响地图**: 基于交互式 SVG 的区域地图(以印度为中心),通过毛玻璃悬停提示框高亮显示受攻击的数据中心。 * **实时遥测数据流**: 按时间顺序排序的滚动式终端风格入侵指标 流数据。 ### 🚨 事件响应流程 (NIST 框架) 当威胁的严重性分数超过临界阈值(≥ 75)时,系统会自动生成事件。 * **升级**: 确认威胁。 * **遏制**: 隔离受影响的网络资产。 * **根除**: 清除恶意软件并修补漏洞。 * **恢复**: 安全地将系统重新上线。 * **解决**: 生成解决记录并关闭工单。 ### 💻 资产与漏洞管理 * **网络资产清单**: 跟踪所有组织的服务器、防火墙和工作站。 * **沉浸式实时扫描**: 自定义终端风格的模态框,可模拟 Nmap 端口扫描和操作系统检测,并将活动开放端口与国家漏洞数据库 (NVD) 进行交叉比对以查找 CVE。 * **动态风险评分**: 资产根据计算出的漏洞分数显示发光的 SVG `RiskRing`。 ### 💬 SOC 通信 (实时团队聊天) * **零延迟通信**: 由 Spring Boot STOMP WebSockets 驱动。 * **特定角色频道**: 为 `#All Hands`、`#Hunters`、`#Analysts` 和 `#Admins` 提供专用的加密聊天室。 * **直接消息**: 安全的点对点私信,用于快速的事件协调。 ## 🏗️ 系统架构与数据流 DarkShield 采用解耦的客户端-服务器架构。前端负责沉浸式的 3D 渲染和状态管理,而后端则处理 JWT 身份验证、数据库持久化以及 WebSocket 消息代理。 ``` graph TD %% Define Client Layer subgraph Client Layer [Frontend - React / Vite] UI[React UI Components] Three[Three.js / WebGL Canvas] Axios[Axios HTTP Client] Stomp[STOMP WebSocket Client] end %% Define Server Layer subgraph Server Layer [Backend - Spring Boot] Security[Spring Security + JWT Filter] Controllers[REST Controllers] WSBroker[In-Memory WebSocket Broker] Services[Business Logic Services] Repo[Spring Data MongoDB Repositories] end %% Define Database Layer subgraph Data Layer Mongo[(MongoDB)] end %% Connections UI --> Three UI --> Axios UI --> Stomp Axios -- "HTTP/REST (JSON)" --> Security Stomp -- "ws:// STOMP Protocol" --> WSBroker Security --> Controllers Controllers --> Services Services --> Repo Repo <--> Mongo WSBroker -- "Broadcasts to Subscribed Topics" --> Stomp ``` ## 🛠️ 技术栈 ### 前端 (客户端) * **框架**: React 18, Vite * **3D 引擎**: Three.js, `@react-three/fiber`, `@react-three/drei` * **动画**: Framer Motion * **网络**: Axios, `@stomp/stompjs` (原生 WebSockets) * **样式**: 原生 CSS (霓虹赛博朋克美学, 毛玻璃效果) ### 后端 (服务器端) * **框架**: Java 26, Spring Boot 4 * **安全**: Spring Security, JJWT (JSON Web Tokens 0.12.5), BCrypt * **WebSockets**: Spring `spring-boot-starter-websocket` * **数据库**: MongoDB & Spring Data MongoDB ## 🚀 安装与部署 请按照以下步骤在本地部署 DarkShield 平台。 ### 0. 前置条件 * **Java Development Kit (JDK) 26** * **Node.js v18+** & npm * **MongoDB** (在本地 `mongodb://localhost:27017` 上运行) ### 1. 后端设置 (Spring Boot) 打开终端并执行以下 Shell 命令: ``` # 导航到 backend 目录 cd darkshield-backend # 使用 Maven 清理并构建应用 mvn clean install # 运行 Spring Boot 应用 mvn spring-boot:run ``` *后端将初始化并绑定到 `http://localhost:9091`(或 `8080`)。请确保端口与前端的 Axios 配置相匹配。* ### 2. 前端设置 (React/Vite) 打开一个**新**的终端窗口并执行: ``` # 导航到 frontend 目录 cd darkshield-frontend # 安装所有 Node modules 和 dependencies npm install # 启动 Vite development server npm run dev ``` *前端可通过 `http://localhost:5173` 访问。请在浏览器中打开此 URL。* ## ⚙️ 平台工作原理 (操作演练) 1. **身份验证**: 用户必须注册并登录。后端会颁发一个无状态的 JWT,该令牌存储在浏览器的 `localStorage` 中,并作为 `Bearer` 令牌附加到所有后续的 Axios 请求中。 2. **威胁接入**: 分析师导航至 **Threats** 页面以记录新发生的攻击(例如,勒索软件、DDoS)。系统会将目标位置(如孟买、德里)映射到精确的纬度/经度坐标。 3. **可视化**: **Dashboard** 和 **Threat Globe** 从数据库中提取这些坐标,并实时渲染发光的攻击弧线和影响区域。 4. **自动升级**: 如果威胁的严重性分数达到或超过 75,Spring Boot 后端将自动创建一个高优先级的 **Incident**。 5. **NIST 响应**: `ROLE_HUNTER` 认领该事件,并使用动态 UI 按钮推进工单状态:`Escalate` $\rightarrow$ `Contain` $\rightarrow$ `Eradicate` $\rightarrow$ `Recover` $\rightarrow$ `Resolve`。 6. **资产隔离**: 在“Contain”阶段期间,Hunter 导航至 **Assets** 页面,运行终端扫描器以验证漏洞,并点击资产的状态徽章将其切换为 `COMPROMISED` 或 `QUARANTINED`。 7. **团队协作**: 在整个过程中,团队使用 **SOC Comms** (聊天) 通过加密的基于角色的频道发送实时 WebSocket 消息。 ## 📂 详细的目录结构 ``` 📦 DARKSHIELD ┣ 📂 darkshield-backend # BACKEND: Spring Boot ┃ ┣ 📂 src/main/java/com/darkshield ┃ ┃ ┣ 📂 config # CORS, Security, MongoDB, WebSocket Configs ┃ ┃ ┣ 📂 controller # REST APIs (Auth, Threats, Incidents, Assets) ┃ ┃ ┣ 📂 dto # Data Transfer Objects (Requests/Responses) ┃ ┃ ┣ 📂 exception # Global Exception Handlers ┃ ┃ ┣ 📂 model # MongoDB Document Entities & Enums ┃ ┃ ┣ 📂 repository # Spring Data Mongo Repositories ┃ ┃ ┣ 📂 security # JWT Filters, UserDetails, EntryPoints ┃ ┃ ┗ 📂 service # Core Business Logic & Workflows ┃ ┣ 📜 pom.xml # Maven Build Definitions ┃ ┗ 📜 .gitignore # Java/Maven Ignore Rules ┃ ┣ 📂 darkshield-frontend # FRONTEND: React / Vite ┃ ┣ 📂 public # Static assets, Earth textures ┃ ┣ 📂 src' ┃ ┃ ┣ 📂 api # Axios instances & interceptors ┃ ┃ ┣ 📂 components # Reusable UI (Sidebar, IndiaMap, AssetCard) ┃ ┃ ┣ 📂 context # React Context API (AuthContext) ┃ ┃ ┣ 📂 pages # Route Views (Dashboard, Globe, Chat, etc.) ┃ ┃ ┣ 📜 App.jsx # React Router Configuration ┃ ┃ ┣ 📜 index.css # Global Neon/Glassmorphic CSS Variables ┃ ┃ ┗ 📜 main.jsx # React DOM Entry Point ┃ ┣ 📜 package.json # NPM Dependencies & Scripts ┃ ┣ 📜 vite.config.js # Vite Build & Polyfill Settings ┃ ┗ 📜 .gitignore # Node/Vite Ignore Rules ┃ ┗ 📜 README.md # Main Project Documentation ```

“一次一个数据包,守护数字边疆。”

由 Spring Boot 和 React 驱动

标签:3D地球, MongoDB, NIST合规, RBAC, React, SOC平台, Spring Boot, Syscalls, Three.js, WebGL, WebSockets, 企业级安全, 威胁情报, 安全运营中心, 实时威胁可视化, 密码管理, 库, 应急响应, 开发者工具, 插件系统, 数字取证, 数字孪生安全, 无线安全, 网络安全, 网络安全审计, 网络映射, 自动化脚本, 自定义脚本, 隐私保护