在企业中阻止不受信任的字体

为了帮助保护你的公司免受可能源自不受信任或攻击者控制的字体文件的攻击,我们创建了“阻止不受信任的字体”功能。 使用此功能,你可以启用一项全局设置,该设置可阻止员工将使用图形设备接口 (GDI) 处理的不受信任字体加载到网络上。 不受信任的字体是在 %windir%\Fonts 目录之外安装的所有字体。 阻止不受信任的字体可帮助阻止可能在字体文件分析过程期间发生的远程(基于 Web 或基于电子邮件)和本地 EOP 攻击。

这对我意味着什么?

阻止不受信任的字体有助于提高你的网络和员工对字体处理相关攻击的防御力。 默认情况下,此功能未打开。

此功能是如何工作的?

可通过三种方式使用此功能:

  • 启用。 帮助阻止在 %windir%\Fonts 目录之外加载使用 GDI 处理的任何字体。 它还会启用事件日志记录。

  • 审核。 打开事件日志记录,但不会阻止字体加载,无论位置如何。 使用不受信任的字体的应用名称显示在事件日志中。

    注意

    如果尚未准备好将此功能部署到组织,可以在审核模式下运行此功能,以查看不加载不受信任的字体是否会导致任何可用性或兼容性问题。

  • 排除要加载不受信任的字体的应用。 你可以排除特定的应用,从而允许它们加载不受信任的字体,即使在启用此功能时也是如此。 有关说明,请参阅修复因字体被阻止而出现问题的应用

潜在的功能降低

启用此功能后,当出现以下情况时,员工可能会体验到功能减少:

  • 将打印作业发送到使用此功能且未排除后台处理程序进程的远程打印机服务器。 在这种情况下,将不会使用服务器 %windir%/Fonts 文件夹中尚不可用的任何字体。
  • 使用安装在 %windir%/Fonts 文件夹外的打印机图形 .dll 文件提供的字体进行打印。 有关详细信息,请参阅打印机图形 DLL 简介
  • 使用使用基于内存的字体的第一个或非 Microsoft 应用。
  • 使用 Internet Explorer 查看使用嵌入字体的网站。 在此情况下,该功能阻止嵌入字体,以使网站使用默认字体。 但是,并非所有字体都具有所有字符,因此网站可能会以不同方式呈现。
  • 使用桌面 Office 查看具有嵌入字体的文档。 在此情况下,内容将使用由 Office 选取的默认字体显示。

打开并使用“阻止不受信任的字体”功能

使用组策略或注册表打开或关闭此功能,或者使用审核模式。

通过组策略打开并使用“阻止不受信任的字体”功能

  1. 打开组策略编辑器 (gpedit.msc) 并转到 Computer Configuration\Administrative Templates\System\Mitigation Options\Untrusted Font Blocking
  2. 单击“ 启用” 以启用该功能,然后单击以下 缓解选项之一:
    • 阻止不受信任的字体并记录事件。 启用该功能,阻止不受信任的字体,并将安装尝试记录到事件日志。
    • 不阻止不受信任的字体。 启用该功能,但不阻止不受信任的字体,也不会将安装尝试记录到事件日志。
    • 记录事件而不阻止不受信任的字体。 打开该功能,将安装尝试记录到事件日志,但不阻止不受信任的字体。
  3. 单击“确定”

打开并通过注册表使用“阻止不受信任的字体”功能

若要启用、禁用此功能或使用审核模式:

  1. 打开注册表编辑器 (regedit.exe),然后转到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel\

  2. 如果 MitigationOptions 项不存在,请右键单击并添加新的 QWORD (64 位)值,并将其重命名为 MitigationOptions

  3. 右键单击 MitigationOptions 项,然后单击修改。 此时将打开编辑 QWORD (64 位)值框。

  4. 确保基数选项为十六进制,然后更新数值数据,并确保保留现有值,如下面的重要说明中所示:

    • 若要启用此功能, 键入 1000000000000

    • 若要关闭此功能, 键入 2000000000000

    • 若要审核此功能, 键入 3000000000000

      重要提示

      应在更新期间保存你的现有 MitigationOptions 值。 例如,如果当前值为 1000,你的更新值应为 1000000001000

  5. 重新启动计算机。

查看事件日志

启用此功能或开始使用“审核”模式后,可以查看事件日志了解详细信息。

查看你的事件日志

  1. 打开事件查看器 (eventvwr.exe) 并转到“应用程序和服务日志/Microsoft/Windows/Win32k/运行日志”
  2. 向下滚动到 EventID: 260 并查看相关的事件。

事件示例 1 - MS Word

WINWORD.EXE 尝试加载受字体加载策略限制的字体。
FontType:内存
FontPath:
已阻止:true

注意

由于 FontTypeMemory,因此没有关联的 FontPath

事件示例 2 - Winlogon

Winlogon.exe 尝试加载受字体加载策略限制的字体。
FontType:文件
FontPath: \??\C:\PROGRAM FILES (X86)\COMMON FILES\MICROSOFT SHARED\EQUATION\MTEXTRA.TTF
已阻止:true

注意

由于 FontTypeFile,因此还有一个关联的 FontPath

事件示例 3 - 运行于审核模式之下的 Internet Explorer

Iexplore.exe 尝试加载受字体加载策略限制的字体。
FontType:内存
FontPath:
已阻止:false

注意

在审核模式下,会记录问题,但字体不会被阻止。

修复因字体被阻止而出现问题的应用

你的公司可能仍然需要因字体被阻止而出现问题的应用,因此我们建议你先在审核模式下运行此功能,以确定哪些字体导致了这些问题。

找出有问题的字体后,可以尝试通过两种方式修复应用:直接将字体安装到 %windir%/Fonts 目录中,或者通过排除基础进程并加载字体。 作为默认的解决方案,我们强烈建议你安装有问题的字体。 安装字体比排除应用更安全,因为排除的应用可以加载任何字体,无论是否受信任。

通过安装有问题的字体修复应用(建议)

在每台安装了该应用的计算机上,右键单击字体名称并单击“安装”。 字体应自动安装到 %windir%\Fonts 目录中。 否则,需要手动将字体文件复制到 Fonts 目录中,并从该目录中运行安装。

通过排除进程修复应用

  1. 在每台安装了该应用的计算机上,打开 regedit.exe 并转到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<process_image_name>。 例如,如果要排除 Microsoft Word 进程,请使用 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Winword.exe
  2. 添加需要在此处排除的其他进程,然后启用阻止不受信任的字体功能,使用本文前面的启用 和使用阻止不受信任的字体功能中的步骤。