服务和服务帐户安全规划指南

第 2 章 - 更安全地运行服务的方法

更新日期: 2006年02月17日

本章详细介绍了运行服务时所固有的风险,并且讨论了用于运行服务的帐户类型。本章还介绍了规划如何更安全地运行服务时应用的原则和策略。

本页内容
安全漏洞安全漏洞
系统帐户系统帐户
用户帐户用户帐户
更改 Windows Server 2003 中服务的默认安全设置更改 Windows Server 2003 中服务的默认安全设置
更安全地运行服务的原则更安全地运行服务的原则

安全漏洞

由于服务在启动时以无人参与的方式运行,因此非常适用于服务器类型的应用程序,如 Web 服务。不过,这种特性也具有缺点,因为用户可能不知道服务正在运行。尽管某些服务可能会打开一个用户可见的窗口或对话框,但服务通常很少或不会进行用户交互,因此用户可能运行了很多默认服务,并且根本没有意识到潜在的安全风险。最新的 Internet 蠕虫(如 Nimda)就是利用了用户可能在不知情的情况下在其工作站上运行了 Web 服务器这一事实。感染了病毒的工作站可通过 Internet 将蠕虫传播到成千上万台计算机中。

某些服务,特别是企业管理工具(如 Microsoft® Systems Management Server、Microsoft Operations Manager 和 Tivoli)使用的那些服务需要使用域用户帐户登录,原因是它们通常需要对整个域进行访问,也可能需要访问其他受信任域。在其他情况下,使用域用户帐户来运行服务曾经是一种标准做法,但最近各组织已将其视为一种安全风险。

每个使用域或本地用户帐户的服务的用户名和密码信息都存储在注册表中,当攻击者获得计算机的管理权限时,就可以利用这些信息。结果,只要将服务配置为以用户身份登录,便会出现安全漏洞。

由于将服务配置为以域用户帐户登录时始终会产生安全漏洞,因此利用该漏洞的潜在风险会随以下各种因素而增加,其中包括:

将特定域用户帐户配置为运行服务的服务器数。在管理完善的服务器环境中,所有服务器都应该同样安全。如果某个组织不能为其所有服务器提供同样的安全保护,每个安全性较低的服务器被攻击者利用的潜在安全风险就会增加。运行域验证的服务的服务器越多,某人利用安全漏洞的可能性就会越大。例如,在某个组织内的数百或数千个服务器上,一个服务可能会使用同一域帐户对其自身身份进行验证。因此,如果攻击者攻陷其中的一台服务器,窃取了该服务使用的用户名和密码,则攻击者可以获得运行该服务的所有其他服务器的访问权限。

配置为运行某个服务的任何域用户帐户的网络权限的范围。权限的范围越大,受到威胁的资源数就会越多。域管理员帐户的风险很大,因为网络漏洞的范围是位于域中的所有计算机,其中包括域控制器。此外,如果该域用户帐户在一个或多个其他服务器上拥有本地管理员权限,则存在重复利用安全漏洞的潜在风险。

保护管理员级别帐户所访问的网络资源特别重要,因为域管理员凭据方面的漏洞所造成的破坏容易在域中被传递、被扩大和升级。在域中的所有计算机上,这些凭据通常用于交互式或远程登录;因此,如果泄露了这些凭据,域中的所有计算机都会受到攻击威胁。

服务漏洞情况

存在几种不同的服务漏洞情况,每一种情况具有不同的安全风险级别。下图和下表中分别介绍了这些情况。假定下图中的所有帐户都是域帐户。每个帐户在其中的一个服务器上至少运行了一种服务。

图中的域帐户的说明如下所示:

帐户 A 拥有多个域控制器的管理员等效权限。

帐户 A、B、C 和 D 在多个成员服务器上拥有管理员等效权限。

帐户 E 仅在单个成员服务器上拥有管理员等效权限。

图 2.1 域控制器和服务器上的管理员帐户权限

图 2.1 域控制器和服务器上的管理员帐户权限
查看大图

安全漏洞优先级

下表中使用的优先级为:

严重风险级别。这种情况会立即危及公司的安全。

高风险级别。这种情况会危及公司的安全,但不会立即危及安全。

中风险级别。这种情况也很重要,但是安全漏洞不涉及高安全性服务器。

低风险级别。如果您消除记录,忽略这种情况,对安全目标不会有什么影响。

下表详细说明了服务漏洞的各种情况及其产生后果的漏洞优先级。

表 2.1:安全漏洞情况

情况描述风险级别

1

帐户 A 正在服务器 1 上运行服务。帐户 A 在服务器 1 上的密码被破解后,用户便可以访问 DC 1,后者将变得很容易受到攻击。这是一种“严重”优先级情况;不应该使用在域控制器上拥有管理员等效权限的域帐户在成员服务器上运行服务。

严重

2

帐户 B 正在服务器 2 上运行服务。帐户 B 也拥有服务器 1 的访问权限,帐户 A 正在服务器 1 上运行服务。帐户 B 在服务器 2 上的密码被破解后,用户获得了与情况 1 相同的起始状态,因此 DC 1 变得很容易受到攻击。可以将该逻辑扩展到帐户 C 正在服务器 3 上运行服务的情况,这反过来可能会便于对服务器 2(帐户 B 正在该服务器上运行服务)进行访问,依此类推。这是一种“高”优先级的情况,而不是严重优先级情况,这是因为如果解决了情况 1 的问题,情况 2 的问题将仅限于成员服务器。

3

帐户 D 正在服务器 4 或服务器 5 上运行服务。帐户 D 在服务器上的密码被破解后,用户则可以访问帐户 D 拥有权限的所有成员服务器。这是一种“中”优先级的情况(情况 2 的可传递特性不存在)。

4

帐户 E 正在服务器 5 上运行服务,并且仅拥有服务器 5 的访问权限。

服务漏洞总结

服务是攻击者访问本地服务器或网络上其他服务器的主要漏洞点。如果不需要使用特定服务,则应该将其禁用。通过禁用不必要的服务,可以迅速且有效地减少受攻击面,并且由于没有运行这些多余的服务,还可以进一步提高性能。

要成功地保护服务,您必须了解其漏洞,并将服务受到漏洞威胁的风险降至最低。

系统帐户

服务必须以某一帐户登录以访问操作系统中的资源和对象。如果为服务分配的帐户没有相应的登录权限,Microsoft 管理控制台 (MMC) 的“服务”管理单元将自动为该帐户授予在所管理的计算机上的所需“作为服务登录”用户权限。Microsoft Windows Server™ 2003 包括以下三个内置本地帐户,它们分别用作不同系统服务的登录帐户:

“本地系统”帐户

“本地系统”帐户是预定义的本地帐户,它可以启动服务并为该服务提供安全上下文。这是一个功能强大的帐户,它具有计算机的完全访问权限,在用于域控制器上运行的服务时,它还包含对目录服务的访问权限。该帐户用作网络上的主机帐户,因此,就像任何其他域帐户一样可以访问网络资源。在网络上,该帐户显示为 DOMAIN\<计算机名>$。如果某个服务使用域控制器上的“本地系统”帐户进行登录,则它具有该域控制器本身的“本地系统”访问权限,如果域控制器受到攻击,则可能会允许恶意用户随意更改域中的内容。默认情况下,Windows Server 2003 将一些服务配置为作为“本地系统”帐户登录。该帐户的实际名称是 NT AUTHORITY\System,并且它不包含管理员需要管理的密码。

“本地服务”帐户

“本地服务”帐户是一种特殊的内置帐户,它具有较少的权限,与经过身份验证的本地用户帐户类似。如果攻击者利用单个服务或进程,这种受限的访问权限有助于保护计算机。以“本地服务”帐户运行的服务作为空会话来访问网络资源;即,它使用匿名凭据。该帐户的实际名称是 NT AUTHORITY\LocalService,并且它不包含管理员需要管理的密码。

“网络服务”帐户

“网络服务”帐户是一种特殊的内置帐户,它具有较少的权限,与经过身份验证的用户帐户类似。如果攻击者利用单个服务或进程,这种受限的访问权限有助于保护计算机。以“网络服务”帐户运行的服务使用计算机帐户的凭据来访问网络资源,这与“本地系统”服务访问网络资源的方式相同。该帐户的实际名称是 NT AUTHORITY\NetworkService,并且它不包含管理员需要管理的密码。

要点:如果更改了默认服务设置,则可能会使某些密钥服务不能正常运行。在更改默认设置为自动启动的服务的“启动类型”和“登录为”设置时,务必要小心谨慎,这一点是特别重要的。

用户帐户

有些用户帐户类别可以作为服务登录。每个类别具有其独特的功能和权限:

本地用户帐户

该类别包含在计算机上本地创建的帐户,例如,使用“本地用户和组”管理控制台。这些帐户在本地计算机上具有非常有限的权限,除非您为其特别授予更高的权限,或者将其添加到已拥有这些权限的组中。

本地管理员帐户

该类别包含在计算机上首次安装 Windows Server 2003 或 Microsoft Windows® XP 时创建并使用的内置管理员帐户。它还包含以后创建并添加到内置 Administrators 组中的任何其他用户帐户。该组的成员具有本地计算机的完全、不受限制的访问权限。

域用户帐户

该类别包含在域中创建的帐户,例如,通过使用“Active Directory® 用户和计算机”管理控制台。这些帐户在域中具有非常有限的权限,除非您为其特别授予更高的权限,或者将其添加到已具有这些权限的组中。

域管理员帐户

此类别包含首次安装 Active Directory 时创建和使用的内置域管理员帐户。它还包含以后创建并添加到内置本地 Administrators 组或者 Domain Admins 或 Enterprise Admins 组中的任何其他用户帐户。这些组的成员具有域的完全且不受限制的访问权限,对于 Enterprise Admins 组而言,则为整个林的完全且不受限制的访问权限。

更改 Windows Server 2003 中服务的默认安全设置

在 Windows XP 和 Windows Server 2003 之前发行的 Windows 版本中,操作系统附带提供的几乎所有服务都默认使用“本地系统”帐户。在这种上下文中运行的程序在本地计算机上拥有无限的权限,显然这会产生安全风险。在发行的 Windows Server 2003 中,开发人员更改了默认设置以提供更安全的环境。其中的一个更改是,现在只有较少的服务默认以“本地系统”帐户运行。很多公共服务现在使用“本地服务”或“网络服务”帐户,而不是使用“本地系统”帐户。这些帐户的权限级别远低于“本地系统”帐户,因此带来的安全威胁也较小。

很多服务仍然作为“本地系统”登录,其中包括 Automatic Updates、Computer Browser、Messenger 和 Windows Installer 服务。其他服务则不是这样。例如,Alerter 服务在 Windows 2000 中使用“本地系统”帐户;而在 Windows Server 2003 中使用“本地服务”帐户。DNS Client 在 Windows 2000 中使用“本地系统”帐户;而在 Windows Server 2003 中使用“网络服务”帐户。下表列出了在 Windows Server 2003 中不再使用“本地系统”帐户的服务,并且列出了它们现在使用的服务帐户。

注意:不要试图更改 Windows Server 2003 操作系统提供的服务所使用的帐户,因为这样做可能会出现严重的问题,并且可能会使重要服务无法成功运行。例如,DNS Client 服务使用“网络服务”帐户,因为 DNS Client 服务必须访问网络资源,如 DNS 服务器。该服务不能与“本地服务”帐户一起使用,也不能与访问网络资源时无法通过身份验证的任何其他帐户一起使用。

表 2.2:Windows Server 2003 中的新服务帐户设置

服务名登录为

Alerter

本地服务

Application Layer Gateway Service

本地服务

Remote Registry

本地服务

Smart Card

本地服务

TCP/IP NetBIOS Helper

本地服务

Telnet

本地服务

Uninterruptible Power Supply

本地服务

WebClient

本地服务

Windows Image Acquisition (WIA)

本地服务

Windows Time

本地服务

WinHTTP Web Proxy Auto-Discovery Service

本地服务

DHCP Client

网络服务

Distributed Transaction Coordinator

网络服务

DNS Client

网络服务

License Logging

网络服务

Performance Logs and Alerts

网络服务

Remote Procedure Call (RPC) Locator

网络服务

更安全地运行服务的原则

成功保护服务安全的方法包括:了解网络环境中的可用服务的特性以及制订保护对服务的使用的操作规程。本节探讨了在规划服务的安全运行时应该遵循的三个核心原则:

了解您的系统

使用最小权限原则

使用最少服务原则

如果可以将这些原则成功运用到 IT 安全操作规程中,它们将有助于获得适当的服务安全级别。

了解您的系统

尽管这个建议似乎是不言自明的,但是很多组织并不完全了解在其所有计算机上运行的角色和服务。

要了解您的计算机是否安全,您必须知道计算机上运行的服务及其属性。该信息对帮助保护服务器安全来说至关重要。请考虑为服务和计算机上运行的服务的服务属性设置编制表格的价值,以便立即评估风险。编制这样的表格最初可能是一个既长又复杂的过程,但是这些努力是值得的,因为这对了解不同服务器角色的“已知正确配置”的属性至关重要。

有几种工具可以帮助您创建服务属性和运行服务的列表。这些工具包括:

服务控制器工具 (sc.exe)。这个命令行工具是 Windows Server 2003 和 Windows XP 附带提供的。它提供了一种从命令行中与“服务控制管理器”组件进行通信的方法,以便查询和设置服务属性。

Windows Management Instrumentation (WMI)。这是一个预先安装的 Windows Server 2003 和 Windows XP 操作系统组件,它在企业环境中提供管理信息以及控制。通过使用行业标准,系统管理员可以使用 WMI 来查询和设置有关桌面计算机、应用程序、网络以及其他企业组件的信息。有些管理工具支持 WMI,其中包括“系统信息”和“服务”控制台的“依存关系”组件。服务依存关系用于确定当前服务所依赖的服务以及依赖于当前服务的服务。系统管理员还可以使用 WMI 脚本来自动完成管理任务。

Windows Management Instrumentation 命令行 (WMIC)。WMI 包含一个命令行工具 WMIC,它为 WMI 提供了一个简单的命令行界面以查询和远程管理运行 Windows 操作系统的计算机。可以通过在命令提示符下键入“wmic”来调用 WMIC。例如,要检索名为“Server1”的服务器的服务信息,请在命令提示符下键入以下命令:

wmic /output:c:\services.htm /node:server1 service list full / format:htable

可以使用 Microsoft Internet Explorer 来检查生成的 c:\services.htm 文件,该文件的格式为超文本标记语言 (HTML) 表。如果服务器名称中包含空格或特殊字符,请在运行“wmic”命令时用引号将名称引起来。

注意:还可以使用另一个名为“sclist.exe”的命令行工具,它包含在 Windows 2000 Server 资源工具包中。该工具可以显示当前运行的服务、已停止的服务或本地和远程计算机上的所有服务。Sclist.exe 可以确定在物理远程计算机或未连接监视器的计算机上运行的服务,如在服务器机架中运行的服务。

使用最小权限原则

大多数与安全性相关的培训课程和文档都讨论了如何实施最小权限原则。该原则很简单,但是实施该原则会大大提高安全性并降低风险。最小权限原则规定,您为实体分配完成其工作所需的最少数量的访问权限,而不分配任何其他权限。在 Windows Server 2003 中,该原则同时适用于用户帐户和计算机帐户,因为在 Active Directory 中,用户帐户和计算机帐户都是安全主体,这意味着可以同时为它们分配权限。

该原则非常奏效的一个原因是,它强制您评估网络资源和潜在的安全风险。您必须了解特定计算机或用户实际需要的访问权限,然后验证是否只应用了所需的权限。

为更安全地运行服务,组织需要使用最小权限方法来部署服务。应尽可能以“本地服务”帐户运行服务,以使帐户只能获得单个计算机的访问权限,而不是整个域的访问权限。需要经过身份验证的网络访问的服务可能需要使用“网络服务”帐户,因此您应该使用“本地系统”帐户来部署需要更广泛实现的服务。如果您确定需要域级管理员帐户来部署服务,则应该将部署该服务的服务器视为“高安全性服务器”,并使用与其他高度敏感的网络资源(如域控制器)相同的保护措施进行保护。有关此主题的详细信息,请参见第 3 章“如何更安全地运行服务”中的“为域管理员特例创建高安全性服务器组”一节。

Microsoft 全面测试了 Windows Server 2003 以确保核心操作系统服务已作为最小权限帐户运行;因此,通常无需修改这些服务。您应该将重点放在确保不属于操作系统的服务(如作为其他服务器产品组件提供的服务,例如,Microsoft SQL Server™ 和 Microsoft Operations Manager)以及第三方软件制造商提供的服务的安全。

可以使用 Windows Server 2003 中的组策略来控制可以在一台或多台计算机上运行的特定服务。为此,请打开包含要配置的计算机的组织单位的组策略对象。浏览到“计算机配置\Windows 设置\安全设置\系统服务”节点,然后打开要控制的服务的“属性”页面。在“属性”对话框中,定义服务启动模式(“自动”、“手动”或“禁用”),然后设置控制哪些用户帐户可以对该服务执行特定操作的安全权限,如停止或启动服务。

有关在决定用来运行服务的帐户类型时考虑的事项的详细信息,请参见第 3 章“如何更安全地运行服务”中的图 3.1“服务部署的最小权限层次结构”。

在计算机中实施最小权限原则时,可以将其与“了解您的系统”规则配合使用。如果您不了解实际运行的服务,那么如何知道您的计算机是否运行最少数量的服务呢?通过结合这两个原则,管理人员可以评估在计算机上运行的服务、其状态以及每个服务器正在使用的凭据,然后有条不紊地将每个可能的服务更改为所需的最小权限。请对计算机进行监视,确保没有在未使用正确的更改控制操作规程的情况下添加任何新服务。

使用最少服务原则

最少服务原则规定,任何联网设备上可用的操作系统和网络协议应当仅运行支持业务应用所切实必需的服务和协议。例如,如果服务器不需要托管任何 Web 应用程序,则应该删除或禁用万维网服务。大多数操作系统和程序在其默认配置中安装的服务和协议都比通常使用情况下实际所需的服务和协议多很多。

设置新服务器的最佳方法是在步骤中包含系统管理员关闭操作系统中所有不必要的服务。例如,在 Windows Server 2003 之前的 Windows 操作系统中,关闭 Alerter 和 Messenger 服务是很常见的做法。此外,还要确保将服务正确放置在网络上。例如,不应该将 Routing and Remote Access Service 或 Internet 信息服务 (IIS) 放置在域控制器上,因为它们运行的后台服务可能会增加域控制器遭受攻击的可能性。Microsoft 的最佳做法建议,除了作为域控制器成功运行所需的那些服务外,不应该在域控制器上运行任何其他服务。

有关确保 Windows Server 2003 和 Windows XP 中的服务安全的详细信息,请参见以下指南:

Windows Server 2003 安全指南,网址为:http://go.microsoft.com/fwlink/?linkid=14845

Windows XP 安全指南,网址为:http://go.microsoft.com/fwlink/?LinkId=14839

威胁和对策指南,网址为:http://go.microsoft.com/fwlink/?linkid=15159


返回页首返回页首上一页第 3 页,共 6 页下一页
**
本文内容
**
**
**