2、根因分析流程:PDCA循环、5W2H方法、鱼骨图基础概念介绍
我个人一直认为,做安全事件复盘,最怕的就是“头痛医头,脚痛医脚”。你会发现,很多密钥丢失的问题,处理了几次之后,还是会在另一个类似的地方冒出来。为什么会这样?因为没找到根因,只是把表面症状给压下去了。
根因分析,说白了就是一套系统化找病根的方法。今天我们要讲三个最基础、也最实用的工具:PDCA循环、5W2H方法和鱼骨图。这三招配合着用,基本能覆盖80%的日常分析场景。
2.1 Pdca循环:让改进转起来
做根因分析不是一次性的。我见过很多团队,查完问题写个报告就完了,下个月同类事故又来了。这就是没有形成闭环。PDCA就是这个闭环的骨架。
| 阶段 | 英文 | 在密钥丢失分析中的含义 |
|---|---|---|
| P - 计划 | Plan | 定义问题范围,建立假设,制定分析计划。比如:确定丢失的密钥是哪一个,涉及哪些系统。 |
| D - 执行 | Do | 按照计划收集数据、分析日志、访谈相关人员。 |
| C - 检查 | Check | 验证分析出的根因是否准确,临时措施是否有效。 |
| A - 处理 | Act | 制定长期改进措施,并标准化。如果问题没解决,就进入下一个PDCA循环。 |
我记得在有一次处理一个大型密钥管理系统的配置错误时,第一次PDCA循环只找到了运维人员敲错命令的表面原因。但通过第二轮的PDCA,才最终发现是堡垒机的权限审批流程存在缺陷。所以,别想着一次就能搞定所有问题,PDCA的精髓在于持续迭代。
2.2 5W2H方法:问对问题才能找到答案
很多人在分析的时候,上来就问“为什么丢了?”。这个问题太大了,根本没法回答。5W2H就是帮你把大问题拆成小的、可回答的具体问题。
我们来看看这七个维度在密钥丢失场景下怎么问:
- What(什么事):丢失了哪个具体的密钥?它的用途是什么?(例如:生产环境RDS数据库主密钥)
- Why(为什么):为什么会丢失?是因为误删除、过期未更新、还是泄露了?
- Where(在哪里):密钥在哪个环节丢失的?是在存储库、Key Vault、还是某个配置文件里?
- When(什么时间):精确到时间戳,丢失事件第一次被发现是什么时候?最近一次确认密钥可用是什么时候?
- Who(谁涉及的):最后操作这个密钥的人或系统是谁?谁有当前权限?
- How(怎么发生的):通过什么操作或路径导致的丢失?是执行了什么脚本、什么API调用?
- How much(量级/影响):影响了多少业务?恢复需要多少工时?
你想想看,当你能把这七个问题都回答清楚,根因其实就已经浮出水面了。我曾经处理过一个丢库事故,团队花了三天没找到原因。我过去后,就用5W2H把范围卡死,最后发现是“How”这个环节出了问题——一个运维脚本在处理日志时,错误地把密钥备份文件当垃圾清理了。
2.3 鱼骨图:把各种可能的原因一网打尽
当我们把5W2H的问题问清楚了,通常也只知道一些零散的事实。鱼骨图(也叫因果图或石川图)的作用,就是把这些零散事实系统化地组织起来,避免遗漏。
鱼头是我们要分析的结果,比如“密钥丢失”。沿着鱼骨,我们可以把人、机、料、法、环、测这几个维度展开。
- Man(人员):操作失误、权限滥用、社工攻击
- Machine(系统/工具):密钥管理系统Bug、备份故障、平台兼容性问题
- Material(数据/介质):密钥本身丢失、凭证泄露、数据未加密
- Method(流程/方法):密钥轮换流程缺失、审批流程不严谨、变更管理混乱
- Environment(环境):配置环境差异、网络攻击、机房灾难
- Measurement(监控/度量):日志缺失、告警无效、审计空白
嗯,这里要注意。在画鱼骨图的时候,不要讨论解决方案。先把所有可能的原因都列出来,用头脑风暴的方式。我在指导团队做复盘时,经常需要提醒一句:“先别管对错,先列出来。” 等你画完了,再去做逻辑筛选和数据验证。
最后,我们用一个框架图来把这三种方法的关系串起来。它们不是孤立的,而是一个迭代的分析闭环:用5W2H收集信息,用鱼骨图梳理可能性,用PDCA推动验证和改进。