威胁情报与 IOC 研判
这个场景回答一个很具体的日常问题:手里只有一个 IP / 域名 / 哈希,如何让 Agent 在几分钟内给出一份带交叉验证的研判结论。
Flocks 的做法是让 Rex 同时调用多个情报源(ThreatBook、VirusTotal、GreyNoise、FOFA 等),交叉比对结论,再结合企业内部上下文(是不是自己资产、有没有历史告警)给出统一判断。
场景简介
情报类任务在安全运营里属于"高频小粒度"——一天几十上百次,每次只要一两分钟,但耗费的精力并不小:
- 登录 ThreatBook 查标签
- 再登录 VT 看 engine 结果
- 顺手查 GreyNoise 确认是不是扫描器
- 自己脑子里做个交叉判断
- 写进工单或群里
Flocks 把这段流程压成一次对话:给一个 IOC,拿一份结构化的判断。
输入与输出
典型输入
- 单个 IOC:IP / 域名 / URL / 样本哈希
- 一批 IOC(IOC 列表)
- 相关上下文:这个 IOC 出现在什么告警、对应哪个资产
典型输出
- 研判结论:良性 / 可疑 / 恶意,附置信度
- 标签 / 家族 / 威胁背景:从各情报源聚合
- 交叉验证结果:多家情报源各自说法 + Rex 的综合判断
- 建议动作:封禁 / 监控 / 忽略
- 持续跟踪任务(可选):围绕重点 IOC / 重点组织建立长期监控
前置条件
| 依赖项 | 要求 |
|---|---|
| 模型 | 默认模型即可,情报类任务不吃推理深度 |
| 情报工具 | 至少接入一家(推荐 ThreatBook + VT + GreyNoise 组合)——参考 内网安全产品接入 |
| API Key | 各情报源的 Key 填到对应工具 |
| 通道 | 可选。用于把研判结果推给告警调查群 |
操作步骤(WebUI)
步骤 1:新建会话,直接丢 IOC
在 会话管理 → + 新建会话,说明需求即可:
「帮我研判 IOC
8.8.8.8,查 ThreatBook、VT、GreyNoise,交叉判断后给结论」
步骤 2:Rex 并行查多家情报源
Rex 会:
- 识别 IOC 类型(IP)
- 调用已接入的情报工具并行查询
- 拿到各家原始返回
- 做字段对齐:标签、家族、最后活跃时间、相关样本
步骤 3:交叉判断 + 结构化输出
Rex 的价值不止"查完三家贴上来",而是:
- 多源结论冲突时给出优先级(比如 ThreatBook 企业内用优先级更高)
- 结合 IOC 自身特征(8.8.8.8 这种公共 DNS,大概率良性扫描误报)
- 给一句话结论 + 详细理由 + 建议动作
步骤 4:可选——批量 IOC / 持续跟踪
单个 IOC 扩展为:
- 批量:丢一个 IOC 列表,Rex 按顺序研判,汇总成一份表格
- 持续跟踪:「每天给我查一下这 10 个 IOC,有新标签 / 新关联样本就通知我」→ 转任务中心
- 围绕组织 / 事件:跟踪某个 APT 组织的 TTP 更新,持续补全线索
真实案例走读(8.8.8.8 IOC 研判)
这个案例对应真实环境会话:研判 8.8.8.8 是否值得关注。
| 阶段 | Rex 动作 | 结论 / 说明 |
|---|---|---|
| 入参 | 用户给出单个 IP 8.8.8.8 | 最小粒度任务 |
| 识别 | 识别为公网 IPv4 | 自动选择 IP 类情报工具集 |
| 并行查询 | 同时请求 ThreatBook、VT、GreyNoise | 响应时间取决于最慢的那个 |
| 字段对齐 | 归属信息、恶意标签、活跃扫描记录、相关样本 | ThreatBook 返回:Google 公共 DNS;VT:干净;GreyNoise:大量扫描器命中但标签 "benign" |
| 交叉判断 | 多家都指向"Google 公共 DNS,良性基础设施" | 置信度高 |
| 企业上下文补充 | 检查是否出现在近期告警 | 如出现 → 提示"可能是合法 DNS 外联被误判" |
| 结论 | 良性 / 不需要处置;但若作为告警匹配字段大量出现,建议优化检测规则 | 这是"有证据的结论",不是泛泛回答 |
| 可选动作 | 把这条研判作为样例写入 Skill:"公网基础设施类 IP 的判定模板" | 下次类似 IP 直接套 |
情报研判的价值并不在于"Rex 会用 API",而在于"Rex 能用同一套方法横向比对多源、结合企业上下文,把结论打磨到可交付"。
产出示例
json
{
"ioc": "8.8.8.8",
"type": "ipv4",
"verdict": "benign",
"confidence": 0.95,
"conclusion": "Google 公共 DNS 基础设施,良性。",
"sources": {
"threatbook": {"tags": ["public_dns", "google"], "verdict": "benign"},
"virustotal": {"malicious": 0, "suspicious": 0},
"greynoise": {"classification": "benign", "actor": "Google Public DNS"}
},
"enterprise_context": {
"recent_alerts": 42,
"note": "告警量大但都是 DNS 外联,建议优化规则白名单"
},
"suggested_action": "whitelist_in_detection_rules"
}批量 / 持续跟踪模式
批量研判
输入 10 / 50 / 100 个 IOC:
- Rex 自动做分片(比如每次 10 个)
- 每一批的结论独立落盘
- 最后给一份汇总表(恶意 / 可疑 / 良性 / 未知 分布)
持续跟踪
围绕"重点 IOC / 重点组织 / 热点事件"建立长期任务:
- 每日任务:检查一批 IOC 的标签变化
- IOC 族跟踪:同一攻击者新增样本时通知
- 事件跟踪:跟踪某漏洞 / 某 APT 的最新 TTP
这些任务都挂在任务中心,定时运行 + 通道推送。
产出如何流入其他场景
情报研判很少是终点,它是前置能力:
| 下游场景 | 使用方式 |
|---|---|
| 告警研判 | 告警里的外联 IP / 下载域名,直接触发 IOC 研判子流程 |
| 资产测绘 | 外部扫描源 IP 反查时需要判定是否恶意 |
| 威胁狩猎 Workflow | 以一批 IOC 为起点,向外扩展找关联样本 / 关联 C2 |
边界与常见问题
| 问题 | 处理 |
|---|---|
| 多家情报源结论冲突,相信谁 | 在 Skill 里写明"优先级"和"怎么综合",Rex 按规则办 |
| 情报源 API 限频 | Skill 里限速;或引入缓存层,近期查过的直接复用 |
| 只接入了一家情报源 | 可以用,但结论置信度要打折;建议至少接 2 家做交叉 |
| 想让 Rex 判断 APT 归属 | 作为"参考意见"可以,但不要作为最终结论——APT 归属是高度专家任务 |
| 企业 IOC 脱敏需求 | 关键 IOC 可以做 SHA256 脱敏后再查(部分情报源支持) |
| 一批 IOC 查完结果要入库 | 让 Rex 以统一 JSON 格式落盘到 Workspace,或直接写 ES / ClickHouse |
相关:场景总览 · 告警研判 · 内网安全产品接入 · 互联网资产测绘 · Skills 技能库