威胁和漏洞矩阵(数据库引擎)
尽管 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 Server 中的数据或连接信息。需要加密时未进行加密,或在不必要时加密,会带来不必要的风险和复杂性。 |
了解并正确实施 SQL Server 加密。有关详细信息,请参阅 SQL Server 加密。 |
未合理使用证书 |
证书是一个验证身份的机制。SQL Server 可以将证书用于不同用途,包括连接和数据。未正确使用自我认证和延长的验证期限将导致整体安全性降低。 |
了解并正确实施 SQL Server 证书。有关详细信息,请参阅 SQL Server 证书和非对称密钥。 |
SQL Server 密钥未备份 |
SQL Server 实例以及它包含的数据库可以具有用于不同安全用途的多个密钥。其中包括加密。 |
应对服务器密钥(也称为服务主密钥)和数据库密钥进行备份并安全保存。还应对它们进行定期更改。有关详细信息,请参阅 SQL Server 和数据库加密密钥(数据库引擎)。 |