浅谈微软蓝屏事件原因及防范措施

科技   2024-07-22 10:08   浙江  

事件经过

UTC 时间7月19日四点零九分,美国安全公司CrowdStrike例行发布了其安全软件Falcon的配置更新。Falcon在Windows平台上装机量巨大,尤其在企业里得到了广泛部署,但是本次配置更新却存在一个bug,导致Falcon对应的驱动出错,触发了Windows的蓝屏死机(BSOD,Blue Screen of Death),对应的错误码为PAGE_FAULT_IN_NONPAGED_AREA,即程序访问了无效的内存地址。之所以如此,乃是由于驱动模块是直接工作在操作系统内核中的,因此其最终导致了BSOD,多次重启后仍然无法进入系统。

7月19日中午,陆续有公司爆出办公室中安装了CrowdStrike公司Falcon安全软件的Windows电脑出现了蓝屏,并且重启后很快继续蓝屏,导致无法办公。由于Windows默认没有提供针对这种场景的快速恢复方式,因而只能建议客户手动启动到安全模式或使用恢复环境,到C:\Windows\System32\drivers\CrowdStrike目录,删除有问题的文件。

此次事件波及多个国家和地区,涉及航空、银行、学校、政府机关以及个人用户。根据FlightAware的数据,本次事故造成了Frontier取消了131个航班、延误223个航班,占其总航班数量的近30%;西日本旅客铁道公司列车行驶信息无法获取,澳大利亚航空公司、政府服务、银行企业、超市自动收银等业务均收到影响,事故范围覆盖全球各个国家。

值得一提的是,CrowdStrike有美国情报部门背景,在外资企业中广泛使用,这次不少国内用户没有中招蓝屏,主要是因为没有采购CrowdStrike。

问题分析

回顾整个事件,最直接的原因当然是CrowdStrike未经充分测试就将错误的配置推送给了用户,但是对于整个软件系统来说,其健壮性不能依赖某个组件不出问题。在这次事件中,有三个方面是值得改进的。

首先是在操作系统和软件的升级上,生产环境下的关键业务系统中所依赖的系统更新不能像CrowdStrike这次事故中这样任性。对应更新应首先经过严格的测试,再以灰度方式进行小批量、阶梯式部署的方式发布给用户,在上一批用户没问题后,才能逐步分批推送给其他用户。另外,企业也应当通过域管平台等企业级集中管理系统合理配置相关策略,避免软件联网自更新造成不可控的故障。

其次是在操作系统的可恢复性上,尽管Windows提供了还原点、安全模式等功能,但是使用并不方便,需要专业人员进行操作,恢复过程较长。特别是普通用户如果在安全模式下进行文件操作,例如按照网上的指导删除问题文件,稍有差池,甚至可能进一步破坏操作系统。

最后就是有争议的系统边界问题。操作系统作为数字时代的基础设施,需要保障其稳定性和兼容性,在其上运行的代码应当是严格测试和验证过的,任何软件均应通过标准接口与操作系统进行交互。特别是安全软件,为了实施安全策略,其往往具备较高权限,因此更应严守边界,做好测试,而不能采取侵入式技术截获系统函数以实现相关功能。

国产系统的升级健壮性保障

那么,国产OS在升级健壮性方面提供了哪些保障呢?

首先,更新升级执行灰度升级策略。以UOS为例,每次小版本更新时,均会设计试验局点,进行充分的环境测试。在对外推送更新时,会配置灰度策略,调查收集各批次用户升级成功率与升级中的问题,避免致命问题爆发式扩散。

其次,对于企业内部用户,提供了内网升级平台与域管平台,前者支持灰度升级管控,方便内网客户对其自身设备进行分批次升级管理。后者可配置安全管控策略,对软件的升级行为进行管控,支持企业管理员通过配置与下发网络与更新策略,来限制软件的更新行为,从而保障终端软件在企业内部可管控的基线一致性和系统稳定性。

此外,即使在更新中发生了问题,也要提供了健壮的A/B分区恢复方案,实现了从操作系统内核至上层软件的全面回滚机制。这样,在新系统出现故障时,用户可以在数十秒内回滚系统,立即恢复业务。

最后,要建立安全接口机制。以统信UOS为例,通过UAPP计划与各安全厂商持续协商建立安全接口机制,划分操作系统和安全软件边界,以便安全伙伴基于统信UOS提供的USPI等安全接口进行安全功能开发,为用户提供更稳定、更兼容的安全解决方案,共同建设产业的安全生态。

操作系统的更新,尤其是规模化的端侧系统升级,需要操作系统厂商、生态伙伴与用户单位预先部署、协同规划、细致实施,这样才可以达到可靠、安全、健壮的升级目标,以本次事件为鉴,让我们大家一起努力,共同打造中国的操作系统创新生态。


铁君
集成电路 人工智能
 最新文章