要安全地安装 SQL Server,必须有一个安全的环境。对于运行 SQL Server 2008 的服务器,其外部安全要求没有太多改变。需要保护服务器的物理安全,并要定期备份数据,如果联网,还须将其放到一个或多个防火墙后面,避免在运行其他服务器应用程序的计算机上安装 SQL Server,且要尽可能减少必要的网络协议数量。要在 Microsoft Windows Server® 2003 或 Microsoft Windows Server® 2008 计算机上安装 SQL Server,以使它能充分利用操作系统级的安全保护措施。此外,最安全的方案就是安装到一个或多个NTFS分区上。
有了安全的环境,接下来最关键的就是安全地安装 SQL Server 2008。安装程序执行所有的常规安装任务,其自带的 System Configuration Checker 将通知用户可能导致问题的任何不足之处。默认情况下,安装 SQL Server 2008 并不能启用所有特性。而是只安装核心组件以及常用特性。生产环境中可能用不到的其他特性默认是关闭的。可以使用该产品支持的工具启用所需特性。
这些都是 Trustworthy Computing 技术中 secure by default 特性的一部分。这表示在安装时,SQL Server 2008 可利用默认的安全设置集实现开箱即用的安全性。基本数据库服务器不需要的特性并未被安装,目的是为了减少外围应用。由于默认情形下并未在所有系统中启用所有特性,因此在安装系统镜像时引入了异质性。这一点限制了启用易受潜在攻击的特性的系统数量,因此有助于防御大规模攻击或蠕虫病毒。
Windows Update
在企业中部署SQL Server 之后,就能发现新的威胁和漏洞。Windows Update 旨在确保及时下载并应用能够显著减少特定安全问题的补丁。可以利用 Windows Update 自动应用 SQL Server 2008 补丁,并减少由于已知的软件漏洞所导致的威胁。在大多数企业环境中,应使用 Windows Server Update Service(WSUS)管理补丁在组织内部的分发和更新。
外围应用配置
SQL Server 2008 具有大量特性,其中有许多在安装时处于禁用状态。例如,CLR 集成、数据库镜像、调试、Service Broker 以及邮件功能虽被安装,但未运行且不可用,除非显式地启用或对其进行配置。该设计与 SQL Server “默认保证安全”思路的“减少外围应用”原则保持一致,可以减小攻击表面。如果特性不可用或未被启用,攻击者就不能利用它。
这样做的代价就是,要花些时间搜寻启用特性的所有 Transact-SQL 语句。即使发现sp_configure system 存储过程可以满足很多需要,仍须编写并不直观的如下代码:
sp_configure 'show advanced options', 1 |
由于配置选项过多,编写此类代码很耗时间,尤其是在组织中部署了多个SQL Server 实例时更是如此。SQL Server 2008 带有基于策略的管理技术,名为Declarative Management Framework (声明管理框架,DMF)。DMF 提供了大量的配置 facet,其中的每一个都定义了一组相关的配置设置或属性。可以利用这些 facet 创建一些为配置选项指定所需设置的“条件”,并将这些条件作为“策略”应用给企业中的 SQL Server 实例。
SQL Server 2008 自带的一个 facet 就是 Surface Area,可以利用该 facet 定义用以控制各种SQL Server 2008 特性状态的策略。通过创建为服务器定义所需外围应用设置的策略,可以方便地在组织中所有的 SQL Server 上配置最小的外围应用,并减小恶意攻击的可能性。
【编辑推荐】