适用于 Windows 的 Microsoft 安全服务标准
我们承诺保护客户免受软件、服务和设备漏洞的威胁,包括在 Microsoft 收到漏洞报告时提供安全更新和解决指导。我们还希望在此过程中对安全研究人员和我们的客户保持透明。本文档有助于介绍 Microsoft 安全响应中心 (MSRC) 所用的一种标准,该标准用于确定是否可以通过服务或在下一版本 Windows 中解决影响最新版本和当前支持的 Windows 版本的已报告的漏洞。对于 Windows 中的漏洞,服务采用安全更新或适用指南的形式,通常在“星期二更新”(每月的第二个星期二)发布。
安全服务标准
在评估为报告的漏洞提供安全更新还是指导时,Microsoft 使用的标准取决于两个关键问题:
- 此漏洞是否违反了安全边界或安全功能的目标或意向?
- 漏洞的严重性是否符合服务标准?
如果这两个问题的答案都是肯定的,则 Microsoft 的意向是,在符合商业利益的情况下,通过提供适用于受影响和支持的产品/服务的安全更新和/或指南来解决漏洞。如果这两个问题的答案都是否定的,则默认情况下,将考虑在下一版本或下一次发布的 Windows 中解决漏洞,但不会通过安全更新或指南来解决,但可能会有例外。
本文档解决了最常报告的漏洞,但由于安全形势不断发展,因此可能存在此标准未涵盖的漏洞,或者由于威胁形势的变化而可能对此标准进行调整。Microsoft 根据漏洞给客户带来的风险来解决漏洞,并随时可以根据评估的风险选择处理或不处理报告。
Microsoft 打算为其提供服务的安全边界和功能
为了实现安全目标,Microsoft 的软件、服务和设备依赖于许多安全边界和安全功能,软件还依赖于硬件的安全性。
安全边界
安全边界在具有不同信任级别的安全域的代码和数据之间提供逻辑隔离。例如,内核模式和用户模式之间的隔离采用的是经典且直接的安全边界。Microsoft 软件依赖于多个安全边界来隔离网络上的设备、虚拟机和设备上的应用程序。下表总结了 Microsoft 为 Windows 定义的安全边界。
安全边界 |
安全目标 |
用于提供服务? |
奖励? |
---|---|---|---|
网络边界 |
未经授权的网络终结点无法访问或篡改客户设备上的代码和数据。 | 是 | |
内核边界 |
非管理用户模式进程无法访问或篡改内核代码和数据。管理员到内核不是安全边界。 | 是 | |
进程边界 |
未经授权的用户模式进程无法访问或篡改其他进程的代码和数据。 | 是 | |
AppContainer 沙盒边界 |
基于 AppContainer 的沙盒进程无法访问或篡改基于容器功能的沙盒之外的代码和数据 | 是 | |
用户边界 |
用户无法在未经授权的情况下访问或篡改其他用户的代码和数据。 | 是 | |
会话边界 |
用户登录会话无法在未经授权的情况下访问或篡改其他用户登录会话。 | 是 | |
Web 浏览器边界 |
未经授权的网站不能违反同源策略,也不能访问或篡改 Microsoft Edge Web 浏览器沙盒的本机代码和数据。 | 是 | |
虚拟机边界 |
未经授权的 Hyper-V 来宾虚拟机无法访问或篡改其他来宾虚拟机的代码和数据;这包括 Hyper-V 独立容器。 |
是 | |
虚拟安全模式边界 |
在 VSM trustlet 或 enclave 外部执行的代码无法访问或篡改 VSM trustlet 或 enclave 内部的数据和代码。 | 是 |
非边界*
某些 Windows 组件和配置并不明确用于提供可靠的安全边界。下表汇总了这些组件。
*注意:以下列表并不详尽,旨在解决通常被误认为边界的两个组件。默认情况下,除非将组件显式命名为边界,否则不会将其视为边界。
组件 |
说明 |
---|---|
Windows 服务器容器 |
Windows Server 容器使用共享内核提供资源隔离,但不适用于恶意多租户方案。涉及恶意多租户的方案应该使用 Hyper-V 隔离容器来严格隔离租户。 |
管理员到内核 |
管理进程和用户被视为适用于 Windows 的可信计算基础 (TCB) 的一部分,因此不与内核边界严格隔离。管理员掌控设备的安全性,可以禁用安全功能、卸载安全更新以及执行使内核隔离无效的其他操作。 |
安全功能
安全功能基于安全边界构建,提供针对特定威胁的强大保护。在某些情况下,安全功能的目标是提供针对威胁的强大保护,并且预期不会存在任何阻止安全功能实现此目标的设计限制。对于此类别的安全功能,Microsoft 计划通过下表中所概述的服务来解决报告的漏洞。
类别 |
安全功能 |
安全目标 |
用于提供服务? |
奖励? |
---|---|---|---|---|
设备安全性 |
BitLocker | 设备关闭后,无法获取在磁盘上加密的数据。 | 是 | |
设备安全性 |
安全启动 | 根据 UEFI 固件策略的定义,只有授权的代码才能在预操作系统中运行,包括操作系统加载程序。 | 是 | |
平台安全性 |
Windows Defender System Guard (WDSG) | 签名不正确的二进制文件无法根据系统的应用程序控制策略执行或加载。策略允许的利用应用程序的绕过不在范围内。 | 是 | |
应用程序安全性 |
Windows Defender 应用程序控制 (WDAC) | 只有符合设备策略的可执行代码(包括由已启用的 Windows 脚本主机运行的脚本)才能运行。策略允许的利用应用程序的绕过不在范围内。要求管理权限的绕过不在范围内。 | 是 | |
标识和访问控制 |
Windows Hello/生物识别 | 攻击者无法通过欺诈、网络钓鱼或攻破 NGC(下一代凭据)来模拟用户。 | 是 | |
标识和访问控制 |
Windows 资源访问控制 | 除非显式授权,否则用户和组身份都无法访问或篡改资源(文件、命名管道等) | 是 | |
加密 API:下一代 (CNG) |
平台加密 | 算法是按照规范(例如 NIST)实现的,不会泄漏敏感数据。 | 是 | |
运行状况证明 |
主机保护者服务 (HGS) | 评估发出或保留下游密码操作所需的运行状况声明的调用方的标识和运行状况。 | 是 | |
身份验证协议 |
身份验证协议 | 协议是按照规范实现的,攻击者无法篡改、泄露敏感数据或模拟获取提升特权的用户。 | 是 |
深层防御安全功能
在某些情况下,安全功能可能会提供针对威胁的保护,而不能提供可靠的防御。这些安全功能通常被称为深层防御功能或缓解措施,因为它们提供了额外的安全性,但可能会有阻止它们完全缓解威胁的设计限制。绕过深层防御安全功能本身并不会带来直接风险,因为攻击者还必须发现会影响安全边界的漏洞,或者必须依赖其他技术(如社交工程)来实现设备入侵的初始阶段。
下表总结了 Microsoft 定义的没有服务计划的深层防御安全功能。默认情况下,将不会为影响这些安全功能的任何漏洞或绕过提供服务,但可能会在将来的版本或发布中加以解决。其中的许多功能正在每次产品发布中不断改进,同时也包含在有效的 bug 奖励计划中。
在某些情况下,深层防御安全功能可能会采用在默认情况下不符合服务标准的依赖项。因此,这些深层防御安全功能在默认情况下也不符合服务标准。使用受防护的虚拟机可以观察到这种情况的一个示例,此类虚拟机依赖于管理员无法入侵内核或受保护进程轻型 (PPL) 所保护的虚拟机工作进程 (VMWP)。在这种情况下,默认情况下不会为管理员到内核和 PPL 提供服务。
类别 |
安全功能 |
安全目标 |
用于提供服务? |
奖励? |
---|---|---|---|---|
用户安全 |
用户帐户控制 (UAC) | 防止在未获得管理员同意的情况下执行不需要的系统范围更改(文件、注册表等) | 否 | 否 |
用户安全 |
AppLocker | 阻止未授权的应用程序执行 | 否 | 否 |
用户安全 |
受控文件夹访问 | 保护受控文件夹免受潜在恶意应用的访问和修改 | 否 | 否 |
用户安全 |
Web 标记 (MOTW) | 防止从 Web 下载的活动内容在本地接受查看时提升特权 | 否 | 否 |
攻击缓解 |
数据执行保护 (DEP) | 攻击者无法从不可执行的内存(例如堆和堆栈)执行代码 | 否 | |
攻击缓解 |
地址空间布局随机化 (ASLR) | 攻击者无法预测进程虚拟地址空间的布局(在 64 位计算机上) | 否 | |
攻击缓解 |
内核地址空间布局随机化 (KASLR) | 攻击者无法预测内核虚拟地址空间的布局(在 64 位计算机上) | 否 | 否 |
攻击缓解 |
任意代码防护 (ACG) | 启用了 ACG 的进程无法修改代码页或分配新的私有代码页 | 否 | |
攻击缓解 |
代码完整性防护 (CIG) | 启用了 CIG 的进程无法直接加载签名不正确的可执行映像 (DLL) | 否 | |
攻击缓解 |
控制流防护 (CFG) | 受 CFG 保护的代码只能对有效的间接调用目标进行间接调用 | 否 | 否 |
攻击缓解 |
子进程限制 | 启用此限制后,无法创建子进程 | 否 | |
攻击缓解 |
SafeSEH/SEHOP | 异常处理程序链的完整性不能被破坏 | 否 | |
攻击缓解 |
堆随机化和元数据保护 | 堆元数据的完整性不能被破坏,并且攻击者无法预测堆分配的布局 | 否 | |
攻击缓解 |
Windows Defender 攻击防护 (WDEG) | 允许应用启用其他深层防御攻击缓解功能,使攻击者更难利用漏洞 | 否 | 否 |
平台锁定 |
受保护进程轻型 (PPL) | 通过打开进程函数防止非管理非 PPL 进程访问或篡改 PPL 进程中的代码和数据 | 否 | 否 |
平台锁定 |
受防护的虚拟机 | 帮助保护 VM 的机密及其数据免受恶意结构管理员或主机上运行的恶意软件的运行时和脱机攻击 | 否 | 否 |