上周五,全球多地不少用微软 PC 的打工人一开机发现,映入眼帘的不是熟悉的壁纸和桌面,而是满屏的蓝色,和一个哭脸。
「重启大法」失效后,这个蓝屏很快被人们发上 X、微博、Reddit 等平台。大家随后发现,这不是个案,而是席卷全球的大事件,航班因此停飞,企业引起停工,酒店无法入住,甚至手术也因此停做。
这次事件的一个后果是,CrowdStrike 安全公司被永远刻在了科技史的耻辱柱上,因为正是他们向约 29000 个企业用户推送的一个更新,导致了全球约 850 万台 Windows 设备的宕机。
让人大跌眼镜的是,微软和 CrowdStrike 都无法统一修复这些设备,需要由人工一台台动手操作才能恢复。
世界著名安全公司,或许也只是一个草台班子
和以往那种普遍性的服务器大宕机不同,这次的宕机是设备内部问题引起的,由于 CrowdStrike 发布的更新有代码缺陷,并深入了 Windows 系统的内核,影响了系统驱动。
并且更新是不可在线逆转的,即使 CrowdStrike 已经修复了更新中的错误,在之前就已经安装了更新的设备还是一启动就会变砖,就连微软也无法「远程施法」进行修复。
由安全软件引起的系统崩溃问题其实屡见不鲜,比如 CrowdStrike 的 CEO George Kurtz,在他担任老牌安全软件公司 McAfee 的首席技术官时,该公司也曾推出过一个软件更新,会将 Windows XP 的一个系统文件删除,导致电脑无限重启,听起来和这次事件就有点相似。
上周末最忙的人 George Kurtz,图源:NBC
另一个著名杀毒软件卡巴斯基,和微软自己的安全平台 Windows Defender 也曾经在更新后引发过系统蓝屏故障,只是这些事件规模远不如 CrowdStrike 之大。
杀毒软件成为「蓝屏惯犯」有一个非常重要的原因:2009 年,微软和欧盟达成公平竞争的协议,允许第三方安全软件也能够和 Windows Defender 一样访问 Windows 系统的内核,也就是系统非常底层和基础的部分。
这种开放性能够让 CrowdStrike 这样的第三方杀毒软件能够提高更高的安全性,当然,也让 Bug 的发生变得非常致命。
就像是当年 McAfee 能把内核中的系统文件当成病毒查杀了,或者像这次 CrowdStrike 推出的一个新的配置文件,因为后缀名和驱动程序一样,被系统错误当作了驱动运行,导致了系统崩溃。
内核这种系统底层向第三方开放,本身就是有点争议的问题,苹果已经停止了向第三方开放 macOS 的内核。但这么多年来,开放内核总体上利大于弊。CrowdStrike 这次事件更让人觉得不安的是,这家拥有约 3 万家客户的公司难道完全不对软件更新进行测试吗?
特别是这种可以说百分百复现的 bug,只要一测试基本都能发现,结果最后这个有问题的更新,来到了全球 850 万台 PC 设备上。
前卡巴斯基安全公司的一名高管 Costin Raiu 表示,由于配置文件和驱动相关的文件非常重要,在卡巴斯基推出相关更新之前,都会经过数周以上的严格审查和测试,因此 CrowdStrike 这个事件,只能说明更新文件从未被测试过。
而且,相关更新由于并非是大型更新,CrowdStrike 并未采取比较谨慎的「分批推送」方式,而是直接面向全部设备推送,理由是「保证我们的客户安全水平领先威胁环境」。
想不到,这场可以称作是技术史上最大的浩劫,不是因为黑客入侵,而是因为一家像草台班子一样的安全公司。
计算机系统比我们想象中更落后
二十多年前,一条「千年虫」引起了大众的注意,指的是上世纪末一些计算机设备无法正确识别即将到来的 2000 年份,会将其识别为 1900 年,从而导致大量社会基础设施,甚至影响到国防问题。
很多人将 CrowdStrike 事件视为「千年虫」后最大的技术故障,这两个事件似乎都有一个共通点,那就是看起来非常智能的计算机系统,其实非常脆弱,会出乎我们意料地因为一些问题而崩溃。
被「千年虫」影响而将 2000 年显示为 1900 的一台设备
当年,对「千年虫」的防治其实并不简单,很多系统需要去手动更改系统的日期编码,使其能够正确识别 2000 年,花费了大量的人力物力,这和 CrowdStrike 事件惊人地相似。
二十年过去,计算机技术已经突飞猛进,然而在面对这种设备内部故障的问题上,我们发现应对方式竟然如此落后。
不管是早期 CrowdStrike 给出的恢复操作方式,还是微软推出的修复工具,都绕不开大多数企业会部署的 BitLocker 磁盘加密,因此要修复这些设备,都需要管理员权限或者 BitLocker 密码,导致修复效率非常低下。
就算不用权限和密码,两种修复方式基本都需要 IT 人员一台台修复和部署,微软的修复软件还需要创建一个 USB 驱动器来运行,一台台设备进行插入和恢复,简直不是 2024 年科技应有的「优雅」。
讽刺的是,在美国各大航空公司因为蓝屏死伤一片时,西南航空因为使用的是远古系统 Windows 95 和 Windows 3.1 躲过一劫。
这次事件,很多媒体都提到了这么一句话:
To Err is Human; To Really Foul Things Up Requires a Computer人们只是犯错,要把事情搞砸还得看电脑
虽然这句话有那么点反技术的意思在,但在这个事件中,我们真正意识到了这些维系着我们衣食住行的计算机系统,内部是如此不堪一击,并且一旦出错,修复的方式也极其落后和低效。
即使「蓝色星期五」的主要责任确实在第三方厂商身上,也有观点认为,对于大众来说,微软作为系统提供商,也负有一定责任,并且微软开放了内核,却没有针对这种情况的应急措施。
更重要的不是追责,而是全方位优化整个科技生态系统的各个方面。故障无法避免,并且波及的范围很可能越来越广,因此真正需要优化的是故障发生前和发生后的流程和措施。
微软作为游戏规则的制定者和维护者,更有理由承担这种责任,例如收紧和限制系统内核的访问,和完善和优化系统修复的方式和自修复的能力,而不能仅仅只是指望第三方厂商不出错。
本文来源:Appso
网友评论