当网站恶意代码检测的日志、扫描结果和第三方报告出现缺口,且缺口无法通过补采数据填平时,结论不应被撤回,而应被降级为带条件的判断:明确哪些页面、哪些时间窗、哪些感染路径仍然成立,哪些范围无法证实。这样做的目的是让后续处置有边界,而不是把不确定性转嫁给执行者。
在网站恶意代码检测中,缺口通常来自两个方向。第一类是数据本身不存在或已丢失,例如服务器在发现异常前被重装、日志轮转周期短于感染潜伏期、访问日志未开启或只保留了聚合计数。第二类是数据存在,但口径不一致,例如第三方估算的流量、搜索引擎报告中的抓取异常、站内统计中的独立访客,三者的统计对象和过滤规则不同,直接相减或对齐会制造虚假缺口。
这两类缺口对结论的影响不同。数据没留下,意味着无法回溯感染时间线,结论只能限定在“当前仍可观测的样本”上;口径对不上,意味着缺口本身可能是统计假象,需要先统一比较对象再判断是否真的缺失。
面对同一组不完整数据,常见的两种解释是:
两种解释可以同时部分成立,但表达结论时必须说明当前证据更支持哪一种,以及另一种在什么条件下会被推翻。
下面给出一个假设例子,说明如何用有限数据缩小结论范围。假设某站在三个页面发现注入脚本,服务器访问日志只保留了最近七天,而可疑上传行为可能发生在更早。此时无法补齐更早的日志,但可以执行以下动作:
这个动作的结果会直接影响下一步:如果共同依赖唯一且可修复,处置可以集中在插件和上传入口;如果共同依赖不唯一,则结论只能限定在“已观测到的样本”,并需要扩大静态文件比对范围,而不是宣称全站安全。
当统计缺口无法补齐时,一份可用的网站恶意代码检测结论至少应包含以下限定:
这些限定不是免责声明,而是让后续修复、复核和监测有明确的起点。缺少时间限定,修复后无法判断是否复发;缺少范围限定,扩大排查会失去优先级;缺少证据限定,不同报告之间无法对齐。
结论的适用范围确定后,下一步动作应写成可验证的条件句,而不是笼统的“继续观察”。例如:若在新增上传目录中发现同类特征文件,则将适用范围从当前页面扩展到该目录;若连续一段观测周期内未再出现同类请求特征,则维持当前范围,但不撤销时间限定。这样表达的好处是,执行者知道在什么新证据出现时应该修改结论,而不是把当前结论当成永久判断。
需要强调的是,请求量、抓取量或某项统计归零,不能单独证明感染已被清除。归零还可能来自日志采集中断、规则误过滤、访问来源变化或统计口径调整。只有在排除这些合理解释后,归零才能作为支持性证据之一,而不是唯一依据。