微软DDE协议安全防御指南:应对Office文档攻击向量

本文详细分析了Microsoft Office中Dynamic Data Exchange(DDE)协议的安全风险,提供了通过注册表修改、功能控制键及Windows Defender Exploit Guard等多层次技术手段来防御相关攻击的具体实施方案。

执行摘要

微软发布此安全公告,旨在提供有关Microsoft Office应用程序安全设置的信息。本公告为指导用户如何确保这些应用程序在处理动态数据交换字段时得到妥善保护[citation:7]。DDE是一种应用程序间通信协议,但可能被攻击者利用,通过特制文档执行恶意代码[citation:5]。

关于动态数据交换(DDE)

动态数据交换是一组消息和准则构成的客户端-服务器协议,用于在应用程序之间进行一次性或持续的进程间通信[citation:5]。它通过在应用程序之间发送消息,并利用共享内存来交换数据。应用程序可使用DDE进行一次性数据传输,也可进行持续交换,在新数据可用时相互发送更新。

该协议是对象链接与嵌入功能的基础[citation:5]。尽管DDE在很大程度上已被组件对象模型取代,但通过注册表设置,在Windows 10和大部分Microsoft Office 2016中仍可启用此功能[citation:5]。

攻击场景

在电子邮件攻击场景中,攻击者可能通过向用户发送特制文件并诱使用户打开该文件来利用DDE协议,通常借助电子邮件中的诱饵[citation:5]。攻击者需要说服用户禁用“受保护的视图”并点击通过一个或多个额外的安全提示。由于电子邮件附件是攻击者传播恶意软件的主要方法之一,微软强烈建议客户在打开可疑文件附件时保持警惕[citation:7]。

DDE功能控制键

Microsoft Office提供多个存储在注册表中的功能控制键,负责修改产品功能、改善对行业标准的支持以及提升安全性。微软建议出于安全原因启用特定的功能控制键[citation:5]。

重要更新

  • 2017年12月12日:微软为所有受支持版本的Microsoft Word发布了一个更新,允许用户根据其环境设置DDE协议的功能[citation:1]。
  • 2018年1月9日:微软为所有受支持版本的Microsoft Excel发布了类似的更新。

缓解DDE攻击场景的技术措施

希望立即采取行动的用户可以通过手动创建和设置Microsoft Office的注册表项来保护自己。以下是基于系统上安装的Office应用程序设置注册表键的说明。

警告:注册表编辑器使用不当可能导致需要重新安装操作系统的严重问题。修改需自担风险,操作前务必备份注册表。

Microsoft Excel

Excel依赖DDE功能来启动文档。 要防止Excel自动更新链接(包括DDE、OLE以及外部单元格或定义名称引用),请根据Office版本设置对应的注册表键版本字符串:

Office 版本 注册表键 <version> 字符串
Office 2007 12.0
Office 2010 14.0
Office 2013 15.0
Office 2016 16.0
  • 通过用户界面禁用: 文件 -> 选项 -> 信任中心 -> 信任中心设置… -> 外部内容 -> “工作簿链接的安全设置” = 禁用工作簿链接的自动更新
  • 通过注册表编辑器禁用
    1
    2
    
    [HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Excel\Security]
    "WorkbookLinkWarnings"=dword:00000002
    

缓解措施影响:禁用此功能可能会阻止Excel电子表格动态更新。数据可能无法完全保持最新,因为不再通过实时源自动更新。用户必须手动启动更新源,且不会收到提示提醒手动更新工作表。

Microsoft Outlook

根据Office版本设置对应的注册表键版本字符串:

Office 版本 注册表键 <version> 字符串
Office 2010 14.0
Office 2013 15.0
Office 2016 16.0
  • 对于 Office 2010 及更高版本
    1
    2
    
    [HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Word\Options\WordMail]
    "DontUpdateLinks"=dword:00000001
    
  • 对于 Office 2007
    1
    2
    
    [HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Options\vpref]
    "fNoCalclinksOnopen_90_1"=dword:00000001
    

缓解措施影响:设置此注册表键将禁用DDE字段和OLE链接的自动更新。用户仍可通过右键单击字段并选择“更新字段”来启用更新。

Microsoft Publisher

嵌入在Publisher文档中的使用DDE协议的Word文档可能成为攻击途径。可以通过应用Word注册表键修改来帮助防止此攻击途径。请参阅以下Word注册表键值部分。

Microsoft Word

请参考前文提到的ADV170021更新。 根据Office版本设置对应的注册表键版本字符串:

Office 版本 注册表键 <version> 字符串
Office 2010 14.0
Office 2013 15.0
Office 2016 16.0
  • 对于 Office 2010 及更高版本
    1
    2
    
    [HKEY_CURRENT_USER\Software\Microsoft\Office\<version>\Word\Options]
    "DontUpdateLinks"=dword:00000001
    
  • 对于 Office 2007
    1
    2
    
    [HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Options\vpref]
    "fNoCalclinksOnopen_90_1"=dword:00000001
    

缓解措施影响:与Outlook相同,设置此键将禁用自动更新,但允许手动更新字段。

Windows 10 Fall Creators Update(版本 1709)

使用Windows 10 Fall Creators Update的用户可以利用Windows Defender Exploit Guard,通过攻击面缩减规则来阻止基于DDE的恶意软件[citation:5]。 ASR是Windows Defender Exploit Guard中的一个组件,它提供一组内置智能,可以阻止恶意文档用于执行攻击的底层行为,同时不影响产品操作。通过阻止与具体威胁或漏洞无关的恶意行为,ASR可以保护企业免受前所未见的零日攻击。 对于Office应用程序,ASR可以:

  • 阻止Office应用程序创建可执行内容
  • 阻止Office应用程序启动子进程
  • 阻止Office应用程序注入进程
  • 阻止从Office宏代码导入Win32 API
  • 阻止混淆的宏代码

像DDEDownloader这类新兴攻击会利用Office文档中的DDE弹出窗口运行PowerShell下载器;但在此过程中,它们会启动子进程,而相应的子进程规则会将其阻止[citation:5]。 Windows Defender Exploit Guard可与Windows Defender高级威胁防护结合使用,以调查和响应企业级安全风险和问题。

其他建议措施

  • 保护您的计算机:遵循启用防火墙、获取软件更新和安装防病毒软件的指导。
  • 保持Microsoft软件更新:应用最新的Microsoft安全更新。如果您不确定软件是否最新,请访问Microsoft Update,扫描计算机以查找可用更新,并安装任何提供的高优先级更新。如果启用了自动更新并配置为提供Microsoft产品更新,则更新在发布时会交付给您,但您应验证它们是否已安装。

其他信息

免责声明:本公告中的信息按“原样”提供,不含任何明示或暗示的担保,包括适销性和针对特定用途的适用性的担保。微软公司或其供应商对任何损害概不负责。

修订历史

  • V1.0(2017年11月8日):公告发布。
  • V1.1(2017年11月30日):使用有关攻击面缩减规则的更多信息更新了Windows 10 Fall Creators Update部分。仅为信息性更改。
  • V2.0(2017年12月12日):微软发布了适用于所有受支持版本Microsoft Word的更新,允许用户根据其环境设置DDE协议的功能。
  • V3.0(2018年1月9日):微软发布了适用于所有受支持版本Microsoft Excel的更新,允许用户根据其环境设置DDE协议的功能。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计