直接回答:当恶意代码检测的数据存在延迟时,稳定的观察窗口不应按“固定天数”定义,而应按“延迟分布收敛”定义。具体做法是:先测出该数据源从事件发生到可被稳定读取的最长延迟,再把观察窗口设为该延迟的若干倍,并确认窗口内新增记录已进入平台期。若延迟本身在变化,窗口必须随延迟上移,而不是简单拉长统计周期。
很多团队遇到过一个反常现象:某次恶意代码检测的处置早已完成,隔离、清除、复扫都做了,但后台的“检出数”“受影响主机数”在随后几天仍持续上升。有人据此认为处置失败,有人认为是攻击者在持续投放。两种解释都成立,但指向完全不同的动作。
第一种解释是数据回传延迟:终端或探针在离线、弱网、重启后补传历史事件,导致旧事件在新时间点入库。第二种解释是真实的新增活动:确实有新的样本或新的主机被感染,检出曲线是真实的增量。
如果误判为前者,会漏掉正在扩散的威胁;如果误判为后者,会重复处置已经清理干净的资产,浪费响应资源。
要区分“延迟补传”和“真实新增”,不能只看总数曲线,要看事件的发生时间戳与入库时间戳的差值分布,也就是事件延迟。
一个可核查的证据链是:按天统计“入库时间在窗口内、但发生时间早于处置完成时刻”的记录占比。这个占比高,说明曲线上升主要来自补传;占比低且发生时间持续后移,说明存在真实新增。
假设某次处置在周一完成,随后五天内检出数每天增加约百分之十。可以抽取这五天的新增记录,分别看它们的发生时间分布。若其中绝大多数发生在周一之前,且集中在少数几台曾离线的终端,那么更可能是补传;若这些记录的发生时间逐日向后推移,且涉及此前未出现的主机,则更可能是真实新增。这里的关键不是百分比本身,而是时间戳的先后关系。
稳定观察窗口的定义可以拆成三个可操作条件。
实际操作上,可以先把窗口设为延迟上界的两到三倍,然后逐日检查上述三个条件。一旦连续若干天满足平台期和发生时间后移停止,就可以把该窗口固定下来,作为后续同类事件的默认观察期。
延迟不是恒定值。终端数量增加、网络策略调整、探针版本更新,都可能让补传变慢或变快。因此稳定观察窗口不是一次设定就永久有效,而应定期用新数据重新估算延迟上界。
判断是否需要调整窗口的证据是:原本已进入平台期的曲线,在新一轮事件中重新出现持续上升,且新增记录的发生时间仍集中在旧时段。这说明延迟上界变大了,旧窗口不再覆盖补传长尾。此时应扩大窗口,而不是立刻判定为处置失败。
反过来,如果窗口内新增记录的发生时间已经稳定落在近期,且没有明显的旧时段堆积,就可以适当缩短窗口,减少不必要的等待。
请求量、抓取量或某项统计归零,不能单独证明处置正确,也不能单独证明延迟已经结束。归零可能来自采集端故障、上报通道中断或过滤规则变化,这些都会让数据看起来“干净”,但实际风险仍在。
第三方估算流量、平台报告与站内统计的口径往往不同,延迟特征也不同。用其中任何一个单独还原完整情况都不稳妥。更可靠的做法是保留多来源的时间戳记录,交叉核对发生时间与入库时间,再据此定义和调整观察窗口。
把观察窗口建立在延迟分布收敛之上,而不是固定在某个天数上,才能在数据滞后时既不误判为持续攻击,也不过早宣布处置完成。