越来越多的公司采用 混沌工程,这不仅为团队配备了一系列强大的仪表技术和工具,而且开始转变安全组织的心态。
“混沌工程是一门对系统进行实验的学科,目的是建立对系统在生产环境中承受动荡条件的能力的信心。”
—混沌工程原则
包括首席信息安全官 (CISO) 在内的安全领导者面临着持续证明其在公司价值流中的作用的挑战,以此作为改进安全的一部分。在这样做时,越来越多的安全组织正在转向更“应用安全模式”,这导致许多人重新思考我们的传统实践并质疑它们在当今高速、软件驱动的世界中的有效性。
以下是混沌工程正变得对当今安全领导者不可或缺的五个原因。
1. 混沌工程使业务连续性计划和灾难恢复成为现实。
业务连续性计划 (BCP) 和灾难恢复 (DR) 的概念已经存在几十年了,目的是确保企业能够在不可预见的事件或故障(例如自然灾害或紧急情况)期间继续运营。
BCP 和 DR 考虑了可能中断业务运营的四个因素
- 设施或区域的丧失
- 技术的丧失
- 资源的丧失
- 关键第三方供应商的丧失
随着世界继续向云端迈进,BCP 和 DR 呈现出一系列不同的机遇和挑战。许多公司以某种方式设置测试,以退回到某种或可预测的结果。他们基本上控制测试以确保合理或期望的结果。然而在现实中,当停机、事件和灾难发生时,它们从来都不是那么体贴的,实际上几乎总是超出规定练习的范围。
混沌工程,由于其具有挑衅性的名称,经常让仍在学习它的人们感到震惊。其目标不是在系统中制造混乱或引入故障,而是主动识别、理解和修复故障,以免它们影响业务运营。重要的是要记住,在停机或事件期间,DR 很少在我们的控制之下。在我们正确且客观地测试灾难或停机之前,就认为我们可以知道它们的结果,这永远无法满足业务的需求。我们采用一种关于我们应该如何进行练习的心态,而不是利用它们来围绕我们的系统和安全功能构建学习文化。
在当今快速发展的世界中,几乎每种产品、服务和公司都围绕技术展开。我们严重依赖这些服务在我们需要时可用。我们构建、运营和保护这些技术的方式是复杂的。产品工程团队可以交付数千个新功能、功能和修复程序,这归功于更好的交付模型,例如敏捷、DevOps 和云计算。我们的 BCP/DR 实践如何演变以满足这些新交付模型的需求?
在软件驱动一切的世界中,半年或年度合规性检查清单或桌面演练是不够的。我们构建关键产品和服务的方式变得非常具有挑战性,因为我们从未构建过如此大规模、松散耦合、快速变化、价值交付或快速上市的系统。这些复杂的自适应系统包含价值,但我们必须开始以不同的方式思考像 BCP/DR 这样的过时方法,才能掌握问题。
混沌工程的最佳特性之一是,它为业务连续性和 DR 提供了更实证的方法,这与我们面临的挑战相关。站点可靠性工程 (SRE) 实践和混沌工程更注重影响业务运营连续性的真实世界事件(而不是极端且极不可能发生的灾难场景),并专注于每天影响业务连续性和恢复的微事件类型,例如关键微服务中的数据损坏、缺乏弹性的基础设施和脆弱的网络连接。混沌工程通过其基于实验的方法,帮助组织优雅地进入围绕系统行为的学习文化。
2. 混沌工程可以提高对风险的理解。
风险是业务运营不可或缺的组成部分,正确地驾驭风险可以创造成功的结果。安全活动(例如审计调查、漏洞扫描、威胁建模和事件响应)通过提供反馈循环来确定风险是否持久、未受管理或实质性。根据既定标准评估已识别的风险,以提供严重程度的衡量标准。该衡量标准以及对风险的全面审查,使公司能够将风险编入其“风险登记册”,并采取措施来补救或管理风险。
这些活动有什么共同点?它们都是被动的,并且通常在故障发生后很久才显现出来。此外,它们中的大多数都被人员、技术和流程层层抽象,越来越远离理解出错的背景。可能最了解系统的人是那些负责日常构建和运营系统的人。上述活动通常由安全人员执行,并且通常需要“专家系统”或“专有领域知识”。无论使用何种系统、工具和审查流程,事实仍然是,在这种模式下,安全几乎总是从抽象的背景意识中运作。
由于混沌工程是一种实验方法,而不是以测试为中心的方法,因此它提供了在同一实验中主动检测系统及其安全措施的好处。最终,一个系统的所有组件,包括其安全性和负责它的人员,都需要协同优化地运行才能具有弹性。没有系统是天生安全的;是人类使它们变得安全。混沌工程的目标不仅仅是验证我们已经知道的真假,而是为了获得新的信息和见解。
让我们考虑一下主动停机或安全事件是如何开始的,发生时我们的心态,以及我们使用的安全措施。在主动事件或停机期间,极少有人会进行全面而深入的分析来确定事件发生前安全措施的有效性。相反,主要重点是恢复服务的运营完整性和健康状况,以重建业务运营的连续性。
- 预防措施: 在预防性安全措施失效之前,您不会知道它们有多有效,而到那时,一切都为时已晚。
- 检测措施: 检测措施(或其他系统可观察性功能,如监控、警报、日志记录和跟踪)是良好事件管理的基石,前提是它们得到持续评估和改进。检测措施的许多问题之一是,在主动作战室中,没有时间和能力梳理错误日志和警报数据,并评估每个条目的质量和有效性。大多数时候,尤其是在软件中,我们很幸运能够检测到任何东西。此外,我们几乎从不考虑检测点(这导致我们启动作战室)可能是在我们缺乏可见性和意识的其他系统问题领域中发生了级联下游故障。最后,当很难将甚至稍微相似的主观安全事件相互比较时,几乎不可能确定我们的工具、团队、技能、资源配置等的有效性。
- 纠正性变更: 在主动事件作战室中,最令人惊讶的行为之一是,您经常会观察到系统在识别出每个人“认为”的问题后几小时或几分钟内发生重大或关键变更。讽刺的是(根据我们的经验),这些变更本来可以防止问题的发生。当事件响应团队和随叫随到的工程师不了解进行变更所需的背景时,他们应该在最后一分钟的紧急情况下进行重大变更吗?关键是,当发生停机时,我们经常在错误的情况下做正确的事情。混沌工程可以成为一种主动的衡量工具,帮助团队进一步了解在应该进行这些类型的变更时没有进行变更的后果,而不会影响客户。
CISO 可以使用混沌工程,尤其是 游戏日演练,作为邀请他们的工程团队就数据驱动的安全风险管理进行跨学科讨论的机会。这些技术还有助于建立同理心,消除障碍,并提高团队工作如何为业务的安全性和安全性做出贡献的透明度。
3. 混沌工程将安全工程和自动化驱动回价值流。
作为混沌工程之旅的一部分,对于安全团队来说,积极参与混沌工程实验和游戏日演练可能非常有价值。混沌工程作为一门学科的一部分,是为了在心理上对齐我们认为系统如何工作与系统在现实中如何运行。这些活动是打破障碍并促进对系统如何发生故障的共同理解的绝佳机会。作为工程师,我们倾向于像对待软件一样简化和抽象人类。也就是说,我们经常对彼此的动机、偏见、意图以及彼此之间的同理心产生错误的表示。
此外,创建和执行混沌实验可以帮助安全团队识别其他缺陷和问题,这些缺陷和问题可以为工程团队提供更好的背景和明确定义的问题来解决。安全组织内不同的成员和角色应参与这些演练,因为从不同角色获得感知和视角可以通过改进背景、从失败中学习以及创建透明的工作关系来增加指数价值。
最后,安全团队将有机会更好地了解他们保护的东西,并识别可以切实地贡献回价值流的领域。混沌工程不仅仅是另一种流程方法或工具集;它是一种思维模式的转变。
4. 混沌工程改进事件响应。
尽管有良好的意图和过去的成功,但安全事件的性质是主观的。无论您花费多少或采取何种预防措施,事件仍然会发生。我们永远无法事先确切知道它将如何发生、谁将执行、何时执行或他们为什么这样做。这些信息只能在事后发现。
如果在没有主动事件且您不在 24x7 作战室的情况下,有可能确定您为这些类型的情况做好了多大的准备呢?当很难隔离和比较不同的事件时,您如何知道您是否真的在事件响应方面做得更好?当很难比较相似的事件时,很难确定团队技能、程序和工具的有效性。
我们认为理解这个主观世界的唯一方法是通过引入受控信号来客观地面对它。如果您要通过将事件注入程序来引入客观的受控信号,您可以衡量团队在不同类型事件中的表现、技术的有效性、运行手册的对齐程度、安全事件流程的良好程度等等。您可以了解事件何时开始,并跨不同时期甚至不同团队衡量、跟踪和比较结果,以更好地了解攻击准备情况。
据我们所知,混沌工程是在可用性和安全事件发生之前检测它们的唯一主动机制。安全混沌工程允许团队在业务成果受到干扰之前主动、安全地发现系统弱点。测试和实验是不同的:测试是对您已经知道的东西(例如 CVE、攻击模式或签名)的验证或确认,而实验旨在获得以前未知的信息。
现实情况是,人们在停机或事件期间的运作方式不同。此外,当团队不忙于救火时,他们更有可能对导致故障的原因保持开放的心态。在心理关注点和运营势头上存在根本性的转变,这促使团队扑灭大火,而不是彻底检查导致事件开始的原因。
5. 混沌工程改进应用程序安全日志记录和监控。
许多组织正在安全日志记录和监控平台上试验安全混沌实验。他们的重点主要集中在提高安全日志记录和监控工具收集、利用和警报的信息的价值。仅仅因为您正在收集数据,并不意味着数据有价值。价值的真正判断标准是在事件或攻击发生时具有正确的可见性和意识级别。使用安全混沌实验,如下例所示,您可以主动发现可见性方面的差距,提高日志质量,并增加攻击面背景。
安全混沌实验
- 假设: “如果我们关键业务应用程序中的一个微服务停止日志记录,那么我们将立即检测到该事件,并在 30 分钟窗口内实例化日志流。”
- 暂停并反思: 在此实验中,诚实地问问自己,当单个微服务停止日志记录时,您是否能够立即检测到。根据我们的经验,大多数组织会通过日志量不足来检测到该事件,但单个微服务会导致明显的日志量不足阈值吗?
- 为什么这如此重要? 当日志事件停止报告时,在许多情况下,这可能是攻击的早期预警信号。此外,即使服务由于系统故障或配置错误而停止日志记录,事实仍然是我们现在对该服务的运营健康状况一无所知。任何人要防御他们看不到的东西都很困难。
结论
领导安全组织的 CISO 正在努力保护日益复杂和分布式的价值流,但传统方法越来越不足。混沌工程提供了一种战略性、战术性和实践性的方法来测试企业安全计划的弹性。从 BCP 和 DR,到重新思考您的风险管理计划,推动自动化,改进事件响应,以及改进应用程序日志记录和监控,混沌工程原则帮助 CISO 适应不断变化的环境。通过故意将故障注入到他们的安全计划中,混沌工程悖论使组织变得更难被故障击垮;因此,混沌工程正成为当今复杂环境中不可或缺的商品。
1 条评论