TheHive 与 Cortex 集成教程:安全告警自动分析的完整指南
【免费下载链接】TheHiveTheHive is a Collaborative Case Management Platform, now distributed as a commercial version项目地址: https://gitcode.com/gh_mirrors/th/TheHive
TheHive 是面向安全事件响应的开源协作案件管理平台:它把来自各监控系统的告警组织成"案件",从案件中自动提取 IP、域名等可观察对象(Observable),再接入 Cortex 执行自动化分析。本文按"痛点 → 原理 → 集成 → 上手"的顺序,完整讲清楚 TheHive 与 Cortex 是如何协同工作的。
一、凌晨的告警,一个人扛不住的事件响应
想象一个常见的夜班场景:IDS 系统在一小时内推送了 6 条外联告警。值班分析员要做的事是——
- 逐条点开告警,把源 IP 复制到威胁情报平台查询;
- 把查询结果手动记到工单或文档里;
- 如果是同一批主机在反复外联,还要人工归并、判断"这是不是一件事";
- 第二天交接时,同事看不到昨天的分析结论,全部重来。
整个过程里,重复劳动占了七成时间:查情报、抄结果、贴截图。真正需要人做判断的环节("这个行为要不要立案"),反而被淹没在搬运工作里。
TheHive 解决的就是这个问题——它不替代分析员,而是把"搬运"的部分交给平台:案件自动建、情报自动查、结论自动归档、分工自动可见。
二、TheHive:把零散告警装进"案件"的协作平台
TheHive 的核心思路是以"案件"(Case)为中心组织一切,围绕它有 4 个关键概念:
| 概念 | 白话解释 | 典型例子 |
|---|---|---|
| Case 案件 | 一次安全事件的完整上下文容器 | "财务部 3 台主机疑似挖矿" |
| Alert 告警 | 从外部系统(如 MISP)自动流入的待办事件 | SIEM 推送的一条高危规则命中 |
| Observable 可观察对象 | 案件中可被分析的具体 IOC | 一个 IP、一个域名、一个文件哈希 |
| Task 任务 | 案件下分配给人的具体工作项 | "确认 10.1.2.3 上的进程来源" |
理解要点:告警(Alert)是"输入",案件(Case)是"工作台",可观察对象(Observable)是"待分析的线索",任务(Task)是"派给人和机器的事"。四者串起来,就是一条完整的事件处置链。
技术栈方面,TheHive 后端用 Scala + Akka 编写,基于 Play 框架对外暴露 REST API;数据层使用 Elasticsearch 做检索(新版本引入 JanusGraph 管理实体关系);前端是 AngularJS + Bootstrap 的单页应用。Cortex 同样基于 Scala/Akka/Play 生态,两边通过 REST API 对接,架构上天然对称:
案件列表页面则直观展示了这个"工作台"长什么样——每个案件一行,标题、严重程度、任务数、可观察对象数、负责人一目了然,支持按标签、状态快速筛选:
协作能力藏在细节里
- 组织与角色:用户按 Organisation 分组,不同组织可共享或隔离案件(Share 机制),适合"安全团队 + 业务部门"的跨团队协作;
- 自定义字段:案件、可观察对象、任务都支持挂自定义字段,无需改代码就能贴合内部流程(如"资产归属部门""是否已通报");
- 审计留痕:所有操作写入 Audit/Log,案件关闭时可以导出完整时间线,方便复盘和上报。
三、TheHive 与 Cortex 集成:让分析器先做初筛
Cortex 本身是一个分析器调度引擎:它不存储案件数据,而是连接各种安全工具(VirusTotal 类情报源、沙箱、DNS 查询、恶意软件检测等),把可观察对象"喂"给对应的分析器,再把报告收回来。
两者怎么接起来
集成只需要 3 步:
- 注册 Cortex 实例:在 TheHive 的管理界面或配置中填入 Cortex 的 URL 和 API Key;
- 配置分析器:在 Cortex 中创建 Analyzer Template(分析器模板),定义它接受哪些类型、需要哪些参数;
- 绑定触发规则:TheHive 侧指定"哪类案件/哪种 Observable 自动触发哪个分析器",之后新案件的可观察对象流入时自动发起分析。
配置层面的核心就两段(示例见 conf/application.sample.conf):
play.modules.enabled += org.thp.thehive.connector.cortex.CortexModule cortex { servers: [{ name: "local", url: "http://localhost:9001", auth: { type: "bearer", key: "xxx" } }] }一次自动分析发生了什么
| 阶段 | 执行者 | 动作 |
|---|---|---|
| 1. 提取 | TheHive | 从案件文本、附件中识别出 IP/域名/哈希等 Observable |
| 2. 分发 | Cortex | 按模板匹配分析器,并发调用外部工具 |
| 3. 回传 | Cortex | 收到分析结果后生成 Operation Report |
| 4. 落库 | TheHive | 报告挂回对应 Observable,分析员打开案件即可看到结论 |
对分析员的实际意义是:打开案件时,情报已经查完了。人只需要判断"报告里的命中要不要采信",而不是从零开始敲查询。
四、从告警到结案:一次事件的完整生命周期
把上面两块拼起来,就是一条完整的自动化流水线:
- 接入:MISP 等外部系统的告警通过连接器(仓库中 misp/connector/ 即此模块)批量流入,进入告警面板待处理;
- 建案:分析员在告警面板批量将告警转为案件,可套用 Case Template 预置任务与自定义字段,几秒钟建好一个结构完整的案件;
- 分诊:案件自动拆解为任务,按 Owner 分配到不同分析员;
- 自动分析:案件内 Observable 触发 Cortex 分析器,报告自动回挂;
- 人工研判:分析员在案件详情页核对报告、补充结论,全程操作留痕在 Task Log;
- 响应:需要处置时(如封禁 IP),可触发 Responder 执行动作,动作结果同样回到案件里;
- 结案归档:关闭案件并生成报告,案件数据、时间线、附件可整体导出。
告警面板是这条流水线的"总闸",面板顶部按状态、类型、标签给出统计与排名,哪类告警堆积、哪个来源最活跃,一眼可见:
这套流程的价值在于每一步都有归属:机器干的活(提取、查询)不会漏,人干的活(研判、决策)有记录,新同事接手案件时不用口头传帮带。
五、如何快速上手 TheHive:克隆、构建与配置要点
源码获取与构建:
git clone https://gitcode.com/gh_mirrors/th/TheHive克隆后用 sbt 构建(仓库根目录提供sbt脚本与 package.sbt)。首次运行前,把 conf/application.sample.conf 复制为实际配置文件,重点关注 4 处:
| 配置块 | 说明 | 建议 |
|---|---|---|
db.janusgraph | 实体关系库后端 | 本地测试可先用内置berkeleyje,生产环境按官方指引接 Cassandra |
storage | 附件存储 | 小规模用localfs即可,大集群可接 HDFS |
auth.providers | 登录方式 | session 必选,另可按需开启 basic/local/key |
cortex.servers | Cortex 实例列表 | 至少一个,key填 Cortex 侧生成的 API Key |
新手建议的顺序:先把 TheHive 单跑起来建几个案件 → 再搭一个 Cortex 实例接上 → 最后接 MISP 等告警源。一次打通一条链路,排错成本低很多。
六、版本现状与源码导读
先说一个容易踩坑的事实,来自仓库根目录的 README.md:
TheHive 3.x / 4.x 开源版本自 2023 年起已停止维护与公开分发,仓库已归档;后续版本以商业形式发布。因此本仓库更适合作为学习参考实现:它完整保留了开源时期的全量代码——告警接入、案件管理、Cortex/MISP 连接器、前端交互都在里面。
想读源码的话,按这个顺序进入:
- REST API 层:thehive/app/org/thp/thehive/controllers/v1/ —— 看每个资源暴露了哪些接口;
- 数据模型:thehive/app/org/thp/thehive/models/ ——
Case.scala、Observable.scala、Alert.scala对应前文的四个核心概念; - 业务逻辑:thehive/app/org/thp/thehive/services/ —— 含告警转案件等核心服务;
- Cortex 对接:cortex/connector/ —— TheHive 侧如何调用 Cortex、如何回写报告;
- MISP 对接:misp/connector/ —— 告警批量接入的实现;
- 前端页面:frontend/app/scripts/ —— 控制器与组件结构,可对照 UI 看交互逻辑。
最后小结。TheHive 与 Cortex 的组合,本质上是把事件响应拆成了"机器擅长的部分"和"人擅长的部分":机器负责提取、查询、归档这些不会错但很费时的活;人负责研判、决策这些真正需要经验的活。如果你正在评估自建安全事件响应平台,或者想深入理解这套"案件 + 分析器"的自动化思路,这个仓库的完整实现值得通读一遍。
【免费下载链接】TheHiveTheHive is a Collaborative Case Management Platform, now distributed as a commercial version项目地址: https://gitcode.com/gh_mirrors/th/TheHive
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考