先给结论:把“咨询次数”当成“咨询人数”是这类告警统计里最常见的一种误读。同一个人反复触发同一份检测报告,次数会累加,人数不会。要区分两者,不能只看总数,而要先在原始记录里找到能标识“同一个人”的字段,再看这些字段的去重结果与总数差多少。下面以你手上的一份木马检测工具导出的告警或咨询记录为对象,一步步把它变成可执行的处理方案。
打开那份导出文件,先看它记录的是“事件”还是“会话”。事件口径下,一次扫描命中、一次页面访问、一次人工提交都会各占一行;会话口径下,同一个来源在一段时间内的多次动作可能被合并。两种口径本身都没有错,错的是拿事件总数去回答“有多少人遇到了问题”。
判断方法很直接:看有没有可重复出现的标识列。常见的有来源IP、账号ID、设备指纹、提交表单里填写的联系方式。如果只有时间戳和告警内容,这份记录基本无法还原人数,只能描述“发生了多少次”。这一步的结论决定后面能不能继续做人数分析,如果字段缺失,先补采集,而不是硬算。
假设你手上有这样一份假设记录:某检测工具在过去一段时间内对同一站点报了若干次“疑似木马文件”提醒,其中一部分来自同一个后台账号的重复扫描。仅看提醒总数,会以为问题面在扩大;按账号去重后,可能只有少数几个账号在反复操作。这个例子只用于说明比较方法,不代表任何真实项目结果。
要验证这个判断,按下面的顺序取证据:
这三条证据要一起看。只看IP会误伤共用出口的网络,只看时间会漏掉慢速重复,只看内容会混淆不同人对同一类问题的正常咨询。
具体动作是:在原始记录里新增一列“去重键”,用账号ID优先、其次设备标识、最后才用IP加时间窗组合,然后分别算出总次数和去重后的人数。把这两个数字并列写进你的诊断结论,而不是只报一个。
这个动作的结果会直接影响下一步。如果去重前后差距很大,说明当前告警主要由少数来源反复触发,处理重点应放在收敛重复扫描或修复触发条件上,而不是扩大排查范围;如果差距很小,说明确实有较多不同来源在报告问题,才值得投入人力逐条核实。换句话说,人数与次数的差值本身就是一条分流依据。
两种口径可以同时成立,取决于你要回答的问题。要评估“影响范围”,用人均去重后的人数;要评估“处理工作量”,用次数,因为每一次触发都可能对应一次需要响应的动作。取舍标准不是哪个数字更好看,而是哪个数字对应你接下来要做的决定。
还有一种反常情况需要留意:去重后人数突然归零或骤降。这不能单独证明问题已经解决。合理解释至少有三种——采集字段在某个时间点变了、去重键选错导致误合并、或者工具本身的记录方式调整过。遇到这种情况,先核对字段是否连续,再下结论。
把上面的分析收成可执行的三步:
这样处理之后,你回答的就不再是“总共有多少次提醒”,而是“有多少个不同来源在反复报告,以及这对我下一步的动作意味着什么”。