专栏名称: 新智元
智能+中国主平台,致力于推动中国从互联网+迈向智能+新纪元。重点关注人工智能、机器人等前沿领域发展,关注人机融合、人工智能和机器人革命对人类社会与文明进化的影响,领航中国新智能时代。
目录
相关文章推荐
爱可可-爱生活  ·  【[37星]Ola:打破多模态边界,实现图像 ... ·  昨天  
爱可可-爱生活  ·  【[50星]mdy_triton:一键加速H ... ·  昨天  
爱可可-爱生活  ·  【[52星]N8loom:基于树结构的前缀缓 ... ·  2 天前  
51好读  ›  专栏  ›  新智元

两次全球蓝屏,祸首竟是同一人?14年后,灭霸CEO再酿IT灾难

新智元  · 公众号  · AI  · 2024-07-22 13:03

正文



新智元报道

编辑:Aeneas 好困
【新智元导读】 绝了,外媒刚刚发现:这次造成微软蓝屏灾难的CrowdStrike CEO,在Windows XP时代就曾搞崩过全球的设备。同样是一次更新,同样让设备断网,同样要人工修复。两次导致全球IT灾难,此君可以「名垂青史」了。

微软全球蓝屏事件,破案了!
一个由「C-00000291*.sys」配置文件触发的系统逻辑错误,瞬间就破坏掉全世界约10亿台计算机,并在随后引发所有的二阶、三阶效应。
就如AI大神Karpathy所言,技术领域还存在着的单点瞬时故障,都将对人类社会造成巨大隐患。
而这次造成全球TI灾难的始作俑者、CrowdStrike CEO,竟被外媒扒出已有前科——
2010年在McAfee用一个更新搞崩全球设备的,竟然也是他!

逻辑错误,触发全球大崩溃

故障发生的第一时间,就有网友向大家发出警告——停止所有CrowdStrike更新!停止所有CrowdStrike更新!
对于事件起因,Objective-See基金会创始人Patrick Wardle也在第一时间就做了一番详细调查。
首先,他查看了故障位置——mov r9d,[r8]。其中R8属于未映射的地址。
这个位置取自指针数组(保存在RAX中),索引RDX(0x14 * 0x8)保存了一个无效的内存地址。
其他的「驱动程序」(例如「C-00000291-...32.sys」)似乎是混淆的数据,并且被「CSAgent.sys」进行了x-ref'd操作。
因此,或许是这种无效(配置/签名)的数据,触发了CSAgent.sys中的故障。
通过调试,可以更容易地判断这一点。
显然,事故中最重要的悬而未决的问题就是,这个「C-00000291-...xxx.sys」文件究竟是什么?
CSAgent.sys一旦引用它们,就立马崩溃了;而只要删除它们,就可以修复崩溃。
在VT上,他还对CSAgent.sys以及来自单个故障转储的数据进行了逆向分析。
最后,Wardle分享出了CSAgent.sys的几个版本(+idb),以及各种「C-....sys」文件(包括他认为已经包含了「修复」的最新文件)。
他表示,由于自己没有任何Windows系统或虚拟机,所以希望网友们能继续挖掘。
就在昨天,恶意软件专家Malware Utkonos有了更多细节的发现——
37c78ba2eac468941a80f4e12aa390a00cb22337fbf87a94c59cee05473d1c66这个地址处,似乎有一个针对0xaaaaaaaa的文件魔法检查。
这个模式,也是「通道文件」(Channel Files)的前四个字节。全部为NULL的文件,就可能会导致该cmp失败。
可以看到,rcx中与0xaaaaaaaa进行比较的值,由ExAllocatePoolWithTagPriority分配在顶部。那里正是接收ZwReadFile读取的数据的缓冲区。
这个值会在之后用cmp传递给函数(Utkonos在图中将这些函数命名为内部的wdm.h函数调用)。
通过合理性检查可发现:0xaaaaaaaa字节模式仅在此处检查的「通道文件」偏移0处出现过一次。
以下就是执行类似cmp的地址。
可以看到,只有0xaaaaaaaa看起来不同。

CrowdStrike官方解释

很快,CrowdStrike在官博放出的解释,对于网友们疑惑的问题进行了澄清——

2024年7月19日04:09 UTC,CrowdStrike在持续运营中向Windows系统发布了一次传感器配置更新,这也是Falcon平台保护机制的一部分。


这次配置更新触发了一个逻辑错误,导致受影响的系统出现崩溃和蓝屏(BSOD)。


导致系统崩溃的更新已于2024年7月19日05:27 UTC得到修复。

报告地址:https://www.crowdstrike.com/blog/falcon-update-for-windows-hosts-technical-details/
其中技术细节如下——
在Windows系统中,通道文件位于以下目录:C:\Windows\System32\drivers\CrowdStrike\,并且文件名以「C-」开头。每个通道文件都有一个唯一编号作为标识。
此次事件中受影响的通道文件为291,文件名以「C-00000291-」开头,以.sys扩展名结尾。虽然通道文件以SYS扩展名结尾,但它们不是内核驱动程序.
通道文件291会影响Falcon如何评估Windows系统上的命名管道执行。这些命名管道用于Windows中正常进程间或系统间通信的机制。
周五的更新,本意是针对网络攻击中常见的C2框架中所使用的新发现的恶意命名管道,但实际上却触发了系统的逻辑错误,导致崩溃。
不过,这与通道文件291或任何其他通道文件中的空字节问题无关。

此事已被网友用Suno做成歌曲
要想恢复,就必须在安全模式下启动机器,并且以本地管理员身份登录并删除内容——这是不可能自动化的。
因此,这次瘫痪的打击面才会这么大,并且难以恢复。

上次也是他


虽然CrowdStrike承认了自己的错误,并在周五发布了道歉声明和解决方案。
但他们尚未解释清楚,这个破坏性的更新是如何在未经过测试和其他安全措施的情况下发布的。
自然,众多批评的声音开始集中到事件的核心人物:CrowdStrike的首席执行官George Kurtz。
科技行业分析师Anshel Sag指出,这已经不是库尔茨第一次在重大IT事件中扮演重要角色了。

熟悉的配方,熟悉的味道
2010年4月21日,杀毒软件McAfee发布了一次面向企业客户的软件更新。
获得更新后的软件会删除一个Windows系统的关键文件,导致全球数百万台电脑崩溃并反复重启。
和CrowdStrike的错误类似,McAfee的问题也需要手动修复(设备断网离线)。
而Kurtz,正是当时McAfee的首席技术官。
2012年,Kurtz创立了CrowdStrike,并一直担任首席执行官至今。

2010年,发生了什么?

2010年4月21日早上6点,McAfee向企业客户发布了一个「有问题」的病毒定义更新。
然后,这些自动更新的Windows XP电脑,会直接陷入「无限重启」的循环中,直到技术支持人员到场手动修复。
背后的原因其实很简单——杀毒软件在收到新的定义之后,会将一个常规的Windows二进制文件「svchost.exe」识别为病毒「W32/Wecorl.a」,并予以销毁。
一位大学IT人员报告称,他的网络上有1200台电脑因此瘫痪。
另一封来自美国企业的电子邮件称,他们有「数百名用户」受到了影响:
这个问题影响了大量用户,而简单地替换svchost.exe并不能解决问题。你必须启动到安全模式,然后安装extra.dat文件,再手动运行vsca 控制台。之后,你还需要删除隔离的文件。每个用户至少有两个文件被隔离,有些用户多达15个。不幸的是,使用这种方法,你无法确定你恢复的文件中哪些是重要的系统文件,哪些是病毒文件。
此外,还有一份来自澳大利亚的报告称,该国最大的超市连锁店有10%的收银机瘫痪,导致14到18家商店被迫关闭。
这件事在当时的影响之大,让众人纷纷惊叹:「即便是专注于开发病毒的黑客,估计都做不出能像McAfee今天这样能迅速『端掉』这么多机器的恶意软件。」
以下是SANS Internet Storm Center对这次事件的描述:
McAfee版本为5958的「DAT」文件,正在导致大量Windows XP SP3出现问题。受影响的系统将进入重启循环并失去所有网络连接。这个有问题的DAT文件可能会感染单个工作站以及连接到域的工作站。
使用「ePolicyOrchestrator」来更新病毒定义文件,似乎加速了这个有问题的DAT文件的传播。ePolicyOrchestrator通常用于在企业中更新「DAT」文件,但由于受影响的系统会失去网络连接,它无法撤销这个有问题的签名。
Svchost.exe是Windows系统中最重要的文件之一,它承载了几乎所有系统功能的服务。如果没有Svchost.exe,Windows根本无法启动。
两起事件虽然相隔14年,但却有着同样的疑惑——这样的更新是如何从测试实验室流出并进入生产服务器的。理论上,这类问题应该在测试初期就被发现并解决了才对。

何许人也?

George Kurtz在新泽西州的Parsippany-Troy Hills长大,就读于Parsippany高中。
Kurtz表示,自己在四年级时就开始在Commodore电脑上编写电子游戏程序。高中时,建立了早期的网络交流平台——公告板系统。
他毕业于西东大学,获得会计学学位。






请到「今天看啥」查看全文