第 20 章 安全混沌工程案例
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
安全混沌工程的定义:通过积极主动的实验来识别安全控制故障,从而对系统抵御生产中恶意情况的能力建立信心。1
据跟踪数据泄露事件的隐私权信息交换所(Privacy Rights Clearinghouse)称,安全事件的发生频率以及受影响的消费者记录数量呈指数级增长。未能正确实施基本配置和适当的技术控制是导致安全事故的主要因素。2为了维持安全现状,企业被要求用很少的资源做很多事情。与此同时,我们处理安全工程的方式与系统构建的方式也存在冲突。
,由于复杂的分布式系统的发展威胁到了安全防护的能力,因此必须以不同的方式思考信息安全问题,这一点至关重要。工程实践已经达到了这样一种境界,即我们正在设计的系统是人类心智无法建模的。现在,我们的系统分布广泛,运行时间短暂。云计算、微服务和持续交付(CD)等变革性技术转变都为客户价值带来了新的进步,但反过来也带来了一系列新的未来挑战。这些挑战中最主要的是我们无法了解自己的系统。
如果 ,我们对自己系统的总体运行情况都不甚了解,又怎么可能对同一系统产生良好的安全影响呢?通过有计划的经验实验。本章将混沌工程应用于网络安全领域。我们称之为安全混沌工程(SCE)。
SCE 可作为围绕组织如何构建、运行、检测和保护其系统而发展学习文化的基础。这些实验的目标是将安全实践从主观评估转变为客观衡量。正如在 DevOps 世界中所做的那样,混沌实验使安全团队能够减少 "未知的未知数",并用能够推动安全态势改进的信息取代 "已知的未知数"。
通过有意引入故障模式或其他事件,安全团队可以发现安全系统的仪表化、可观察性和可衡量性到底有多好。团队可以了解安全功能是否像大家假设的那样运行良好,客观地评估能力和弱点,进而稳定前者并消除后者。
SCE 提出,了解这种不确定性的唯一方法就是通过引入受控信号来客观地面对它。如果通过向系统中注入事件来引入客观的受控信号,就有可能衡量团队在不同类型事件中的能力、技术的有效性、运行手册或安全事件流程的一致性等。现在,您能够真正了解事件何时开始,衡量、跟踪和比较不同时期的结果,甚至评估和鼓励不同的团队,以更好地了解攻击准备情况。
现代安全方法
混沌工程 是在可用性事件发生前对其进行检测的唯一成熟的主动机制。根据这一传统,SCE 允许团队在系统弱点破坏业务成果之前主动、安全地发现它们。这需要一种全新的网络安全方法,与快速发展的软件工程世界保持同步。
人为因素与故障
在 网络安全领域,"根本原因 "的归因仍然是一种普遍的文化规范。
你所谓的 "根本原因 "只是你不再继续寻找的地方。
Sydney Dekker3
失败没有单一的根本原因,就像成功没有单一的根本原因一样。根本原因分析 (RCA) 方法会导致不必要且无益的责任分配、对相关工程师的孤立,并最终在整个组织内形成一种恐惧文化。
错误总会发生。传统的 RCA 事后分析方法非但不能快速失败并鼓励实验,反而会削弱对哪些事件和行为可能导致不良事件结果的更深入了解。归根结底,RCA 并没有减少我们产品中安全缺陷的数量或严重程度。我们当前的思维方式和流程使问题变得更糟,而不是更好。
行业的反应状态意味着我们很快就会将 "根本原因 "作为归咎和推卸责任的对象。后见之明的偏见往往会将我们的个人叙述与事实真相混为一谈,而事实真相是我们调查人员永远无法完全了解的客观事实。自省能力差、人为因素知识匮乏以及资源限制的性质进一步助长了这种恶性模式。 ...