Jherostudio/sentinelX-SIEM

GitHub: Jherostudio/sentinelX-SIEM

一个基于 TypeScript 全栈技术构建的轻量级 SIEM 平台,提供实时威胁检测、蜜罐日志摄取和安全事件可视化功能。

Stars: 0 | Forks: 0

# SentinelX SIEM 平台 🛡️ ![SentinelX SIEM 仪表盘](https://raw.githubusercontent.com/Jherostudio/sentinelX-SIEM/main/docs/dashboard.png) **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, 威胁检测, 安全插件, 安全运营中心, 插件系统, 搜索引擎查询, 测试用例, 网络映射, 自动化攻击, 蜜罐, 证书利用, 请求拦截