The-Abhishek1/XCLOAK-SECURITY-SUITE
GitHub: The-Abhishek1/XCLOAK-SECURITY-SUITE
XCloak 是一个整合 NGFW、SIEM、EDR 与 SOAR 能力的自托管企业级安全运营平台,为安全团队提供从威胁检测到自动化响应的一体化解决方案。
Stars: 4 | Forks: 0
# XCloak Security Suite
一个结合了 NGFW、SIEM、EDR 和 SOAR 功能的开源核心企业安全平台。使用 Go、PostgreSQL 和 Next.js 构建 — 旨在为各种规模的企业提供单一解决方案。

## 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ XCloak Platform │
├──────────────┬──────────────┬──────────────┬────────────────────┤
│ Frontend │ Backend │ Agent │ Observability │
│ Next.js 14 │ Go / Gin │ Go Binary │ Prometheus │
│ TypeScript │ PostgreSQL │ Linux/Win │ Grafana │
│ Port 3000 │ Port 8080 │ Endpoint │ Kafka │
└──────────────┴──────────────┴──────────────┴────────────────────┘
```
## 检测引擎
### 威胁检测
- **Sigma Rules** — 自定义检测引擎,支持字段级匹配、标签、MITRE ATT&CK 映射;内置涵盖 12 种战术(从初始访问到影响,云/容器/供应链)的 **43 条生产就绪规则**,首次运行时自动植入
- **YARA Rules** — 端点上的恶意软件特征码扫描,实时匹配报告
- **IOC Engine** — IP、域名、哈希、URL、电子邮件指标匹配;通过 Kafka 消费者在请求路径外进行异步匹配
- **Threat Intel Ingestion** — STIX/TAXII、MISP 和 AlienVault OTX 订阅源连接器,以及平面文件订阅源
### 网络与端点行为检测器(定时调度,按租户)
| 检测器 | 模式 | MITRE |
|----------|----------|-------|
| **C2 Beacon Detector** | 基于变异系数 (CV) 对周期性出站连接进行间隔分析 | T1071, T1571 |
| **DNS Security** | DGA/香农熵,DNS 隧道(payload 长度 + 查询速率),泛洪检测 | T1568.002, T1071.004 |
| **Port Scan + Lateral Movement** | 垂直、水平、SYN 扫描;SMB 喷射检测 | T1046, T1021.002 |
| **Data Exfiltration** | 数据量泛洪 (100MB+)、会话突发、云存储耗尽 (S3/GDrive/OneDrive/Dropbox/Box/Mega)、非工作时间传输 | T1048, T1567.002 |
| **TLS/JA3 Fingerprinting** | 将 TLS ClientHello 哈希与包含 13+ 种已知 C2 工具(Cobalt Strike、TrickBot、Emotet、Dridex、Sliver、Havoc、BruteRatel 等)的黑名单进行匹配 | T1071.001 |
| **Credential Attacks** | 每个 src_ip 的 SSH/RDP 暴力破解、密码喷射(≥5 个用户名)、撞库(≥5 个 IP/用户名)、成功的暴力破解 | T1110, T1110.001, T1110.003, T1110.004 |
| **Privilege Escalation** | Windows EventID 4728/4732/4756(添加到组)、4720(新用户)、4672(特殊权限);Linux sudo/su/SUID/sudoers | T1098, T1136.001, T1548 |
| **Ransomware Behavior** | FIM 批量修改扫描 + 加密扩展名;杀伤链命令(vssadmin、wmic shadowcopy、bcdedit、wbadmin);安全服务终止(17 种 AV/EDR 名称) | T1486, T1490, T1562.001 |
| **Living-off-the-Land (LotL)** | 可疑的父→子进程链(Office→PowerShell);LOLBin 滥用(certutil、regsvr32、mshta、bitsadmin、wmic、rundll32、odbcconf);编码的 PowerShell(-enc、IEX、DownloadString) | T1059, T1218, T1027 |
| **Impossible Travel** | GeoIP 半正矢距离(>900 km/h = 可疑);当 GeoIP 不可用时回退到 /16 子网 | T1078 |
| **Network Behavior Analytics** | 基线偏差、异常连接模式、协议滥用 | T1095 |
| **UEBA** | 用户与实体行为分析 — 跨身份验证、文件访问、网络的风险评分 | T1078, T1530 |
### 身份与上下文扩充
- **AD/LDAP Identity Enrichment** — 每个警报都会自动从 Active Directory 扩充用户显示名称、部门、职位等信息;3 级缓存(内存 → DB → 实时 LDAP)
- **Alert Investigation Context** — IOC 命中、相似的历史警报、建议的案例,以及每个警报相关的 Sigma 规则
- **IP Enrichment** — GeoIP、ASN、代理/托管标记、端口风险评分
### 无代理日志采集
- **Syslog Receiver** — 在端口 5140 上采集 UDP/TCP syslog;自动解析 CEF、LEEF、JSON、NDJSON、纯 syslog
- **HTTP Log Source API** — 带有按来源 API 密钥认证的 REST endpoint;接受任何日志格式
- **Log Normalizer** — 跨所有格式的统一 ParsedFields 提取:src_ip、dst_ip、user、auth_result、event_id、bytes_sent/recv、JA3 hash、command_line、parent_image、process name
## 响应 (SOAR)
- **Playbooks** — 由警报条件触发的自动化响应链,在将任何破坏性操作分发给 agent 之前,设有人工干预 (human-in-the-loop) 审批环节
- **AI Playbook Recommender** — Claude/Ollama 根据 MITRE 技术和警报上下文推荐 playbook 链
- **Agent Tasks** — 远程执行:终止进程、隔离主机、隔离文件、FIM 扫描、脚本执行
- **Firewall Sync** — 从中央 UI 将防火墙规则推送到 agent;agent 在本地应用它们
- **Script Runner** — 在 agent 上运行 bash/python 脚本并获取实时输出
- **Deception Technology** — 蜜罐管理、canary token 部署、诱饵文件/用户创建
## 调查
- **Threat Hunt** — 跨端点遥测数据的即席查询;用于假设追踪的 Hunt Workbench
- **Incident Management** — 关联、时间线、AI 深度分析报告、DFIR 工件收集
- **Network Map** — 带有 GeoIP 的 agent 连接交互式力导向图
- **AI Triage** — 由 Ollama/Claude 驱动的、带有 MITRE 上下文的警报和事件分析
- **Alert Clusters** — 根据特征码和技术自动对相关警报进行分组
- **Correlation Engine** — 跨来源的模式匹配,多阶段攻击检测
- **Threat Actor Intelligence** — 包含 TTP、归因、关联 IOC 的威胁行为者档案
- **Timeline** — 跨所有 agent 和事件的统一攻击时间线
- **Attack Paths** — 可视化横向移动和权限提升链
## 风险与合规
- **Risk Posture Score** — 跨检测覆盖率、漏洞和警报趋势的持续租户级风险评分
- **SOC 2, NIST CSF, PCI-DSS, ISO 27001** — 自动化合规框架评分
- **SOC Metrics** — MTTD、MTTR、警报量、分析师绩效追踪
- **Vulnerability Priority Queue** — 基于 EPSS + KEV + 资产关键性加权的优先级排序
- **Audit Trail** — 所有平台操作的不可变日志,批量导出至处于 Object Lock (WORM/GOVERNANCE) 模式下的 MinIO,即使是管理员也无法更改或删除
- **Executive Reports** — 可直接生成 PDF 的风险摘要和合规评分
## 集成
| 集成 | 用途 |
|-------------|---------|
| **Slack** | 实时警报通知 |
| **Webhook** | 用于任何 SIEM/SOAR 的通用出站事件 |
| **Email** | 带有严重性过滤的警报邮件发送 |
| **PagerDuty** | 事件升级 |
| **Microsoft Teams** | 通过 Incoming Webhook 发送警报卡片 |
| **Jira** | 根据警报/事件自动创建工单 |
| **ServiceNow** | 通过 Table API 创建事件 |
| **Active Directory / LDAP** | 对所有警报进行身份扩充 |
| **OIDC / SSO** | 按租户的单点登录 |
## 多租户与访问控制
- **Self-Serve Signup** — `POST /api/signup`(或在 UI 中点击 `/signup`)无需 SMTP 即可配置新租户 + 管理员账户;内置的 Sigma 规则库会自动复制,从而立即开始检测
- **Tenants** — 每个 agent、警报、规则、playbook 和集成都限定于某个租户
- **Custom Roles** — 在内置 admin/analyst/viewer 之上的细粒度、累加式 RBAC(19 项权限)
- **SSO (OIDC)** — 按租户的通用 OpenID Connect 登录
- **API Keys** — 按租户,限定于特定角色的 SHA-256 哈希密钥
- **TOTP 2FA** — RFC 4226,兼容 Google Authenticator/Authy
- **Session Management** — 活动会话列表和远程撤销
## 文档
| 指南 | 受众 |
|-------|---------|
| [用户指南](docs/user-guide.md) | SOC 分析师 — 警报、事件、威胁追踪、检测规则、AI 工具 |
| [部署指南](docs/deployment-guide.md) | 运维人员 — 生产环境设置、Kubernetes/Helm、TLS、Kafka、Elasticsearch、备份 |
| [Agent 部署](docs/agent-deployment.md) | 系统管理员 — 在 Linux、Windows 和 macOS 上安装和管理 agent |
| [安全审计准备](docs/security-audit-prep.md) | 安全团队 — 控制措施清单、渗透测试范围、已知缺陷 |
| [OpenAPI 规范](xcloak-ngfw/backend/docs/generated/openapi.yaml) | 开发者 — 完整的 REST API 参考 (OpenAPI 3.0) |
## 快速开始
### 前置条件
- Go 1.21+
- Node.js 18+
- PostgreSQL 16
- Redis(速率限制 + token 撤销状态)
- Docker(用于 Kafka/Prometheus/Grafana/MinIO)
### 1. 后端
```
cd xcloak-ngfw/backend
# 复制并配置环境
cp .env.example .env
# 编辑 .env — 设置 DB credentials, JWT_SECRET, METRICS_TOKEN, SMTP 设置
# 生成安全密钥
openssl rand -hex 32 # paste as JWT_SECRET in .env
openssl rand -hex 32 # paste as METRICS_TOKEN in .env — also set in prometheus/metrics_token
# Migrations 在启动时自动运行 (golang-migrate, 56 migrations)
# Migration 056 在首次运行时初始化 Sigma 规则库
# 以 hot reload 方式启动
air
```
### 2. 前端
```
cd xcloak-ngfw/frontend
npm install
npm run dev
```
### 3. 可观测性技术栈
```
cd XCLOAK-SECURITY-SUITE
docker compose up -d
```
服务:
- Grafana: http://localhost:3001 (admin/xcloak)
- Prometheus: http://localhost:9090
- Kafka UI: http://localhost:8090
- MinIO Console: http://localhost:9001(不可变审计日志导出目标)
### 4. Agent
```
cd xcloak-agent
go build -o xcloak-agent ./main.go
# 首次运行 — 将提示输入安装令牌
# 生成一个: XCloak UI → Agents → Add Agent
./xcloak-agent
```
首次注册后,agent token 将保存到 `~/.config/xcloak-agent/token`,并在随后的每次启动中重复使用。
### 5. 无代理日志来源 (Syslog / HTTP)
```
# Syslog (UDP/TCP, 端口 5140) — 配置您的防火墙/交换机以转发至此
# CEF, LEEF, JSON, NDJSON, 纯 syslog 均可自动检测
# HTTP — 在 UI 中创建一个日志源 → Log Sources → Add → HTTP
# 然后使用生成的 API key POST 日志:
curl -X POST http://localhost:8080/api/ingest/http/ \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{"timestamp":"2026-06-29T12:00:00Z","src_ip":"10.0.0.1","event":"login_failed","user":"admin"}'
```
## 环境变量
### 后端 (`xcloak-ngfw/backend/.env`)
```
# 数据库
DB_HOST=localhost
DB_PORT=5432
DB_USER=xcloak
DB_PASSWORD=your_password
DB_NAME=ngfw
DB_SSLMODE=disable # set to require/verify-full in production
# 安全 — 必填项
JWT_SECRET=
METRICS_TOKEN=
CORS_ALLOWED_ORIGINS=http://localhost:3000
# Agent ↔ 后端 TLS (可选)
TLS_CERT_FILE=
TLS_KEY_FILE=
# AI (选择一个)
LLM_PROVIDER=ollama # or: anthropic
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=qwen2.5:3b
ANTHROPIC_API_KEY= # if using Claude
# Redis — 速率限制 + 令牌撤销
REDIS_ADDR=localhost:6379
# MinIO — 不可变审计日志导出
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
MINIO_AUDIT_BUCKET=xcloak-audit-log
MINIO_USE_SSL=false
AUDIT_EXPORT_RETENTION_DAYS=365
# Kafka
KAFKA_ENABLED=true
KAFKA_BROKER=localhost:9092
# 邮件告警 (可选)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your@gmail.com
SMTP_PASS=your_app_password
SMTP_FROM=xcloak@yourdomain.com
```
按租户的设置(OIDC SSO、LDAP、威胁订阅源凭据、API 密钥、自定义角色)可从 UI 进行配置并存储在数据库中 — 详见 Settings → Integrations / API Keys / Roles。
### Agent (`xcloak-agent/.env`)
```
# 仅在首次注册时需要
XCLOAK_INSTALL_TOKEN=
# 覆盖后端 URL (默认为 http://localhost:8080)
SERVER_URL=http://localhost:8080
# 连接到后端的 TLS (可选)
XCLOAK_CA_CERT_PATH=
XCLOAK_INSECURE_SKIP_VERIFY=false
```
## 安全性
- JWT 身份验证(8 小时 access / 7 天 refresh),登出时由 Redis 提供支持的 token 黑名单
- Agent 注册需要一次性安装 token(单次使用,原子性认领,24 小时过期)
- TOTP 2FA (RFC 4226 — Google Authenticator, Authy)
- 多租户:所有资源强制执行 `tenant_id` 作用域限制;平台配置仅限操作员操作
- RBAC — 内置 admin/analyst/viewer 以及具有 19 项细粒度权限的自定义角色
- 按租户的 SSO (OIDC) 和按租户的 SHA-256 哈希 API 密钥
- SOAR 破坏性操作在由 playbook 触发时需要人工批准
- 导出到处于 Object Lock (GOVERNANCE 保留) 下的 MinIO 的不可变审计日志
- 支持 Postgres 和 agent↔backend 的 TLS (`DB_SSLMODE`、`TLS_CERT_FILE`/`TLS_KEY_FILE`)
- 过期任务时效:破坏性任务在 15 分钟后过期,其他任务在 1 小时后过期
## 备份
```
# 手动备份 (从 xcloak-ngnw/backend/.env 读取 DB_*)
./scripts/backup_db.sh
# 恢复 (破坏性操作 — 会先 drop 并重建所有表)
./scripts/restore_db.sh backups/ngfw_20260619_213343.sql.gz
```
如需自动每日备份,请添加到 crontab:
```
0 2 * * * /path/to/xcloak/scripts/backup_db.sh >> /var/log/xcloak-backup.log 2>&1
```
备份将存放在 `backups/`(已在 gitignore 中忽略)中,并在 `RETENTION_DAYS`(默认为 14)后被清理。
## API
Base URL: `http://localhost:8080`
身份验证:由 `/api/auth/login` 设置的 httpOnly cookie (`token`) — 无需 Authorization header。Agent endpoint 改为使用 `X-Agent-Key` header。完整规范:[`docs/generated/openapi.yaml`](
标签:EDR, Go, NGFW, Ruby工具, SOAR, 安全运营, 客户端加密, 扫描框架, 搜索引擎查询, 日志审计, 测试用例, 脆弱性评估, 自定义请求头, 请求拦截, 速率限制