Jherostudio/sentinelX-SIEM
GitHub: Jherostudio/sentinelX-SIEM
一个基于 TypeScript 全栈技术构建的轻量级 SIEM 平台,提供实时威胁检测、蜜罐日志摄取和安全事件可视化功能。
Stars: 0 | Forks: 0
# SentinelX SIEM 平台 🛡️

**SentinelX SIEM** 是一个轻量级的专业安全信息与事件管理(SIEM)平台,专为现代 AppSec 和蓝队设计。它具备实时威胁检测、安全的蜜罐日志摄取、基于角色的访问控制,以及赛博朋克风格的暗色模式仪表盘。
该平台基于可扩展的 **Monorepo 架构**(NPM Workspaces)构建,将前端界面与核心摄取后端分离,从而确保高性能、易维护性和强大的安全性。
## 🚀 核心功能
### 1. 防御性安全分析
- **蜜罐摄取 API:** 专为接收外部蜜罐 payload 而设计的高速 endpoint。
- **HMAC 签名验证:** 使用 `SHA-256` 对传入日志的真实性进行加密验证,防止日志欺骗和数据库中毒。
- **威胁引擎:** 自动对传入的威胁(例如,SQL 注入、暴力破解尝试、端口扫描)进行分类和评分。
### 2. 实时可观测性
- **WebSocket 广播:** 将关键安全事件从 Fastify 后端实时流式传输到 Next.js 前端,无需重新加载页面。
- **动态仪表盘:** 使用 Recharts 和 TailwindCSS 构建,提供 SOC(安全运营中心)级别的视觉体验。
### 3. 身份与访问管理(IAM)
- **基于角色的访问控制(RBAC):** 区分 `USER` 和 `ADMIN` 权限。
- **安全认证:** 使用强大的算法(`bcryptjs`/`argon2`)对密码进行哈希处理,并通过 JWT 管理会话。
- **审计日志:** 全面跟踪所有成功和失败的认证尝试。
## 🛠 技术栈
| 领域 | 技术 |
| :--- | :--- |
| **Frontend** | Next.js 15 (App Router), React, TailwindCSS, shadcn/ui, Recharts, Lucide Icons |
| **Backend** | Node.js, Fastify, TypeScript, Zod, @fastify/websocket |
| **Database** | Prisma ORM, SQLite (本地开发) / PostgreSQL (生产环境), Redis |
| **DevOps** | Docker, Docker Compose, GitHub Actions (CI/CD), Vitest |
## 📂 项目架构
本项目采用 NPM Workspace Monorepo 结构,以实现代码共享和模块化。
```
sentinelx-siem/
├── apps/
│ ├── backend/ # Fastify API, Prisma DB, WebSockets, Auth
│ └── frontend/ # Next.js Dashboard, Recharts, shadcn UI
├── packages/
│ └── shared/ # Shared Zod schemas and TypeScript interfaces
├── docs/ # Architecture diagrams and screenshots
├── .github/workflows/ # CI/CD Pipelines
└── docker-compose.yml # Production infrastructure definition
```
## ⚙️ 快速开始(本地开发)
### 前置条件
- Node.js `v18+`
- NPM `v9+`
### 1. 安装
克隆代码库并在整个 monorepo 中安装所有依赖项:
```
git clone https://github.com/your-username/sentinelx-siem.git
cd sentinelx-siem
npm install
```
### 2. 数据库设置
开发环境默认配置为使用 SQLite,实现零摩擦设置。
```
cd apps/backend
npx prisma db push
cd ../..
```
### 3. 启动开发服务器
在根目录下同时运行前端和后端:
```
npm run dev
```
- **Frontend 仪表盘:** [http://localhost:3001](http://localhost:3001)(或端口 3000)
- **Backend API:** [http://localhost:3002](http://localhost:3002)
- **WebSocket 服务器:** `ws://127.0.0.1:3002/ws`
## 🧪 模拟攻击
为了在无需设置外部蜜罐的情况下测试 SIEM 的实时功能,我们内置了一个攻击模拟器。
1. 保持开发服务器运行(`npm run dev`)。
2. 在项目根目录中打开一个新的终端实例。
3. 运行攻击模拟器:
```
node simulate_attacks.js
```
*此脚本将生成并加密签署模拟攻击(SQL 注入、路径遍历等),并每 3 秒将其发送到摄取 API。您将看到它们立即出现在 Frontend 仪表盘上。*
## 🐳 Docker 部署(生产环境)
SentinelX 完全使用多阶段 Docker 构建进行容器化,以确保最小的镜像大小和更高的安全性。
1. 确保正在运行 Docker Desktop。
2. 构建并启动整个基础设施(PostgreSQL、Redis、Backend、Frontend):
```
docker compose up -d --build
```
## ✅ 测试与 CI/CD
本项目包含一个自动化持续集成流水线(`.github/workflows/ci.yml`)。每次向 `main` 分支的推送都将自动:
- 安装依赖项
- 生成 Prisma Clients
- 使用 **Vitest** 运行单元测试
- 构建 Backend 和 Frontend 应用程序
要在本地运行测试:
```
npm run test -w apps/backend
```
## 🔒 安全态势
- **CORS 与 Helmet:** 集成到 Fastify 中,以实施严格的 HTTP 头部控制。
- **速率限制:** 保护摄取 API 免受 DoS 攻击。
- **HMAC 验证:** 确保日志不会被未经授权的 endpoint 伪造。
- **审计追踪:** 所有敏感操作都会不可变地记录在数据库中。
*倾注热情构建,专为防御性安全而生。*
标签:AMSI绕过, CISA项目, Fastify, SIEM系统, TypeScript, 威胁检测, 安全插件, 安全运营中心, 插件系统, 搜索引擎查询, 测试用例, 网络映射, 自动化攻击, 蜜罐, 证书利用, 请求拦截