上周,我们发布了安全公告2269637,通知客户一个公开披露的远程攻击向量,该向量影响以不安全方式加载动态链接库(DLL)的应用程序类漏洞。当时,我们还发布了一个工具,通过禁止不安全的DLL加载行为来帮助保护系统。
今天,我们想通过回答客户提出的几个问题并解决关于此类漏洞风险的常见误解来提供更新。
攻击进行中的用户体验
此类漏洞不启用“路过式”或“浏览即被控”的0点击攻击。要利用漏洞,受害者需要浏览到恶意的WebDAV服务器或恶意的SMB服务器,并在恶意服务器显示的Windows资源管理器窗口中双击文件。让我们逐步分析攻击可能的样子:
首先,用户浏览到一个恶意网站:
[图片描述:恶意网站界面]
然后,该网站会尝试显示一个新的Windows资源管理器窗口,指向恶意的WebDAV或SMB共享。在运行保护模式的系统上,Internet Explorer将需要用户同意启动Windows资源管理器,使用类似以下的安全警告。保护模式在Windows Vista、Windows Server 2008、Windows 7和Windows Server 2008 R2上默认启用。
[图片描述:安全警告对话框]
用户允许启动Windows资源管理器后(或如果他们之前请求Internet Explorer不再显示此警告),用户将看到一个Windows资源管理器对话框,可能如下所示:
[图片描述:Windows资源管理器窗口显示恶意文件]
此时,如果用户双击共享上的数据文件,受影响的应用程序可能会运行攻击者代码,该代码单独托管在同一WebDAV服务器上。
不可信的Internet区域WebDAV的危险
如上所述,如果攻击者能说服受害者执行以下操作,此类漏洞可能允许恶意代码运行:
- 浏览到Internet区域中恶意的、不可信的WebDAV服务器;以及
- 双击一个文件,该文件通过其扩展名和图标显示为安全
不幸的是,基于我们近年来看到的攻击模式,我们认为浏览到Internet区域中恶意的、不可信的WebDAV服务器并双击任何类型的文件不再安全。攻击者很聪明,用安全、可信的文件图标替换危险的文件图标。他们甚至最近开始基于字符编码技巧(如从右到左字符编码)混淆文件名。他们的目标是诱骗毫无戒心的用户双击恶意可执行文件。无论是否有这个新的DLL预加载问题的远程向量,鉴于攻击者对恶意WebDAV服务器浏览体验的控制程度,很难做出信任决策。我们建议用户仅双击已知可信、安全且不受恶意攻击者控制的WebDAV共享上的文件图标。
启用CWDIllegalInDllSearch防护工具
我们收到了几个关于如何最佳启用上周在Microsoft下载中心发布的防护工具的问题。
首先,您应该知道,仅下载和安装工具不会保护工作站免受易受攻击的应用程序的影响。它默认“关闭”,必须全局或针对特定应用程序启用。发布此工具后,我们收到了许多关于如何最佳部署它的问题。我们现在已更新了KB文章以解决这些问题。我们鼓励您查看更新的知识库文章2264107。
其次,客户要求我们推荐三个选择中的最佳设置。我们推荐两种设置之一,具体取决于您关心的特定风险。
- 将CWDIllegalInDllSearch注册表项全局设置为2将完全阻止任何基于网络的攻击。我们构建了一个自动化的Fix-it解决方案来启用它。您可以在已安装工具的系统中单击下面的Fix-it图形,设置CWDIllegalInDllSearch = 2,阻止从当前工作目录加载DLL,无论是WebDAV还是SMB,除非应用程序从WebDAV或SMB共享运行。
[图片描述:Fix-it解决方案图形]
注意:Fix-it本身不安装变通工具。您需要事先单独下载和安装工具。 - 要完全阻止所有DLL预加载攻击向量,包括USB拇指驱动器上的恶意文件或通过电子邮件作为ZIP附件到达的文件威胁,将CWDIllegalInDllSearch设置为0xFFFFFFFF。这将解决可能存在于系统上运行的应用程序中的任何DLL预加载漏洞。然而,它可能对需要此行为的应用程序产生一些意外后果,因此我们建议进行彻底测试。
此部分选项可以通过以下步骤启用:
- 从KB2264107安装工具。
- 以管理员身份登录计算机。
- 打开注册表编辑器。
- 定位并单击以下注册表子项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
- 右键单击Session Manager,指向新建,然后单击Dword值。
- 键入CWDIllegalInDllSearch,然后单击修改。
- 在数值数据框中,键入0xFFFFFFFF,然后单击确定。
虽然上述更改的影响似乎很低,但此博客的一位读者写道,他遇到了Outlook 2002地址簿的兼容性问题。如果您遇到此类问题,可以通过为受影响的二进制文件设置特殊策略来覆盖默认的CWDIllegalInDllSearch来缓解。以下步骤展示了如何为OUTLOOK.EXE执行此操作: - 以管理员身份登录计算机。
- 打开注册表编辑器。
- 定位并单击以下注册表子项:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OUTLOOK.EXE
- 如果不存在具有应用程序二进制名称的键,则必须创建一个。
- 右键单击OUTLOOK.EXE,指向新建,然后单击Dword值。
- 键入CWDIllegalInDllSearch,然后单击修改。
- 在数值数据框中,键入2,然后单击确定。
这将仍然阻止OUTLOOK.EXE从远程网络共享或WebDAV位置加载DLL,但不会完全从此应用程序的库搜索路径中删除CWD。此过程可以重复用于所有其他可能不再正常工作的应用程序。如讨论,我们认为这不常见,但我们建议测试。
感谢您对此问题的兴趣。请将问题发送至switech@microsoft.com。
Jonathan Ness, MSRC Engineering
Maarten Van Horenbeeck, MSRC Program Manager
发布内容“按原样”提供,不提供任何保证,也不授予任何权利。