2. 风险数据基础
在压力场景下做风险数据聚合演练,第一步不是写脚本、不是拉接口,而是把“数据本身”看清楚。风险数据的类型决定了聚合口径,来源决定了可信度与时效,结构决定了清洗与关联成本,质量维度决定了聚合结果能不能支撑决策。本节围绕这四件事展开,并给出可落地的采集方式与检查清单。
一、核心原理:风险数据的四层认知
风险数据不是单一表格,而是一个从“原始信号”到“决策指标”的加工链条。理解这条链条,才能避免在聚合时把不同粒度、不同口径的数据直接相加。
- 类型层:按语义分为资产类、脆弱性类、威胁类、事件类、控制措施类与业务影响类。类型决定字段结构与关联主键。
- 来源层:分为内部系统、外部情报、人工填报与第三方接口。来源决定更新频率、可信权重与合规边界。
- 结构层:分为结构化、半结构化与非结构化。结构决定解析方式与存储模型。
- 质量层:完整性、准确性、一致性、时效性、唯一性与可用性六个维度共同决定数据能否进入聚合计算。
关键判断:聚合前必须回答三个问题——这条数据的主键是什么?它的时间戳代表“发生时间”还是“入库时间”?它的风险值口径是概率、评分还是等级?答不上来,聚合结果必然失真。
二、风险数据的类型与来源
压力场景下最常聚合的六类风险数据及其典型来源如下表所示。表中“聚合主键”一列是实战中最容易被忽略、却最影响关联成功率的关键字段。
| 数据类型 | 典型字段 | 常见来源 | 聚合主键 | 更新频率 |
|---|---|---|---|---|
| 资产类 | 资产ID、IP、归属系统、责任人 | CMDB、云平台、主机Agent | asset_id / ip | 日级 |
| 脆弱性类 | CVE、CVSS、端口、组件版本 | 漏扫、镜像扫描、SBOM | cve + asset_id | 周级/触发式 |
| 威胁类 | IOC、TTP、组织标签、置信度 | 威胁情报平台、行业共享 | ioc_value | 小时级 |
| 事件类 | 告警ID、时间、源IP、规则名 | SIEM、EDR、WAF日志 | alert_id | 秒级/分钟级 |
| 控制措施类 | 策略ID、覆盖范围、生效状态 | 防火墙、IAM、基线平台 | control_id | 日级 |
| 业务影响类 | 业务系统、等级、影响金额 | 业务台账、人工填报 | service_id | 月级/变更时 |
来源越多,口径冲突越明显。例如同一台主机在CMDB中标记为“测试”,在漏扫中却属于“生产网段”;同一IP在情报中置信度为高,在内部日志中却从未出现。这些冲突必须在聚合前通过“来源优先级”规则显式处理,而不是靠人工临时判断。
三、结构特征与采集方式
风险数据的结构差异直接决定采集管道的设计。结构化数据适合批量抽取,半结构化需要解析器,非结构化往往只能先做特征提取再入湖。
# 典型采集配置片段(伪代码)
source:
type: syslog
protocol: tcp
port: 514
parser: cef
fields:
- name: event_time
format: "%Y-%m-%dT%H:%M:%S%z"
- name: src_ip
type: ip
- name: severity
mapping: {low: 1, medium: 2, high: 3, critical: 4}
quality_gate:
require: [event_time, src_ip, severity]
dedup_key: [src_ip, rule_id, event_time]
常见采集方式可归纳为四类:
- 主动拉取:通过API、数据库只读账号、SFTP定时抽取,适合资产、漏洞、控制措施类数据。
- 被动接收:通过Syslog、Kafka、Webhook接收日志与告警,适合事件类与威胁类数据。
- 代理采集:在主机或容器内安装Agent,采集进程、端口、文件哈希等细粒度数据。
- 人工填报:通过表单或工单系统补充业务影响、责任人等系统无法自动获取的字段。
采集设计要点:每条数据进入聚合层前,必须打上“来源标签”和“采集时间戳”。来源标签用于后续加权,采集时间戳用于判断时效性,二者缺一不可。
四、质量维度与实战检查清单
质量维度不是抽象概念,而是可以写成校验规则的硬约束。以下清单可直接用于演练前的数据准入检查:
- 完整性:关键字段非空率是否达到阈值?例如资产类要求asset_id与ip非空率≥99%。
- 准确性:IP格式、CVE编号、时间格式是否通过正则校验?
- 一致性:同一资产在不同来源中的归属系统是否冲突?冲突率是否超过5%?
- 时效性:事件类数据延迟是否超过15分钟?威胁情报是否超过24小时未更新?
- 唯一性:是否存在重复告警?去重键是否覆盖主要场景?
- 可用性:字段是否可直接参与计算?例如“高危”能否映射为数值3?
常见误区:把“数据量大”等同于“数据质量高”。在压力场景下,大量低质量数据会放大噪声,导致聚合评分被少数异常源拉偏。宁可先接入少量高可信来源,再逐步扩展。
五、场景复盘:一次聚合演练的数据准备
假设演练目标是“在30分钟内聚合全网高危风险并输出Top 20资产”。数据准备阶段发现三个问题:漏扫数据缺少asset_id,只有IP;CMDB中部分IP已回收;威胁情报的IOC字段与日志中的目标IP格式不一致。处理方式为:先用IP+时间窗口做模糊关联,再对回收IP标记“不可信”并降权,最后统一IOC格式为小写无掩码。经过这三步,关联成功率从62%提升到91%,聚合结果才具备参考价值。
回到本节的核心:风险数据基础不是背概念,而是建立“来源—质量—关联—聚合”的因果链。只有把类型、来源、结构与质量四个维度同时管住,压力场景下的聚合演练才不会变成“数据越多、结论越乱”的无效劳动。