一、事件始末
北京时间2024年7月19日3时,全球多个国家的无数台电脑突然在短时间内集中崩溃,这些电脑的Windows操作系统出现“蓝屏”死机,无法启动无法使用。
受此事件影响严重的包括美国、英国、日本,澳大利亚、印度等国家,其中损失最严重的是美国。包括航空公司、银行、医院、电信、铁路、零售、物流、公共服务、电视台在内的众多关键行业的上千万台电脑Windows系统崩溃无法使用,导致这些公共服务几近瘫痪,就连美国911电话的接线员都无法正常工作。此外,全球供应链也受到打击,其中航空系统受影响最为严重,多家美国航空公司停摆,航班无法起飞,机场人满为患。
随后微软公司进行了紧急排查,最终确定了故障原因为“CrowdStrike的一次更新导致多个IT系统出现故障。”
微软这里提到的“CrowdStrike”是一家位于美国加利福尼亚州森尼韦尔的电脑安全技术公司,提供端点安全、情报威胁和网络攻击的安全服务。该公司的产品广泛部署在全球500强公司和社会公共服务的电脑中,保护这些公司的信息安全。
简单说,CrowdStrike是一家做信息安全的大公司,主要客户是全球的大公司,个人用户很少。
随后CrowdStrike创始人兼CEO George Kurtz在社交媒体X上回应称:“CrowdStrike正积极与受Windows主机本次内容更新中发现缺陷影响的客户合作。Mac和Linux主机不受影响。这不是安全事件或网络攻击。目前已确定、隔离了该问题,并部署了修复程序。”
外媒将此事件称为“史上最大规模IT故障”,美国特斯拉工厂也受到此事件波及,对此,马斯克公开责问微软CEO纳德拉,称这是“史上最大的IT失败”,并且表示已经在公司所有系统里删掉了CrowdStrike的软件。
此次“蓝屏事件”影响广泛而深远,虽然目前微软公司和CrowdStrike公司已经在全力修复造成的故障,但由于无法通过网络批量修复,因此工作量巨大,预计全部恢复正常至少需要数周的时间。
二、幸运之国
幸运的是,在此次波及全球的史诗级信息安全事件中,中国企业的电脑几乎未受影响。有网友戏称是因为中国有很多电脑的Windows不在正版管辖范畴所以也未受蓝屏影响。
这种解释显然不正确,事实上主要是因为CrowdStrike公司的所谓安全软件在中国企业中使用的很少,所以CrowdStrike的更新才没有影响到中国电脑的Windows系统。此外还有很多其他原因,包括事发当时中国是凌晨3点而欧美却正是工作时间,也包括中国很多重要系统并不会实时进行软件更新,所以中国使用Windows系统的电脑几乎未受影响。
显然中国的幸运并不偶然。
这次事件因为影响太大,问题直接指向微软,因此微软也是反应迅速,当天就查出了问题的原因并不在Windows,而在CrowdStrike,而CrowdStrike也很快就承认了。
假使微软没有这么快就查出问题的原因,会不会有些美国政客和媒体马上跳出来宣称这是中国或俄罗斯政府对美国进行的网络攻击呢?不然为什么欧美日印澳都被“攻击”而独独中国平安无事呢?一旦有了观点,政客们也不难找出来一堆指鹿为马含沙射影疑神疑鬼颠倒黑白的所谓证据,毕竟装在试管中的洗衣粉都可能变成大规模杀伤性武器。
这次中国确实很幸运,避免了无妄之灾,是不是应该感谢一下微软快速反应的工程师?
与中国同样幸运的还有Mac系统、Linux系统的电脑和Android设备,因为此次CrowdStrike软件的更新仅针对Windows系统,可以说微软公司是十足的躺枪,被CrowdStrike坑惨了。
而CrowdStrike公司的产品此前也出现过类似的问题。外媒获取的一份CrowdStrike发送给客户的内部报告显示,就在今年4月份,CrowdStrike向运行Linux系统的客户推送了一个软件更新,结果导致电脑崩溃。当时,CrowdStrike 花了近五天时间才修复了该漏洞。CrowdStrike当时承诺今后将改进测试流程。
全球500强企业中有271家是其客户,另外还有许多政府机构,如美国顶级网络安全机构网络安全和基础设施安全局,都在使用CrowdStrike的软件。看来CrowdStrike公司并未从那次事故中吸取教训。
三、不幸之人
“蓝屏事件”发生后,我们在网络上看到了这起事件真正肇事者的一段自白,这个不幸的人讲述了事情发生的过程和他的“丰功伟绩”。显然他完全没想到自己这么“厉害”,他说他只是对一行代码做了很小的一个修改,然后在没有充分测试的情况下直接发布了更新,推送到了全球上千万台电脑的CrowdStrike软件上。
不幸的是,这次更新搞坏的不是CrowdStrike软件本身,而是CrowdStrike运行所依赖的操作系统Windows。而Windows受到破坏后,也产生了过激反应,直接蓝屏休克,一死了之。
四、行看信息安全,内行看信息服务
此次危及全球的破坏性事件凸显了全球信息技术基础设施的脆弱性,必将记入史册。但这不是第一次,也不会是最后一次。
随着全球数字化程度越来越高,信息安全也变得越来越重要。此次事件对全球造成的经济损失虽然很难统计,但恐怕数额巨大。
虽然这名CrowdStrike员工被解雇了,但是如果我们将这样一起严重的全球性信息安全事故全部归罪于这个不幸的人,显然是不合适的,也不能算是吸取教训持续改善。
从那位不幸的CrowdStrike公司员工的讲述中,我们看到这起给全球带来IT灾难的大事件,起因仅仅是一名软件工程师对一行代码做了很小的修改,可能只有几个字符而已。
当今世界上每天都有无数软件工程师在编写和修改代码,写代码有错误实在是再平常不过的事情,但是真的将错误代码放行到实际运行环境的情况就少多了。
ISO (国际标准化组织)和 IEC (国际电工委员会)共同制定的IS0/IEC 20000标准,是对信息技术服务管理体系的要求,是组织有效进行IT服务管理的指南。如果CrowdStrike公司在研发和服务管理方面能够遵循IS0/IEC 20000标准,就不会发生这次“史上最大规模IT故障”。
在IS0/IEC 20000标准中,对软件系统的变更和发布部署有十分明确的要求:
同时,IS0/IEC 20000标准的1.2条款明确声明“当组织声称符合本标准时,无论组织的性质如何,不能删减条款4到条款10中所规定的任何要求;”也就是说,如果某个企业或组织实施并认证了IS0/IEC 20000信息技术服务管理体系,就必须符合标准中要求的变更和发布流程,以及其他要求的流程。
如果CrowdStrike公司实施并认证了IS0/IEC 20000信息技术服务管理体系,那位不幸的CrowdStrike公司员工可能就没什么机会搞这么大的事了,也就不会被解雇。
同时我们也应该感到庆幸,有更多的公司遵循了IS0/IEC 20000标准的要求进行负责任的IT管理,才使我们这个世界上的IT系统没有像爆米花一样故障频发。
事实上我们表面上看到的信息安全事件,背后大多都是信息服务问题,“ISO/IEC 27000信息安全管理体系”和“IS0/IEC 20000信息技术服务管理体系”可以说是一体两面、密不可分。信息安全是我们的国家战略,而信息服务是实现这项战略最主要的手段之一。
五、从3+1看全球信息安全的脆弱性和反脆弱
按照ISO/IEC 27000标准(ISO信息安全管理体系)的定义,信息安全主要包括三个方面:保密性、可用性、完整性。
人们通常都更加重视防范信息泄露,也就是保密性,很多单位对保密条例的宣传深入人心。
同时对信息安全的可用性和完整性反倒关注不够。但事实上在和平年代,信息的可用性更应该得到优先重视。毕竟通常情况下,失火比丢东西的损失更大。这次“蓝屏事件”就是典型的因信息系统“可用性”遭到破坏而对社会造成了巨大影响。
而且这次事件的起因并不是来自通常意义上的“网络攻击”,不是来自敌对势力有计划有预谋有组织的攻击,而是来自一个普普通通的程序员的一个不起眼的小错误引发的蝴蝶效应。
那么,此次蓝屏事件中的三方——受害公司(甲方),微软(乙方),CrowdStrike(丙方),在信息安全管理和信息服务管理方面都犯了哪些错误呢?
三方之丙方:CrowdStrike公司
CrowdStrike的内部信息服务流程肯定是形同虚设的,作为一家市值高达近千亿美元的大型科技上市公司(仅仅在事故发生的前一周,CrowdStrike公司市值达到980亿美元),其内部研发流程之混乱叫人震惊。
所有软件公司和软件开发人员都知道,软件的任何变更都必须进行足够的测试(根据不同情况可能有很多轮严谨的测试,包括单元测试,集成测试,白盒测试,灰盒测试,黑盒测试等等),测试通过后才能申请发布,申请得到批准后通常不是由程序员进行发布部署,而是由运维部门的工程师按流程进行部署发布。发布部署到实际运行环境前,应建立受影响的配置项的基线。应监视和分析发布的成功或失败。一旦发现发布后效果与预期不符,通常都会立即撤销发布回滚到发布前状态。
显然CrowdStrike公司这次软件更新仅仅是程序员自行测试一下,觉得没问题就直接发布到了实际运行环境,可怕的是直接在线推送给了上千万台电脑终端,从而让Windows蓝屏变得不可避免。
在发布完成后他很可能没有及时监视发布结果,而是满意的去倒了杯咖啡。
这整个过程都是一个新手程序员全套完成,整个过程无人监督。这完全不符合IS0/IEC 20000标准(信息技术服务管理体系)的要求。从下图可以看出CrowdStrike公司的软件流程哪里有一个大公司的规范,完全是个人开发者天真任性的做派。
可以想见,如果CrowdStrike公司按照IS0/IEC 20000标准的要求建立了合格的信息技术服务管理体系,就完全可以避免发生这次史诗级的信息安全灾难。
如果CrowdStrike公司能够遵循PDCA原则,在4月份的Linux系统推送事件中吸取教训改进流程,也可以避免这次更大的事件。
这个过程不禁让人想起航空业著名的“海恩法则”:每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。希望CrowdStrike公司也想到了这个法则。
此次蓝屏事件中的三方——受害公司(甲方),微软(乙方),CrowdStrike(丙方),作为丙方的CrowdStrike最不起眼,但威胁最大。
三方之乙方:微软公司
虽然这次事件的“主犯”是CrowdStrike公司,但作为直接造成用户电脑无法使用的Windows系统的原厂商,也是难辞其咎的。毕竟让用户电脑无法启动的是微软的Windows操作系统,而不是CrowdStrike公司的安全软件。
一方面Windows系统如此重要却如此脆弱是不可接受的。如果一个第三方的CrowdStrike软件可以在无意中使Windows系统轻松崩溃,那么如果有人想恶意攻击让更多的Windows电脑崩溃可能也没有那么困难。
另一方面Windows系统蓝屏之后就完全无法使用,无法联网,导致受害电脑不能便捷的进行修复,只能一台一台人工抢救,过于耗时耗力。
这就像是一个千万级的多米诺骨牌,推倒时行云流水,恢复时工程浩大。
IS0/IEC 20000标准的8.7条款对信息服务端可用性和业务连续性也有明确要求“组织应建立、实施和维护一个或多个业务连续性计划。”,从结果来看,微软公司的业务连续性计划做的不是很好,事故发生后无法给用户提供有效的应急处理方案。
鉴于Windows不言而喻的重要性,以及微软令人敬仰的技术实力,我们相信微软有办法让电脑即便蓝屏仍然可以应急启动以便修复故障。
蓝屏是微软不负责任的摆烂行为,对Windows系统的脆弱性认识严重不足。
此次蓝屏事件中的三方——受害公司(甲方),微软(乙方),CrowdStrike(丙方),作为乙方的微软最无辜,但毕竟能力越大责任越大,要想避免以后再次发生类似的蓝屏事件,还得靠微软。
三方之甲方:受害公司
作为广大的Windows和CrowdStrike的用户公司,肯定是无辜受害者,不知道在这次事件中经济损失有多大,会不会向CrowdStrike公司和微软索赔,直至CrowdStrike公司破产。
但受害公司自身更有必要做深刻的反思。毕竟对社会造成不良影响的是这些公司,他们在受害的同时也对更广泛的民众造成了伤害。在这个意义上来说,这些受害公司所处的角色和微软无异。
我们前文讲到,之所以中国企业在此次事件中得以幸免,主要是因为CrowdStrike公司的产品在国内少有人用。
但是我们可以假设一下,如果这次事件发生在某个在国内被广泛使用的安全软件身上,中国会不会出现同样大范围的事故呢?
答案是仍然不会。
因为我们国家对信息安全非常重视,《网络安全法》第三十一条规定:国家对公共通信和信息服务、能源、交通、水利、金融、公共服务、电子政务等重要行业和领域,以及其他一旦遭到破坏、丧失功能或者数据泄露,可能严重危害国家安全、国计民生、公共利益的关键信息基础设施,在网络安全等级保护制度的基础上,实行重点保护。
这里的等级保护和重点保护,经常采取的一个保护措施就是“网络隔离”,也就是重要系统运行在内网中,不允许实时连接互联网。这样的网络结构下,CrowdStrike公司或什么其他公司的软件更新就不可能实时推送到我国的重要行业的重要系统上,只能是先做沙箱测试再延迟更新,而延迟更新就无法造成大面积的系统瘫痪。
回过头来说,CrowdStrike公司的软件更新能直接推送到的电脑必然是实时连接互联网的,欧美国家的这么多重要行业的重要系统实时联网,被动更新,这是巨大的系统脆弱性。
在这次事件中被影响的这些公司,如果能够遵循IS0/IEC 20000信息技术服务管理体系和IS0/IEC 27000信息安全管理体系的管理原则,做好自己的信息服务管理和信息安全管理,也就不会在这次事件中成为无辜的小绵羊。和微软一样,这些公司也没有准备足够好的业务连续性方案,有些机场在看到蓝屏问题无法解决之后,干脆选择了取消航班。
而IS0/IEC 20000标准中对信息安全的风险管理、供应商管理、事件管理、服务可用性和连续性管理等等,都有明确而成熟的要求,以及实践指南。
此次蓝屏事件中的三方——受害公司(甲方),微软(乙方),CrowdStrike(丙方),作为甲方的受害公司同样很无辜,可能会面临着用户的投诉和索赔,但并不是每一家Windows和CrowdStrike的客户公司都遭此一劫。所以在此次事件之后,还应当完善自身的信息安全和信息服务体系,避免在下一次IT灾难中再受打击。
3+1:国家安全
习近平总书记多次强调,“没有网络安全就没有国家安全,没有信息化就没有现代化”。
与这次突如其来的蓝屏事件密切相关的,除了前边提到的甲乙丙三方之外,还有更重要也更值得关注的一个问题:国家安全。
随着我国数字化战略的不断推进,社会上应用软件越来越多,软件系统的复杂度越来越高。但我们知道没有一个软件是没有漏洞的,理论上任何一个软件都具备和CrowdStrike一样强的杀伤力。
我们发现网络安全的威胁不仅仅会来自敌对势力的有意攻击,还有可能来自无数各种各样软件的系统冲突或无意破坏。每一个程序员在有意无意之间都有潜力成为电脑杀手。
系统的技术脆弱性永远存在,这种情况下,不能单纯依赖技术手段来保障国家的信息安全,必须同时依赖管理手段,有效的管理体系与技术手段相辅相成可以显著提高组织的信息安全水平。
大力推动网络隔离、国产替代,我们国家为了保障网络安全决心巨大、投资巨大。投资是硬件,管理是软件,建好信息安全管理体系同样重要。防盗门并不能防盗,关上的防盗门才能防盗。
最后,
当我们回看CrowdStrike创始人兼CEO George Kurtz在社交媒体X上说的:“这不是安全事件或网络攻击。目前已确定、隔离了该问题,并部署了修复程序。”这句话时,不禁产生了一点疑问,什么才是“安全事件”或“网络攻击”呢?
安全软件造成什么破坏都不是“安全事件或网络攻击”吗?
电脑上合法安装的软件即便造成了破坏也不是“安全事件或网络攻击”吗?
电脑上被欺骗安装的软件造成了破坏也不是“安全事件或网络攻击”吗?
是不是电脑上安装的每一个软件都有让Windows蓝屏的机会?
能够让Windows蓝屏的软件会不会成为国家网络攻击战的新工具?