SQL Server 安全漏洞评估工具

为避免SQL Server遭受攻击,组织必须不断评估数据库系统来确定是否存在漏洞。这是一种有效的主动防御方法,用于分析数据库中的潜在漏洞及其与标准设置的偏差,如太大的权限、敏感数据的暴露、错误配置等。这也是满足遵循法规的需求。

安全合规,辨别确认安全漏洞对组织来说是非常重要的。一些可能的数据库漏洞:

  • 用户和组权限过大

  • 敏感数据,如信用卡、银行账户等

  • SQL 注入

  • 实例或数据库配置

  • 孤立数据库用户、角色或组

此前,使用SQL Server,我们需要使用自定义脚本或外部工具来检测和修复这些漏洞。在本文中,我们将看到SQL Server Management Studio 17.4新增的漏洞评估是如何有用的。

SQL Server Management Studio v17.4包含一个重要的增强功能,它将帮助SQL Server dba扫描数据库中的安全漏洞,并根据提供的建议进行补救。

为使用这个特性,安装或者更新SSMS版本到 17.4或以上

可以对照说明,自行安装。

我使用的是SSMS18.4版本:

SQL Server 安全漏洞评估工具

 

SQL Server 漏洞评估

SQL漏洞评估(VA)服务使用一个知识库,其中的规则标记安全漏洞并突出最佳实践的偏差,如错误配置、过多的权限和未受保护的敏感数据。这些规则是基于微软的最佳实践。

VA报告的用处:

  • 产生数据库漏洞评估报告

  • 设置您的环境下的数据库漏洞基线

  • 修复数据库尤其有重要数据如金融数据的数据库的漏洞

为了使用SQL 漏洞评估工具(VA),右击数据库,选择任务→漏洞评估→扫描漏洞,如下图:

SQL Server 安全漏洞评估工具

指定VA报告的保存位置:

SQL Server 安全漏洞评估工具

点击确定,即开始扫描。当漏洞扫描完成,扫描报告将自动展示。这个报告展示您的安全状态的一个概况,包括如下细节:

  • 检查的安全总数

  • 不合格的检查结果,包括其安全等级为High、Medium、Low

  • 不合格检查的详细信息以及推荐的的解决方案,合格检查的规则

下面是我的测试数据库的漏洞评估报告:

SQL Server 安全漏洞评估工具

从报告中我们可以看到,有50个安全设置通过检查,不合格的检查有5个,1个高风险,2个中级风险,2个低风险

点击Passed可以看到通过检验的安全准则:

SQL Server 安全漏洞评估工具

 

修复不合格的安全检验

 

点击失败检验,可以获得详细的结果描述、影响和补救建议或脚本,以解决问题。

SQL Server 安全漏洞评估工具

查看评估结果后,如果我们接受安全风险,那么我们可以接受其作为该环境的一个安全准则。在接下来的扫描中,将会考虑这个基线,后面将不会标记为失败的扫描。

接受安全风险,点击 Approve as Baseline。

SQL Server 安全漏洞评估工具

点击 Approve as Baseline,将给出如下提示:

SQL Server 安全漏洞评估工具

标题: Approve as Baseline

------------------------------

You are now setting the current result as your approved baseline for this security check on this database. It will no longer appear as a failure in your Vulnerability Assessment after your next scan. Do you want to continue?

SQL Server 安全漏洞评估工具

 

解决安全评估风险

 

安全评估报告同时提供失败评估的详细信息。例如,在我的报告中,VA2031- Minimal set of principals should be granted database-scoped SELECT permission on objects or columns

SQL Server 安全漏洞评估工具

在下面的截图中,提供了修复信息和修复脚本:

SQL Server 安全漏洞评估工具

为了运行脚本,其提供了一个选项,我们可以通过点击Open in Query Editor Window 方便的运行脚本:

SQL Server 安全漏洞评估工具

你可以使用推荐的脚本解决评估结果,或者设置Approved as Baseline,两者的结果是一样的:

SQL Server 安全漏洞评估工具

我们可以在检查结果的详细信息中查看检验规则,如下:

SQL Server 安全漏洞评估工具

我们同样可以清除我们的安全检验基准:

SQL Server 安全漏洞评估工具

需要注意的是,目前检查是使用一组Microsoft推荐的安全规则进行的,并且目前没有创建个性化规则的选项。

 

查看已经存在的VA报告

 

为了打开已经存在的VA报告,我们可以右击对应数据库→任务→漏洞评估→打开现有扫描:

SQL Server 安全漏洞评估工具

我们可以看到,扫描结果保存的文件格式为JSON:

SQL Server 安全漏洞评估工具

打开一个已经存在的评估报告将以只读模式打开。

SQL Server 安全漏洞评估工具

VA现在可以用来监视数据库,以管理更高级别的安全性。我们可以很容易地随时跟踪数据库中的安全漏洞并采取行动。

注意:VA支持SQL Server 2012 及以后版本