深入解析WPAD PAC文件处理漏洞及防护措施

本文详细分析了MS12-074安全更新中修复的.NET Framework漏洞CVE-2012-4776,该漏洞允许攻击者通过恶意WPAD PAC文件在受害者机器上执行远程代码,无需用户交互。文章探讨了攻击条件、风险缓解措施及有效防护策略。

MS12-074:解决WPAD PAC文件处理中的漏洞

今天,我们发布了MS12-074,解决了.NET Framework中的一个关键类漏洞,该漏洞可能允许远程代码执行,无需用户交互。这个特定的CVE,CVE-2012-4776,可能允许本地网络上的攻击者托管一个恶意的WPAD PAC文件,其中包含脚本代码,可以在受害者机器上执行,无需任何类型的认证或用户交互。为了帮助您评估和缓解此漏洞在您环境中的风险,我们想解释成功攻击的每个元素,并列出潜在的工作区和应对措施。

首先,攻击者需要充当您网络的权威代理自动配置文件服务器。一种可能的方式是,如果攻击者能够在您的网络上注册主机名WPAD。或者,存在于您网络段的攻击者可能充当中间人,并响应任何WPAD查询以获取合法的代理自动配置文件服务器。或者,能够欺骗DHCP、DNS或较低层响应的攻击者可以直接指定任意代理自动配置文件服务器。

此攻击所需的第二个元素是来自.NET应用程序的出站请求,请求代理自动配置文件服务器。仅仅启动浏览器不足以触发此漏洞。基于互联网的攻击者将难以触发此出站请求,因为基于浏览器的互联网区域.NET应用程序机制自MS11-044起已默认禁用。然而,如果攻击者能够引诱受害者用户访问他们控制的Intranet区域站点,攻击者可能实例化一个基于XBAP的应用程序,从而触发请求。如果.NET应用程序隐式或显式通过.NET WebRequest.DefaultWebProxy属性使用系统的默认代理设置,并且app.config默认代理设置不存在,则将使用Internet Explorer代理设置。如果在Internet Explorer的Internet选项->局域网(LAN)设置中选中“自动检测设置”框(如下所示),当.NET应用程序请求默认代理查找时,系统将使用WPAD尝试查找配置文件。

触发漏洞所需的第三个元素是代理自动配置文件服务器响应包含恶意脚本代码的PAC文件。如果您特别担心此攻击,您可能考虑检查PAC文件中的恶意脚本代码。

工作区和应对措施

安装MS12-074安全更新将全面解决此漏洞。如果您无法这样做,您可能考虑其他选项来保护您的机器免受此.NET漏洞的利用。下面的工作区列表按我们推荐的有效性顺序排序:

  1. 在.NET应用程序的代码中显式设置代理。这避免了应用程序级别的默认代理。
  2. 如果不适用1,为您的.NET应用程序提供一个app.config文件,其中显式设置代理。这避免了应用程序配置级别的默认代理。
  3. 如果不适用1或2(因为您的.NET应用程序必须依赖默认代理),取消选中“自动检测设置”,并在IE Internet选项->局域网(LAN)设置中的“使用自动配置脚本”中提供一个位置,如上所示。这完全避免了WPAD。
  4. 如果不适用3,注册WPAD。详情请参见http://support.microsoft.com/kb/934864。这保护WPAD免受欺骗。

代理配置文件的查找步骤可以在http://blogs.msdn.com/b/askie/archive/2008/12/18/wpad-detection-in-internet-explorer.aspx找到。

我们希望这篇博客文章帮助澄清了此漏洞对您网络的风险。如有任何问题,请通过switech [at] Microsoft [dot] com联系我们。

  • Neil Sikka, MSRC Engineering
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计