【导读】绝了,外媒刚刚发现:这次造成微软蓝屏灾难的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电脑上编写电子游戏程序。高中时,建立了早期的网络交流平台——公告板系统。
他毕业于西东大学,获得会计学学位。
随后他创办了Foundstone,并曾担任McAfee的首席技术官。
目前,George Kurtz在与Dmitri Alperovitch共同创立的网络安全公司CrowdStrike,担任首席执行官。
除了商业成就外,他还是一名赛车手。
Price Waterhouse(普华永道)和 Foundstone
大学毕业后,Kurtz在Price Waterhouse开始了他的职业生涯,担任注册会计师(CPA)。
1993年,Price Waterhouse让Kurtz成为其新成立的安全组的首批员工之一。
1999年,他与Stuart McClure和Joel Scambray共同撰写了《Hacking Exposed》,这是一本针对网络管理员的网络安全书籍。该书销量超过60万册,并被翻译成30多种语言。
同年晚些时候,他创办了一家网络安全公司Foundstone,这是最早专门从事安全咨询的公司之一。Foundstone专注于漏洞管理软件和服务,并发展出了一个广受认可的事件响应业务,许多财富100强公司都是其客户。
McAfee
McAfee在2004年8月以8600万美元收购了Foundstone,Kurtz因此成为McAfee的高级副总裁兼风险管理总经理。在任期内,他帮助制定了公司的安全风险管理策略。
2009年10月,McAfee任命他为全球首席技术官和执行副总裁。
随着时间的推移,Kurtz对现有的安全技术运行缓慢感到沮丧,因为他认为这些技术没有跟上新威胁的发展速度。
有一次,他在飞机上看到邻座乘客等待15分钟才让McAfee软件在笔记本电脑上加载完毕,这一事件成为他创立CrowdStrike的灵感之一。
CrowdStrike
2011年11月,Kurtz加入私募股权公司Warburg Pincus,担任「驻企企业家」(entrepreneur-in-residence),并开始着手他的下一个项目CrowdStrike。
2012年2月,他与前Foundstone的首席财务官Gregg Marston和Dmitri Alperovitch联手,正式成立了CrowdStrike。
CrowdStrike将重点从反恶意软件和防病毒产品(McAfee的网络安全方法)转移到识别黑客使用的技术,以便发现即将到来的威胁。并开发了一种「云优先」(cloud-first)模式,以减少客户计算机上的软件负担。
2017年5月,CrowdStrike估值超过10亿美元。2019年,公司在纳斯达克首次公开募股6.12亿美元,估值达到66亿美元。
2020年7月,IDC报告将CrowdStrike评为增长最快的端点安全软件供应商。
2024年,Kurtz仍然是CrowdStrike的总裁兼首席执行官。
果然,世界就是个巨大的草台班子。
参考资料:
https://x.com/MalwareUtkonos/status/1814777806145847310
https://www.businessinsider.com/crowdstrike-ceo-george-kurtz-tech-outage-microsoft-mcafee-2024-7
https://www.crowdstrike.com/blog/falcon-update-for-windows-hosts-technical-details/
https://www.zdnet.com/article/defective-mcafee-update-causes-worldwide-meltdown-of-xp-pcs/