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.
## 📖 概述
**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, 企业级安全, 威胁情报, 安全运营中心, 实时威胁可视化, 密码管理, 库, 应急响应, 开发者工具, 插件系统, 数字取证, 数字孪生安全, 无线安全, 网络安全, 网络安全审计, 网络映射, 自动化脚本, 自定义脚本, 隐私保护