作者 | Steven J. Vaughan-Nichols
编译 | 星璇
出品 | 51CTO技术栈(微信号:blog51cto)
坐在Linux桌面前,背后是嗡嗡作响的Linux服务器,CrowdStrike的崩溃并没有直接影响到我。但就像地球上几乎所有人一样,间接影响却是另一回事。
同事们被困在机场。事发48小时后,同事们仍在不停地修复一个又一个出故障的Windows系统,而朋友们也不得不使用现金购买杂货。
这一切本不必发生。
“这提醒我们,我们正生活在一个日益数字化的世界中,软件几乎支撑着我们生活的方方面面——从交通和紧急服务到银行、零售,甚至食品服务,”新思科技软件完整性集团总经理Jason Schmitt在一份新闻稿中指出,“软件问题可能导致严重的业务问题,在某些情况下,还会影响到消费者视为理所当然的许多必需品。”
让我重申一遍:这一切本不必发生。让我来总结一下教训。
1.单一文化是有害的无论是在爱尔兰大饥荒时期、导致我的祖先来到美国的土豆,还是在美国南部棉铃虫出现之前的棉花,或是Windows系统,每当所有人都依赖一个单一系统时,你就是在自找麻烦。
据微软统计,只有850万台Windows设备受到影响,这不到所有Windows设备的百分之一。但这些数字并没有说明全部情况。
根据商业数据分析公司6sense.com的统计,CrowdStrike是排名第一的企业端点安全公司,拥有超过3,500名客户。这听起来可能不多,但这其中包括了四分之一使用端点安全服务的公司。这些往往是大型企业。因此,虽然从陷入无限重启的系统数量来看,受影响的规模很小,但其影响却是巨大的。
“此次中断的规模凸显了过度依赖单一系统或提供商所带来的风险,”云计算公司Civo的首席执行官Mark Boost在向新闻媒体发布的一份声明中表示,“这令人警醒地提醒我们,规模和声誉并不能保证不受重大技术问题或安全漏洞的影响。即使是最大、最成熟的公司也必须保持警惕,不断更新和保障其系统安全。”
2.糟糕的代码是危险之源根据NeoSync(一家开发工具公司)首席执行官Evis Drenova在X上提出的流行理论,导致其Falcon Sensor程序发生灾难性安全更新的根本原因是其C++代码中的空指针错误。但CrowdStrike似乎否认了这一点。
知名谷歌漏洞研究员Tavis Ormandy也在X上发布推文表示不赞同。Ormandy以及Mac安全网站和工具套件Objective-See的创建者Patrick Wardle(他们也在X上对此事发表了看法)认为,问题出在逻辑错误上。
最终,我们将弄清楚到底哪里出了问题,但毫无疑问的是,这种糟糕的代码绝不应该被发送给客户。
3.质量保证是绝对必要的这个问题始于CrowdStrike。该公司的质量保证(QA)团队是如何让这次更新发布的,这个问题很可能很快就会导致许多人被解雇。
然而,他们并不是唯一应该为这场灾难性的一步而受到指责的人。
在今年4月于西雅图举行的北美开源峰会上,微软Linux平台组的高级项目经理Jack Aboutboul谈到了“懒惰的系统管理员”问题。典型的懒惰管理员会安装软件,开启自动更新,并处理最新的紧急问题。这没问题……直到其中一个更新导致系统崩溃。
他们应该在每次收到新补丁时进行测试。在演讲中,Aboutboul讨论的是Linux发行版的更新,但同样的想法也适用于所有关键任务软件。
Redwerk和QAwerk(均为软件开发和QA机构)的创始人Konstantin Klyagin在一份新闻稿中指出,“自动化测试确保即使是微小的更改也不会引入新的错误。这对于像CrowdStrike这样的大规模更新尤其重要,因为仅进行手动测试是不够的。”
还有谁没有这样做呢?!看起来至少还有一些公司仍然没有做到。
难道真的有那么多组织在这个基本步骤上失败了吗?一些人认为CrowdStrike应该受到指责,因为这个安全数据补丁“是一个绕过客户端分阶段控制的渠道更新,并且无论客户是否需要,都推送给了所有人。”
由于绕过了客户端的推出控制,因此有更多的公司受到了损害。这让我觉得很有可能,因为这么多企业都因此次失败而遭受重创。再次强调,问题依然是:“为什么有人会毫不犹豫地部署如此重要的补丁?”
4.分阶段推出可以避免灾难一个相关的生产问题是,许多组织同时将所有更新推送到其所有系统。这是一个非常基本的错误;它本不应该发生,但事实就是这样。
是的,分阶段推出确实存在一些反对意见——当不同的团队使用不同版本时,用户可能会感到困惑。但是,对于不能容忍失败的关键任务系统,您需要对任何升级都采取极端谨慎的态度。
此外,分阶段推出有很多方法。它们包括滚动更新、蓝绿部署、金丝雀发布和A/B测试。选择一种。让它适合您的企业,只是不要将所有升级都放在一个巨大的篮子里。
此外,如果出现问题,强大的回滚程序对于恢复到稳定版本至关重要。难道您不想只需按下一个按钮就能回滚到正常工作的系统吗?现在,成千上万的IT员工一定希望如此。
5.灾难恢复和备份是必需的这虽然是显而易见的事情,但您必须制定灾难恢复计划并拥有可靠的备份。
“我与几位首席信息安全官(CISO)和首席安全官(CSO)交谈过,他们正在考虑触发从备份恢复协议,而不是手动将每台计算机引导到安全模式,找到有问题的CrowdStrike文件,删除它,然后重新启动到正常的Windows系统中,”公共演讲者兼安全专家Eric O’Neill在一份新闻稿中表示。“那些没有投资于快速备份解决方案的公司陷入了两难境地。”
确实如此。诚然,在当今的云计算时代,灾难恢复和备份已不像过去那样简单。但它们至关重要。而且,在这种情况下,传统的灾难恢复方法和备份将发挥重大作用。
6.需要增强的监控和事件响应能力此次全球性的中断事件凸显了高级监控工具和强大事件响应计划的重要性。应建立实时监控和警报系统,以便在问题发生时立即发现。IT团队应制定详细的事件响应计划,并明确协议以快速识别、隔离和解决问题。这些计划应包括根本原因分析和事后审查,以不断改进响应策略。
但说起来容易做起来难。
Cockroach Labs的首席执行官兼联合创始人斯宾塞·金布尔(Spencer Kimball)在向新闻媒体发布的一份声明中表示:“在当今数字时代应对挑战,需要企业采取积极且实用的策略来减轻中断并确保恢复能力。”
他补充道:“中断问题并非我们能够完全解决的问题。云环境只会变得越来越复杂和相互关联。这种大规模的复杂性将继续增加风险,特别是对于仍处于云采用初期阶段的企业而言。连续监控和警报对于在问题升级之前发现和解决问题至关重要。”
Hydrolix公司的副总裁安东尼·法尔科(Anthony Falco)在给The New Stack的一封电子邮件中也表达了类似的观点。
法尔科说:“这次大规模中断事件凸显了公司面临的新现实:当今推动业务的全球分布式软件平台是一个复杂的相互依赖网络,并非所有都受任何单一行为者的控制。‘一个微小的错误就可能让全球业务陷入停滞。
“我们需要一种新的可观察性方法——这种方法是实时的,并且能够简化从无数来源流入的海量数据的管理,以便在事件扩散之前进行检测和缓解。”
7.为下一次做好准备CrowdStrike/Windows事件是一个严峻的提醒,即即使是日常维护,如果管理不当也可能导致重大中断。它凸显了现代IT系统的相互关联性,以及广泛使用的软件故障所带来的深远影响。
通过从此次事件中吸取教训并实施强大的风险管理策略,IT团队可以更好地为未来类似事件做好准备并减轻其影响。
我们需要做得更好。我们必须做得更好。我年纪大到足以经历过第一个重大而广泛的安全问题——1988年的Morris蠕虫病毒。那时,技术问题只困扰着从事技术工作的人。但那样的日子早已一去不复返了。
参考链接:https://thenewstack.io/the-crowdstrike-disaster-lessons/
来源: 51CTO技术栈