Exchange 紧急缓解 (EM) 服务

Exchange 紧急缓解服务(EM 服务)旨在通过应用缓解措施来处理针对服务器的任何潜在威胁,以帮助保护 Exchange 服务器的安全。 它使用基于云的 Office 配置服务 (OCS) 来检查和下载可用的缓解措施,并将诊断数据发送到 Microsoft。

EM 服务在 Exchange 邮箱服务器上作为 Windows 服务运行。 在 Exchange Server 2016 或 Exchange Server 2019 上安装 2021 年 9 月 CU (或更高版本) 时,EM 服务会自动安装在具有邮箱角色的服务器上。 EM 服务不会安装在边缘传输服务器上。

EM 服务的使用是可选的。 如果不希望 Microsoft 自动将缓解措施应用到 Exchange 服务器,可以禁用此功能。

缓解

缓解是自动采取的一种操作或一组操作,以保护 Exchange 服务器免受正在外界广为传播的已知威胁。 为了帮助保护组织并降低风险,EM 服务可能自动禁用 Exchange 服务器上的特性或功能。

EM 服务可以应用以下类型的缓解:

  • IIS URL 重写规则缓解:此规则阻止可能危害 Exchange 服务器的恶意 HTTP 请求的特定模式。
  • Exchange 服务缓解:此项缓解禁用了 Exchange 服务器上易受攻击的服务。
  • 应用池缓解:这将禁用 Exchange 服务器上易受攻击的应用池。

通过使用 Exchange PowerShell cmdlets 和脚本可以查看和控制任何已应用的缓解措施。

工作原理

如果 Microsoft 了解到安全威胁,我们可能会针对此问题创建并发布缓解措施。 在这种情况下,缓解将作为已签名的 XML 文件从 OCS 发送到 EM 服务,其中包含用于应用缓解的配置设置。

安装 EM 服务后,该服务会每小时检查一次 OCS 是否有可用的缓解措施。 然后,EM 服务下载 XML 文件并验证签名,以验证 XML 是否被篡改。 EM 服务检查颁发者、扩展密钥使用情况和证书链。 成功验证后,EM 服务将应用缓解措施。

在可以应用修复该漏洞的安全更新之前,每个缓解都只是一种临时性修复程序。 EM 服务不能替代 Exchange SU。 但是,在更新之前,这是缓解连接到 Internet 的本地 Exchange 服务器最大风险的最快、最简单的方法。

已发布缓解列表

下表介绍了所有已发布缓解的存储库。

序列号 缓解 ID 说明 适用的最低版本 适用的最高版本 回滚过程
1 PING1 EEMS 心跳探测。 不修改任何 Exchange 设置。 Exchange 2019:2021 年 9 月 CU

Exchange 2016:2021 年 9 月 CU

- 无需回滚。
2 M1 通过 URL 重写配置缓解 CVE-2022-41040。 Exchange 2019:RTM

Exchange 2016:RTM

Exchange 2019:2022 年 10 月 SU

Exchange 2016:2022 年 10 月 SU

从默认网站内的 IIS URL 重写模块中删除规则 EEMS M1.1 PowerShell - 入站

先决条件

如果这些先决条件尚未在安装 Exchange 或要安装的 Windows Server 上,安装程序会在准备检查期间提示你安装这些必备组件:

连接性

EM 服务需要与 OCS 建立出站连接才能检查和下载缓解。 如果在安装 Exchange Server 期间与 OCS 的出站连接不可用,则安装程序在就绪检查期间发出警告。

虽然可以在不连接到 OCS 的情况下安装 EM 服务,但它必须连接到 OCS 才能下载并应用最新的缓解。 必须可从安装了 Exchange Server 的计算机访问 OCS,EM 服务才能正常运行。

端点 地址 端口 说明
Office 配置服务 officeclient.microsoft.com/* 443 Exchange EM 服务所需的端点

重要

请确保从防火墙或第三方软件(如 AntiVirus)执行的 SSL 检查工作流中排除与 officeclient.microsoft.com 的连接,因为这可能会破坏内置于 EM 服务的证书验证逻辑。

如果为出站连接部署了网络代理,则需要通过运行以下命令在 Exchange 服务器上配置InternetWebProxy参数:

Set-ExchangeServer -Identity <ServerName> -InternetWebProxy <http://proxy.contoso.com:port>

此外,还必须在 WinHTTP 代理设置中配置代理地址:

netsh winhttp set proxy <proxy.contoso.com:port>

除了到 OCS 的出站连接外,EM 服务还需要与 此处提到的各种证书吊销列表 (CRL) 终结点建立出站连接。

这些证书是验证用于对缓解 XML 文件进行签名的证书的真实性所必需的。

强烈建议让 Windows 在计算机上维护 证书信任列表 (CTL) 。 否则,必须定期手动维护。 若要允许 Windows 维护 CTL,必须可从安装了 Exchange Server 的计算机访问以下 URL。

端点 地址 端口 说明
证书信任列表下载 ctldl.windowsupdate.com/* 80 证书信任列表下载

Test-MitigationServiceConnectivity 脚本

可以通过使用 Exchange 服务器目录中的 Test-MitigationServiceConnectivity.ps1 脚本(在V15\Scripts文件夹中提供)来验证 Exchange 服务器是否已连接到 OCS。

如果服务器已经连接,则输出为:

Result: Success.
Message: The Mitigation Service endpoint is accessible from this computer.

如果服务器没有连接,则输出为:

Result: Failed.
Message: Unable to connect to the Mitigation Service endpoint from this computer. To learn about connectivity requirements, see https://aka.ms/HelpConnectivityEEMS.

禁用通过 EM 服务自动应用缓解

EM 服务的一个功能是从 OCS 下载缓解,并自动将其应用到 Exchange Server。 如果你的组织有缓解已知威胁的替代方法,则可以选择禁用自动应用缓解。 可以在组织级别或 Exchange 服务器级别启用或禁用自动缓解。

要为整个组织禁用自动缓解,可以使用以下命令:

Set-OrganizationConfig -MitigationsEnabled $false

默认情况下, MitigationsEnabled 设置为 $true。 设置为 $false时,EM 服务仍每小时检查缓解措施,但不会自动将缓解措施应用于组织中的任何 Exchange 服务器,而不管 MitigationsEnabled 参数在服务器级别的值如何。

若要在特定服务器上禁用自动缓解,请将 ServerName> 替换为<服务器的名称,然后运行以下命令:

Set-ExchangeServer -Identity <ServerName> -MitigationsEnabled $false

默认情况下, MitigationsEnabled 设置为 $true$false设置为 时,EM 服务每小时检查一次缓解措施,但不会自动将它们应用到指定的服务器。

组织设置和服务器设置的组合决定了每台Exchange 服务器上 EM 服务行为。 下表对此行为进行了描述:

组织设置 服务器设置 结果
True True EM 服务将自动向 Exchange 服务器应用缓解。
True False EM 服务不会自动将缓解措施应用于特定的 Exchange 服务器。
False False EM 服务不会自动将缓解措施应用于任何 Exchange 服务器。

注意

MitigationsEnabled 参数自动应用于组织的所有服务器。 在将组织中的第一台 Exchange 服务器升级到 2021 年 9 月 CU(或更高版本)后,此参数就会设置为$true值。 此行为是设计使然。 在使用 2021 年 9 月 CU(或更高版本)升级组织中的其他 Exchange 服务器后,EM 服务将仅遵循 MitigationsEnabled 参数的值。

查看应用的缓解

将缓解措施应用于服务器后,可以通过将 ServerName> 替换为<服务器名称,然后运行以下命令来查看应用的缓解措施:

Get-ExchangeServer -Identity <ServerName> | Format-List Name,MitigationsApplied

示例输出:

Name            :   Server1
MitigationsApplied  :   {M01.1, M01.2, M01.3}

若要查看环境中所有 Exchange 服务器的已应用缓解措施列表,请运行以下命令:

Get-ExchangeServer | Format-List Name,MitigationsApplied

示例输出:

Name            :   Server1
MitigationsApplied  :   {M01.1, M01.2, M01.3}

Name            :   Server2
MitigationsApplied  :   {M01.1, M01.2, M01.3}

重新应用缓解

如果意外地撤销了缓解措施,EM 服务会在执行针对新缓解措施的每小时检查时重新应用缓解措施。 若要手动重新应用任何缓解,请通过运行以下命令在 Exchange 服务器上重新启动 EM 服务:

Restart-Service MSExchangeMitigation

重启 10 分钟后,EM 服务将运行其检查并应用任何缓解措施。

阻止或删除缓解

如果缓解措施严重影响 Exchange 服务器的功能,则可以阻止缓解措施,并手动撤消缓解措施。

要阻止任何缓解,请在 MitigationsBlocked 参数中添加缓解 ID:

Set-ExchangeServer -Identity <ServerName> -MitigationsBlocked @("M1")

前面的命令会阻止 M1 缓解措施,这可确保 EM 服务在下一个每小时周期内不会重新应用此缓解措施。

若要阻止多个缓解,请使用以下语法:

Set-ExchangeServer -Identity <ServerName> -MitigationsBlocked @("M1","M2")

阻止缓解不会自动将其删除,但在阻止缓解后,可以手动将其删除。 如何删除缓解取决于缓解的类型。 例如,要删除 IIS 重写规则缓解,请在 IIS 管理器中删除该规则。 要删除服务或应用池缓解,请手动启动服务或应用池。

还可以通过在同一命令中删除 MitigationsBlocked 参数中的缓解 ID,从阻止的缓解列表中删除一个或多个缓解措施。

例如:

Set-ExchangeServer -Identity <ServerName> -MitigationsBlocked @()

从阻止的缓解列表中删除缓解后,EM 服务将在下次运行时重新应用该缓解。 要手动重新应用缓解,请通过运行以下命令停止并重启 EM 服务:

Restart-Service MSExchangeMitigation

重启 10 分钟后,EM 服务将运行其检查并应用任何缓解措施。

重要

避免对 MitigationsApplied 参数进行任何更改,因为 EM 服务使用它来存储和跟踪缓解状态。

查看已应用和阻止的缓解

可以使用 Get-ExchangeServer cmdlet 查看组织中所有 Exchange 服务器的已应用和阻止的缓解。

要查看所有 Exchange 服务器的已应用和阻止缓解列表,请执行以下操作:

Get-ExchangeServer | Format-List Name,MitigationsApplied,MitigationsBlocked

示例输出:

Name            :   Server1
MitigationsApplied  :   {M01.1, M01.3}
MitigationsBlocked  :   {M01.2}

Name            :   Server2
MitigationsApplied  :   {M01.1, M01.2}
MitigationsBlocked  :   {M01.3}

若要查看每个服务器应用和阻止的缓解措施的列表,请将 ServerName> 替换为<服务器的名称,然后运行以下命令:

Get-ExchangeServer -Identity <ServerName> | fl name, *Mitigations*

示例输出:

Name            :   Server1
MitigationsEnabled  :   True
MitigationsApplied  :   {M01.1, M01.3}
MitigationsBlocked  :   {M01.2}

Get-Mitigation 脚本

可以使用 Get-Mitigations.ps1 脚本分析和跟踪 Microsoft 提供的缓解。 此脚本在 Exchange Server 目录的 V15\Scripts 文件夹中可用。

该脚本显示每个缓解的 ID、类型、说明和状态。 该列表包括任何已应用、阻止或失败的缓解。

若要查看特定服务器的详细信息,请在 Identity 参数中提供服务器名称。 例如,.\Get-Mitigations.ps1 -Identity <ServerName>。 若要查看组织中所有服务器的状态,请省略 Identity 参数。

示例: 通过使用 ExportCSV 参数将已应用缓解及其说明列表导出到 CSV 文件:

.\Get-Mitigations.ps1 -Identity <ServerName> -ExportCSV "C:\temp\CSVReport.csv"

重要

Get-Mitigations 脚本需要 PowerShell 版本 4.0。

在 SU 或 CU 升级后删除缓解

安装 SU 或 CU 后,管理员必须手动删除不再需要的任何缓解。 例如,如果在安装 SU 后名为 M1 的缓解不再相关,则 EM 服务将停止应用它,并将从已应用缓解的列表中将其删除。 如有必要,可以根据缓解措施的类型从服务器中删除它。

注意

Exchange 紧急缓解服务可以在每个站点/每个 vDir 级别添加 IIS URL 重写规则缓解措施 , (例如, Default Web Site 在) 和服务器级别上 OWA 添加或仅在 vDir Default Web Site 上。 Site/vDir 级别的缓解措施将添加到 site/vDir 的相应 web.config 文件中,而服务器级别的缓解措施将添加到文件中 applicationHost.config 。 安装 CU 后,应删除站点级缓解措施。 但是,服务器级别的缓解措施会保持到位,如果不再需要缓解措施,则必须手动删除。

如果缓解措施适用于新安装的 CU,则 EM 将重新应用该缓解措施。

Exchange Server安全更新 (SU) 或累积更新 (CU) 的发布与缓解 XML 文件的更新之间可能存在延迟,但应用缓解措施中的安全固定内部版本号除外。 这是意料之中的,不应造成任何问题。 如果要同时删除并阻止正在应用的缓解措施,可以按照 阻止或删除缓解措施 部分中概述的步骤进行操作。

我们将更新 已发布的缓解措施列表 部分的表,并更新特定缓解措施的回滚过程,只要不再应用于安全固定 Exchange 版本。

审核和日志记录

由管理员阻止的任何缓解都将记录在 Windows 应用程序事件日志中。 除了记录阻止的缓解外,EM 服务还会记录有关服务启动、关闭和终止的详细信息(如在 Windows 上运行的所有服务),以及其操作的详细信息以及 EM 服务遇到的任何错误。 例如,对于成功的操作,如在应用某个缓解时,将记录源为“MSExchange 缓解服务”的事件 1005 和 1006。 具有相同源的事件 1008 将记录任何遇到的错误,例如 EM 服务无法访问 OCS 时。

可以使用 Search-AdminAuditLog 查看自己或其他管理员采取的操作,包括启用和禁用自动缓解。

EM 服务在 Exchange Server 安装目录的 \V15\Logging\MitigationService 文件夹中维护一个单独的日志文件。 此日志详细介绍 EM 服务所执行的任务,包括已提取、分析和应用的缓解以及有关发送到 OCS 的信息的详细信息(如果启用了发送诊断数据)。

诊断数据

启用数据共享后,EM 服务会将诊断数据发送到 OCS。 此数据用于识别和缓解威胁。 要详细了解收集的内容以及如何禁用数据共享,请参阅 为 Exchange Server 收集的诊断数据