平安混沌工程(SCE):通过被动的试验来辨认安全控制上的故障,以建设对系统能力的信念,以抵挡生产中的歹意场景。
前言
PrivacyRights 非营利组织是一家追踪数据泄露的机构,据该机构称,安全事件产生的频率和受影响的用户数量正在呈指数级增长。
始终以来,咱们解决平安的形式和零碎构建的形式存在着抵触。组织往往受制于工夫、资金和人手的限度,无奈提供短缺的资源来维持平安现状,谬误配置以及不当的技术管制,是导致一系列安全事件的因素。
在向简单分布式系统迈进的过程中,这威逼到了平安能力的协同倒退,因而必须从不同的角度来思考信息安全问题。
咱们当初面临这个囧境,即无奈预测本人设计的零碎行为。当初,云计算、微服务和继续交付等变革性技术,都给用户价值方面带来了新的提高,但反过来也带来了一系列新的将来挑战。
这些挑战中最次要的是咱们无奈了解咱们本人的零碎。如果咱们对系统行为理解不多,那么如何可能给零碎带来良好的安全性呢?
答案是通过有打算的、教训领导的试验,将混沌工程学利用于平安畛域。咱们称之为平安混沌工程(SCE)。
一、红紫队演习的问题
SCE 填补了当代平安办法中的许多空白,如红紫队演习等。红紫队演习或其余平安测试方法依然很有价值,然而面临上述提到的囧境,所有都不同了。
与独自施行相比,与 SCE 的联合提供了更主观、更被动的反馈机制,为零碎应答不良事件做好筹备。
红队起源于美国武装部队,可形容为一种“反抗的办法,以最实在的形式模拟攻击者的行为和技术”。
企业中常见的红队有两种模式,别离是白客攻打和浸透测试。在这些演习中,蓝队是红队的防守队伍。
紫队是红队演习的一种进化,“紫”字反映了红蓝组队的混合。
这些演习的指标是防御和防守战术的合作,以进步单方演习的有效性。这样做的目标是减少透明度,并为平安机构提供一个渠道,使其理解其筹备工作是否无效。
1.1 红队的问题
红队的问题包含以下几点:
1)这些后果报告如果齐全共享,则很少倡议可采取的后续口头,也没有向工程团队提供倡议,如何调整扭转优先级。
2)次要关注歹意攻击者和不当利用,而不是更常见的系统漏洞。
3)红队因击败对方蓝队而不是造成共识而受到激励:
- 红队的胜利经常看起来像一个微小的、可怕的报告,表明存在很大且软弱的攻击面。
- 蓝队的胜利通常看起来像是收回了正确的警报,表明预防控制措施全副起效。
4)对于蓝队来说,许多警报可能被误会为探测能力正在无效运行,而实际上状况可能比这要简单得多。
1.2 紫队的问题
紫队的问题包含以下几点:
1)进行紫队练习须要大量资源,这意味着:
- 仅解决了业务组合中一小部分应用程序的问题。
- 练习不常常进行,通常每年或每月进行一次。
2)生成的人工制品不足一种机制,以从新利用过来的发现,实现回归剖析的目标。
二、SCE 带来的益处
SCE 解决了这些问题,并提供了一些益处,包含:
- SCE 对系统有更全面的关注。次要的指标不是坑骗其余人员或测试警报;相同,这是为了被动辨认由简单分布式系统所引起的系统安全故障,并建设信念。
- SCE 利用简略的隔离和受控试验,而不是简单的攻打链。当同时进行大量更改时,很难管制爆炸半径,也难以将信号与噪声辨别开。SCE 大大降低了噪声。
- SCE 提供了一种合作式学习体验,其重点是构建更具韧性的零碎,而不是对事件做出反馈。
SCE 不肯定与红队或紫队的发现或用意竞争。然而,SCE 的确减少了一层有效性、透明度和可重复性,能够显著进步这些实际的价值。
红队和紫队的练习,根本无法跟上 CI/CD 和简单分布式环境的步调。当初,软件工程团队在 24 小时内会交付多个产品更新。在红队或紫队练习中取得的后果,其相关性很快就会升高,因为在此期间零碎可能曾经产生了基本的变动。
三、SCE 的理论案例: ChaoSlingr
ChaoSlingr 是由联结衰弱团体 (UHG) 的亚伦·里纳特领导创立的平安混沌试验和报告框架。
这是第一个与之相干的开源软件,展现了混沌工程利用于网络安全的价值。以开放源码的模式设计、引入和公布,目标是提供一个用于编写平安混沌工程试验的简化框架。
联结衰弱团体 (UHG) 的一项试验,波及谬误配置端口。该试验的假如是防火墙应该检测并阻止谬误配置的端口,并且应为平安团队记录该事件。
有一半的工夫,防火墙做到了;另一半工夫,防火墙无奈检测到并阻止它。尽管商用的云配置工具始终能够捕捉并阻止它。可怜的是,该工具没有对其进行记录,平安团队无奈确定事件产生的地位。
设想一下,你在那个团队中,这个发现会波动你对平安的根本意识。ChaoSlingr 的力量在于,试验证实了你的假如是否正确,不需猜想。
该框架由四项次要性能组成:
- Generatr: 标识要注入故障的对象并调用 Slingr。
- Slingr: 注入故障。
- Trackr: 记录试验产生时的详细信息。
- 试验形容: 提供试验文档,以及 Lambda 函数的输出和输入参数。
ChaoSlingr 最后设计用于亚马逊 AWS 服务。通过一系列试验,被动引入已知的平安故障条件,以确定如何无效地实现平安。这一努力提高了公司疾速交付高质量产品和服务的能力,同时尽可能放弃最高级别的平安和保障。
当初咱们构建的分布式要害零碎变得如此简单,以至于没有谁可能阐明其整个运行实质。即便分布式系统中的所有单个服务都失常运行,这些服务之间的交互也会导致不可预测的后果。
不可预测的后果,加上影响生产环境的特殊性,具备破坏性的事实事件激发了这些分布式系统固有的凌乱。
开发 ChaoSlingr 的目标是在影响生产客户之前,被动发现和解决重大破绽。
ChaoSlingr 的性能包含:
- 开放源码
- 红色大按钮:主动敞开 ChaoSlingr
- 可配置的工夫范畴和试验运行频率
- 用 Python 编写
- 作为 Lambda 函数运行
- 以 Terraform 脚本编写主动配置
ChaoSlingr 展现了如何构建和执行混沌工程试验,以及在分布式系统中能提供的价值。大多数应用 ChaoSlingr 的组织都克隆了该项目标代码仓库,并应用该我的项目提供的框架作为领导,构建了本人的平安混沌工程系列试验。
结束语
随着企业采纳云原生技术栈和 DevOps 模型,其平安流程必须一直倒退以满足新的需要,例如通过继续部署减速零碎变更的频率。传统的平安测试方法尽管仍有价值,但不足以应答这些新挑战。
看待平安问题的观点也必须扭转。“系统故障”是简单零碎的失常运行状态。在安全性方面,关注“人为谬误”、“根本原因”或简单的攻击者,并不能让你更好地理解根本的平安态势,只有通过继续可测量的反馈环。而 SCE 创立了这些反馈环,并裸露了“未知的未知”,从而限度了零碎的攻击面。
ChaoSlingr 工具证实了混沌工程能够利用于网络安全。
联结衰弱团体 (UHG) 应用 ChaoSlingr 的教训证实了这种办法的价值。当利用于平安中时,混沌工程可能揭示无关安全控制如何运作的主观信息,容许组织更无效地投入平安估算。
起源:混沌工程实际
作者:刘美宁
申明:文章取得作者受权在 IDCF 社区公众号(devopshub)转发。优质内容共享给思否平台的技术伙伴,如原作者有其余思考请分割小编删除,致谢。
IDCF DevOps 黑客马拉松,独创端到端 DevOps 体验,精益守业 + 麻利开发 +DevOps 流水线的完满联合,2021 年仅有的 3 场公开课,数千人参加并统一五星举荐的金牌训练营,谋求卓越的你肯定不能错过!关注公众号回复“黑马”即可报名
北京:7 月 24-25 日
上海:9 月 11-12 日
深圳:11 月 20-21 日