作为科技行业的20年老兵,我见证了相当多的技术事故。

当我听说CrowdStrike与最近的Windows崩溃有关时,我立刻想起了15年前开发BlackBerry Windows驱动程序的经历。当时,我处理了无数的蓝屏和崩溃,因此对出了什么问题有很好的感觉。

上周五的问题很复杂,即使是对软件开发很熟悉但对Windows驱动程序或内核空间不熟悉的人,也可能需要澄清。

本文的目的是简化情况,旨在使没有技术背景的人甚至祖父母也能理解。

假设Windows机器是你的家

用户空间

为了更好地理解,假设Windows计算机是你的家。想象一下你家的房间,也就是厨房、客厅和卧室。这些是你进行日常活动、做饭、看电视和放松的地方。这些是直接与家功能互动的可见、可访问的区域。

我们称之为你的家用户空间的这一部分。这也是你看到并与之互动的计算机空间。屏幕上显示着内容,并且你用鼠标指向它。这也被称为Windows的用户空间。

内核空间

你的家里还有一个隐藏的世界。后台系统包括基础设施、管道、电力和供暖。你在日常活动中看不到这些系统,但它们对于确保一切正常运作是不可或缺的。它们处理重要功能,如水和电的供应以及住宅的维护。

这就是你家内部基础设施。在计算机中,这个区域被称为内核空间。

CrowdStrike是你的新智能温控器

考虑在家中添加新功能,例如安装智能温控器。这个最新的添加并不是原来家的一部分,但为了正常运作,它需要连接并与现有的供暖和制冷系统(内部基础设施)协作。

它监控家中的温度,并与现有基础设施合作以有效运作。用户、用户或房屋的原始建造者并不会构建这个组件(温控器),因此被称为第三方应用程序。

同样,CrowdStrike构建了一个名为Falcon的应用程序,在Windows机器上运行并监控安全性。为了正确执行此操作,它需要连接到计算机的内核空间/内部基础设施。

由于Falcon不是由Microsoft或用户创建的,因此被称为第三方应用程序。

认证过程

当像Google这样的公司构建家庭温控器(NEST)时,它们需要在销售之前证明产品能够与客户的供暖和制冷系统协作

那么,假设你购买了Nest温控器,带回家并安装到供暖和制冷系统上。Nest现在开始监控你家的温度,并向供暖和制冷系统传达何时需要变化。

同样,你可以在CrowdStrike购买Falcon并将其安装到计算机上。这将监控计算机的安全性,并在内核空间中对计算机的内部基础设施进行保护。

在Windows机器上访问内核空间的应用程序必须在运行之前经过Windows的认证。如果没有认证,它将无法运行。然而,有时会迅速发现重大安全风险,需要更新Falcon。

公司可能会将应用程序分为两个部分。一个是在内核空间运行的,另一个仅在用户空间中功能。内核空间的部分需要认证,而用户空间的部分则不需要。

因此,当有新的攻击时,可以迅速将信息发送到用户空间,并告知应用程序的内核空间部分去查看。然后,内核空间可以使用该信息来保护自己免受攻击。此外,由于不需要更新内核空间,因此不需要认证。

但是,这里有一个巨大的问题。他们必须小心。更新用户空间的信息可能会导致内核空间的应用程序混淆,从而使事情变得混乱。因此,如果你这样做,就必须进行适当的测试。

你知道要去哪里吗?…..

一切是如何出错的?

使用新的Nest智能温控器,你可以从手机上设置温度,并直接从墙壁和智能手机面板控制家中的供暖和制冷系统。

接下来,假设Google发布了Nest的软件更新。这个更新改善了用于设置温度的移动应用程序,但不包括对直接控制供暖和制冷系统的温控器部分的更改。由于基础设施方面需要认证,因此请记住,它们不希望频繁更改或更快更新。移动应用程序可能是唯一需要以更改的方式构建的部分,但基础设施方面应该正常工作。

这就是事情出错的地方。更新后的应用程序引入了应该在温控器上运行的新功能或设置。然而,管理供暖和制冷的温控器核心控制系统并没有按预期处理更改。软件开发人员忘记在现有基础设施上测试此更改,并未意识到需要更改才能正常工作。

因此,当你使用新应用程序设置温度时,更新的数据会传递给温控器的控制系统。然而,由于核心系统没有更新,它无法正确解释或处理这些新数据。这种不一致导致温控器向供暖和制冷系统发送错误信号。结果,供暖可能在已经温暖时开启,或者在制冷系统变热时不启动,使家中感到不适。

在这种情况下,修复系统的唯一方法是将其从墙上拆下,将显示器连接到计算机,更新软件,然后再连接回墙上。

Falcon在Windows机器的上下文中就像智能温控器。它有一个在内核空间(如温控器的核心控制系统)运行的组件或“驱动程序”,以及一个在用户空间(如使用的移动应用程序)中的另一个组件。如果CrowdStrike仅更新用户空间组件而不更新内核空间驱动程序,系统可能会遇到问题。

当Falcon的内核空间驱动程序从更新的用户空间组件中提取数据时,不兼容性可能会导致严重故障,并可能引发蓝屏死机(BSOD。修复此问题包括手动将计算机重启到安全模式(如手动修复温控器),删除有问题的驱动程序,然后正常重启计算机。

这正是7月19日星期五发生的事情。CrowdStrike的Falcon应用程序的更新导致内核空间出现严重故障,结果是所有安装了Windows的机器都出现了蓝屏。

想象一下破坏了所有使用Nest的家庭的温度控制!!就像Nest一样,Falcon并没有破坏所有家庭的温度。Falcon只破坏了正在运行的Windows计算机,而不是Windows的崩溃,而是CrowdStrike的崩溃。Falcon也在Mac和Linux机器上运行,但这部分代码以不同的方式工作,没有受到影响。

总之,在不更新核心控制系统的情况下更新智能温控器的应用程序可能会导致家庭温度控制的问题。对内核空间驱动程序的不完全更新可能会对Windows机器造成严重问题。

这个例子说明了无论是温控器还是计算机,保持系统所有部分正常运作的重要性。

需要更多细节吗?

如果你想更详细地研究这个问题,我强烈推荐这个视频。

祝愿正在努力解决这个问题的IT团队和在Crowdstrike犯错的开发者们一切顺利。我们都是人,我们都会犯错。希望不仅是CrowdStrike,其他许多人也能从这个不幸的事件中吸取一些宝贵的教训。

點讚的用戶