狼来了与警报疲劳:误报是怎么把真警报一起拖下水的
每周三下午的消防演习
假设学校规定每周三下午两点拉一次消防警报,全体到操场集合。第一周大家都跑,第二周开始有人慢悠悠走,第四周有人干脆不动,只在窗边看一眼。第八周,真的着火了,警报响起来,教室里的人先看了一眼时间,两点整,周三。
这不是纪律问题。人在面对同一个信号反复出现、又反复没有后果的时候,反应会自然衰减,这个过程在心理学里叫习惯化。消防演习的组织者其实知道这件事,所以规定演习不能太频繁,也不会提前通知具体日期。
但很多做安全的人忘了这一条。
那个喊狼的孩子
《伊索寓言》里有一则很短的故事,中文一般叫《狼来了》,英文是 The Boy Who Cried Wolf,在佩里索引里编号 210。
故事说的是一个放羊的孩子,觉得无聊,就朝村里喊狼来了。村民们拿着农具跑出来,发现没有狼,孩子笑得很开心。过了几天他又喊了一次,村民又跑了一趟,还是没有狼。第三次,狼真的来了,孩子拼命喊,没有人再出来。羊被吃了。
寓言通常被读成一句话:不要撒谎,否则没人信你。这个读法没错,但它只讲了道德,没讲机制。在安全领域,这则寓言还有一层意思:牧童不是突然变成一个骗子的,他是被一个允许他反复试错的机制惯出来的;而村民也不是突然变冷漠的,他们的反应是被一次次无效报警训练成这样的。
忽略警报为什么是理性的
这里要算一笔账。
假设你每天要处理一批告警。响应一条告警的成本是 $C$,包括打断手上的工作、核实、走流程,折算成时间。漏掉一条真告警的损失是 $L$,可能是数据被拿走,也可能是系统被打穿,折算成时间会很大。
真实告警在所有告警里的占比记为 $p$。那么你面对一条告警时,两个选择的期望成本是:
当 $p \cdot L < C$ 时,忽略的期望成本更低。
把这个不等式整理一下,得到一条分界线:
也就是说,当真实告警的比例低于响应成本与漏报损失之比时,忽略在数学上是划算的。
举个具体数字。假设响应一条告警平均要 10 分钟,漏掉一次真事件的损失折算成 1000 分钟。那么分界线是 $10/1000 = 1\%$。只要一百条告警里真的不到一条,那么对个人来说,全部忽略是理性的。
这句话听着不舒服,但它是问题所在:告警系统的设计者把”多报总比漏报好”当成安全的选择,实际上是把成本转嫁给了收警报的人,而收警报的人会用脚投票。
现代场景
钓鱼演练是最典型的例子。很多单位规定每月发一次演练邮件,模板一年不换,标题永远是”您的邮箱容量已满”或者”请查收工资条”。前三个月还有人认真举报,半年之后,员工看一眼发件人就归档,连点都不点开。这时候来一封真的钓鱼邮件,它和演练邮件长得几乎一样,员工按处理演练邮件的习惯处理它。
账号异常提醒是第二个例子。一个异地登录就发一封,出差、开代理、用手机流量都会触发。一个月收十几封之后,这条提醒就变成背景噪音,真正的撞库登录混在里面没人看。
第三个例子在安全运营中心。一个漏扫任务能在半天里刷出几千条告警,同一个漏洞在不同资产上重复报,同一条规则对同一个 IP 反复报。值班的人面对几千条,只能按经验挑几条看。攻击者恰恰知道这一点,所以会挑告警最密集的时间段动手。
怎么把警报的信用修回来
四个办法,按见效速度排。
第一是收敛。同一条规则对同一个目标在时间窗口内只发一次,同一个根因触发的多条告警合并成一条。这一步通常能把量降一个数量级,而且不牺牲真实告警。
第二是分级。把”需要立刻动手”的和”需要知道一下”的分开,前者单独走一个通道,后者进日报。分级的难点不是技术,是定义:什么叫立刻。写清楚触发条件,不要留”视情况而定”。
第三是控制演练的频率和可辨识度。演练不是越多越好,频率高到员工形成条件反射,就等于自己训练员工忽略警情。比较常见的做法是低频、随机日期,并且让演练邮件在内部系统里可标记,事后能区分谁举报了、谁点了。
第四是把误报率当成指标。很多安全团队考核的是”发了多少条告警””覆盖了多少人”,这两个数字越大看着越安全,实际上可能越糟。真正该看的是误报率、平均响应时间、以及被忽略的真告警数量。
这四条都不是新技术,难点在于有人要先停手。回路一旦转起来,减少告警的人反而要承担漏报的责任,所以谁也不愿意做那个先关阀门的人。
图一:警报疲劳的形成回路。每一环单独看都合理,连起来就变成了一个自我加速的过程。
回到村子
牧童的故事里,最后羊被吃了,孩子没事。现实里被吃掉的往往不是羊。
防火墙能挡住病毒,挡不住一个认定自己已经免疫的人。






