MS08-075: 通过禁用协议处理器减少攻击面
今天微软发布了安全更新MS08-075,修复了Windows Vista和Server 2008中Windows Explorer的一个漏洞,该漏洞通过search-ms协议处理器暴露。这是一个需要用户交互的远程未认证漏洞,因此我们希望为您提供更多关于协议处理器的信息,以及如何通过禁用不打算使用的协议处理器来减少攻击面。
协议处理器快速介绍
协议处理器是扩展Web浏览器功能的一种方式。众所周知的mailto://协议就是一个很好的例子。与熟悉的http://或https://协议不同,mailto://链接会启动您的电子邮件应用程序,并告诉它创建一个发送到特定电子邮件地址的新邮件,还可以选择包含特定主题。
您可以通过检查注册表项HKEY_CLASSES_ROOT\mailto\shell\open\command来查看mailto://协议处理器如何与计算机上的电子邮件应用程序关联。在该注册表项的默认值中,您将看到当您单击mailto://链接或网页在自动检索的URL(如
如果与协议关联的应用程序包含可以通过命令行传递的数据触发的漏洞,这可能是一个严重的攻击向量。恶意网页可以通过在类似
如果您使用Vista或Server 2008,并且启用了用户账户控制和保护模式Internet Explorer(默认设置),则Internet Explorer 7通过在处理协议处理器之前警告用户来提供对此攻击的保护,显示如下对话框:
关于PowerShell的快速说明
由于协议处理器在注册表中配置,PowerShell是处理它们的绝佳选择。在本文中,我们提供了几个PowerShell脚本来帮助您处理协议处理器。需要注意的是,默认情况下,PowerShell不允许您运行脚本。
警告:如果您确实修改了执行策略,可能会更容易无意中执行恶意的PowerShell脚本。如果您更改执行策略以运行这些脚本,最安全的选项是在完成后将执行策略恢复为默认的"Restricted"值。
如何枚举系统上的所有协议处理器
为此,请查找HKEY_CLASSES_ROOT的所有具有名为"URL Protocol"的空字符串值和"shell\open\command"子键结构的子键。以下是我们执行此操作的脚本,并将结果返回到哈希表(名称、值对)中:
|
|
如何启用或禁用协议处理器
要禁用协议处理器,我们的PowerShell脚本(附在本文末尾)从注册表项中删除"URL Protocol"字符串,并在其位置放置"Disabled URL Protocol"字符串,这样我们就知道我们有目的地禁用了它。我们还包含了一个脚本来反转此过程,重新启用协议处理器。
结论
如果您想减少攻击面(暴露于未来可能存在的漏洞),可以使用这些信息和这些脚本来禁用不需要使用的协议处理器。我们希望这篇文章对保护您的系统有所帮助!
Kevin Brown, SVRD Blogger 发布内容"按原样"提供,不提供任何担保,也不授予任何权利。
Protocol Handler Scripts.zip