先给结论:当异常只打击高价值客户时,总量指标几乎必然把它稀释掉,正确做法是把检测结果按客户价值分层重算,而不是继续盯整体告警数或整体拦截率。分层之后你通常会看到两种完全不同的图景,接下来要做的不是马上修,而是先分清属于哪一种。
高价值客户在数量上往往只占很小一部分。假设某站点有一万个活跃会话,其中真正贡献主要收入的两百个被单独标记。如果这两百个会话里有一半遇到登录风控误拦,整体失败率只上升一个百分点,任何按全站汇总的仪表盘都不会跳红。反过来,攻击者如果只针对这批账户做撞库或会话劫持,全站拦截量甚至可能下降,因为攻击面变窄了。
这就是总量掩盖的本质:分母太大,分子太小。网站安全检测如果只输出“今日拦截 N 次、拦截率 X%”这类聚合数字,就等于默认所有请求价值相同,而这个假设在真实业务里通常不成立。
看到高价值客户异常、总量却平稳时,先别急着改规则。至少有两种成立条件不同的解释。
两者的处理方向相反。前者要放松或细化规则,后者要收紧并加针对性监控。如果只凭“高价值客户出问题了”就动手,很可能把真正的攻击当成误拦放过去。
关键不是看总量,而是看分层后的时间线和对照。
这里要提醒一点:第三方估算流量、搜索引擎报告和站内统计的口径本来就不同,三者对不上不代表谁在说谎。判断时以站内可复现的日志为准,外部数据只作旁证。
假设某会员制服务有五千个付费账户,其中三百个属于续费最久的一档。某天这三百个账户里有四十个反馈登录失败,而全站登录失败率只从百分之二升到百分之二点三。按总量看,这是噪声;按分层看,这一档的失败率从百分之二跳到了百分之十三。
此时先做的动作是:把这四十个账户的失败日志单独导出,和另外三百个普通账户做对照。如果普通账户同期失败率没变,且失败集中在某个新上线的设备校验规则上,那么结论偏向解释一,下一步是调整该规则对这一档的适用条件。如果普通账户同期也出现来源分散的失败,那就要按解释二处理,先冻结可疑会话再排查。
临时排查只能解决一次。要让高价值客户的异常不再被掩盖,需要把分层变成网站安全检测的固定输出:按客户价值或账户等级分组统计拦截率、失败率和恢复时长,并给每组设独立的告警阈值,而不是共用一条全站红线。
同时保留原始日志的关联字段,确保任何时候都能从一条聚合告警下钻到具体账户和具体请求。这样做的结果不是让告警变多,而是让真正需要立刻处理的异常不再淹没在总量里,下一步的修复动作也有明确指向。