Windows XP SP2 安全技术概述
许多客户没有或无法在修补程序可用时及时将其部署到系统中,但仍需要防范这些修补程序所降低的风险。Microsoft 提供的每个安全公告栏所包含的信息可以协助客户在部署修补程序时降低风险。但是,Microsoft 又进一步提供了安全技术,以便在部署修补程序之前降低风险。这些安全技术将覆盖以下领域:
• 网络保护。这些安全技术将通过许多创新功能(包括对 Internet 连接防火墙 (ICF) 的增强功能),针对基于网络的攻击(诸如 Blaster)提供更好的保护。计划的增强功能包括在 SP2 的默认安装中打开 ICF、关闭未使用的端口、改进配置的用户界面、改进 ICF 开启时应用程序的兼容性以及通过“组策略”增强 ICF 的企业管理。RPC 服务的攻击面将会缩小,同时以较少的权限运行。DCOM 基础结构还具有其他访问控制限制,以降低成功网络攻击的风险。
• 内存保护。恶意软件的某些攻击会利用软件的安全漏洞,即允许将过多的数据复制到计算机的内存区域中。这些安全漏洞通常称为缓冲区溢出。虽然没有一种技术可以完全消除此类安全漏洞,但是 Microsoft 使用了许多安全技术从各个角度缓解这些攻击的影响。首先,核心 Windows 组件都使用了最新版本的编译器技术重新编译,以降低缓冲区溢出的机率。此外,Microsoft 正与微处理器公司合作,以协助 Windows 在包含该功能的微处理器上支持硬件强制“不执行”(或 NX)。NX 使用 CPU 本身来强制分离应用程序代码和数据,阻止应用程序或 Windows 组件执行攻击蠕虫或病毒插入数据专用内存部分的程序代码。
• 更安全的电子邮件。安全技术将有助于停止通过电子邮件和即时消息传播的病毒(如 SoBig.F)。这些技术包含了更安全的默认设置,改进了 Outlook Express 和 Windows Messenger 的附件控制,并增强了 Outlook Express 的安全性和可靠性。因此,通过电子邮件和即时消息发送的潜在不安全附件将被隔离,使它们无法影响系统的其他部分。
• 更安全的浏览。Internet Explorer 提供的安全技术将更好地防范 Web 上的恶意内容。其中的一项增强功能是锁定本地计算机区域,以防止执行恶意脚本,并封锁有害的 Web 下载。此外,我们将提供更好的用户控件和用户界面,以帮助防止恶意 ActiveX? 控件和间谍软件在没有事先通知并获得同意的情况下,在客户的系统中运行。
Microsoft 知道安全技术只是完善的深层防御安全策略的其中一个方面。此处所阐述的安全技术是 Trustworthy Computing 创新中要采取的后续步骤,以使客户的系统更具回复力。
SP2 中的网络保护
在 SP2 中,Microsoft 致力于三个关键技术,使系统不容易受到网络上的攻击:
• Internet 连接防火墙。Internet 连接防火墙 (ICF) 是用于 Windows XP 和 Windows Server 2003 的全状态筛选防火墙。ICF 通过 TCP/IP 版本 4 (IPv4) 防止主动传入的连接,从而为连接到网络的 PC 提供保护。默认情况下,SP2 会开启 ICF,并且是在启动过程的早期就启动了它。
• RPC 接口限制。接口限制(公开给开发人员,例如,通过名为 RestrictRemoteClients 的新注册表项来公开)可以修改系统上所有远程过程调用接口的行为,并且在默认情况下将阻止对系统上的 RPC 接口的远程匿名访问,但也有一些例外情况。实际上,RPC 接口限制要求调用方执行身份验证,这就使得攻击接口更加困难。这对于防范特洛伊木马特别有用,因为该病毒依赖于可利用的缓冲区溢出,而这些溢出可通过匿名连接从远程调用。
• 对 DCOM 的更改。SP2 对分布式组件对象模型 (DCOM) 的行为作了两个更改。首先,它引入了计算机范围的限制,这样,在每次调用、激活或启动计算机上的任何 COM 服务器时,该功能会针对计算机范围的访问控制列表 (ACL) 提供额外的访问检查。其次,它引入了一组更细微的 COM 权限,可以使管理员灵活地控制计算机的 COM 权限策略。
注:如果您只将 COM 用于进程内 COM 组件,那么您的应用程序将不会受到 SP2 的影响。
SP2 中的 Internet 连接防火墙
SP2 的 ICF 将包括许多新功能。本文将讨论其中五个会影响现有应用程序的功能:
1. 默认情况下设置为开启。在 SP2 之前,Windows XP 所附带的 ICF 在默认情况下为关闭状态;用户需要运行向导或导航到“网络连接”文件夹来启用 ICF。通过在默认情况下启用 ICF,计算机将能够防范许多基于网络的攻击。例如,如果在默认情况下启用了 ICF,则不管用户是否安装了最新的修补程序,最近的 Blaster 攻击所带来的影响都会大大降低。如果应用程序没有在默认情况下使用全状态筛选,这可能会影响现有的应用程序。
2.启动时间安全性。在旧版 Windows 中,在网络堆栈启动和 ICF 提供保护之间有一段间隔时间。因此,如果没有通过 ICF 进行筛选,就从服务接收数据包或向服务发送数据包,可能会使计算机暴露在安全漏洞中。在 SP2 中,防火墙驱动程序具有一个执行全状态筛选的静态规则,称为启动时间策略。这将允许计算机执行基本的网络任务(例如 DNS 和 DHCP),并与域控制器进行通讯以取得策略。一旦防火墙服务运行,它将加载并应用运行时 ICF 策略,并删除启动时间筛选器。这项更改应可以在不影响应用程序的情况下增强系统安全性。
3.应用程序白名单。在 SP2 之前,应用程序需要调用 ICF API 才能打开必要的侦听端口,以发送和接收消息。在点对点的情况下,如果事先不知道端口,就会很困难。而且,是否关闭防火墙中的洞是由应用程序决定的,如果应用程序意外终止,就可能会导致不必要的通路。此外,这些洞只能由运行在本地管理员的安全上下文中的应用程序打开。在 SP2 中,需要侦听网络的应用程序可以添加到“应用程序白名单”中。白名单上的应用程序将自动创建必要的侦听洞。通过将应用程序添加到白名单上,系统只会打开必要的端口,并且这些端口只在应用程序在其上进行侦听期间打开。这就防止了应用程序打开不使用的端口,并且可以防止故意或不小心地从该端口中将其他应用程序或服务公开到网络通讯。而且,这还允许侦听网络的应用程序作为一般用户来运行。使用全状态筛选的应用程序不需要置于白名单中。只有管理员可以将应用程序添加到白名单中。
4.RPC 支持。在旧版 Windows 中,ICF 会阻止 RPC 通讯,从而导致文件和打印机共享和远程管理之类的功能失败。这是因为许多 RPC 服务器的 RPC 进程映像文件名 (svchost.exe) 都一样。SP2 启用了 RPC 服务的粒度控制,使这些服务能够往返于 ICF。在打开某个端口时,调用方可以声明该端口将用于 RPC。如果调用方运行在本地系统、网络服务或本地服务的安全上下文中,ICF 将只接受该声明。ICF 支持可以使 RPC 端口打开的配置文件等级标记,即使调用方不在“应用程序白名单”:PrivilegedRpcServerPermission 上。通过粒度,管理员可以控制向网络公开的 RPC 服务,进而可以将通讯限制到需要进行通讯的服务。
5.“屏蔽”模式。如果某个恶意应用程序发现并利用了其中一个侦听 Windows 服务的安全漏洞,威胁到用户的安全,SP2 引入了一个 ICF 设置,其代号为“屏蔽”模式。该模式允许用户通过切换 ICF 来防止所有主动传入的通讯,直到获得可用的修补程序为止,而无需重新配置防火墙,从而使用户轻松地保护自己。在这种操作模式中,计算机无法侦听来自网络的请求。传出连接是唯一可以成功的连接。允许使用打开静态洞的任何 API 调用,并存储该配置,但是直到 ICF 操作模式切换回正常操作时,才会应用该配置。
对开发人员的影响
许多应用程序都不需要进行更改。网上冲浪、检查电子邮件和即时消息将使用 SP2 对 ICF 的更改。但是,在某些情况下,开发人员可能希望利用新功能或更改他们的应用程序,使之很好地配合 ICF 在默认情况下为开启的情况。
• 应用程序的 IPv4 传入连接。在 TCP 套接字上完成侦听操作的应用程序,或通过 Winsock 成功绑定到 UDP 套接字的应用程序都涵盖在此方案中。这些应用程序的示例包括 MSN 或 Windows Messenger 中的音频或视频,或者宿主多个玩家的游戏。对于此方案而言,ICF 可以自动打开和关闭应用程序所需的端口。当管理员要安装需要侦听一个或多个端口的应用程序时,该应用程序需要询问用户是否要允许该应用程序在防火墙内打开端口。如果用户同意打开,那么应用程序应使用 INetFwV4AuthorizedApplication API 将自身添加到 AuthorizedApplications 集合中,然后启用它。如果用户不同意打开,那么应用程序应使用 INetFwV4AuthorizedApplication API 将自身添加到 AuthorizedApplications 集合中,然后禁用它。
• 服务的 IPv4 传入连接。在文件和打印机共享以及远程桌面的方案中,Windows XP 必须接受到服务的传入连接,此时开发人员将需要修改某些代码。尽管我们建议开发人员对其他所有方案都使用 AuthorizedApplication API,但对于侦听固定端口的服务,还是建议使用 ICF 的 Global Port API。由于这些端口始终处于开启状态,因此动态打开这些端口几乎没有什么用处。相反,如果使用 Global Port API,用户将能够自定义这些固定端口的防火墙设置。当服务需要侦听某个固定端口时,它需要询问用户是否希望该服务在防火墙内打开端口。如果用户同意打开,则该服务应该使用 INetFwV4OpenPort API 将规则添加到 ICF 中,以打开该服务所需的一个或多个固定端口,并且应该启用这些规则。如果用户不同意打开,则该服务还是应该使用 INetFwV4OpenPort API 将规则添加到 ICF 中,以打开该服务所需的一个或多个固定端口。但是,不应该启用这些规则。
• RPC 和