alive-xd/SentriX

GitHub: alive-xd/SentriX

Sentrix 是一个基于 FastAPI 与 Next.js 14 构建的开源模块化安全运营中心(SOC)平台,为蓝队提供集中的告警管理、威胁情报追踪、案件协同与 SOAR 自动化基础。

Stars: 4 | Forks: 0

Sentrix Banner

🛡️ Sentrix 平台

现代开源安全运营中心 (SOC) 工作区

Next.js FastAPI PostgreSQL Redis

采用企业级架构模式设计,专为现代蓝队打造。

## 🌟 概述 **Sentrix** 是一个模块化、面向服务的安全运营中心 (SOC) 工作区。 Sentrix 采用企业级架构模式(Next.js App Router、FastAPI、PostgreSQL 和 Redis)构建,为构建高级安全工作流提供了坚实的基础。它将告警管理、威胁情报追踪和案件协作集中到一个直观的界面中,为开发者和安全团队提供了一个具有高度可扩展性的底层平台。 ## 🏢 应用场景 - **开发基础**:实现了模块化的面向服务的后端,非常适合构建自定义 SOC 解决方案。 - **事件响应工具**:使用 Docker 将 Sentrix 快速部署到环境中,建立集中的追踪工作区。 - **网络靶场与教育**:支持种子数据集,用于逼真的开发与演示,以及针对初级分析师的事件响应工作流培训。 ## 📊 项目统计 | 指标 | 验证数量 | | :--- | :--- | | **前端页面** | 29 | | **REST API Endpoints** | 81 | | **数据库表** | 26 | | **后端服务** | 13 | | **种子告警** | 485 | | **审计日志条目** | 1000 | ## 🎯 设计目标 1. **现代架构**:全面采用异步 Python (`asyncio`, `asyncpg`),并由严格的 Repository/Service 模式提供支持。 2. **可操作的上下文**:集中式仪表盘,将威胁情报和恶意软件元数据直接关联至案件。 3. **无摩擦部署**:初始部署无需复杂的 Kubernetes manifests;只需纯粹的 Docker Compose。 4. **极佳的用户体验**:Sentrix 利用 TailwindCSS、shadcn/ui 和 Framer Motion 打造高级的暗色主题美学。 ## ✨ 当前功能 ### ✅ 已完全实现 - **告警管理**:提供完整的 CRUD REST API 和用于管理安全告警的 UI。 - **案件管理**:通过专属的时间线和 artifact 关联功能协同处理事件。 - **身份验证**:无状态的 JWT 生命周期,并由 Redis 支持的 refresh token 黑名单机制。 - **审计日志**:全面的用户行为内部追踪。 - **分页与过滤**:在主要数据网格中实现了标准化。 ### ⚠️ 部分实现 - **基础全局搜索**:在主要实体间进行广泛的 SQL `ILIKE` 搜索。 - **基础基于角色的访问控制**:包含数据库模型和基本的超级用户强制执行机制。 - **威胁情报 IOC 追踪**:在本地数据库中管理威胁指标 (IP、哈希)。 - **恶意软件样本管理**:追踪逆向工程中的 artifact 元数据。 - **仪表盘**:聚合指标展示和近期活动流。 - **组织分组**:基础的多租户模型。 ### 🗺️ 计划路线图 - **AI 调查工作区 (架构已就绪)**:UI 已完成;后端目前返回模拟的推理步骤,等待接入 LLM。 - **SOAR Playbook 管理**:拖拽式的 playbook 设计 UI 已完成;执行引擎待规划。 - **威胁狩猎工作区**:已支持查询保存;高级遥测搜索引擎待规划。 - **外部集成**:VirusTotal、AlienVault OTX 和沙箱 API 同步。 - **高管报告**:定时的 PDF 报告生成。 ## 📸 截图 | 仪表盘 | 告警 | |-----------|--------| | ![仪表盘](https://raw.githubusercontent.com/alive-xd/SentriX/main/screenshots/dashboard.png) | ![告警](https://raw.githubusercontent.com/alive-xd/SentriX/main/screenshots/alerts.png) | | 带有告警严重性细分和分析师工作量分布的威胁指标 | 带有 MITRE ATT&CK 技术标签和一键提升为案件功能的活跃告警队列 | | 案件 | 威胁情报 | |-------|-------------------| | ![案件](https://raw.githubusercontent.com/alive-xd/SentriX/main/screenshots/cases.png) | ![威胁情报](https://raw.githubusercontent.com/alive-xd/SentriX/main/screenshots/threat-intelligence.png) | | 包含 artifact 关联、分析师笔记和严重性追踪的完整事件时间线 | IOC 管理与指标信誉追踪 | | 恶意软件分析 | 威胁狩猎 | |-----------------|----------------| | ![恶意软件](https://raw.githubusercontent.com/alive-xd/SentriX/main/screenshots/malware-analysis.png) | ![狩猎](https://raw.githubusercontent.com/alive-xd/SentriX/main/screenshots/threat-hunting.png) | | 带有 SHA256 追踪和案件关联的恶意软件 artifact 追踪 | 威胁狩猎查询工作区 | | SOAR 自动化 | |----------------| | ![SOAR](https://static.pigsec.cn/wp-content/uploads/repos/cas/17/178037546941275792ac9e158f86019e71f0f45e7f9ac0e0e4783ea62da8969b.png) | | 拖拽式 playbook 构建器界面 | ## 🎥 演示演示 [![观看演示](https://raw.githubusercontent.com/alive-xd/SentriX/main/screenshots/dashboard.png)](https://loom.com/REPLACE_WITH_YOUR_LINK) *在 [loom.com](https://loom.com) 免费录制* ## 🏗️ 系统架构 Sentrix 被设计为一个高性能的 Web 应用程序,采用了受微服务启发的单体架构。 ``` graph TD Client[Web Browser] -->|HTTPS| Proxy[Nginx / Traefik] subgraph "Frontend Tier" Proxy --> UI[Next.js 14 App Router] UI --> ReactQuery[TanStack Query] UI --> Tailwind[TailwindCSS] end subgraph "Backend Tier" UI -->|REST API| API[FastAPI Gateway] API --> Auth[Auth Middleware] Auth --> Controllers[Routers] Controllers --> Services[Service Layer] Services --> Repos[Repository Layer] end subgraph "Data Tier" Repos --> PG[(PostgreSQL 16 + SQLAlchemy 2.0)] Repos --> Redis[(Redis 7)] end style Client fill:#1e293b,color:#fff,stroke:#334155 style UI fill:#0ea5e9,color:#fff,stroke:#0284c7 style API fill:#10b981,color:#fff,stroke:#059669 style PG fill:#3b82f6,color:#fff,stroke:#2563eb style Redis fill:#ef4444,color:#dc2626 ``` ### 请求生命周期 ``` sequenceDiagram participant Client participant FastAPI participant Auth participant Service participant Database Client->>FastAPI: HTTP Request (e.g., GET /api/v1/alerts) FastAPI->>Auth: Verify JWT Token Auth-->>FastAPI: User Context FastAPI->>Service: Call Business Logic Service->>Database: Execute Async SQL Query Database-->>Service: Return ORM Models Service-->>FastAPI: Return Pydantic Schemas FastAPI-->>Client: JSON Response ``` ## 🔄 SOC 调查工作流 Sentrix 的主要目标是简化事件响应 pipeline。 ``` flowchart TD A[Alert Ingestion] --> B{Triage} B -->|False Positive| C[Close Alert] B -->|True Positive| D[Assign Analyst] D --> E[Create Investigation Case] E --> F[Threat Intel Lookup] F --> G[Threat Hunting] G --> H[Malware Analysis] H --> I[Assign SOAR Playbook] I --> J[Containment & Remediation] J --> K[Executive Reporting] K --> L[Close Case] style I fill:#8b5cf6,color:#fff,stroke:#7c3aed style A fill:#3b82f6,color:#fff,stroke:#2563eb style L fill:#10b981,color:#fff,stroke:#059669 ``` ## 🛠️ 技术栈 | 领域 | 技术 | 描述 | | :--- | :--- | :--- | | **前端框架** | Next.js (App Router) | 高性能 React 框架。 | | **样式与 UI** | TailwindCSS + Lucide Icons | 实用优先的 CSS 和现代 SVG 图标。 | | **状态与数据获取** | TanStack React Query | 高级缓存、去重和轮询。 | | **后端 API** | FastAPI (Python 3.11) | 超快的异步 Python Web 框架。 | | **数据库 (关系型)** | PostgreSQL 16 + SQLAlchemy 2.0 | 主数据存储,带有完全异步的 ORM。 | | **缓存与认证** | Redis 7 | JWT 黑名单和临时状态存储。 | | **容器化** | Docker + Docker Compose | 隔离、可复现的部署环境。 | ## 📁 项目结构 ``` SentriX/ ├── backend/ # FastAPI backend application │ ├── app/ # Main application logic (API, Models, Services) │ ├── alembic/ # Database migrations │ ├── scripts/ # DB seeding and utility scripts │ └── tests/ # Backend unit and integration tests ├── frontend/ # Next.js frontend application │ ├── app/ # Next.js App Router pages │ ├── components/ # Reusable UI components │ └── lib/ # Utility functions and API clients ├── screenshots/ # UI screenshots for README ├── assets/ # Logos and banners ├── .github/ # Issue templates and PR guidelines └── docker-compose.yml # Local orchestration ``` ## 🗄️ 数据库 Schema 基于严格的 SQLAlchemy 2.0 ORM 模型构建,带有 `UUID` 主键、软删除功能以及稳健的级联关系。 ``` erDiagram USERS ||--o{ CASES : "assigns" USERS { uuid id PK string email string hashed_password string role boolean is_active } CASES ||--o{ ALERTS : "contains" CASES { uuid id PK string title string status string severity uuid assignee_id FK } ALERTS ||--o{ ASSETS : "impacts" ALERTS { uuid id PK string rule_name string severity jsonb payload } MALWARE_SAMPLES ||--o{ CASES : "links_to" MALWARE_SAMPLES { uuid id PK string sha256 string verdict int threat_score } ``` ## 🔌 API 文档 Sentrix 提供由 FastAPI 自动生成的美观的 Swagger/OpenAPI 文档。 - **Swagger UI**: `/docs` (例如 `http://localhost:8000/docs`) - **ReDoc**: `/redoc` (例如 `http://localhost:8000/redoc`) 请求示例 (创建告警): ``` curl -X POST "http://localhost:8000/api/v1/alerts" \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"rule_name": "Suspicious Login", "severity": "HIGH", "status": "OPEN"}' ``` ## 🚀 快速开始 ### 一键启动 (Docker) 在本地运行整个 Sentrix 平台: ``` # 1. Clone 仓库 git clone https://github.com/alive-xd/SentriX.git cd SentriX # 2. 复制环境变量 cp backend/.env.example backend/.env # 3. 启动基础设施 (Postgres, Redis, Backend) docker compose up -d # 4. 在单独的终端中,安装并启动 frontend cd frontend npm install npm run dev ``` 导航至 [http://localhost:3000](http://localhost:3000) 并使用默认的种子凭据登录: - **Email**: `admin@stark.com` - **Password**: `password123` ## ⚙️ 安装 对于不使用 Docker 的裸机本地安装: 1. 确保您的主机上正在运行 **PostgreSQL 16** 和 **Redis 7**。 2. 为后端设置 Python 3.11 虚拟环境,并安装 `backend/requirements.txt`。 3. 通过 `alembic upgrade head` 运行数据库迁移。 4. 通过 `uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4` 运行后端。 5. 通过 `npm run build` 构建前端,并通过 `npm run start` 启动。 ## 🔑 环境变量 `backend/.env` 中定义的关键环境变量: | 变量 | 描述 | | :--- | :--- | | `DATABASE_URL` | PostgreSQL 异步连接字符串 (`postgresql+asyncpg://`) | | `REDIS_URL` | Redis 连接字符串 (`redis://`) | | `SECRET_KEY` | 用于 JWT 签名的 256 位密钥。**在生产环境中必须进行轮换。** | ## 🌱 数据库填充 为了测试,向数据库中填充逼真的告警、案件、恶意软件样本和威胁情报: ``` docker compose exec backend python -m scripts.seed_database ``` 这会自动向数据库中准确插入 485 条告警、120 个案件、300 个威胁指标、150 个资产和 1000 条审计日志。 ## 🔐 安全特性 - **JWT (JSON Web Tokens)**:安全的 token,具有由 Redis 支持的 refresh token 轮换和注销黑名单机制。 - **密码哈希**:通过 `passlib` 实现业界标准的 `bcrypt` 哈希。 - **基础基于角色的访问控制**:防止权限提升的数据库结构。 - **SQL 注入防护**:完全依赖 SQLAlchemy ORM 参数化查询。 - **输入验证**:Pydantic v2 schema 严格清理所有传入的 API payload。 ## 🛡️ 架构与威胁模型 - **信任边界**:API Gateway (FastAPI) 充当数据层的唯一入口。假设所有内部服务间通信 (PostgreSQL, Redis) 在内部 Docker 桥接网络后都是安全的。 - **静态数据**:敏感的分析师密码经过加密保护。 - **传输中数据**:生产环境部署应在反向代理处终止 TLS。 ## 🧪 测试 Sentrix 拥有一套基础测试套件,以确保 API 健康状况和基本身份验证的强制执行。 在本地运行单元测试: ``` cd backend pytest -v ``` ## 📖 文档 整个平台的文档均包含在此 README 中,以确保所有架构、部署和操作流程均拥有单一事实来源。 ## ❓ 常见问题解答 **问:我可以用 Sentrix 替换我的 SIEM 吗?** 答:不可以,Sentrix 被设计为一个 SOAR 和案件管理工作区,旨在*依附于* SIEM 之上运行。 **问:有付费的企业版吗?** 答:没有。Sentrix 是 100% 开源的,基于 MIT 许可协议。 ## 📅 更新日志 查看 [CHANGELOG.md](CHANGELOG.md) 获取详细的版本历史。 ## 🙏 致谢 特别感谢促成此项目的开源项目: - **FastAPI** (作者:Tiangolo) - **Next.js** (作者:Vercel) - **PostgreSQL** 社区 ## 📜 许可协议 本项目基于 MIT 许证 - 详情请参阅 [LICENSE](LICENSE) 文件。
标签:AV绕过, FastAPI, SOAR自动化, 告警管理, 威胁情报, 安全运营中心, 库, 应急响应, 开发者工具, 搜索引擎查询, 测试用例, 网络映射, 请求拦截, 逆向工具