← 返回 2026-04-21

建模稀疏且突发式漏洞观测活动:在数据受限条件下的预测方法 Modeling Sparse and Bursty Vulnerability Sightings: Forecasting Under Data Constraints

Cedric Bonhomme, Alexandre Dulaunoy 📅 2026-04-17 👍 4 2026-07-13 08:36
Poisson回归 SARIMAX 时间序列预测 漏洞情报 网络安全

针对漏洞观测稀疏突发,比较SARIMAX、Poisson与衰减/Logistic模型的短期预测

前置知识

SARIMAX 模型

带外生变量的季节性自回归滑动平均模型,是 ARIMA 的扩展,通过 (p,d,q)(P,D,Q)_s 参数刻画自相关、差分与季节结构,可附加 exog 协变量。在平稳长序列上表现稳定,但样本极少且含大量零值时易失效。

论文首先尝试的就是 SARIMAX,理解它在小样本稀疏计数上失败的原因,是看懂全文方法选型的起点。

Poisson 回归

针对非负整数计数数据 y 的广义线性模型,假设 $y \sim \mathrm{Poisson}(\lambda)$,对数链接 $\log \lambda = X\beta$。天然保证预测 $\hat{y} \geq 0$,可纳入离散协变量,并能扩展为负二项处理过分散。

当 SARIMAX 失效后,Poisson 成为论文的稳健备选方案,理解其假设有助于把握适用边界。

Logistic 增长与指数衰减

Logistic 函数 $y(t) = L/(1+e^{-k(t-t_0)})$ 刻画 S 型爆发-饱和过程,指数衰减 $y(t) = a e^{-bt} + c$ 刻画单调消退过程。两者用非线性最小二乘 curve_fit 拟合即可外推。

论文为不同生命周期阶段的漏洞提供了互补的轻量预测器,是其自适应策略的核心。

VLAI 严重度评分

作者前期基于 Transformer 的漏洞严重度预测模型 VLAI,在 60 万+真实条目上训练,可从文本描述直接生成类 CVSS 分值。文章将其作为 SARIMAX 的 exog 协变量以检验严重度对观测频次的影响。

VLAI 是论文衔接语义分析与时间序列的关键桥梁,决定了外生变量能否提供有效解释力。

研究动机

在漏洞威胁情报中,sightings(观测事件,如 PoC 发布、扫描器模板上线、Fediverse 讨论等)是反映漏洞被关注或被利用程度的可观测信号,对防御者排定修补优先级至关重要。然而这类信号天然稀疏(多数日子计数为 0)、突发(个别天集中爆发),且对单个 CVE 通常只能积累 10–15 天的数据,最多 30 天。传统的 SARIMAX 类时间序列模型假设序列平稳、有清晰自相关或季节结构,实践中 ARIMA 至少需要 50–100 个观测才能给出可靠估计,面对这种短而稀疏的计数序列常给出负值预测和跨数个量级的极宽置信区间,无法投入运营。EPSS 等系统虽能估计被利用概率,却是面向离散利用结局,不刻画 PoC、扫描器、讨论等连续可见活动随时间的演化。

本文的目标是本文系统评估在数据受限的现实场景下,对单个漏洞 sightings 的短期预测是否可行,并系统比较 SARIMAX、Poisson 回归、指数衰减和 Logistic 增长等多种统计与概率方法的表现;目标是为漏洞情报工作流提炼一套在 10–30 天短序列上仍稳健、可解释、能输出非负预测的轻量化预测路径,同时把作者前作 VLAI 的严重度评分尝试性地作为外生解释变量纳入 SARIMAX,验证语义信息能否带来增量价值。最终希望给出可操作的实践建议,让 Vulnerability-Lookup 等生产系统能在数据稀缺的现实约束下做出现实可用的预测。

与已有工作不同的是,现有研究要么停留在对漏洞风险的事后评估(CVSS、EPSS),要么只在大规模漏洞集合上做长期趋势预测(如 Vuln4Cast),缺少针对单 CVE 在公开情报源上 sightings 的细粒度短期预测方法。本文独特之处在于聚焦每个 CVE 的个体动态、把稀疏突发性作为核心约束、把严重度语义信息与时间序列耦合,并首次系统对比多种经典模型在该数据形态上的失败模式与可行替代,给出数据量-方法适用性的实证边界,而非简单堆叠最新深度学习模型。

核心方法

作者采用「逐模型试错 + 自适应选型」的整体思路:先以最经典的 SARIMAX 切入,叠加 log(x+1) 变换与 VLAI 严重度作为外生变量,识别其在短稀疏序列上的失稳;再切换到 Poisson/负二项等计数专用模型;最后提出基于线性斜率判别漏洞处于上升期还是消退期,相应选择 Logistic 或指数衰减模型,并用 curve_fit 做非线性最小二乘拟合,外推 10 天未来观测。直觉上:漏洞公布后会先经历一段快速增长再趋于衰减或平台化,曲线形状比 ARIMA 的线性自回归更贴合其生命周期。

核心创新不在提出新模型,而在建立「按数据形态选模型」的实证框架:(1) 强调短序列下 SARIMAX 不可靠并量化其失败模式(负值预测、CI 跨数个量级);(2) 引入计数模型 Poisson 保证非负且离散合理;(3) 用 Logistic/指数衰减刻画漏洞生命周期的爆发-饱和-衰减过程;(4) 通过线性斜率判别上升/下降趋势,自适应在 Logistic 与衰减之间切换。与已有方法的本质区别在于,本文不是把 sightings 当作一般时间序列硬套 ARIMA,而是把它当作「事件驱动+生命周期」双重约束下的稀疏计数问题来分层求解。

方法步骤详情

具体流程包括:(1) 数据聚合,按天汇总同一 CVE 在 exploit 数据库、Fediverse 等来源的全部 sightings 计数;(2) 外生特征提取,取当日 VLAI 严重度(披露后近似常量)作为 exog;(3) 对每日计数做 log(x+1) 变换喂给 SARIMAX,并设置 (p,d,q) 与可选季节项;(4) 将同一目标变量送入 Poisson GLM,链接函数为对数,可纳入 days_since_disclosure 等协变量,遇过分散时切换负二项;(5) 对累计观测序列做趋势斜率估计,若斜率显著为正则用 Logistic 模型 $y(t) = L/(1+e^{-k(t-t_0)})$,否则用指数衰减 $y(t) = a e^{-bt} + c$,均通过 scipy.optimize.curve_fit 拟合,初值基于历史最大/中位日选取并设下界为 0;(6) 以未来 10 天为 horizon 外推预测值,并用 np.maximum 截断至非负。整个工作流封装在 TARDISsight 仓库的 decay 模块中。

技术新颖性

技术新颖性集中在三点:其一,把经典严重度预测模型 VLAI 的输出首次作为 SARIMAX 的 exog 引入,并诚实报告其在披露后近似常量、提供的方差信息有限;其二,提出「斜率自适应」启发式,避免在漏洞仍在上升期错误套用衰减模型;其三,把 ARIMA 失败、Poisson 稳健、Logistic 适合爆发期、衰减适合消退期的经验总结成可操作的实践建议清单,并附完整可复现代码与具体 CVE 案例(CVE-2025-61932、CVE-2025-59287、CVE-2022-26134)。但方法层面无新算法,主要是工程化经验与对比分析。

实验结果

实验在三个 CVE 上系统对比四种模型后得出几条核心结论:(1) SARIMAX 在 10–15 天训练长度下几乎不可用,置信区间常常跨多个数量级,预测值会出现负数;去掉季节项并加 log(x+1) 变换与 VLAI exog 后略有改善,但仍未达可用门槛,作者实测认为需 50–100 个观测才能稳定估计。(2) Poisson 回归天然保证非负预测,且对周聚合数据更稳定;以 CVE-2025-61932 与 CVE-2025-59287 为例,其结果与指数衰减在 sightings 充分时高度可比,但 Poisson 难以捕捉突然断流。(3) Logistic 模型在长期观测的 CVE-2022-26134(数月到数年,源自 Shadowserver)上对突发冲击较稳健,适合「burst-and-fade」形态;指数衰减则更适合已过峰值、单调消退的漏洞。(4) 自适应策略通过线性斜率在 CVE-2025-59287 上正确选中了指数衰减,避免了 Poisson 高估。(5) VLAI 严重度作为外生变量在实验中对预测改善有限,作者归因于披露后严重度近似常量,方差不足。

SARIMAX with Log-transform counts without seasonal components
Figure 2: SARIMAX with Log-transform counts without seasonal components
Poisson regression
Figure 3: Poisson regression
Exponential decay
Figure 4: Exponential decay
Logistic model
Figure 5: Logistic model
Logistic model with sightings up to 2025-11-01
Figure 6: Logistic model with sightings up to 2025-11-01
SARIMAX with Log-transform counts without seasonal components
Figure 8: SARIMAX with Log-transform counts without seasonal components
Poisson regression
Figure 9: Poisson regression
Poisson regression
Figure 10: Poisson regression
Exponential decay
Figure 11: Exponential decay
Poisson regression
Figure 13: Poisson regression
Logistic model
Figure 14: Logistic model
查看结构化数据
任务指标本文基线提升
CVE-2025-61932 sightings 短期预测 预测稳定性(无非负截断、CI 跨度) SARIMAX 产生跨量级 CI 与负值;Poisson/指数衰减给出非负稳定预测;Logistic 在截断至 2025-11-01 后的回测中能反映整体走势但局部偏高 未明确给出量化对照基准,主要为方法间相对比较 从 SARIMAX 到 Poisson/衰减/Logistic,非负性、CI 合理性显著改善,但缺乏统一量化指标
CVE-2025-59287 sightings 短期预测 对突然断流的敏感度 Poisson 难以及时反映 sightings 骤降;指数衰减贴合实际;自适应选择正确切到衰减 SARIMAX 同样给出极宽 CI 与可疑外推 自适应策略相对单一 Poisson 提升了趋势拐点处的合理度
CVE-2022-26134 长序列 sightings 预测 对突发冲击的鲁棒性 Logistic 模型对突发活动较不敏感,长期预测稳定;指数衰减因数据已过峰值不再适用 无 SARIMAX 在该长序列上的对比数字 Logistic 在数月到年尺度上展现抗突发优势

局限与改进

作者明确承认的局限包括:训练序列过短(10–30 天/CVE),统计模型普遍处于能力下限;突发尖峰会主导拟合使后续外推失真;SARIMAX 易产生负值预测与爆炸式 CI;VLAI 严重度在披露后近似常量,作为 exog 提供的方差不足,系数难以稳定估计;当前未区分 sightings 类型(Seen/Confirmed/Exploited),统一按等价处理。本人观察到的额外问题:(1) 实验只有三个 CVE,结论的统计代表性有限;(2) 缺乏 MAE/RMSE/Coverage 等统一量化指标,方法间比较偏定性;(3) 没有把 SARIMAX 在 50+ 观测的 Shadowserver 长序列上的表现真正跑出来以验证「足够数据即可用」的说法;(4) 自适应策略仅基于线性斜率,未考虑显著性检验与季节性。(5) 缺乏对未见 C 类别(极低频漏洞)的零样本讨论。

独立分析的弱点

独立分析可见几个值得改进的弱点:(1) 方法选型高度依赖人工经验与线性斜率判别,对噪声敏感,建议引入统计显著性检验或贝叶斯模型平均;改进方向是用 stacking 或在线学习做权重融合。(2) 仅用三个 CVE 作为案例,未在大规模数据集上做交叉验证,结论的普适性存疑,建议在数百 CVE 上做留一交叉验证并报告 MAE/RMSE/Coverage。(3) VLAI exog 实际贡献微弱却被保留为方法组成,建议要么用 VLAI 的动态变化率作为差分特征,要么直接放弃,改用 days_since_disclosure、是否被 CISA KEV 收录等更具方差的协变量。(4) 缺失日期未做显式处理,可能引入系统性偏差,建议建立缺失模式分类并做插补或指示变量回归。(5) 自适应策略只选两种模型,可扩展为含 SARIMAX、ETS、Prophet 的模型池并以 AIC/BIC 自动择一。(6) 缺乏在线评估与回测协议,难以判断模型在新数据下的真实衰减情况。

未来方向

作者提出的方向包括:实时更新预测模块(每日基于新 sightings 滚动再拟合);自动识别 sightings 异常尖峰与缺失日以辅助选型;区分 Seen/Confirmed/Exploited 等 sightings 子类型并结合 VLAI 严重度以建立与真实利用行为的关联。基于本文成果可延伸的方向有:(1) 引入图神经网络把漏洞间引用、相似性作为额外特征缓解单 CVE 数据稀疏;(2) 用贝叶斯结构时间序列(BSTS)显式刻画缺失与突发的生成过程;(3) 与 EPSS 结合,把 sightings 预测作为 EPSS 的动态更新信号;(4) 在 Shadowserver 等长序列源上系统评估 SARIMAX 的可恢复性边界,给出数据量-性能曲线;(5) 把模型部署成 Vulnerability-Lookup 的实时 API 并做 A/B 评估。

复现评估

复现性较好:作者开源了完整代码 TARDISsight 仓库(github.com/vulnerability-lookup/TARDISsight),并明确锁定复现 commit 为 8678ab6a4e7a036eb578f1310b42aa3a22c686ea;实验基于真实漏洞 sightings 数据(多源:exploit 数据库、Fediverse、Shadowserver 等),数据获取方式在 Vulnerability-Lookup 平台公开;涉及三类 CVE 案例数据完全公开可下载。算力需求低:SARIMAX、Poisson GLM、curve_fit 在 CPU 单机即可秒级完成,唯一重资源步骤是 VLAI 模型再训练,约需 7 小时(GPU)。复现难度中等偏低,主要门槛是熟悉 statsmodels、scipy.optimize.curve_fit 与 VLAI 接口,并按作者建议对每个 CVE 准备至少 10–15 天观测序列。需注意作者未提供统一量化评估脚本,方法间对比需自行实现 MAE/CI coverage 等指标。