告警研判
告警研判是 Flocks 最容易落地、也是使用频率最高的场景。它的核心问题是:从安全设备拿到若干条告警后,如何让每一条都在几分钟内拿到带证据链的结构化研判结论,并自动推送到对应的运营触点。
Flocks 的做法是让主 Agent Rex 拉取原始告警、落盘中间数据、委派专职分析 Agent 逐条研判,并把结构化结果通过通道外发,最后把整条链路转成每小时运行的定时任务。
场景简介
告警研判场景天然符合 Flocks 的强项:
- 输入清晰:单条、一批或一时间窗内的告警
- 输出明确:结构化研判结果、JSON 报告、通道通知
- 中间过程多步:取数 → 补上下文 → 研判 → 产出
- 结果要求外发或落盘:不能只停留在对话里
它不是要替代传统 NDR / TDP 去做海量实时检测,而是站在「拿到线索后做深入分析」的位置——所有适合人工花 10 分钟写一份告警研判报告的动作,Flocks 都能吃下来。
输入与输出
典型输入
- 单条告警的 ID 或原文(最小粒度)
- 一批待研判告警(通常来自当天未处置的工单)
- 某一时间窗口内的告警集合(小时级 / 天级)
- 告警源可以是 TDP、NDR、XDR、HIDS、EDR、WAF 等任何有 API 或登录后台的设备
典型输出
- 结构化研判结果:告警 ID、攻击类型、置信度、涉事资产、建议动作
- 研判结论摘要:短文本,直接贴到工单或群里可读
- JSON 报告:便于后续系统落库或批量核对
- 通道通知:通过企微 / 钉钉 / 飞书机器人推送
前置条件
| 依赖项 | 要求 |
|---|---|
| 模型 | 已配置默认模型(能跑就行,推理型模型效果更好)——参考 模型配置 |
| 告警源接入 | 告警平台的 API 或网页控制台二选一——参考 内网安全产品接入 |
| 工具 | 情报工具(ThreatBook / VT / GreyNoise)优先,用于补 IOC 上下文 |
| 通道 | 企微 / 钉钉 / 飞书任一通道已连通——参考 通道配置 |
| 专家 Agent | 可选。项目内置了告警分析类子 Agent;若无,Rex 会用自身工具链直接分析 |
操作步骤(WebUI)
步骤 1:建立一条会话
进入 会话管理 → + 新建会话,用自然语言描述一次性研判目标:
「从 TDP 页面抓 5 条最新告警,逐条做研判,结果写 JSON,并把摘要发到企微」
步骤 2:让 Rex 抓原始数据
Rex 会自动选择接入方式:
- 有 API:直接调 API 拉取
- 只有网页:启用浏览器工具登录并抓页面数据(首次可能需要人工辅助登录)
抓到的原始告警会落盘到 Workspace 的日期目录下(如 3-28/alerts.json),而不是只留在对话里——这是后续能被定时任务复用的关键。
步骤 3:委派分析 Agent 逐条研判
Rex 会委派一个专职的告警分析子 Agent。这一步本质是多 Agent 架构:
- Rex 负责「切片分发 + 汇总」
- 分析子 Agent 拿到单条告警 + 该子 Agent 专属的 system prompt,专注做单条研判
- 每条研判独立产出,互不污染上下文
步骤 4:输出 JSON + 通道通知
逐条研判完成后:
- JSON 落盘:结构化结果回到 Workspace 同一目录,便于下游系统消费
- 通道通知:调用已配置的企微 / 钉钉 / 飞书通道把摘要发出去
多群 / 多会话环境下,记得显式指定
session ID,否则 Rex 不知道发到哪里。详见 企业微信通道配置 § 多群消息与 session ID。
步骤 5:转成定时任务
在同一会话里继续对 Rex 说:
「把这套巡检研判过程配成定时任务,每小时执行一次,结果发企微」
Rex 会自动在 任务中心 创建一条任务:
- 启动方式:每小时执行一次
- 任务描述:沿用本次会话的自然语言描述
channel:wecom/dingtalk/feishusession ID:指定会话
从此这条链路就和人脱钩了,每小时跑一次,结果按时进群。
真实案例走读(NDR 告警 5 条研判)
这一节节选自demo演示的关键节点:
| 时间 | Rex 动作 | 产出 / 说明 |
|---|---|---|
| 0:00 | 准备通道:确认已配置企微机器人 + 目标 session ID | 一通道一群不需要 session ID,多群才需要显式指定 |
| 0:36 | 从 TDP 页面抓取 5 条告警 | 演示用量少,实际可跑几十/上百条 |
| 1:03 | 把完整原始数据写到 Workspace(3-28 目录) | 原始数据落盘,定时任务能复用 |
| 1:33 | 委派专职告警分析子 Agent,逐条分析 | 多 Agent 架构,子 Agent 有自己的 system prompt |
| 2:04 | 分析结果成形 | 结构化字段 + 结论 |
| 2:22 | 向企微推送通知 | 5 条告警研判成功送达 |
| 2:42 | 识别出 "文件上传攻击 × 4"、"IP 109.x 重复出现"、"webshell + 内网横移" 等结论 | 有证据链的研判,不是泛泛回答 |
| 3:42 | 把整条链路转成定时任务:每小时执行 + 企微通知 | 从"做一次"升级为"持续运行" |
产出示例
典型 JSON 结构(示意):
[
{
"alert_id": "20260328-001",
"source": "TDP",
"attack_type": "webshell_upload",
"src_ip": "109.x.x.x",
"dst_asset": "10.10.x.x",
"confidence": 0.85,
"conclusion": "确认文件上传攻击,可能已植入 webshell",
"related_alerts": ["20260328-003"],
"recommended_action": "隔离资产 + 取证"
}
]企微 / 钉钉 / 飞书的通知会以文本摘要形式打包发送,便于值班组第一时间肉眼看到。
持续运行:从「做一次」到「常态化」
这是告警研判最有价值的一步。任务中心把前面的一次性链路固化成:
- 每小时 / 每天 / 每周自动执行
- 结果按时进群
- 产出继续落盘,便于周度复盘
进阶:可以把这条链路再次抽象为 Workflow,让 Rex 把"抓告警 → 落盘 → 委派研判 → 外发"拆成可编辑、可测试、可版本化的剧本。参考 Workflow 工作流。
边界与常见问题
| 问题 | 处理 |
|---|---|
| 想让 Flocks 替代 NDR / TDP 做实时检测 | 不建议。Flocks 适合站在"拿到线索后深入分析"的位置,不是流量层实时引擎 |
| 告警量极大(每小时上万) | 分批处理:把 workflow 做成"按时间窗 + 按告警类型切片" |
| 模型幻觉,研判结论不可信 | 在 Skill / Agent 的 system prompt 里明确要求"必须列出证据字段",无证据时拒答 |
| 多群推送搞错群 | 显式指定 session ID,在 企微通道配置 里查自己的 ID |
| 告警源只有网页没有 API | 用浏览器工具方案——参考 浏览器自动化与网页登录 |
相关:场景总览 · 主机巡检 / 应急取证 · 内网安全产品接入 · 威胁情报与 IOC 研判 · 任务中心 · 通道配置