第四章 告警规则调整策略:从筛选到优先级设置
做密码改造日志监控,最头疼的不是日志量太大,而是告警太多。我见过一个项目,上线第一天告警系统直接崩了——因为规则没调优,每个错误的密码尝试都发一条短信。运维小哥差点骂娘。
这一章咱们就聊聊告警规则怎么调整。说白了,就是从一堆现有规则里挑出有用的,再补上密码改造特有的规则,最后处理冲突、排好优先级。走一遍这个流程,你的告警系统才能正常干活。
4.1 现有规则的筛选:清理旧债
大部分团队接手时已经有一堆告警规则。我建议先别急着加新规则,花半天时间把现有的捋一遍。
- 去重:同一个场景重复配置多条规则很常见。比如“密码错误超过5次”和“连续登录失败5次”可能是同一件事,只保留一条。
- 去无效:有些规则触发条件写得太宽,比如“每分钟日志量超过1000条”,结果业务高峰期天天告警,成了噪音。直接禁用或调高阈值。
- 合并同类:把针对同一类告警源的规则合并成一条,用条件分组。我在项目里见过一个客户有17条规则覆盖同一台堡垒机的密码错误,后来合并成3条。
筛选后的两种状态:
- 启用:规则有效、能反映真实安全问题。
- 禁用/归档:规则过时、重复、或阈值不合理,暂时保留历史但不触发。
4.2 新增密码相关规则:补缺口
密码改造后,新出现的告警场景必须补上。我自己整理了一份必备清单,你直接参考这张表:
| 规则名称 | 触发条件 | 建议阈值 |
|---|---|---|
| 弱口令使用告警 | 用户使用的密码匹配弱密码字典 | 即时触发 |
| 暴力破解检测 | 同一IP 连续密码错误超过阈值 | 5次/分钟 |
| 凭证泄露告警 | 日志中出现以明文形式出现的密码 | 即时触发 |
| 密码过期未修改 | 用户密码过期后首次登录失败 | 每天汇总一次 |
| 批量重置密码 | 同一管理员短时间内多次修改密码 | 10次/5分钟 |
| 系统默认密码告警 | 检测到使用默认密码(如admin/admin123)登录 | 即时触发 |
经验之谈: 暴破检测别只设频率阈值。我还喜欢加上“错误密码特征”分析——如果错误密码里出现了“test”、“123456”这类常用词,大概率是脚本在跑字典。
4.3 规则冲突处理:别让规则打架
新老规则叠加很容易产生冲突。我遇到过最典型的情况:旧规则说“密码错误>3次触发告警”,新规则说“同一IP错误>5次触发告警”,结果同一个事件发了两条告警。
冲突处理有三种策略:
- 抑制(Suppression):一个告警触发后,相同源短时间内不再重复告警。比如5分钟内同一IP的密码错误只发一次。
- 合并(Aggregation):把多条相关告警合并成一个告警事件,带上聚合计数。我在处理SSH爆破时常用,把几百条告警压缩成一条“检测到来自IP x.x.x.x 的暴破攻击,共尝试xxx次”。
- 覆盖(Override):高优先级的规则直接覆盖低优先级规则的行为。比如全局“密码错误”告警阈值为5次,但针对堡垒机的规则可以覆盖为3次。
注意: 覆盖策略要谨慎使用。一旦覆盖多了,规则逻辑就乱了。我建议只对关键资产(如VPN、核心数据库)使用覆盖,其余走统一阈值。
4.4 规则优先级设置:谁该先被看到
优先级决定了告警的响应方式。我个人习惯把告警分为三级:
- P0(紧急):密码泄露、暴破攻击进行中、系统默认密码被使用。需要立即电话通知。
- P1(高):弱口令使用、批量密码重置、异常登录时间。钉钉/企微群通知,15分钟内响应。
- P2(中):密码过期、单次密码错误。日报汇总,次日处理。
- P3(低):信息类告警,比如“密码策略变更记录”。归档或周报查看。
优先级映射示例:
| 规则 | 优先级 | 通知方式 | 响应时间 |
|---|---|---|---|
| 弱口令告警 | P1 | 群通知 | 15分钟 |
| 暴破检测 | P0 | 电话+群通知 | 即时 |
| 密码过期 | P2 | 日报邮件 | 次日 |
| 默认密码登录 | P0 | 电话+群通知 | 即时 |
优先级设置的核心原则就一条:让人最疲惫的告警优先级最高。你想想,半夜电话响了,肯定是真有攻击,不是系统抽风。
曾经有个甲方把所有密码相关告警都设成P0,结果运维团队一周内就疲劳了,真出事反而没人接电话。后来我帮他们把“密码过期”降成P2,大家才愿意认真看告警。
4.5 调整后的验证:别调完就跑
规则调完一定要验证。我一般做三步:
- 回放测试:用前一周的历史日志跑一遍新规则,看告警数量是否可控,有没有漏报。
- 红蓝对抗:找同事模拟弱口令、暴破、默认密码登录,确认告警能正确触发。
- 静默期观察:上线后前三天只记录不通知,确认规则稳定后再放开通知。
嗯,这个流程走下来,告警系统基本能乖乖干活了。