等级保护测评之SQL Server数据库加固建议

在当前的信息安全环境下,数据库作为存储关键信息的系统,其安全性至关重要。等级保护测评作为提升信息系统安全等级的重要手段,本文旨在根据该测评结果,提出针对SQL Server数据库的加固建议,以增强其安全防护能力。

在默认安装SQL SERVER数据库之后,会有一些高危风险需要进行进一步的处理,根据等级保护测评方法,建议将以下几项进行设置,以保证安全。

01 检查是否设置连接超时

执行SQL命令:

exec sp_configure 'remote query timeout (s)';

得到以下默认设置:

在这里插入图片描述

修复建议:打开数据库企业管理器->工具->SQL Server 配置属性->连接, 设置其中的远程服务连接超时时间,如 15 分钟(参考设置)。

02 确保“登录审核”设置为“失败和成功的登录”

数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间。
执行如下SQL命令:

EXEC xp_loginconfig 'audit level'

config_valuefailure表示服务器登录审核设置为仅失败登录。如果config_value的值为all,则记录失败和成功的登录。

因此,需要设置数据库属性中安全性选项中登录审核选项为失败和成功的登录。设置过程:
在这里插入图片描述
在弹出的属性对话框中,选择安全性,在登录审核选项中,选择失败和成功的登录

在这里插入图片描述

03 检查’服务器身份验证’属性设置为’SQL Server 和 Windows 身份验证模式’

数据库服务器应设置为’SQL Server 和 Windows 身份验证模式’的混合登录模式

在这里插入图片描述

04 确保“sa”登录帐户设置为“禁用”

sa帐户SQL Server的默认帐户,具有sysadmin权限。这是安装期间创建的原始登录名,sa账户无法删除,但为了安全,需要将sa账户禁用,查看sa账户状态使用下面的SQL命令

SELECT name,is_disabled FROM sys.server_principals 
WHERE sid = 0x01 AND is_disabled = 0;

得到如下结果:

在这里插入图片描述

当is_disabled值为0表示登录当前已启用,因此需要禁用该用户,使用下面的命令,禁用sa账户登录

USE [master] GODECLARE @tsql nvarchar(max)SET @tsql = 'ALTER LOGIN ' + SUSER_NAME(0x01) + ' DISABLE' EXEC (@tsql)GO

05 确保SQL Server配置为使用非标准端口

安装SQL Server实例,会默认分配一个TCP端口1433,用于通信,为了确保安全,可以给SQL Server分配一个非标准端口,如3341等。

使用下面的SQL语句查看端口

DECLARE @value nvarchar(256);EXECUTE master.dbo.xp_instance_regread
N'HKEY_LOCAL_MACHINE',N'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IPAll',N'TcpPort',@value OUTPUT,N'no_output';SELECT @value AS TCP_Port WHERE @value = '1433';

可以看到默认端口是1433
在这里插入图片描述
在SQL Server配置管理器中,SQL Server网络配置,将对呀IP中的端口改为自己喜欢的就可以了,不过再重新连接SQL Server的时候,记得加上端口号。

通过实施这些加固措施,可以显著提高SQL Server数据库的安全性,降低数据泄露或恶意攻击的风险,也能更好地符合等级保护测评的要求。

值得注意的是,网络安全是一个持续的过程,需要定期评估和更新策略以应对不断变化的威胁环境。