威胁和漏洞矩阵(数据库引擎)

尽管 SQL Server 包含各种安全机制,但是每个系统中都存在可被恶意利用的功能。每项暴露数据或其他信息的功能,如果实施错误,就可视为风险。

尽管每项功能可能表示存在一个风险,但是所有风险并不等同。有些风险需要更改操作,有些风险需要更改设置,而有些风险需要更改代码。下表列出了一些风险,以及为了减少风险可以采取的预防步骤。

过程威胁和漏洞

威胁或漏洞

定义

缓解措施

安全策略

安全策略是单位为了防止、跟踪和响应安全威胁而遵从的过程和步骤的记录。它包含有关系统的适当访问权限、修补程序及防火墙和防病毒机制等策略。

创建、检查、分发和维护有效的安全策略。有关如何创建安全策略的详细信息,请参阅保护 SQL Server

“最小权限”原则

“最小权限”原则指的是系统应仅允许针对安全对象的所需访问级别。此外,访问权限仅对有直接需求的用户启用,且仅启用指定的时间。可能编写的应用程序提供了过多的访问权限,而帐户也可能具有太多的访问权限。

根据最小权限原则检查并实施安全性。有关如何开发使用最小权限概念的应用程序的详细信息,请参阅 MSDN 上的 Best Practices in a Least Privileged Environment(最小权限环境下的最佳做法)。

安全公告

Microsoft 在不同的平台上验证并测试了安全信息后就会立即发布它们。没有注意到这些公告的单位将无法实施适当的安全指南,从而给自己的系统带来了风险。

查看并跟踪 SQL Server 安全公告。有关详细信息,请参阅 TechNet 上的 Microsoft Security Bulletin Search(Microsoft 安全公告搜索)。

平台威胁和漏洞

威胁或漏洞

定义

缓解措施

系统未更新(未应用软件更新)

Microsoft 发布软件更新以使 SQL Server 具有更高的安全性。不跟踪或应用这些软件更新会使系统更易受到攻击。

查看并应用所有可用的 Service Pack 和修补程序。有关详细信息,请参阅 SQL Server TechCenter 上的 Downloads(下载)页。

网络端口利用

网络是对 SQL Server 进行攻击性访问的主要来源。向 Internet 开放标准端口可招致攻击。

如果服务器与 Internet 连接,请启用服务器上的防火墙,并使用 SQL Server 配置管理器工具来设置网络配置。还应考虑使用安全套接字层 (SSL) 来获得更强的安全性。有关防火墙和 SQL Server 的详细信息,请参阅如何为数据库引擎访问配置 Windows 防火墙。有关如何配置网络设置的详细信息,请参阅 SQL Server 配置管理器。有关如何在 SQL Server 中使用安全套接字层的详细信息,请参阅加密与 SQL Server 的连接

不恰当的服务帐户设置

经常给 SQL Server 的服务帐户授予了对平台或网络的过多访问权限。

SQL Server 服务帐户应当按最小权限的原则运行,并且应当具有强密码。有关服务帐户的详细信息,请参阅设置 Windows 服务帐户。有关密码的详细信息,请参阅强密码

外围应用太广泛

SQL Server 的特征和功能可能会发生不必要的暴露。

使用 SQL Server 配置管理器和基于策略的管理可以控制功能和其他组件。有关详细信息,请参阅了解外围应用配置器

启用了不必要的存储过程

某些扩展的存储过程允许对操作系统或注册表进行访问。

除非绝对必要,否则不要启用允许访问操作系统或注册表的存储过程。有关详细信息,请参阅了解外围应用配置器

身份验证威胁和漏洞

威胁或漏洞

定义

缓解措施

弱密码

简单的密码极易受到强力攻击或字典攻击。

请始终使用复杂的强密码。有关详细信息,请参阅强密码。另请参阅 CREATE LOGIN (Transact-SQL)ALTER LOGIN (Transact-SQL) 语句中的 CHECK_POLICY 和 CHECK_EXPIRATION 选项。

用户帐户未审核

用户(主体)经常变更职位或离开单位。如果用户帐户的访问权限没有更改,仍可通过以前的权限级别来访问系统。

应经常审核用户帐户,以确保启用的数据库服务器和对象访问权限适当。有关如何审核 SQL Server 访问权限的详细信息,请参阅监视错误日志

编程威胁和漏洞

威胁或漏洞

定义

缓解措施

SQL 注入

将恶意查询嵌入合法查询的做法。

有关处理 SQL 注入攻击的详细信息,请参阅 SQL 注入

嵌入的密码

某些应用程序将连接字符串保存到程序或配置文件中。

不要将密码或敏感连接信息存储在程序、注册表或配置文件中。有关详细信息,请参阅密码策略

数据访问威胁和漏洞

威胁或漏洞

定义

缓解措施

未合理使用加密

加密模糊处理 SQL Server 中的数据或连接信息。需要加密时未进行加密,或在不必要时加密,会带来不必要的风险和复杂性。

了解并正确实施 SQL Server 加密。有关详细信息,请参阅 SQL Server 加密

未合理使用证书

证书是一个验证身份的机制。SQL Server 可以将证书用于不同用途,包括连接和数据。未正确使用自我认证和延长的验证期限将导致整体安全性降低。

了解并正确实施 SQL Server 证书。有关详细信息,请参阅 SQL Server 证书和非对称密钥

SQL Server 密钥未备份

SQL Server 实例以及它包含的数据库可以具有用于不同安全用途的多个密钥。其中包括加密。

应对服务器密钥(也称为服务主密钥)和数据库密钥进行备份并安全保存。还应对它们进行定期更改。有关详细信息,请参阅 SQL Server 和数据库加密密钥(数据库引擎)