SocTalk
基于LLM的SOC代理,能够自主地对安全警报进行分类、调查和升级。
通过MCP服务器和实时仪表板与Wazuh SIEM、Cortex、TheBive和MISP集成。
SocTalk可以作为单主机SOC工具运行,也可以作为MSP和MSSP的多租户平台运行。
单主机路径使用Docker Compose。一个SocTalk实例,一个Wazuh,一个仪表板。安装程序位于下面的“快速入门:单租户撰写”下。
多租户平台是面向MSSP的SocTalk形式。共享控制平面在Postgres中保存租户范围的状态,并在其自己的Kubernetes命名空间中为每个租户的SOC堆栈提供资源。现场设计和安装指南 docs/multi-tenant/;下面的“多租户部署”总结了形状。
多租户部署
多租户SocTalk是一个MSSP部署的控制平面。它在k3s或k8s上为每个客户租户提供和运行专用的OSS SOC堆栈。租户州位于Postgres,处于行级安全之下。每个租户的SOC堆栈都在自己的Kubernetes命名空间中运行,具有自己的LLM凭据和品牌。
两张海图。 soctalk-system 是控制平面。 soctalk-tenant 是控制器渲染和应用的每个客户的SOC堆栈。
完整的设计和操作材料寿命 docs/multi-tenant/,包括安全模型、图表审核、RLS卫生、入口、大小以及安装、runbook和升级指南。
快速入门:单租户组合
单一主机路径。将其用于评估、实验室工作或作为单个团队的SOC工具运行SocTalk。
Docker Compose
cp .env.example .env
docker compose up -d --build postgres api frontend打开:
- 仪表板:http://localhost:5173
- API(OpenAPI):http://localhost:8000/docs
- 健康:http://localhost:8000/health
启动编排器(用于端到端流):
docker compose up -d --build orchestrator
docker compose logs -f orchestrator编排器映像将MCP服务器二进制文件捆绑在 /opt/mcp-servers/*.
本地开发
后端:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
docker compose up -d postgres
alembic upgrade head
uvicorn soctalk.api.app:app --host 0.0.0.0 --port 8000 --env-file .env --reload前端:
cd frontend
pnpm install
pnpm dev开发人员助手在本地运行所有内容:
./scripts/run-dev.sh start特性
- 主管+专业人员 用于跨Wazuh、Cortex、MISP、TheWive进行路由/丰富
- 两级法学硕士 (快速路由器+推理判断)与Anthropic或OpenAI兼容的提供商
- Wazuh连续投票 具有相关性和优先级
- 循环中的人类 批准(仪表板/Slack/CLI)
- 活动来源+CQRS 用于可审计性和回放
- 实时仪表盘 (SvelteKit+SSE)
- 可配置的集成 通过设置UI(机密仅限于环境)
建筑
SocTalk分为三部分: 编排器 (LangGraph工作流),一个 API 它流式传输事件并公开REST,以及 仪表板 用于调查和人工审查。
高水位流量
- 摄入: 轮询Wazuh警报并关联到调查中。
- 调查: 主管将工作分配给MCP支持的工人(Wazuh/Cortex/MISP/TheHive)。
- 决定: 推理法学硕士产生判决;阈值选择自动关闭还是升级。
- 批准: 通过仪表板中断/恢复、Slack HIL或CLI回退进行人工审查。
- 法案: 在TheSive中创建案例/事件,并通过Slack webhook进行通知。
- 持久+流: 事件将转到Postgres(启用时);API通过SSE将更新流式传输到UI。
积木
- LangGraph工作流程: 编码分类→ 富集→ 裁决→ 人工审核→ 回应。
- MCP服务器(集成):
mcp-server-wazuh,mcp-server-cortex,mcp-server-misp,mcp-server-thehive. - 集成解决方案: Wazuh(SIEM)、Cortex(分析)、MISP(威胁情报)、TheBive(案例/IR)。
- 模拟代理: 容器化的Wazuh代理,执行MITRE ATT&CK风格的技术来生成逼真的警报。
- 编排器(
soctalkCLI): 运行轮询/相关性和LangGraph。 - 持久性(Postgres): 事件存储+时间线、指标和仪表板的预测。
- API(FastAPI)+仪表板(SvelteKit): REST、SSE事件流、指标、审核队列、设置。
- 设置+秘密: 在UI中可编辑并存储在DB中的非秘密预选项;秘密留在env中。
工作流程图
配置
复制 .env.example 到 .env 并设置您需要的内容。
法学硕士提供者(互斥)
SOCTALK_LLM_PROVIDER=anthropic+ANTHROPIC_API_KEYSOCTALK_LLM_PROVIDER=openai+OPENAI_API_KEY(兼容OpenAI)- 可选:
ANTHROPIC_BASE_URL,OPENAI_BASE_URL/OPENAI_API_BASE,OPENAI_ORGANIZATION - 型号/参数:
SOCTALK_FAST_MODEL,SOCTALK_REASONING_MODEL,SOCTALK_LLM_TEMPERATURE,SOCTALK_LLM_MAX_TOKENS
集成(MCP)
- 切换:
WAZUH_ENABLED,CORTEX_ENABLED,THEHIVE_ENABLED,MISP_ENABLED - URL/非机密(用户界面可编辑):
WAZUH_URL,CORTEX_URL/CORTEX_ENDPOINT,THEHIVE_URL,THEHIVE_ORGANISATION,MISP_URL,*_VERIFY_SSL - 机密(仅限于环境):
WAZUH_API_USER/WAZUH_API_PASSWORD,CORTEX_API_KEY,THEHIVE_API_KEY/THEHIVE_API_TOKEN,MISP_API_KEY
通知
SLACK_ENABLED,SLACK_CHANNEL,SLACK_NOTIFY_ON_ESCALATION,SLACK_NOTIFY_ON_VERDICT- 机密(仅限env):
SLACK_WEBHOOK_URL
MCP服务器二进制文件
编排器需要MCP服务器二进制文件与外部工具通信。
Docker(自动)
编排器映像在构建时从GitHub版本下载预构建的二进制文件,并将其安装到 /opt/mcp-servers/*.
本地开发
从源代码构建或手动下载二进制文件,然后在中设置路径 .env.
*从源代码构建(需要Rust):*
git clone https://github.com/gbrigandi/mcp-server-wazuh && cd mcp-server-wazuh && cargo build --release*设置构建路径:*
WAZUH_MCP_SERVER_PATH=../mcp-server-wazuh/target/release/mcp-server-wazuh
CORTEX_MCP_SERVER_PATH=../mcp-server-cortex/target/release/mcp-server-cortex
THEHIVE_MCP_SERVER_PATH=../mcp-server-thehive/target/release/mcp-server-thehive
MISP_MCP_SERVER_PATH=../mcp-server-misp/target/release/mcp-server-misp或者,设置 MCP_SERVERS_BASE_PATH 到一个包含所有四个二进制文件的目录。
轮询+阈值
SOCTALK_POLLING_INTERVAL,SOCTALK_MAX_ALERTS_PER_POLL,SOCTALK_BATCH_SIZE,SOCTALK_CORRELATION_WINDOWSOCTALK_AUTO_CLOSE_THRESHOLD,SOCTALK_ESCALATION_THRESHOLD,SOCTALK_CRITICAL_SEVERITY
数据库/持久性
- 启用:
SOCTALK_DB_ENABLED=true - 网址:
SOCTALK_DATABASE_URL - 运行迁移:
alembic upgrade head
设置UI
- 存储在数据库中的非秘密首选项并覆盖环境默认值(请参阅下面的首选项)。
SETTINGS_READONLY=true禁用编辑/重置(建议用于生产)。
身份验证(可选)
AUTH_MODE=none|static|proxy- 静态用户:
AUTH_USERS(建议使用pbkdf2_sha256) - 会议:
AUTH_SESSION_SECRET,AUTH_SESSION_TTL_SECONDS,AUTH_COOKIE_SECURE
日志记录
SOCTALK_LOG_LEVEL,SOCTALK_LOG_FORMAT,RUST_LOG(适用于MCP服务器)
首选项(设置UI)
仪表板设置页面显示值的来源(环境与覆盖),并允许您编辑非秘密首选项。秘密存在于环境中。当编排器重新启动并重新加载设置时,更改将生效。
LLM
llm_provider:anthropic或openai(需要匹配的env API密钥;密钥是互斥的)。llm_fast_model,llm_reasoning_model,llm_temperature(0–2),llm_max_tokens.llm_anthropic_base_url(可选),llm_openai_base_url(可选),llm_openai_organization(可选)。
华住
wazuh_enabled,wazuh_url,wazuh_verify_ssl(仅用于凭据的env机密)。
皮质
cortex_enabled,cortex_url,cortex_verify_ssl(仅限于环境变量CORTEX_API_KEY).
The Hive
thehive_enabled,thehive_url,thehive_organisation,thehive_verify_ssl(env-only API密钥/令牌)。
mist
misp_enabled,misp_url,misp_verify_ssl(env-only API密钥)。
Slack
slack_enabled,slack_channel,slack_notify_on_escalation,slack_notify_on_verdict(仅限于env的webhook URL)。
模拟代理(攻击模拟器)
这 linux-ep 该服务运行一个真正的Wazuh代理,该代理执行MITRE ATT&CK风格的技术,为测试产生高信号警报。
先决条件:
- 端口上可访问的Wazuh管理器(代理注册+TCP)
1515和1514. - SocTalk配置为轮询Wazuh API(
WAZUH_ENABLED=true以及env中的凭据)。
部署和生成警报:
# start mock agent (testing profile)
docker compose --profile testing up -d --build linux-ep
docker compose logs -f linux-ep
# list available techniques
docker compose exec linux-ep /opt/scripts/run-attack.sh list
# run specific techniques (examples)
docker compose exec linux-ep /opt/scripts/run-attack.sh T1110.001 # brute-force auth log spam
docker compose exec linux-ep /opt/scripts/run-attack.sh T1059.SHELL # reverse-shell command traces
docker compose exec linux-ep /opt/scripts/run-attack.sh MALWARE # ransomware-like artifacts它如何引发可疑行为:
- 将攻击痕迹写入syslog/auth日志(例如,SSH登录失败、反向shell命令)。
- 在下创建或修改临时工件
/tmp/attack-artifacts遵守FIM规则。 - 定期/随机技术执行使警报量保持流动(可通过容器中的env/cron配置)。
仅在实验室中使用:容器以特权运行并故意产生噪音行为。
使用示例
# Print the LangGraph (mermaid)
soctalk --graph
# Run with a specific env file
soctalk --config .envAPI快速检查:
curl http://localhost:8000/health
curl -N http://localhost:8000/api/events/stream测试
后端:
pytest -m "not integration"集成(Postgres):
docker compose -f docker-compose.test.yml up -d
pytest -m integration前端:
cd frontend
pnpm check
pnpm test # Playwright更多文档
docs/multi-tenant/ 涵盖了多租户架构和操作,包括安全模型、图表审计、RLS卫生、入口、大小、安装、runbook和升级材料。
docs/multi-tenant/TROUBLESHOOTING.md 是修复多租户部署索引的症状。
许可证
Apache 2.0。看 LICENSE 和 NOTICE.
