01 · IOC时效性的本质
威胁指标并非"一次判定、永久有效"的事实陈述,而是对攻击者基础设施状态的时效性快照。其失效的根源在于攻防成本不对称:攻击者轮换一个IP或注册一个新域名的成本以分钟计,而防守方若按固定周期(如一年)维护指标,必然积累大量指向"别人早已抛弃的基础设施"的僵尸记录。时效性管理的任务,就是为每类指标估计其存活分布,并把估计结果转化为动态的valid_until决策。
失效并不总意味着"指标变干净":被弃用的域名可能被防御方接管(sinkhole)、被其他团伙重新注册、或被搜索引擎与公共解析器缓存。"不可达"只是活性消失的信号之一,不能简单等同于"威胁消除",这正是建模时需要区分"基础设施存活"与"威胁存续"两个概念的原因。
两个基础概念的区分:①基础设施存活——指标当前是否仍可解析、可达、可检出,由探针回答;②威胁存续——该指标背后的攻击意图是否仍在,只能由Sighting命中、关联活动与人工研判间接推断。时效模型输出的是对①的预测,对②的估计属于置信度与归因课题(子课题09)的范畴。
02 · 时效性的影响因素
不同指标的自然寿命差异可达数个数量级,影响因素可归为四类:
| 因素 | 作用机制 | 对时效的影响方向 |
|---|---|---|
| IOC类型 | Hash指向不可变对象本身;域名/URL/IP指向攻击者可随时更换的寻址层 | Hash最稳,URL与IP最速朽 |
| 基础设施性质 | 云主机按小时计费、Fast-flux与CDN共享IP加速IP失效;自有域名注册周期以年计 | 共享/租赁基础设施时效短于独占资产 |
| 威胁场景 | 广撒网钓鱼站点批量生灭;APT基础设施长期潜伏、迁移谨慎 | 定向攻击基础设施平均寿命长于无差别攻击 |
| 对抗强度 | 指标被公开披露、被执法处置、被 sinkhole 后,攻击者轮换动机骤增 | 公开曝光显著缩短剩余寿命 |
03 · 衰减建模:生存分析方法
3.1 数据准备
建模的原料是情报库自身的历史:观测起点(指标首次入库时间)、失效事件(探针确认不可解析/不可达的时间)、以及二者的差值——存活时长。必须正确处理右删失(censoring):截至统计时点仍存活的指标,其真实寿命只知其下限,若简单丢弃会造成系统性高估或低估。生存分析方法天然支持删失数据,是本课题推荐的基线方法。
3.2 Kaplan-Meier 生存曲线
对每类IOC分别用Kaplan-Meier估计量绘制生存函数 S(t)(指标存活超过t时长的概率),直接读出两个可运营参数:中位生存期(S(t)=50%对应的时长,可作为有效期默认值)与衰减半衰期(S(t)从任意点下降一半所需时长,用于理解衰减是否匀速)。该方法为非参数方法,不预设分布形态,适合样本量中等、类型分层清晰的情报库起步使用。
3.3 参数化与分层扩展
- 参数化模型:样本充足后可尝试Weibull等分布拟合,获得连续的分位数函数,支持任意置信水平下的有效期取值;
- 多因素分层:按"类型 × 基础设施性质 × 是否已公开曝光"分层建模,代替粗糙的全局均值;层内样本不足时回退到类型级基线;
- 时变协变量:将Sighting命中次数、探针活跃度结果作为时变协变量,使模型可表达"被持续观测命中的指标衰减更慢"这一现象。
04 · 有效期基线的设定方法
有效期不是模型的直接输出,而是运营决策,需要在误杀成本与僵尸成本之间权衡:
- 保守策略(防误杀):有效期取生存曲线的高分位数(如S(t)=80%对应时长),代价是容忍更多僵尸指标;适用于误杀代价高的场景(如自动封禁业务域名)。
- 激进策略(保鲜):取中位生存期或更低分位数,清单新鲜但需配套误杀复活机制(第3页);适用于高吞吐的检测型消费。
- 差异化消费:同一指标对不同消费端可设定不同有效期——检测规则短期激进、封禁清单长期保守,避免"一刀切"。
| IOC类型 | 初始有效期策略 | 策略理由 |
|---|---|---|
| 文件Hash | 长有效期 + 定期复核 | Hash本身不变,风险在于样本退出活跃而非Hash失效 |
| 域名 | 中短有效期,命中可续期 | 生命周期以天—周计,Sighting命中说明仍活跃应续期 |
| IP地址 | 短有效期 + 高频探针 | 云租赁与Fast-flux加速失效,需以探针代替长有效期 |
| URL | 最短有效期 | 落地页路径更换成本最低,时效最敏感 |
| 邮箱/发件人 | 中长有效期 | 注册与弃用相对慢,且误杀正常通信代价高 |
注:表中"长/中/短"为策略档位而非固定数值,具体时长由生存曲线分位数给出,并随运营数据校准。
05 · 置信度—时效性联动机制
有效期与置信度是同一资产的两个估值维度,必须联动而非独立设定:
- 低置信度短时效:初始置信度低的指标(单一来源、无佐证)应配短有效期并进入"观察集",以低成本等待更多证据;
- Sighting续期:消费端命中回传(STIX Sighting对象)是最强的活性证据,应触发有效期顺延——开源平台MISP的官方实现中,每新增一次Sighting,属性的衰减分数即刷新回base_score并重新开始衰减(官方博文《Decaying of Indicators》,2019-09-12),即以Sighting作为属性级活性证据直接驱动衰减计算;
- 曝光降期:指标被公开报告披露后,攻击者轮换概率上升,应对剩余有效期打折;
- 判定反转:信誉源将指标从"恶意"翻转为"干净"时,不是简单删除,而是走降级观察流程并保留痕迹(衔接第3页复活机制与第4页审计)。
标准落点:STIX 2.1 Indicator的valid_until字段承载有效期,confidence字段(0—100整数)承载置信度,Sighting对象以count、first_seen、last_seen记录目击证据;GB/T 36643-2018要求威胁信息携带有效时间与可信度属性。联动机制全部通过这三个既有字段表达,不引入私有扩展。
06 · 模型验证与校准
- 回溯检验:用历史快照回放——以某时点情报库状态为起点,检验模型给出的有效期与后续真实存活记录的一致性,量化高估/低估率。
- 运营双指标:同时跟踪过早退役率(退役后又被Sighting命中的比例,反映误杀)与僵尸滞留率(超期未退役且探针已失效的比例,反映懒惰),二者构成校准的优化目标。
- 校准节奏:模型每季度以最新数据重拟合,基线参数变更须走变更管理流程(第3页)并记录版本,保证审计可还原。
07 · 建模数据工程与质量门槛
模型质量上限由数据质量决定。本课题规定以下数据工程要求(数值门槛为运营经验建议值,非行业强制标准):
- 观测口径统一:所有时间戳采用平台统一授时(UTC存储、本地时区展示);存活时长的起点以"标准化入库时间"为准,而非原始来源的发布时间,避免来源间口径漂移。
- 失效事件定义:仅将"探针连续N次确认不可达/不可解析"计为失效事件(N取值见第3页探针编排),单次探测失败只计为"疑似衰退",防止把网络抖动误计为寿命终点。
- 右删失比例监控:统计样本中删失数据占比;若某层删失比例过高(如超过七成),说明该层失效观测不足,模型输出仅作参考,须回退到规则基线(第4页路线图第一阶段原则)。
- 最小样本量建议:每层至少积累约30条失效事件再启用分层模型(统计学常用的大样本近似经验值);不足时沿用类型级基线并在看板标注"低置信模型"。
- 去重与合并纪律:跨源重复指标合并时以最早入库时间为起点(保守估计寿命),防止合并操作人为拉长存活时长、污染模型。
08 · 与MISP衰减模型的工程对照
MISP是本领域最成熟的参照实现,本课题的统计建模方法与其参数化机制可双向印证。概念映射如下:
| 本课题概念 | MISP衰减模型机制(2.4.116+) | 对应关系说明 |
|---|---|---|
| 有效期valid_until | lifetime(寿命)+ cutoff(截止阈值) | lifetimes决定衰减周期,cutoff为停止计分/视为过期的分数线 |
| 初始置信度 | base score(基础分) | 高分指标从高位开始衰减,低分指标更快跌破cutoff |
| 衰减速度 | decay speed(衰减速率) | 平台内置多档速率,本课题主张由生存曲线统计拟合替代固定档位 |
| Sighting续期 | Sighting机制(独立于衰减模型) | MISP将Sighting作为属性级活性证据,本课题将其显式建模为时变协变量与续期触发器 |
此外,主流数据平台(如Elastic与MISP的官方集成)已将衰减判定纳入数据管道:当某属性被≥50%的适用衰减模型判定为过期时标记为decayed,下游检测查询默认只消费未过期指标——这印证了"衰减判定前置到数据管道"的工程方向,本课题的模型输出可直接以同一形态(过期标记/分数)对接。该集成还针对"衰减分数随时间动态下降、增量拉取无法捕获状态变化"的问题提供了定期全量重取(Refetch)机制(默认24小时间隔重取以刷新decay状态),说明"衰减状态的时效同步"本身就是管道工程的一部分,也侧面印证了本课题第5页"事件传播时延"指标的必要性。
8.1 MISP查询接口的衰减过滤参数
MISP的attribute/restSearch接口原生支持四个与衰减相关的过滤参数(官方博文明确列出),使"排除已过期指标"成为查询语义的自带能力,而非下游自行过滤:
| 参数 | 类型 | 作用 |
|---|---|---|
includeDecayScore | bool | 在返回结果中附带各属性的实时衰减分数与适用模型信息 |
excludeDecayed | bool | 直接过滤掉已被判定为过期(decayed)的属性 |
decayingModel | list | 指定对哪些衰减模型计算分数 |
modelOverrides | dict | 运行时覆写模型参数(如阈值),用于模拟不同策略下的过期效果 |
注:以上参数名与语义以MISP官方博文(2019-09-12)及现行版本文档为准;modelOverrides支持策略模拟,与本课题第7页"A/B测试"机制在工程上天然对应。
本课题与MISP的差异定位:MISP提供可配置的参数化衰减,回答"如何执行衰减";本课题回答"参数应当取什么值"——即以本组织历史存活数据拟合生存曲线,把lifetime、decay speed等参数从经验配置升级为统计估计,并补足MISP未覆盖的跨组织共享生命周期(第5页)与审计合规(第4页)维度。
09 · 常见统计偏差与对策
| 偏差 | 成因 | 对策 |
|---|---|---|
| 幸存者偏差 | 只统计"被持续观测"的指标,短命指标在观测开始前已消失,寿命被高估 | 以入库时间为起点而非首次探测时间;对观测覆盖度打标,低覆盖层降级使用 |
| 观测干预 | "封禁导致不可达"与"自然失效"混淆:指标因我方封禁而沉默,被误判为攻击者弃用 | 区分竞争性失效:封禁类消费端命中即沉默的指标,不计入自然失效样本 |
| 循环续期 | 探针高频探测本身制造"活跃"信号,模型越测越续、永不退役 | 探针结果与Sighting分级计权:探针只作"未死"证据,续期须由Sighting或人工触发 |
| 来源构成漂移 | 情报源结构变化(新增源/停用源)导致混合分布失真 | 按来源分层统计;来源构成重大变化时触发模型重训而非渐进漂移 |
本节参考来源(第2页)
以下均为真实可查的官方规范、项目文档或方法学经典文献。
Kaplan E. L., Meier P. (1958) "Nonparametric Estimation from Incomplete Observations", Journal of the American Statistical Association, 53(282): 457—481 — 生存分析经典方法文献(方法学出处)。
OASIS《STIX Version 2.1》官方规范(Indicator.valid_until、confidence与Sighting对象见规范正文):docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html
MISP官方博文《Decaying of Indicators — An improved and flexible model to expire indicators》(2019-09-12,随MISP 2.4.116发布;含lifetime、decay speed、cutoff、base score参数说明):misp-project.org/2019/09/12/Decaying-Of-Indicators
MISP默认衰减模型仓库(当前默认模型共三个:nids-simple-model、phishing-model、vishing-model):github.com/MISP/misp-decaying-models
GB/T 36643-2018《信息安全技术 网络安全威胁信息格式规范》国家标准全文公开系统:openstd.samr.gov.cn
OpenCTI开源威胁情报平台(原生STIX 2.1数据模型,含指标衰减规则能力):github.com/OpenCTI-Platform/opencti
Elastic官方文档《MISP integration》(ti_misp集成:decay_score字段、≥50%衰减模型判定decayed、IOC过期Transform与Refetch机制):elastic.co/docs/current/integrations/ti_misp