安全性

管理 Windows Vista 防火墙

Jesper M. Johansson

 

概览:

  • 规则类型和方案
  • 防火墙配置文件
  • 域隔离规则
  • 出站筛选问题

不久前,我在博客中写了一篇关于 Windows Vista 防火墙的文章。那篇文章仅指出了一些不错的功能,但是未提供多少部署建议。

在本文中,我将详细说明 Windows Vista® 防火墙中专为简化企业管理而设计的一些功能,并针对如何利用这些功能来简化任务和确保用户安全提供一些建议。

随着近期 Windows Vista SP1 的发布,您可能预料企业也将随之部署 Windows Vista。(通常企业会等待第一个 Service Pack 发布之后,再迁移到新的操作系统。)如果您是一位要针对企业环境认真了解 Windows Vista 的 IT 专业人员,就应该好好研究一下防火墙。了解 Windows Vista 防火墙的功能之后,您可能会重新协商第三方安全套件的协议以从软件包中删除防火墙。

Windows 防火墙的今与昔

虽然最初的 Windows® XP 版本中的防火墙有很多需要改善的地方,但足以应付当时基于商务主机的防火墙的安全性功能需求,所以并未进行任何新增或创新。

然而到了 Windows XP SP2,防火墙就已经全面改观了,此时的防火墙专门针对简化企业管理而设计。Windows XP SP2 防火墙是一种反入侵的轻型高效防火墙,并可进行集中管理,因此相当吸引人。不过最吸引人的可能还是:Windows XP SP2 防火墙能够在启动时保护系统。

最后这一点非常关键。过去我见过许多系统在启动时中毒,即使已经打开防火墙也无法幸免。实际上,在 Blaster(冲击波)病毒传播的高峰期,攻击率高达每四分钟一次。换句话说,如果将一台未采取保护措施的计算机暴露在 Internet 中,那么平均每隔四分钟该计算机就会被感染一次。如果您所依赖的防火墙未能在启动时保护系统,那么重新启动时,每 12 个系统中就会有一个被感染。面对这么严峻的形势,Microsoft 推出了可确保在启动时保护系统的 Windows XP SP2 防火墙。

到了 Windows Vista,防火墙又进行了一次全面革新。从管理角度来看,最明显的改变是将 Internet 协议安全 (IPsec) 和防火墙的管理界面合而为一。这是一项颇具逻辑性的更改。IPsec 和防火墙的用途都是将不允许的内容阻止在外。二者的区别在于,防火墙中负责定义允许内容的参数不够严密,而通过 IPsec 阻止或允许大量地址空间也相当麻烦。

将两种功能放在同一个管理界面中之后,管理员就可以无缝地使用这两种技术,而无需考虑某个部分是需要应用 IPsec 规则,还是应该应用防火墙筛选器。也就是说,您只有一个系统网络攻击面视图,这可以将犯错的风险降到最低。

Windows Vista SP1 在防火墙功能中添加了一些可靠性增强功能,同时也为 IPsec 添加了一些新算法,特别是 Suite B 算法。这是一组与加密相关的算法,包括高级加密系统 (AES)、椭圆曲线密码 (ECC) 以及安全哈希算法 (SHA) 256 和 384。

但最重要的是,Service Pack 1 添加了对网络访问保护 (NAP) 的支持。NAP 是一种策略实施工具,它可以在托管客户端和尚未泄露的客户端获准连接网络之前,利用最新的安全策略、更新和反恶意软件定义确保它们保持最新状态。虽然 NAP 无法阻止恶意主机连接到网络,但只要所有托管主机没有被主动泄露,就可以确保它们完全受到保护。

Windows Server® 2008 也采用了 Windows Vista 防火墙,即称为具有高级安全性的 Windows 防火墙。所有功能都可以实现远程管理,而且可以使用组策略进行跨网络配置。

规则类型和方案

在管理界面中合并防火墙和 IPsec 功能意味着现在有两种不同类型的规则:定向规则和连接规则。定向规则是标准的防火墙规则,用于定义允许哪些流量通往适当的方向。连接规则用于为计算机之间的连接定义保护参数。如果要画出相似关系图的话,方向规则有点类似您所熟悉的旧版防火墙规则,而连接规则比较类似与 Windows XP SP2 防火墙一起使用的 IPsec 规则。

将防火墙和 IPsec 合并到同一界面后,发生了许多有趣的情况。例如,将网络上的系统彼此隔离是目前最有用的安全性观念之一。Microsoft 称之为“服务器和域隔离”。

服务器和域隔离同时使用 IPsec 和防火墙功能。认识到这一点后,新的防火墙管理界面中即包含了针对隔离规则的特定功能。如果您希望根据源系统或目标系统的属性(如域成员身份)限制连接,则这些规则会很适用。

图 1 所示,“新建连接安全规则向导”首先询问要创建的规则类型。如果选择“隔离”,向导会预先配置适合隔离规则的特定设置。

图 1 使用“新建连接安全规则向导”创建隔离规则

图 1** 使用“新建连接安全规则向导”创建隔离规则 **(单击该图像获得较大视图)

您可能会发现图 1 中的隔离规则涉及到了运行状态。服务器和域隔离所用的规则实际上与您在 NAP 中使用的规则相同。

对于某些类型的流量,您无法强制执行身份验证。例如,您可能不希望对 DNS 解析进行身份验证。对于此类流量的端点,您需要一个身份验证例外规则。顾名思义,身份验证例外规则可让流量免受 IPsec 要求的限制。

服务器到服务器规则就有点名不符实了。此规则虽然较常用于服务器,但也适用于客户端。服务器到服务器规则只配置一个要求身份验证的连接。这与隔离规则不同,因为隔离规则不仅要求身份验证,还需要满足一些额外的条件,如域成员身份或运行状态。

隧道规则主要定义网关之间的站点对站点虚拟专用网络 (VPN) 和隧道。隧道规则很少与 Windows Vista 一起使用,因为您不可能在网关容量中使用 Windows Vista。您可以创建完全自定义的规则,从而自定义规则的各个参数。

规则排序

乍一看,规则排序有些复杂。要了解规则排序,最关键的是要先忘记排序。与其说规则排序讲的是排序,不如说它在讲述匹配选择。下面以入站流量为例进行说明。如果入站流量不符合接受它的任何规则,则默认情况下该流量将被阻止。您可能将其视为一种“首先考虑允许规则”的排序,但这种假定是不正确的。如果某个具体数据包同时符合允许规则和阻止规则,则应用阻止规则。简单来说,这意味着匹配的内容为:

  1. 阻止规则。如果数据包或连接符合其中一项,它将被放弃。
  2. 允许规则。如果数据包或连接符合其中一项,它将被允许。
  3. 默认的定向配置文件行为。如果不符合任何阻止或允许规则,则会根据被指定为该配置文件中该方向的流量默认值的行为,来决定如何对待流量。如果所有配置文件都是入站方向,则阻止默认配置中的流量。默认情况下,如果是出站方向,则允许默认配置中的流量。

匹配过程由经过身份验证的跳过 (IPsec) 规则进行调节。如果使用该类型的规则,则对于所有经过身份验证的流量,只要符合该规则的其他参数就会得到允许,而不管该流量是否符合任何其他规则。经过身份验证的跳过规则就是选中了“替代阻止规则”选项的定向规则,如图 2 所示。优先考虑此类规则是为了让经过身份验证的流量都能到达系统。这就说明了您为什么可以轻松接受来自经过身份验证的主机的流量,但会阻止其他流量。在排序时,您可以将这个规则视为第 0 位。因此,完整的规则排序列表如下所示:

图 2 选中“替代阻止规则”选项以配置经过身份验证的跳过规则

图 2** 选中“替代阻止规则”选项以配置经过身份验证的跳过规则 **(单击该图像获得较大视图)

0. 经过身份验证的跳过规则

1. 阻止规则

2. 允许规则

3. 默认的定向配置文件行为

每个类别中是否包含多个符合流量模式的规则,其实并不重要。只要找到了与流量匹配的规则,规则处理就会停止。

公共、专用和在域上

网络资源

新的防火墙包含三个配置文件:公共配置文件、专用配置文件和域配置文件。Windows XP SP2 防火墙包含两个网络配置文件:标准配置文件和域配置文件。如果计算机能够找到域控制器,则将自动调用域配置文件。在 Windows XP 中,对其他情况使用标准配置文件。这个方法为安全管理员提供了强大的功能。当管理员位于公司的网络中时,可以在计算机漫游时完全锁定计算机,同时仍允许执行所有必需的远程管理功能。但是此方法会为某些用户带来一定的麻烦,尤其是在家使用个人网络的用户。因为如果系统找不到域控制器,就一定会使用标准设置文件,这就会从用户的家中锁定系统。

Windows Vista 中包含的新专用配置文件可帮助解决此问题。现在,当您将系统连接到新网络时,它会询问该网络是公共(这只是前一标准配置文件的新名称)还是专用,然后适当地配置系统。系统每次连接到该网络时,都会根据网络上的基础结构服务器提供给它的网络参数记住网络性质。虽然这并非万无一失的做法,不过因为它允许更多网络接受更妥善的锁定,所以还是有一定帮助的。

确定系统是否位于域上的检测逻辑也已经得到改进。因此转换操作比以前更快速、更可靠,而且当系统实际位于域上时,很少需要考虑应该使用公共配置文件还是专用配置文件。

您可以将规则连接到特定类型的网络,以防止系统自发提供过多信息,并且防止它们尝试连接到不受信任的网络上的系统。此时,防火墙和 IPsec 的集成将开始发挥效用。

使用这些新规则,您可以提供一些以前不可能实施的限制。例如,多年来攻击者不断尝试“引诱攻击”,使用户将 Windows 网络使用的服务器消息块 (SMB) 连接到不受信任的主机,以强迫身份验证序列为其提供“质询-响应”对来破解密码。过去他们也会利用此类攻击,将身份验证降级为纯文本身份验证,或者将用户的“质询-响应”对返回原始计算机。前一种技术已于多年前被舍弃,后一种技术则随着 Windows XP SP2 一起迁移,但别忘了,自发的“质询-响应”对仍有所欠缺。

为防止这种情况发生,您可以使用 Windows Vista 防火墙中的另一种新功能 — 出站筛选。例如,管理员可以决定阻止公共配置文件中的所有出站 SMB 连接(在端口 TCP 135、139、445 和 UDP 137、138、445 终止的连接)。这样就可以更有效地防止有人在引诱攻击中利用您的系统获得“质询-响应”对,或者访问 Internet 上不受信任的 Windows 文件共享。

同样,这也并非万全之策。例如,如果系统已遭到攻击,此规则可能无法阻止系统与外界通信,因为攻击者只要禁用该规则,我们就束手无策了。不过,它倒是可以保护那些运行正常但有暴露可能的系统。

此处必须提及的一点是,与 Windows XP SP2 相同,在 Windows Vista 和 Windows Server 2008 中一次只能有一个配置文件处于活动状态。如果系统中有两个活动网络接口,其中一个在域上,另一个在公共网络上,则二者都将应用公共防火墙配置文件。这是因为应用的一定是限制最严格的配置文件。您可能已经猜到,公共配置文件的限制比专用配置文件严格,而专用配置文件的限制又比域配置文件严格。因此请注意,出站 SMB 阻止规则可能会中断许多通过 VPN 连接传送的流量。

当计算机使用公共或专用网络时,若要通过 VPN 连接传送流量,可以创建专用于 VPN 接口的定向规则。要使此规格正常工作,Windows 必须能够识别 VPN 接口。如果未使用 Microsoft® 路由和远程访问服务 VPN 服务器,请先测试这项功能,再推广部署。这个问题主要发生于指向客户端的入站流量,以及您创建的所有自定义出站规则。

构建防火墙规则

在新防火墙中构建防火墙规则要容易得多。如图 3 所示,“新建规则向导”允许您定义所有常见类型的规则,其中包括针对特定服务的预定义规则。

图 3 “新建规则向导”中的预定义规则

图 3** “新建规则向导”中的预定义规则 **(单击该图像获得较大视图)

预定义规则非常重要。服务器隔离主要用于限制服务,以便只允许需要使用这些服务的系统使用它们。可以在服务器产品上使用 Windows 安全配置向导 (SCW) 来简化操作,但简化效果也不够明显。(我曾在 2008 年 3 月的《TechNet 杂志》期刊**中讨论过 SCW。)

直到现在,Windows 的客户端版本才刚刚提供了类似的功能。当您使用预定义的规则类型时,它会为您完成大部分有一定难度的任务,即确定服务要使用哪些端点。防火墙不仅能感知应用程序(因为它知道“iSCSI Service”代表哪一个程序),而且包含可描述特定功能的预定义规则。因此,您可以专心确定规则需涵盖哪些计算机。虽然此任务仍然艰巨且非常耗时,但至少是针对您的具体环境的任务。

另外,还有一个自定义规则(被图 3 中的下拉列表遮住了)可为您提供身份验证防火墙能够提供的所有灵活性。例如,如果您希望规则只允许 IPsec 加密的流量,则可在图 2 所示向导中的“操作”页上选择仅允许安全连接的选项。

选择此选项的同时,会为您提供一个启用加密的选项。如果将该选项保留为空,流量将使用 ESP-NULL(使用 NULL 密钥的封装式安全措施负载)。建议以这种方式使用 IPsec 进行身份验证。由于流量可以毫无阻碍地周游网络,因此它允许大部分网络管理工具保持工作。如果希望进行加密,只需选中此框。

在许多情况下,对网络流量进行加密还不如拒绝来自恶意主机的流量。因为对网络上的流量进行加密只能阻止已取得网络本身访问权限的攻击者看到数据包中的内容,而要求身份验证可以防止您传送数据包,进而免遭攻击。当然,在很多情况下都必须进行网络级加密,但也有很多时候只需进行身份验证即可。

构建域隔离规则

在大多数环境中,您都希望只有一定数量的计算机可以将流量发送到工作站。至少,所有工作站都应使用域隔离规则进行配置。这在 Windows XP 中有点复杂,但在 Windows Vista 中却很简单。

首先,打开您选择的管理工具,选择“连接安全规则”节点,然后右键单击该节点,选择“新建规则”,您会看到如图 1 中所示的对话框。选择“隔离”规则,然后单击“下一步”。现在,您必须选择是否强制执行该规则。如果是在工作站上,大多数情况下您会要求对入站流量进行身份验证。这可防止任何未加入域的计算机将流量发送到工作站。但是,为从基础结构服务中请求服务,系统必须允许一些出站流量自由通行。因此,最佳选择是要求对入站连接和出站连接都进行身份验证。

接下来,选择身份验证方法。默认选择显而易见,就称为“默认”。您可以使用 IPsec 属性(右键单击“具有高级安全性的 Windows 防火墙”节点,然后选择属性)逐台计算机配置默认身份验证方法。默认的身份验证方法始终是 Kerberos,因为这是最简单、最安全的方法。但为了清晰起见,我建议您在构建规则时实际选择它。通常,您只希望对计算机进行身份验证,而不会对用户进行身份验证。如果两者都需要进行身份验证,您就可能无法接受某些类型的管理流量,如匿名传输的 SNMP 流量。

选择身份验证方法后,只需选择可将此规则用于哪些配置文件即可。因为此规则适用于加入域的计算机,可以提供 Kerberos 票证,因此无需在专用或公共配置文件中专门进行此操作。接下来只要保存此规则,就大功告成了。

基本隔离规则已经不像以前那么复杂了。但是,要利用 IPsec 的功能进行隔离,您需要实施服务器隔离,即使在工作站上也是如此。这样,可以防止工作站侦听其他客户端,它们应该只响应适当的管理工作站。想象一下,仅让客户端系统拒绝侦听其他客户端,就可以减少多少因各种恶意软件爆发而造成的影响。

编写防火墙脚本

新的防火墙随附了一个相当好用的 API,您可以使用它来编写部署和评估脚本。理想情况下,应使用组策略进行部署,但是由于组策略并非始终可用,所以一定要有一组适当的 API 来配置防火墙才行。API 按照其 INetFWPolicy2 组进行分组。虽然软件开发工具包和 MSDN® Library 包含较为完整的使用方法详细信息,但只有少数示例可以说明这一点。

其中一个常见示例是需要确定是否要打开一组规则。例如,应用程序或管理员需要确定是否允许来自系统的文件和打印机共享,这可以使用 INetFWPolicy2::IsRuleGroupCurrentlyEnabled 实现。图 4 提供了说明此功能的 VBScript 示例。

Figure 4 使用 INetFWPolicy2::IsRuleGroupCurrentlyEnabled

' Create the FwPolicy2 object.
Dim fwPolicy2
Set fwPolicy2 = CreateObject("HNetCfg.FwPolicy2")

' Get the Rules object
Dim RulesObject
Set RulesObject = fwPolicy2.Rules

'Create a profile object
Dim CurrentProfile
CurrentProfile = fwPolicy2.CurrentProfileTypes

'Check whether File and Printer Sharing is on, and turn it on if not
if fwPolicy2.IsRuleGroupEnabled(CurrentProfile, "File and Printer Sharing") <> TRUE then
    fwPolicy2.EnableRuleGroup CurrentProfile, "File and Printer Sharing", TRUE
end if

现在,如果文件和打印机共享处于关闭状态,而您需要将其打开,则首先要确保此操作可行,而且不会被组策略覆盖。这可以使用 INetFWPolicy2::LocalPolicyModifyState API 实现。下面是可以填写实际代码的大纲:

Const NET_FW_MODIFY_STATE_OK = 0
Const NET_FW_MODIFY_STATE_GP_OVERRIDE = 1
Const NET_FW_MODIFY_STATE_NO_EXCEPTIONS = 2

Dim PolicyModifyState
PolicyModifyState = fwPolicy2.LocalPolicyModifyState
Select Case PolicyModifyState
  Case NET_FW_MODIFY_STATE_OK
  Case NET_FW_MODIFY_STATE_GP_OVERRIDE
  Case NET_FW_MODIFY_STATE_NO_EXCEPTIONS
End Select

命令行和接口类型

没有适当的命令行进行管理,就不可能有完整的防火墙。Netsh 下有一个子上下文,称为 advfirewall。Advfirewall 上下文可对您授予命令行访问权限,访问您在图形 UI 中执行的所有内容。例如,如果您希望在端口 445 上实现出站拦截,可以从已提升的命令提示符处运行以下命令:

netsh advfirewall firewall add rule name="Block CIFS Out in the Public profile"
dir=out action=block enable=yes profile=public
localIP=any remoteIP=any remoteport=445 protocol=TCP interfacetype=any

然后,您需要运行同一命令(不过要将 TCP 替换为 UDP),从而完成拦截。此时,即已实现此规则。

防火墙中有一个很酷的功能,能够根据网络接口类型配置规则。前面曾提到,有些规则可能会影响 VPN 连接。只要 Windows 将接口识别为 VPN 接口,您就可以使用此类型的规则放过该接口上的流量:

netsh advfirewall firewall add rule name="Allow CIFS on VPN interfaces"
dir=out action=allow enable=yes profile=public localIP=any
remoteIP=any remoteport=445 protocol=TCP interfacetype=RAS

您也可以在 GUI 中执行此操作,但必须先创建规则。然后必须右键单击此规则,选择“属性”,并单击“高级”选项卡。该选项卡上有一个接口类型部分,您可以在其中选择正确的接口类型。

出站筛选

Windows XP SP2 防火墙中缺少出站筛选是内置防火墙缺乏安全性的主要原因。过去不知道有多少篇文章将 Windows XP SP2 防火墙的安全性不足归咎于缺少出站筛选。其实真正的原因是 Windows XP 上没有一个防火墙可以安全提供出站筛选。

Windows XP 根本无法将出站筛选变成一项有用的安全性功能 — 我之前用过的策略强制工具不过是限制了速度罢了。但是,Windows Vista 中确实存在这种功能。因此,新的防火墙自然可以利用这项功能。默认情况下,该功能将阻止大部分入站流量,而允许大部分出站流量。

默认情况下,新 Windows Vista 防火墙中的出站筛选只阻止来自服务的不必要流量。实际上,这足以防止提供出站筛选器的主机泄露,因此在 Windows XP 中执行此操作根本毫无意义。

Windows Vista 中的服务可以使用严格限制的令牌运行。基本上,每项服务都有自己唯一的安全标识符 (SID)。此服务 SID 可用于限制对资源(如网络端口)的访问。这与我们之前研究限制传送给用户的流量时所看到的功能一样。也就是说,即使您以 NetworkService 身份运行两个服务,也无法管理彼此的进程,不过您可以将防火墙配置为只允许其中一个与外界通信。如果阻止的服务受到攻击,它也无法劫持允许的服务并使用已接受的端口向外传播,因为这个端口受服务 SID 的限制。

这是 Windows Vista 中新增的另一项很棒的安全性功能,新的防火墙可以使用它来通过出站防火墙筛选实际提供真正的安全值。

实际上,新的防火墙默认启用对服务 SID 的防火墙筛选。遗憾的是,无法使用 GUI 对其进行配置。规则是在 HKLM\System\CurrentControlSet\services\sharedaccess\parameters\firewallpolicy\RestrictedServices 注册表项中预定义的。不过,手动修改此注册表项时应非常小心,因为系统并不支持此操作。

出站筛选可以提供多少安全性?

关于出站筛选实际可以提供多少安全性的问题,安全社区一直存有一个极大的误解。到目前为止,我已提过两个通过出站筛选提供安全性的方案,但是这两个方案都依赖于 Windows Vista 中以前没有的新功能。尽管如此,人们仍认为出站筛选整体来说相当不错,并应作为购买防火墙时的主要考虑因素。

令人啼笑皆非的是,许多公司在购买防火墙时以出站筛选为准绳,但在实施防火墙之后,出站筛选却根本派不上用场。这种误导使信息安全组白白浪费了不少资金和精力。但是,有时候采取一些与安全性相关的操作,让大家得到心理上的安慰,反而比实际分析真正的威胁更能主导人们的决策。通常,决策是由人们对此类“安全性表现”的需要所主导,而不是由实际情况所主导。

这是关于出站筛选的一个非常简单的事实,但拥护者们却没有考虑这一点。基于主机的防火墙供应商的常见论调是:如果系统受到攻击(无论是蠕虫还是恶意的交互用户),出站筛选都会阻止蠕虫感染其他系统,或者阻止入侵者向外传播。实际情况并非如此。

事实上,在其他条件不变的情况下,出站筛选可以阻止一些曾经出现过的恶意软件。但是,如果 Windows XP 附带了出站筛选,那么我们到目前为止所看到过的蠕虫,很可能早已关闭或绕过此功能。

在 Windows XP(以及早期的 Windows 版本)中,任何假冒服务身份运行的蠕虫(以及所有在对话中出现并假冒服务身份运行的常见蠕虫)都可能会停用出站筛选。如果它们不这么做,唯一的理由就是根本没有使用出站筛选的环境,因此也不必停用它。在交互式攻击中,攻击者可随心所欲地避开出站筛选器。如果攻击者能够运行任意代码,此目的将很容易实现。但是如果需要,攻击者还可以引诱用户避开出站筛选器。

避开基于主机的出站防火墙筛选器的方法有很多种,具体取决于实际的攻击方案。最简单的方法是“请”具有过高权限的用户帮忙。现在有太多环境的用户仍以管理员身份运行,因此那些用户有权随心所欲地避开安全策略。用户面对攻击者提供的充满诱惑力的东西(如流行的流氓兔)时,很少想到无形和非直接的安全利益。

用户因为看多了这类对话框,常常不假思索就按下去,根本没有仔细了解上面的内容,结果就中招了。这是出站筛选的第一个问题。也就是说,安全性和诱人的奖品(如流氓兔),两者中胜出的一定是流氓兔,因为大部分要求用户做出安全性决策的对话框都缺乏足以让用户做出安全决定的参考信息。

然而,要提供附上充分的决策参考信息的对话框来请用户做出安全性决策,谈何容易。因为安全性产品(如防火墙)不仅需要了解端口、协议以及发出请求的应用程序,还要了解请求的真正目的,以及此目的对用户的意义。这些信息很难以编程的方式提供。例如,对于 Microsoft Word 中的链接,人们往往对单击该连接会执行什么操作感兴趣,而忽视单击该链接也会建立出站连接!

我们需要做的是减少(而不是增加)无意义的对话框,但是出站筛选防火墙没办法帮助我们做到这点。为了解现况,向用户提供有价值的信息,我找出一家知名的基于主机的防火墙供应商的销售文档。那些图文并茂的文档阐述了防火墙的出站筛选能力和建议能力。建议能力可检测用户想要做什么,然后提供适当的建议。至少理论上如此。宣传手册中的文本还附了一张屏幕快照,内容是:“本程序尚无相关建议。请选择下面的项目,或者单击‘更多信息’获取帮助。”即使在市场营销材料中,供应商好像也无法提供参考性的对话框。

由于用户没有足够的信息做出适当的安全性决策,管理员只好负责配置所有出站筛选,因为最终用户没办法这么做。可这么一来,就等于无限制地加重了管理员的管理负担。

即使在防火墙询问时,用户单击了“否。稍后再提醒我”,恶意软件还是有办法绕过防火墙。只要被恶意代码冒充的用户可以在某个端口打开出站连接,恶意代码就可以使用那个端口。因此,任何进程都可以通过现有的进程执行。旧版的操作系统就接受这种做法。但是从 Windows Vista 开始,进程会受到适当的限制。因此,在默认情况下,受限制的服务默认由出站筛选加以阻止。

遗憾的是,大部分人都认为基于主机的出站防火墙筛选会阻止已受到攻击的对象攻击其他对象。这是不可能的。在已受到攻击的对象上实施保护措施,并且要求它不攻击其他任何对象,这根本就是不可能的。保护措施是对要保护的对象实施的,而不是对已经遭到破坏的对象!强盗已经进门了,再要求他们不要搞破坏,似乎太晚了;事先将他们拒之门外更务实一些。

Jesper M. Johansson 是研究安全软件的软件架构师,还是《TechNet 杂志》的特约编辑。他拥有管理信息系统博士学位,具有 20 多年安全方面的经验,并且是企业安全性领域的 Microsoft MVP。他的最新著作是《Windows Server 2008 安全资源工具包》

© 2008 Microsoft Corporation 和 CMP Media, LLC。保留所有权利;未经允许不得复制本文的部分或全部内容.