前言
7月19日,全球多地微软Windows操作系统的电脑突然出现访问异常问题,导致蓝屏现象。
一、事件背景与影响分析
1.起因
随着全球网络基础设施的日益复杂化,网络安全问题已经成为我们无法忽视的重要议题。近期,微软视窗系统软件更新引发的全球性“微软蓝屏”事件,无疑是对全球IT基础设施韧性与安全性的深刻检验。在此,我们不仅要反思这次事件带来的教训,更要探讨如何构建更加稳固和安全的网络环境。
微软视窗系统是全球使用最广泛的操作系统之一,其每一次更新都会涉及数亿台设备的正常运行。然而,这次事件中的更新却引发了严重的系统故障,导致全球范围内的设备出现蓝屏问题。
蓝屏问题通常由硬件故障、驱动程序问题或软件错误引起,但这次的故障主要源于“众击”公司提供的一个带有缺陷的软件更新。
2.事件影响
这次事件的影响之广,几乎覆盖了所有依赖视窗系统的关键行业:
-
航空业:据统计,美国超过2.3万架次航班因系统故障延误,旅客出行受到严重影响。这不仅给航空公司带来了巨大的经济损失,也对其声誉造成了严重打击。例如,美国联合航空公司因系统故障导致航班大面积延误,旅客投诉不断,公司股价也随之下跌。
- 医疗行业:医疗设备和医院管理系统的崩溃,直接影响了患者的治疗和医疗数据的管理。例如,一家大型医院的手术管理系统在更新后无法正常运行,导致多台手术被迫延迟,严重影响了患者的健康和医院的正常运作。
- 传媒行业:媒体公司的新闻发布系统和内部管理系统出现故障,导致新闻发布和信息传递延迟。例如,某国际知名新闻机构因系统故障未能及时报道一则重大新闻事件,导致其错失了新闻发布的最佳时机,影响了其公信力和竞争力。
二、打造中国软件体系生态
在本次蓝屏事件发生的不久后,便有不少工程师逐层排查,直接将问题归咎在了CrowdStrike 发布软件更新中的 csagent.sys 文件上。
基于此,Objective-See 基金会创始人 Patrick Wardle 初探 csagent.sys 文件之所以能引起系统崩溃的原因,其发推说,这个文件中包含了错误的指令:
mov r9d, [r8]
其中,R8 是未映射地址。它取自指针数组(保存在 RAX 中),索引 RDX(0x14 * 0x8)保存了一个无效的内存地址。
其他“驱动程序”(例如 “C-00000291-...32.sys”)似乎是混淆数据……
某些数据或文件(比如日志条目、网络活动记录等)被 CSAgent.sys 系统地收集(ingested),并且与其它数据进行交叉比对(x-ref'd),以帮助 CrowdStrike Falcon Sensor 识别和响应潜在的安全威胁
..所以也许无效的(配置/签名)数据触发了 CSAgent.sys 中的故障。
通过调试可以更容易地判断/确认
也有开发者 Kevin Beaumont 发现,“导致问题的 .sys 文件是通道更新文件(channel update files),由于格式无效,它们导致顶级 CS 驱动程序崩溃。”
当前,CrowdStrike 在调查之后,紧急发布了公告,揭晓了根本原因。
三、加快国产自主PC系统开发
经过此事,我想我们要加快打造100%独立自主研发的PC系统,像现在的银河麒麟操作系统、Deepin操作系统、UOS操作系统等大多仍是采用Linux、Unix内核为蓝本而改造,并且市场占有率不高,软件生态依靠Linux。这时在面临类似此事的事件时,仍有很大的风险。
这次事件暴露了软件更新管理中的多个问题。首先是缺乏充分的测试和验证,导致缺陷未能在发布前被发现。其次,更新发布后的监控和应对机制也存在问题,未能及时识别和处理出现的故障。在未来的操作系统研发中,我认为可以将软件的更新管理程序直接写入系统中,这样便能有效避免因软件更新而出现的系统停摆罢工。