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 仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/cas/2d/2d5226ba699b97262d12328d8b2ab8bec07c1e59ee828f02473d4cfb2de331a2.png) ## 架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 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, 安全运营, 客户端加密, 扫描框架, 搜索引擎查询, 日志审计, 测试用例, 脆弱性评估, 自定义请求头, 请求拦截, 速率限制