微软携手合作伙伴应对安全软件重构的“艰巨任务”
微软与多家安全厂商合作推进Windows Resiliency Initiative,旨在重构Windows内核中第三方安全软件的运行方式,以降低类似2024年CrowdStrike故障引发的全球IT中断风险。项目仍处早期阶段,涉及API重设计、功能迁移与性能权衡,预计耗时数年。

微软及其合作伙伴正低调推进一项大规模工程,旨在彻底重构网络安全软件在Windows系统中的运行方式,以提升系统韧性。然而,这一被视作数十年来最具雄心的软件工程变革之一,其成果可能需要数年才能惠及最终用户。
该计划名为“Windows韧性计划”(Windows Resiliency Initiative),目标是保护Windows计算机免受在内核(操作系统最高权限环境)中运行的第三方缺陷软件所引发的破坏性影响。微软在2024年因CrowdStrike一次错误软件更新导致数百万台计算机瘫痪、造成数十亿美元损失后,宣布了该计划。那次事件影响了政府、关键基础设施机构及财富500强企业,并引发了对内核中第三方代码风险的广泛讨论。
CrowdStrike事件后的教训
Windows内核是操作系统的核心,连接计算机硬件与软件组件,负责管理内存分配、验证设备驱动程序配置并协调各进程工作。因其对计算机内部一切活动拥有完全控制权,安全应用开发者视其为理想运行环境——产品需要全面可见性与控制力以阻断网络攻击。
“作为安全厂商,你希望看到设备上发生的一切。”ESET首席安全布道师Tony Anscombe表示。内核具备冻结并重置常规运行环境的能力,在计算机遭遇意外或恶意问题时成为关键资产。“你的机器无需重启,”Anscombe说,“因为应用运行在另一种模式下,Windows作为操作系统,其内核模式可以关闭用户模式并重启它,而无需重启整个系统。”
除可见性与控制力外,内核还提供速度和灵活性,极大惠及安全应用。但内核的强大权力也伴随重大责任——一个有缺陷的内核进程可能拖垮整台计算机,若广泛部署,甚至可瘫痪整个网络。
这正是2024年7月19日发生的情况:CrowdStrike向其端点检测与响应(EDR)产品Falcon部署了错误更新,导致运行Falcon的Windows计算机无限重启或进入恢复模式。全球超过800万台机器崩溃且无法重启,致使航空公司、银行、医院、证券交易所、政府机构及紧急服务瘫痪。一个运行在Windows内核中的第三方软件小更新,引发了史上最大规模IT中断,造成数十亿美元损失,其中仅财富500强企业损失就超过50亿美元。
“如果那个(Falcon)进程运行在用户模式,后果严重性可能截然不同。”Anscombe说。该事件凸显了在内核中运行并频繁更新第三方代码的危险性。数字混乱平息四个月后,微软于2024年11月19日启动Windows韧性计划,承诺与第三方安全厂商更紧密合作,推行负责任的软件开发与部署实践。微软要求所有安全程序的软件更新必须在客户组织中逐步部署,“以确保更新带来的任何负面影响降至最低”。
微软还表示,正“开发新的Windows功能,使安全产品开发者能够在内核模式之外构建产品”。“这一变化将帮助安全开发者提供高安全性、更易恢复,并在崩溃或错误发生时减少对Windows的影响。”公司补充道。
CrowdStrike事件验证了微软长期以来对第三方开发者在内核中运行代码的担忧,Windows架构专家Pavel Yosifovich说。微软通过要求公司签署驱动并满足测试要求来建立防内核级软件崩溃的保障,“但这并非万无一失”。
Windows API重构
为协调内核迁移项目,微软利用现有“微软病毒计划”(MVI)——一个帮助安全厂商顺利将其产品集成到Windows中的项目。作为Windows韧性计划的一部分,微软更新了MVI,将其命名为“MVI 3.0”,并要求参与者满足新的可靠性要求。
Anscombe称,约有100家安全公司是MVI成员,但只有约十几家——代表“市场主要份额”——正与微软紧密合作进行内核变更。微软已公开确认Bitdefender、CrowdStrike、ESET、SentinelOne、Sophos、Trellix、Trend Micro和WithSecure为该组成员,但除此之外,内核项目细节高度保密。参与公司员工须签署保密协议,多数被联系的公司拒绝接受采访。微软本身也拒绝回答基本问题,仅指向高管博客文章,其中细节寥寥。
内核项目仍处早期阶段。微软已要求厂商清点其所有产品功能,以了解在从内核模式向用户模式过渡期间需保留哪些功能。这项工作异常复杂,因为厂商需审查数十年积累的代码,且每家厂商的代码运行方式略有不同。
“这实际上是拆解所有产品的工作方式,然后拆解操作系统,看能否以不同方式提供那些功能。”Anscombe说,“这是一项极其艰巨的任务。”结果是Windows开发生态系统中一种极不寻常的安排:微软实时征求厂商反馈,并将其纳入应用程序编程接口(API)设计,使安全产品能安全接入Windows核心组件。
“这是不常见的场景,”Anscombe说,“不是某人开发好API扔到你桌上说‘这是新API,你需要适配’,而是API开发与你开发适配它的东西同步进行。”目睹ESET面临的挑战后,Anscombe表示:“我不愿站在微软的角度,收到50家厂商的反馈,然后试图映射每个人的需求,为他们提供所需全部功能。”
艰难的平衡
微软及其合作伙伴须克服重大挑战,才能让安全软件在用户模式下与内核模式下表现同样出色。首先,内核赋予软件更大控制力,这对保护系统免受恶意进程侵害的软件尤为重要。
“当进程创建时,内核驱动可收到通知、进行分析,并决定在其执行任何操作前终止它。”Yosifovich说。在用户模式下,软件只能在进程发生后收到通知。“如果进程生命周期短且执行恶意操作,用户模式可能来不及应对。”Windows安全专家兼独立顾问Jeff Tang表示,在用户模式下,“监控整个系统的能力受限得多”。Yosifovich认为,“完全在内核之外运行几乎不可能,除非进行重大重新设计或削弱安全产品能力”。
用户模式下运行的安全程序也更易被篡改。“你的能力与试图监控或阻止的对象处于同一水平,”Tang说,“因此恶意软件有同等机会阻止你保护系统。”该问题远非理论性。“我们已经听到勒索软件EDR杀手等各类尝试,”Anscombe说,“你需要给安全厂商保证,他们的应用不会被操纵。”
除篡改风险外,用户模式与内核的距离还引入处理延迟。“访问系统API时,用户模式更慢。”Yosifovich说。这种延迟可能决定客户体验成败,并带来潜在严重后果。“你不希望看到客户说‘现在一切都变慢了,我要关掉某些功能’,”Anscombe说,“那是安全性的退化。”
新API时间表未定
微软及其厂商合作伙伴正花时间分析面临的挑战。“目前更多是考虑如何通过API迁移某些功能,”Anscombe说,“测试、效能等还在更后面。”微软何时发布可供厂商构建用户模式软件的API,或该软件何时可测试部署,仍不明确。Anscombe拒绝讨论项目内部时间表,但他表示早期工作已验证厂商对快速完成的怀疑。
“这将持续很长时间,”Anscombe说,“总会有某个功能,在某个地方,某个人需要复杂过渡。”与此同时,市场压力可能推动安全产品迁出内核。若用户模式软件被证明更具韧性,美国国家标准与技术研究院(NIST)网络安全框架等广泛使用的出版物可能开始推荐组织使用此类软件。保险公司甚至可能为使用这些产品的客户提供更低保费,尤其若他们认定用户模式软件可降低引发索赔的业务中断风险。
Anscombe表示,最可能的结果是混合世界:部分软件继续在内核运行,其他程序在用户模式运行。某些产品甚至可能同时运行于两种模式,开发者先测试并实现较简单的用户模式迁移,再处理更复杂的代码组件。“它们可以在同一技术中共存,”Anscombe说,“事实上,理论上它们已经共存。”