单层防护不足以承担高后果
别名: defense in depth · redundancy · independent barriers
概念解释
当一次操作失误的后果足够严重——不可逆的数据丢失、人身伤害、大范围系统瘫痪——仅靠一层防护(无论这层防护本身设计得多好)在概率上都不足以把风险降到可接受水平。这是瑞士奶酪模型的一个直接推论:单层防护本身仍带着自己的漏洞,一旦这层被穿透,后面没有第二道拦截,事故发生的概率就直接等于这一层的失效概率,而不是多层失效概率的乘积。高后果场景需要的不是"把这一层做得更好",而是"再加一层独立的防护"。
机制
每一层防护,无论是界面确认、权限校验还是物理联锁,都有自己非零的失效率——设计遗漏、维护滞后、使用场景超出预期,都会让这一层在某些时刻失灵。当只有一层防护时,系统的整体失效概率就约等于这一层的失效概率;当有两层互相独立的防护时,整体失效概率约等于两层失效概率的乘积,数量级上通常小得多。这个乘法关系是"多层比单层可靠得多"的数学来源,也解释了为什么高后果领域(医疗给药、金融清算、工业控制)的通行做法是要求至少两道独立防护,而不是信任某一道防护能做到零失效——零失效在工程上不存在,可以做到的是让失效的联合概率足够小。
边界
多层防护的收益取决于后果的严重程度与发生概率的乘积,对后果轻微、可逆、容易撤销的操作,叠加第二道防护带来的效率损失可能超过它降低的风险,这时单层甚至无防护更合理。层数也不是越多越好:超过某个数量后,新增层如果与已有层共享失效原因,或者本身又引入新的操作负担从而诱发新的显性失效,反而会抵消收益,实际边界会随组织能承受的操作成本而移动。
怎么落地
先按后果的可逆性和严重程度给操作分级,只对分级为高后果的操作强制要求至少两道独立防护,避免不分场景地统一套用"多重确认",那样只会让低风险操作也背上不必要的操作负担。为已有的单层防护评估是否值得补第二层时,优先选择原理不同的检测方式作为第二层(例如已有界面确认的操作,第二层用系统侧的自动校验而不是再加一次人工确认),以避免共因失效抵消收益。验证办法:列出系统里所有标记为"不可逆"或"高后果"的操作,逐条核对当前拦截手段的道数与独立性,凡是只有一道拦截、且这道拦截由用户主动触发(如一次点击确认)的高后果操作,都是需要优先补强的清单项。