公司新闻

SQL Server第3部分:采用最小权限

 

笔者在第2部分讨论了身份验证和授权机制,以及如何正确配置它们来保护数据库。这次笔者将讨论如何通过实现最小特权(POLP)原理来防止数据泄露。

 

根据 Verizon的《 2019年数据泄露调查报告》,泄露数据库内部人员占比高达76%。恶意的内部人员对组织构成了重大威胁,因为他们有企业中重要服务器和数据库的相关权限,而最小特权原则是应对内部威胁的有效起点。  

 

SQL Server最小权限原则是什么?

 

最小权限原则基于执行其工作所需的最小权限而工作,最小化每个用户的访问权限是针对数据库的防御策略。用户可以拥有的访问权限取决于他们在数据库中执行的活动。

 

考虑到用户需要从数据库导出记录,则授予用户读取和导出记录的权限。如果授予用户执行数据库中任何其他操作(例如写入操作特权),则其可能会滥用特权,并操控数据。而实际上为了方便工作,IT团队通常会授予更多特权,这就引发了安全漏洞。

 

如何实施最小权限原则来保护SQL Server?

 

数据库用户和系统可以根据他们的角色进行分组,可参考如下不同的用户组:

 

1.只需访问即可从数据库读取和导出数据的用户

2.可以读写特定模式的用户(编辑访问权限)

3.可以添加和删除架构的特权用户(数据定义语言)

4.可以添加和授予各种用户访问权限的特权和管理用户

 

特定组下的用户被授予在数据库中执行特定权限,您可以看到特权用户也分为两组;这是因为可以创建和删除架构的用户不一定需要固定特权。而且,也不能将它们归类为只能读写数据库。

 

如果仅需读写数据库中特定用户添加或删除架构的权限,则表和记录很容易受到攻击。用户可能会不小心或恶意删除整个数据库,从而导致重大事件。为避免此类不幸,应该给用户和系统仅足够的特权来执行其职责,仅此而已。

 

为了进一步加强安全性,具有管理访问权限的特权用户应具有两个帐户:普通数据库访问用户,及添加用户或分配职责的管理员帐户。

 

遵循POLP时,应参考以下六个最佳实践:

 

1.重新分配给用户和系统权限,并确保正确实施最小权限原则

2.禁用不再使用的用户帐户

3.不属于特定组的用户进行删除

4.修改分配给管理员的权限,并密切监视其活动

5.监视特权升级并采取必要的补救措施(如果有)

6.审核SQL Server中的所有活动

 

SQL Server使用GRANT,REVOKE和DENY Transact-SQL语句可以有效地为用户帐户和系统帐户分配权限。这些语句也可以用于组,添加到组的每个新用户都将继承整个组的权限。可以基于不同的组在数据库中执行的功能来为它们提供不同的访问级别。

 

使用有效的安全信息和事件管理(SIEM)解决方案来审核SQL Server活动,可使您能够更轻松地识别未经授权的访问、特权升级和特权用户的异常行为。SIEM解决方案可以关联整个网络的活动,并检测异常,以防止数据泄露并保护SQL Server。