能不能连接,取决于你保留的是“检测结论”还是“检测口径”。如果历史曲线记录的是每次扫描的命中数量、风险等级分布或处置状态,而新数据源改变了文件分类方式、命名规则或去重逻辑,那么曲线在切换点会出现台阶,甚至前后不可比。此时要么接受断点,要么用一段重叠期做校准,把旧数据映射到新口径后再连接。
第一种是同一工具内部从旧特征库切到新特征库,或者从本地引擎切到云端查询。第二种是换掉整个扫描工具,把另一款产品的输出接入原有报表。两者对历史曲线的影响完全不同。
判断属于哪一种,最直接的动作是找同一批样本分别用新旧数据源各扫一次。如果两次结果的差异集中在少数类别,说明是覆盖范围变化;如果同一文件的风险等级、路径归属大面积改变,说明是口径变化。这个结果决定下一步是调阈值还是重建报表字段。
看到曲线在切换点跳变时,常见两种解释:一是新数据源确实发现了更多威胁;二是新旧口径不同,把原本不计入的项目算了进来。
区分它们需要三类证据。第一,看跳变是否只出现在切换当天,之后回落到与原趋势相近的水平——这更像口径一次性调整。第二,看新增命中的文件类型和路径是否集中在过去被忽略的区域,例如压缩包、脚本目录或临时文件——这更像覆盖范围扩大。第三,取切换前后各一周的原始明细,按文件哈希对齐,看同一文件的风险标签是否改变。如果标签变了而文件没变,就是口径问题。
假设某团队原来只统计可执行文件,新数据源把宏文档也纳入统计,那么命中总数会上升,但“可执行文件威胁数”这条子曲线可能完全没变。此时如果只看总数曲线,会误判为威胁激增。把子曲线拆出来对比,就能把口径影响和真实变化分开。
做法一:保留断点,在报表中标注切换日期和口径说明。代价是趋势分析需要分段看,不能直接算同比。适合切换频繁、历史数据仅作留档的场景。
做法二:用重叠期做映射。在切换前让新旧数据源并行运行一段固定周期,比如两周,按文件哈希建立旧标签到新标签的对照关系,再回填历史数据。代价是需要额外存储和一次性的映射维护,且映射关系可能随特征库更新而失效。适合监管或审计要求连续曲线的场景。
做法三:只保留可对齐的字段,放弃不可对齐的计数。例如统一保留“已确认恶意文件哈希”和“已处置状态”,放弃按工具自定义的风险名称做趋势。代价是报表粒度变粗,但换来长期可比性。适合多工具混用、不想被单一产品口径绑定的团队。
选择时先问自己:这条曲线接下来要用来做什么决定?如果只是内部周报看趋势,做法一足够;如果要向外部证明处置及时率,做法二的映射成本通常值得付;如果未来还可能再换工具,做法三的字段收窄反而更省事。
无论选哪种做法,先确认新数据源是否提供与旧数据源可对齐的稳定标识。文件哈希、文件路径加修改时间、或者扫描批次编号,都是常见可对齐项。如果新工具只输出汇总数量而不给明细,历史曲线就只能断开,无法回填。
另外确认时间粒度是否一致。旧曲线按天聚合,新数据源按每次扫描任务聚合,直接拼接会出现一天多点或空点。此时需要先统一到同一时间粒度,再决定如何填充空值——是补零还是标记为无数据,两者对趋势线的斜率影响不同。
最后,任何映射或回填动作都要保留原始数据副本。一旦发现映射规则把某类正常文件误标为威胁,可以回溯修正,而不是重新扫描全部历史。具体工具是否支持导出原始明细、是否保留历史任务记录,需要以你实际使用的版本和配置为准进行核对。