nextgensoumen/soc-pulse
GitHub: nextgensoumen/soc-pulse
SOC Pulse 是一个面向 AWS Ubuntu EC2 的自动化安全运营中心,通过 React 仪表盘编排五个实时安全模块,帮助运维人员在一个界面内完成从供应链审计到漏洞修复的全链路防御操作。
Stars: 0 | Forks: 0
SOC Pulse v3.0
Automated Cloud Security Command Center
欢迎使用 **SOC Pulse**,这是一个完全健壮、自动化且集中的安全运营中心 (SOC) 框架,专为 Amazon Web Services (AWS) Ubuntu EC2 基础设施而精心设计。
SOC Pulse 将五个独立的、 previously disconnected 的安全学科——从 Node.js 供应链监控到深度 OS 内核加固——整合到一个单一且高度直观的 Command Center 界面中。它为系统管理员提供了一个统一的单窗格视图,以原生触发和监控关键的漏洞评估,从而大幅降低了保护云资产的门槛。
SOC Pulse 中的所有内容都是 **100% 实时数据**。没有任何模拟数据。所有的扫描历史记录、威胁判定、模块状态和系统信息都是直接从您服务器上的实时执行输出中动态拉取的。
## 🏗️ 核心应用架构
与依赖于硬编码模型数据的传统开源仪表板不同,SOC Pulse 是一个**活生生的编排引擎**。其架构在结构上分为三个特定的层面:
1. **可视化层 (前端仪表板):**
* 使用 **React + Vite** 构建,采用了未来感、数据密集的暗黑模式美学("Glassmorphism")进行样式设计。
* 通过带有自动重连算法(指数退避)的 WebSocket 动态连接,以在云环境中保持极高的弹性。
2. **编排层 (Node.js API):**
* 具有分离的 **Express REST API**,直接与绑定到端口 5000 的 **Socket.io WebSocket** 服务器配合使用。
* 利用内部的 `child_process.spawn()` 命令。当用户指示仪表板运行安全扫描时,编排器会安全地执行相应的本地 shell bash/NPM 负载。原始的 `stdout/stderr` 流会通过 Websockets 立即镜像回 UI 终端窗口。
* 处理硬超时、强制优雅关闭和内存跟踪,以防止长时间运行的 OS 任务使服务器停机。
3. **防御层 (微模块):**
* 5 个原生编译、本地执行的安全模块。我们专门剥离了这些模块的外部互联网依赖,以确保您的 SOC 在审计期间免受二次供应链利用的影响。
## ⚙️ 安全阵列 (集成威胁模块)
SOC Pulse 用自动化且高度聚焦的云防御模块取代了通用的安全 "playbooks":
### 1. 🛡️ 供应链防御 (`module-supply-chain-defense`)
旨在对抗 Node Package Manager (NPM) 渗透的崛起。
* **情报机制:** 使用专门的 TypeScript 启发式引擎(Shai-Hulud 监视器),根据大约 795 个已知被入侵软件包的数据库主动扫描本地 `package-json` 配置。不知情的开发者偶尔会安装带有武化攻击性的子依赖项。此模块会检查这些内容,检测恶意哈希、TruffleHog 滥用和恶意运行程序代码。
### 2. 🌐 Web App 扫描器 (`module-webapp-scanner`)
一个本地的 DAST(动态应用程序安全测试)执行器,专门为追捕灾难性的 **CVE-2025-55182** 漏洞而编程。
* **情报机制:** 评估 React Server Components (RSC) 和 Next.js 突变。未经身份验证的黑客利用 RSC Flight 协议解析错误来实现远程代码执行 (CVSS 10.0)。通过使用预编译的扫描逻辑节点,SOC Pulse 可以验证您自己的 Web 层接口,而无需与远程第三方扫描器通信。
### 3. 🔐 系统端点加固 (`module-aws-hardening`)
一个定制的 Ubuntu 部署 playbook,旨在强化底层 AWS 环境 **而不会导致管理锁定**。
* **情报机制:** 标准的 Linux 加固脚本会通过 UFW 暴力阻止 AWS Security Groups,或者覆盖 AWS `cloud-init` SSH 守护程序握手,从而永久破坏服务器连接。我们的 SOC 逻辑放弃了 TCP 阻断,而是通过以下方式安全地锁定 OS:
- **Kernel Sysctls:** 注入变量以路由丢弃 ICMP 负载和 IPv4 欺骗攻击。
- **AIDE:** 跟踪关键的文件完整性签名(以非交互方式运行)。
- **Fail2Ban:** 阻止针对原生端口 22 的持续暴力破解攻击映射。
- **AuditD:** 追踪对 `/etc/shadow` 凭据池的特定恶意修改。
### 4. 🩹 自主修复 (`module-ir-cve-patcher`)
一个专门为快速响应严重 OS 后门和本地权限提升漏洞而构建的灾难缓解跟踪器。
* **情报机制:** 自动检测并缓解顶级 OS 威胁:
- **CVE-2024-6387 (regreSSHion):** 通过安全地设置 `LoginGraceTime 0` 进行缓解。
- **CVE-2021-4034 (PwnKit):** 立即剥离 `pkexec` 的 SUID 位。
- 同时跟踪并缓解 **Log4Shell**、**XZ-Backdoor (CVE-2024-3094)**、**Dirty Pipe** 和 **Looney Tunables**。它被构建为以无头方式解决威胁,而不会在您的服务器上弹出阻塞式的 GUI 提示。
### 5. 🔑 机器 IP 加密 (`module-aws-ssl-manager`)
一个解决 Let's Encrypt "Public IP Certificate" 结构推出的专业合规性跟踪引擎。
* **情报机制:** 自 2025 年 7 月起,AWS 管理员可以将有效的 HTTPS 证书绑定到原始 IP 地址。我们的管理器会针对 6 天的 IP 证书轮换,对您本地的 Certbot ACME 配置生成即时、零网络的 Node.js 审核。它能安全地检查依赖项、cron 续订作业和证书过期情况,而不会因云 DNS 解析问题而停滞。
## 📂 文件系统布局
```
SOC-Pulse/
├── /backend - Express REST router & Child Process Orchestrator
├── /dashboard - Vite/React UI & Socket.io listeners
├── /memory - Deep-dives on internal engineering decisions & goals
├── /setup - Configuration automated installers
├── /module-aws-hardening - The Endpoint OS protection toolkit
├── /module-aws-ssl-manager - IP Certbot validation tools & Node.js Auditor
├── /module-ir-cve-patcher - Automated CVE Mitigation Scripts
├── /module-supply-chain-defense- Shai-Hulud malicious dependency sniffer
├── /module-webapp-scanner - React2Shell remote exploitation defensive suite
└── soc-pulse-start.sh - The primary runtime bootloader
```
## 🚀 分步部署指南
SOC Pulse 被设计为一个 "一键部署" 生态系统。它会自动处理系统软件包、Node.js 安装、Process Managers (PM2) 和编译。
### 前置条件:AWS Security Group (防火墙)
在部署之前,您**必须**在您的 AWS EC2 Security Group 中开放以下入站端口:
* **端口 22 (TCP):** SSH (标准服务器访问)
* **端口 5000 (TCP):** 后端 API & WebSocket Orchestrator
* **端口 5173 (TCP):** 前端 React Dashboard
* **端口 80 (TCP):** 仅在您打算颁发真实的 Let's Encrypt IP 证书时才需要 (HTTP-01 ACME Challenge)。
### 步骤 1:克隆仓库
通过 SSH 登录到您的 Ubuntu 服务器并切换到 root 用户,然后克隆仓库:
```
sudo su -
git clone https://github.com/nextgensoumen/soc-pulse.git
cd soc-pulse
```
### 步骤 2:授予执行权限
确保 bootloader 和底层的 bash 模块被允许执行:
```
chmod +x soc-pulse-start.sh
```
### 步骤 3:运行主 Bootloader
启动自动化设置序列:
```
./soc-pulse-start.sh
```
#### 设置过程中会发生什么?
1. **系统准备:** 静默更新 `apt` 软件包,抑制交互式 OS 提示,并安全地安装 Node.js v20 LTS。
2. **Process Manager:** 全局安装 PM2。这可使 SOC Pulse 后端和前端永远运行,即使您关闭终端也是如此。
3. **编译:** 安全地导航到隔离的模块中,安装依赖项,并将 TypeScript 逻辑编译为可执行二进制文件。
4. **Daemon 启动:** 触发 PM2 将后端和仪表板 fork 到后台 daemon 中。
### 步骤 4:访问仪表板
脚本成功完成后,在浏览器中导航至您服务器的公共 AWS IP 地址:
```
http://
:5173
```
## 🔄 更新、重启和管理服务器
由于 SOC Pulse 通过 **PM2** 运行,因此这些服务在服务器重启和 SSH 断开连接后仍能存活。如果您将新代码推送到 GitHub 或需要调试问题,请使用以下确切命令。
### 如何拉取新代码并重新启动 ("更新"命令)
如果仓库已更新,请运行此命令以无缝拉取更改并重新启动应用程序:
```
cd /home/ubuntu/soc-pulse
git pull
pm2 restart all
```
### 常用 PM2 命令
```
# 查看所有正在运行的 SOC Pulse 服务的状态
pm2 list
# 查看实时、连续的系统日志流(按 Ctrl+C 退出)
pm2 logs
# 专门重启 backend API
pm2 restart soc-pulse-backend
# 专门重启 React frontend
pm2 restart soc-pulse-dashboard
# 暂时停止所有内容
pm2 stop all
```
## 🛠️ 故障排除与常见问题
**1. 我无法访问仪表板(无法访问网站)**
* **修复:** 检查您的 AWS Security Group。确保允许来自 `0.0.0.0/0`(或您的 IP)的**入站 TCP 端口 5173**。
**2. 仪表板已加载,但模块无法运行或显示 "Offline"**
* **修复:** 前端无法连接到后端。确保在您的 AWS Security Group 中允许**入站 TCP 端口 5000**。
* **修复:** 通过运行 `pm2 list` 和 `pm2 logs soc-pulse-backend` 检查后端是否崩溃。
**3. 安装过程中出现 "Address already in use" 错误**
* **修复:** 端口 5000 或 5173 上有其他程序正在运行。`soc-pulse-start.sh` 脚本会尝试自动终止阻塞的进程,但您可以手动强制清除它们:`fuser -k 5000/tcp` 和 `fuser -k 5173/tcp`,然后再次运行 `./soc-pulse-start.sh`。
**4. 模块无限期地卡在 "Running" 状态**
* **修复:** 在仪表板上单击 "Stop Execution"。如果 UI 不同步,请刷新页面。系统设计有硬超时(例如,扫描程序为 5 分钟),并将自动终止挂起的进程。标签:AWS, CISA项目, CVE修复, DAST, DPI, EC2, FTP漏洞扫描, GNU通用公共许可证, GPT, IaC, IP加密, MITM代理, Mutation, Node.js, React, Syscalls, Vite, WebSocket, 云基础设施防护, 依赖分析, 动态应用安全测试, 单点管理, 可视化, 子域名变形, 安全仪表盘, 安全编排, 安全运营中心, 实时日志流, 应用安全, 恶意软件分析, 无线安全, 漏洞管理, 端点加固, 系统管理员, 结构化查询, 网络映射, 自动化安全, 自动化攻击