Skip to content

使用 Wazuh、TheHive、Cortex 和 MISP 构建开源 SOC 技术栈:拼装与集成的区别

存在一套公认的自由开源 SOC 技术栈,而且多年来基本上一直是这四个名字:Wazuh 负责检测,TheHive 负责案件管理,Cortex 负责可观测对象分析,MISP 负责威胁情报。四个项目都很成熟,有多年生产环境使用经验,合在一起可以覆盖商业 SOC 套件所售卖的大部分能力。问题出在“合在一起”这几个字。工具之间的集成是一个由你构建、并且此后由你负责维护的项目。

本指南介绍每个组件的作用、把它们拼装起来的实际成本、当你为多个组织运营安全时需求会如何变化,以及 SocTalk 的定位:它位于这套技术栈之上,而不是取而代之。

经典的 FOSS SOC 技术栈

Wazuh 是 SIEM/XDR 层:每个终端上装一个 agent,一个 manager 将检测规则应用到事件流,一个 indexer(基于 OpenSearch)负责存储和检索结果。它开箱即用地提供文件完整性监控、漏洞检测、日志分析和一套庞大的默认规则集。告警在这里诞生。

TheHive 是案件管理层:一个安全事件响应平台,告警在这里变成案件,案件承载任务和可观测对象,分析师团队在带审计记录的环境中协作。如果说 Wazuh 是告警诞生的地方,TheHive 就是调查开始和结束的地方。

Cortex 是 TheHive 的可观测对象分析搭档。你把一个 IP、哈希、域名或 URL 交给它,它的分析器插件会分发到各类信誉和沙箱服务,从 VirusTotal、AbuseIPDB 到 Hybrid Analysis 等数十个服务,然后带回一个裁决。它把“这里有一个哈希”变成“这是全世界对这个哈希的已知信息”。

MISP 是威胁情报平台:它跨情报源和共享社区聚合、关联并共享失陷指标(IOC)。用 MISP 核对一个可观测对象,可以告诉你它是否属于某个已知的攻击活动或攻击者,这是其余三个工具自身都不具备的上下文。

也就是说,四个工具覆盖四项各自独立的工作,全部开源,纸面上是一套完整的 SOC。

真实的集成成本

这些工具每一个都能在一个下午装好。家庭实验室教程到这里就结束了,而真正的工作从这里才开始,因为它们没有一个能开箱即用地按生产 SOC 所需的形态互相通信。

胶水层要你自己负责。Wazuh 的告警不会自动变成 TheHive 的案件,你需要自己编写或采用一个转发器,并在两边 API 变更时持续维护它。Cortex 的分析器需要为每个服务商配置 API 密钥、处理速率限制,还要决定哪种可观测对象类型由哪个分析器处理。MISP 需要配置情报源、安排同步任务,并在你敢基于它做自动化之前,先清理容易产生误报的指标。

接下来是运维面:四个产品意味着四套认证系统和 API 密钥轮换计划、四种升级节奏(任何一次发布都可能弄坏你的胶水层)、四套备份方案,而且自从 TheHive 底层改用 Cassandra/Elasticsearch 之后,仅案件管理就要背上一个不小的数据存储包袱。再加上每对服务之间的 TLS、每个服务的监控,以及当 Wazuh 到 TheHive 的转发器悄无声息地停止转发时该由谁接收呼叫的问题。

这不是工具本身的错;组合独立项目本来就要付出这些。集成层实际上相当于第五个产品,只是没有人替你发布它、为它编写文档或负责它的升级。

单一组织与 MSSP:需求的分岔

对单一组织来说,上面这笔税是付得起的。技术栈只需搭建一次,胶水层只服务一个租户,一位有能力的工程师用一部分工作时间就能维持其健康运转。

对 MSP 或 MSSP 来说,需求会急剧分岔:

  • 隔离没有商量余地。 客户 A 的告警、案件和指标必须可证明地对客户 B 不可见,这既是合同要求,往往也是监管要求。共享的单租户工具把这变成逐个工具的配置工作,并附带逐个工具的故障模式。
  • 按客户部署会成倍放大这笔税。 十个客户各用一套专属技术栈,意味着十套 Wazuh manager 和 indexer 需要部署、升级和备份,外加十份你的胶水层。
  • 客户接入必须可重复。 第十一个客户的接入应该是一条命令,而不是一周的 wiki 考古。手工搭建的技术栈会漂移,而漂移最终会以事故的形式显现。
  • 统一视图。 负责二十个客户的分析师不可能在二十个仪表盘之间来回切换。

这就是“FOSS SOC 技术栈能用”和“FOSS SOC 技术栈能作为一门生意运转”之间的差距。

SocTalk 的定位:技术栈之上的控制平面

SocTalk 保留全部四个工具的位置。它是一个 Apache 2.0 许可的多租户控制平面和 AI 分诊层,构建在这套技术栈周围,面向在自有 Kubernetes 上运行它的 MSP 和 MSSP:

  • Wazuh 是数据平面。 每个客户在隔离的命名空间中获得一套专属的 Wazuh manager 和 indexer,由控制平面完成开通;你也可以通过 provided 配置档接入已有的 Wazuh。Agent 通过按主机名路由的 ingress 注册,使用租户作用域的密钥。
  • AI 分诊层位于 Wazuh 和分析师之间。 一个确定性的摄入漏斗在任何模型运行之前先对告警去重、归并和关联;一个 LangGraph 智能体循环负责调查存活下来的告警;升级的案件始终要经过人工审查关口。详见工作原理
  • TheHive、Cortex 和 MISP 是集成项,在运行过程中被调用:Cortex 提供可观测对象的信誉,MISP 提供威胁情报上下文,TheHive 作为升级案件的导出目标。
  • 多租户机制本身就是产品:基于 Cilium NetworkPolicy 的命名空间隔离、作为数据兜底的 Postgres 行级安全(RLS)、租户生命周期状态机,以及按租户的 LLM 配置。

在做规划之前,先了解 V1 的集成边界:

  • TheHive 导出需要主动启用,并且是同步的:worker 在图节点执行时调用 TheHive 的 API,创建案件和可观测对象。没有 outbox,没有重试循环,也没有捆绑的 TheHive 子 chart;如果 TheHive 不可达,失败会被记录,案件仅在 SocTalk 中继续推进。
  • Cortex 在 V1 中仅支持客户自管。你自己运行 Cortex,由 SocTalk 调用它。没有捆绑的子 chart;分析器的选择使用硬编码的映射表,调用失败不会导致运行终止。
  • MISP 查询在流水线的 misp_worker 中针对你的 MISP 实例执行;捆绑的 MISP 子 chart 推迟到未来版本。
  • Slack 通知和双向审批的代码存在于仓库中,但尚未接入 V1 chart 运行时。目前可用的人工介入(HIL)界面是仪表盘中的审查队列。

SocTalk 打包了多租户 Wazuh 平面和分诊层,并连接到由你运营的 TheHive/Cortex/MISP 实例。捆绑子 chart 的便利仍在路线图上;本次发布不包含它。

何时自建技术栈,何时部署 SocTalk

两条路都是开源的,所以选择取决于运维层面的标准:

**在以下情况下自建四工具技术栈:**你是单一组织且有工程时间,你希望对每个组件保持最大程度的控制,你的告警量对你的分析师人数来说尚可应付,而且多租户与你无关。经典技术栈加上你自己的胶水层是经过验证的模式,每一根线都是你亲手焊的,你自然了解每一根线。

**在以下情况下考虑 SocTalk:**你是 MSP/MSSP,需要在单一控制平面之后为每个客户可重复地部署 Wazuh 技术栈、需要可证明的租户隔离,以及在分析师看到告警之前压缩告警量的 AI 分诊,而且你更愿意运维一个由 Helm 管理的平台,而不是 N 套手工搭建的技术栈。你仍然需要运行 Kubernetes,并且在 V1 中,如果你想使用 TheHive、Cortex 和 MISP,仍需自行运维它们。

最快的评估方式是演示 VM:一个镜像,一个浏览器向导,大约五分钟即可得到一套运行中的多租户安装环境,并完成一个演示租户的接入。之后,工作原理解释了整条流水线,TheHiveCortex 页面准确记录了 V1 集成能做什么、不能做什么,方便你据此规划技术栈的其余部分。

基于 Apache 2.0 许可证发布。