Windows 驱动程序的安全部署最佳做法

安全、可靠且与 Windows 兼容的驱动程序部署策略对于提供无缝且可信的用户体验至关重要。

本文概述了Microsoft硬件和固件合作伙伴的安全部署最佳做法,帮助他们生成和执行可靠的部署计划,以最大程度地减少中断、效率低下和设备故障。

尽管某些合作伙伴可能会选择在 Windows 更新之外管理自己的分发进程,但建议尽可能使用 Windows 更新。 Windows 更新提供受控、安全且高效的生态系统,可降低不兼容、安全漏洞和用户影响的风险。 有关分发驱动程序包的详细指南,请参阅 分发驱动程序包

根据网络安全和基础结构安全局(CISA) 安全软件部署指南,这些最佳做法强调透明度、版本控制、回滚规划和安全软件设计(新式驱动程序部署的基本要素)。

有关Microsoft驱动程序安全理念的详细信息,请参阅 驱动程序安全指南

安全部署生命周期

驱动程序安全部署最佳做法分为部署生命周期的三个阶段:

  • 预部署

    侧重于规划、内部测试、Windows 硬件质量实验室(WHQL)认证、验证依赖项,并在分发之前将部署标准与业务和工程目标保持一致。

  • 发运

    涵盖驱动程序的实际分发,包括适用时使用 Windows 更新、部署圈策略以及遵循逐步推出的最佳做法。

  • 部署后监视和维护

    涉及监控设备运行状况信号、分析遥测、以及根据实际性能暂停、回滚或更新部署。

显示具有三个阶段的安全部署生命周期的关系图:预部署、分发和部署后监视。

每个部分都提供可作的指南,帮助合作伙伴确保驱动程序版本在部署过程中满足高标准的可靠性、安全性和性能。

预部署活动

在分发驱动程序、测试、验证和评估安全性之前,确保最终用户的安全可靠体验。 这些步骤可防止部署问题、降低支持成本并提高用户满意度。

有关Microsoft建议的端到端过程概述,请参阅 “开发、测试和部署驱动程序 ”指南。

最终测试和验证

在分发驱动程序、测试、验证和评估安全性之前。 此步骤可降低回归、安全漏洞和用户中断的风险。

安全性和代码完整性

驱动程序安全性对于系统稳定性、保护和符合 Windows 驱动程序策略至关重要。

  • 根据 驱动程序签名 的要求为驱动程序进行数字签名。 查看 驱动程序代码签名要求 ,了解更多合规性和策略指南。

    • 所有用于部署的驱动程序(无论是通过 Windows 更新还是备用通道)都必须正确签名,以确保完整性和信任。

    • 驱动程序必须获取 Windows 硬件质量实验室(WHQL)签名,无论分发渠道是 Windows 更新、OEM 控制的通道还是供应商控制的通道(例如网站或特定于企业的工具)。 获取 WHQL 发布签名 可确保在 Windows 系统上默认信任驱动程序包。 如果没有此配置步骤,需要使用备用证书建立信任,在部署期间引入复杂性和风险。 获取 WHQL 发布签名所需的 WHQL 认证验证驱动程序是否通过Microsoft的兼容性测试,并满足所需的安全标准。

  • 若要最大程度地减少漏洞,请遵循Microsoft的 驱动程序安全清单

  • 若要发现潜在的安全漏洞,请在编译时使用 Code QL ,并在运行时使用 驱动程序验证程序

  • 将开发做法与 驱动程序安全指南保持一致,该指南概述了传送安全、可靠的驱动程序的好处,并包括有关避免恶意或易受攻击的代码模式的指导。

Microsoft鼓励开发和发布反恶意软件驱动程序的组织参与 Microsoft病毒计划(MVI),该计划致力于将反恶意软件技术与 Windows 安全标准保持一致。

部署规划

战略规划可降低风险,改善用户体验,并确保高效的交付和支持。

  • 定义推出策略(例如逐步推出、试点部署、区域或硬件目标版本)。

    • 若要在全局发布之前降低风险并监视实际行为,请了解 逐步推出
  • 选择部署通道:

    • 推荐使用 Windows 更新,因为它具有可控且安全的基础设施。
    • 有关发布指南,请参阅 通过 Windows 更新分发驱动程序
    • 如果独立管理分发,请确保实现相同的安全和监视级别。
  • 通过定义回滚条件、识别回滚候选项和记录升级过程来规划失败方案。

  • 为了满足质量和交付预期,请确保工程、QA 和商业利益干系人之间保持一致。

“创建部署计划”中了解详细信息。

分销

确保驱动程序安全地、可靠且高效地到达用户对于维护系统稳定性和用户信任至关重要。 分发阶段侧重于使用Microsoft的内置基础结构,通过结构化、可复原的方法发布和交付驱动程序。 本部分还介绍了替代分发路径的安全做法。

Windows 更新和其他分发方法

Windows 更新(建议):

  • 提供安全、自动和控制的驱动程序分发。
  • 与 Windows 服务和功能更新集成。
  • 启用基于遥测数据的逐步推出和内置回滚机制。
  • 支持按硬件 ID、OS 版本和其他条件进行目标设定。

分发驱动程序包中了解详细信息。

发布者频道:

  • 在利基或企业控制的环境中可能是必需的。
  • 需要安全措施才能匹配 Windows 更新保护:
    • 驱动程序应安全地打包并接受 WHQL 发布签名。 即使驱动程序部署在 Windows 更新之外,它们仍应完成 WHQL 测试并经过数字签名。 WHQL 测试和驱动程序签名确保符合 Microsoft 的质量和安全标准,并与 Windows 更新提供的保护保持一致。
    • 手动回滚机制和版本控制。
    • 与 IT 团队或最终用户协调以确保安全安装。

驱动程序依赖项的约束

本指南适用于所有分发方法,包括 Windows 更新、OEM 门户和企业特定的工具。

Windows 无法保证或提供在驱动程序包之间紧密耦合依赖项的机制。 这些依赖项包括依赖于确切版本匹配才能正常运行的驱动程序到驱动程序或驱动程序到固件的关系。 相反,驱动程序之间或驱动程序和固件之间的任何交互都必须通过定义完善的接口进行,这些接口使用版本控制来表示接口中的更改。

驱动程序和固件需要提供某种级别的向前和向后兼容性,以便系统继续运行,而不考虑驱动程序和固件版本的混合。 Windows 不支持需要确切版本匹配的紧密耦合依赖项。

部署阶段

驱动程序部署是一个多阶段过程,可确保安全性、可靠性和最小中断。 部署阶段(试点部署、逐步推出和完整部署)可降低风险,并在完全分发之前确认驱动程序稳定性。 CISA 的安全软件部署指南 中强调了逐步推出的重要性,其中包括详细的部署时间线(请参阅提供的链接中的图 1)。 此时间线显示这些阶段如何适应整体过程。 它重点介绍了组织如何在更广泛的分发之前全面监视性能和测试驱动程序。

  • 试点部署(内部推出):

    • 面向有限测试受众的初始版本。
    • 用于验证实际环境中的行为。
    • 支持快速响应回归或兼容性问题。
  • 逐步推出(部署和 Canary 测试):

    • 增量增加基于遥测和诊断的曝光率。
    • 有助于识别系统性问题,同时最大程度地减少广泛影响。
    • 根据质量指标和设备运行状况调整推出速度和范围。

在 Microsoft 硬件开发人员中心的文章逐步推出驱动程序更新中了解详细信息。

  • 完整部署(受控推出):
    • 在成功监视试点和逐步推出阶段后启用。
    • 支持在全球范围内的兼容系统上实现更广泛的覆盖。

部署后监视和维护

在发布后主动监视驱动程序可靠性,以检测和修复潜在问题。

遥测和问题检测

问题响应和驱动程序更新

  • 发布修补程序以解决安全漏洞。
  • 根据遥测见解提供热修复或新的驱动程序版本。
  • 预发布回滚候选项和替代驱动程序。
  • 与Microsoft支持或驱动程序配送室通道进行通信。

详细了解事件响应中的事件响应安全工具 :用于集成和管理安全工具的 Windows 安全最佳做法

支持终止的注意事项

  • 计划弃用较旧的驱动程序并无缝转换用户。
  • 在转换期间为用户提供明确的通信和支持。

概要

安全部署是一个持续的过程,包括:

  1. 在发布之前执行彻底的验证和安全评估。
  2. 使用受控分布策略来降低风险。
  3. 主动监视部署并解决问题。

这些指南可帮助硬件和固件合作伙伴改进部署策略并构建安全可靠的 Windows 生态系统。 这些最佳做法符合 Microsoft Windows 安全原则,并支持来自 CISA 等组织的建议。 他们倡导一种积极主动和协作的方法来提高软件的可靠性和生态系统的健康。