admin 管理员组

文章数量: 1184232


2024年1月22日发(作者:oracle数据库排序)

1. 帐号管理

Sqlserver-1 检查是否按照用户分配帐号

检测步骤:

执行以下命令查看SQL Server用户账号个数

#select count(name) from master..syslogins where isntname=0 and

判定依据

name not like '##%'

判定依据:

SQL Server用户账号个数大于等于2则合规,否则不合规.

检查点 检查SQL Server用户账号个数

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server Management Studio(在SQL Server 2000下打加固方案 开企业管理器),登入相应的数据库实例.

(2).依次展开“安全性”、“登录名”(在SQL Server 2000下为“登录”)节点,创建多个账户.按照实际情况赋予账户相应的角色.

Sqlserver-2 检查是否按角色对帐号管理

检测步骤:

使用以下命令查看SQL Server数据库角色.

判定依据

#select * from sysusers where issqlrole=1;

判定依据:

1) 对应角色属性中的权限是否拥有不必要的对象权限;

2) 对象属性的权限列表中是否存在不必须的数据库帐号或角色访问

检查点 检查是否按角色对帐号管理

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server Management Studio(在SQL Server 2000下打开企业管理器).

加固方案

(2).进入系统数据库->对应数据库->安全性->角色-中创建新角色

(3).调整角色属性中的权限,赋予角色中拥有对象对应的SELECT、INSERT、UPDATE、DELETE、EXEC、DRI权限

Sqlserver-3 检查是否存在空口令登录名

检测步骤:

执行以下命令查看系统中是否存在口令为空的登录账号:

#select * from syslogins where sid in(select sid from sysusers where

判定依据

issqluser=1) and password is null;

判定依据:

系统中不存在口令为空的登录账号则合规,否则不合规.

检查点 检查是否存在空口令账号

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server Management Studio,连接相应的数据库实例.

加固方案

(2).依次展开“安全性”、“登录名”节点,打开相应的帐户的属性,选择“常规”选项卡,设置密码并确认密码.

Sqlserver-4 检查是否删除数据库无关帐号

检测步骤:

一、执行以下命令查看是否存在高危用户账号“BUILTINAdministrators”

判定依据 #select name from master..syslogins where name =

'BUILTINAdministrators'

判定依据:

不存在高危账号BUILTINAdministrators则合规,否则不合规.

检查点 检查是否已删除高危用户账号“BUILTINAdministrators”

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server Management Studio(在SQL Server 2000下打加固方案 开企业管理器),登入相应的数据库实例.

(2).依次展开“安全性”、“登录名”(在SQL Server 2000下为“登录”)节点,删除“BUILTINAdministrators”用户.

Sqlserver-5 查看sa登录名是否被修改

判定依据 检测步骤:

以sa登录名登录sqlserver,登录失败.

判定依据:

重命名sa登录名名称则合规,否则不合规

检查点 检查是否重命名sa账户名称

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

加固方案

(1).登录到SQL Server Management Studio ->安全性->登录名->sa->右击->重命名.

Sqlserver-6 检查是否强制实施密码策略(密码复杂度)

检测步骤:

使用以下命令查看未强制实施密码策略的用户

#select name from _logins where is_policy_checked = 0 and

判定依据

name not like '##%';

判定依据:

系统不存在未强制实施密码策略的用户

检查点 检查是否强制实施密码策略(密码复杂度)

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

加固方案

(1).打开SQL Server Management Studio,连接相应的数据库实例.

(2).依次展开“安全性”、“登录名”节点,打开相应的帐户的属性,选择“常规”选项卡,勾选“强制实施密码策略”;在SQL Server 2000中,请手动检查.

Sqlserver-7 检查是否强制密码过期

检测步骤:

执行以下命令查看系统中是否存在未强制密码过期的登录账号:

#select name from _logins where is_expiration_checked = 0

判定依据

and name not like '##%';

判定依据:

系统中不存在未强制密码过期的登录账号则合规,否则不合规.

检查点 检查未设置“强制密码过期”的SQL Server用户的个数

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server Management Studio,登入相应的数据库实例.

加固方案

(2).依次展开“安全性”、“登录名”节点,打开相应的帐户的属性,选择“常规”选项卡,勾选“强制密码过期”.在SQL Server 2000中,请手动检查.

2.

口令策略

Sqlserver-8 可信IP地址访问控制

判定依据 检测步骤:

在非信任的客户端以数据库账户登录被提示拒绝.

判定依据:

设置了允许访问sqlserver监听端口的ip地址范围则合规,否则不合规.

检查点(0) 检查是否开启防火墙例外模式

截图

结果

并说明符合/不符合,不符合的需整改为符合

检查点(1) 检查是否启用防火墙操作模式

截图

结果

并说明符合/不符合,不符合的需整改为符合

检查点(2) 检查是否设置限制访问1433端口的ip地址列表

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考配置:

(1). 在“Windows 防火墙”对话框中,单击“例外”选项卡。

(2). 单击“添加端口”。

(3). 键入您要允许的端口名称,键入端口号,然后单击“TCP”或加固方案

“UDP”以提示这是 TCP 还是 UDP 端口。

(4). 单击“更改范围”.

(5). 指定要为其阻止此端口的一系列计算机,然后单击“确定”.

如果修改了SQL Sever监听端口,请在自定义参数配置页面,修改端口参数.

Sqlserver-9 禁止SA账户远程登录

检测步骤:

使用查询分析器,使用SA账号不能连接SQL server

判定依据

判定依据:

sa登录账号不能登录数据库则合规,否则不合规.

检查点 检查是否禁SA账户远程登录

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1)在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。

(2)展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性" 选项卡.

加固方案

(3)在"身份验证"下,只选择"Windows ".

(4) 重新启动SQL Server服务.

说明(加固该项之前请慎重):

1)此项仅在使用“使用 Windows 身份验证”的模式下适用.

2)做了此项限制,只能使用Windows账号本地登录数据库,需要赋予相应权限.

3. 认证授权

Sqlserver-10 检查身份验证设置是否安全

检测步骤:

执行以下命令查看LoginMode的值:

#reg

"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft

判定依据

ServerMSSQL.1MSSQLServer" /v LoginMode #注意注册表路径不固定,请依据实际情况确定

判定依据:

LoginMode的值为0x2则合规,否则不合规.

检查点 检查 “服务器身份验证”模式

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server Management Studio(在SQL Server 2000下打开企业管理器),连接相应的数据库实例.

(2).在数据库名称上点击右键,打开其属性对话框,选择“安全性”选加固方案

项卡,将“服务器身份验证”(在SQL Server 2000下为“身份验证”)更改为“SQL Server和Windows身份验证模式”(在SQL Server 2000下为“SQL Server和Windows”).

(3).重启数据库使之生效.

Sqlserver-11 用户登录记录

判定依据 检测步骤:

query

SQL

使用以下命令查看AuditLevel的值

#reg

"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft

query

SQL

ServerMSSQL.1MSSQLServer" /v AuditLevel #注意注册表路径不固定,请依据实际情况来确定.

判定依据:

AuditLevel的值为0x3则合规,否则不合规.

检查点 检查 “登录审核”级别

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server Management Studio(在SQL Server 2000下打开企业管理器),连接相应的数据库实例.

加固方案

(2).在数据库名称上点击右键,打开其属性对话框,选择“安全性”选项卡,将“登录审核”(在SQL Server 2000下为“审核级别”)更改为“失败和成功的登录”(在SQL Server 2000下为“全部”).

(3).重启数据库使之生效。

4. 系统服务

Sqlserver-12

判定依据

使用通讯协议加密

检查步骤:

使用一下命令查看ForceEncryption的值:

#reg query

"HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL

ServerMSSQL.1MSSQLServerSuperSocketNetLib" /v

ForceEncryption #注意注册表的路径不是固定的,视实际情况而定

判定依据:

ForceEncryption的值为0x1则合规,否则不合规.

检查点 检查是否使用通讯协议加密

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考配置操作

(1).单击"开始",在 Microsoft SQL Server 程序组中,指向"配置工具",再单击"SQL Server Configuration Manager"。

(2).展开"SQL Server <版本> 网络配置",右击"SQLSERVER 的协加固方案

议",再单击"属性"。

(3).在"标志"选项卡上,ForceEncryption 选项设置为"是"。

补充操作说明

更改通讯协议加密后需要重新启动SQL Server数据库

5. 文件权限

Sqlserver-13 检查是否删除或者禁用不必要存储过程

检测步骤:

使用以下命令检查系统是否将如下扩展存储过程的执行权限赋予public角色

#select name from sysobjects where id in(select major_id from

se_permissions

grantee_principal_id=DATABASE_PRINCIPAL_ID('public')

where

and

permission_name='EXECUTE' and state_desc != 'DENY' and

major_id in (select id from sysobjects where name

in( 'xp_cmdshell','sp_OACreate','sp_OADestroy','sp_OAGetErrorInfo','sp_OAGetProperty','sp_OAMethod','sp_OASetProperty','sp_OA判定依据

Stop','xp_regaddmultistring','xp_regdeletekey','xp_regdeletevalue','xp_regenumvalues','xp_regremovemultistring','xp_sdidebug','xp_availablemedia','xp_cmdshell','xp_deletemail','xp_dirtree','xp_dropwebtask','xp_dsninfo','xp_enumdsn','xp_enumerrorlogs','xp_enumgroups','xp_enumqueuedtasks','xp_eventlog','xp_findnextmsg','xp_fixeddrives','xp_getfiledetails','xp_getnetname','xp_logevent','xp_loginconfig','xp_logininfo','xp_makewebtask','xp_msver

xp_perfend','xp_perfmonitor','xp_perfsample','xp_perfstart','xp_readerrorlog','xp_readmail','xp_run

ebtask','xp_schedulersignal','xp_sendmail','xp_servicecontrol','xp_snmp_getstate','xp_snmp_raisetrap','xp_sprintf

','xp_sqlinventory','xp_sqlregister','xp_sqltrace','xp_sscanf','xp_startmail' ,'xp_stopmail' ,'xp_subdirs' ,'xp_unc_to_drive')));

判定依据:

检测步骤的输出为空则合规,否则不合规.

检查点 检查是否删除或者禁用不必要存储过程

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

需要删除或者禁用的扩展存储过程:sp_OACreate sp_OADestroy

sp_OAGetErrorInfo

sp_OASetProperty

xp_regdeletekey

sp_OAGetProperty

sp_OAStop

xp_regdeletevalue

xp_sdidebug

sp_OAMethod

xp_regaddmultistring

xp_regenumvalues

xp_availablemedia xp_regremovemultistring

xp_cmdshell xp_deletemail xp_dirtree xp_dropwebtask xp_dsninfo

加固方案

xp_enumdsn xp_enumerrorlogs xp_enumgroups

xp_enumqueuedtasks xp_eventlog xp_findnextmsg xp_fixeddrives

xp_getfiledetails xp_getnetname xp_logevent xp_loginconfig

xp_logininfo xp_makewebtask xp_msver xp_perfend

xp_perfmonitor xp_perfsample xp_perfstart xp_readerrorlog

xp_readmail xp_runwebtask xp_schedulersignal xp_sendmail

xp_servicecontrol xp_snmp_getstate xp_snmp_raisetrap xp_sprintf

xp_sqlinventory xp_sqlregister xp_sqltrace xp_sscanf xp_startmail

xp_stopmail xp_subdirs xp_unc_to_drive xp_dirtree

(1).在SQL Server 2005及以上版本的SQL Server中打开SQL

Server Management Studio,连接相应的数据库实例,依次展开数据库-系统数据库-master-可编程性-扩展存储过程-系统扩展存储过程,选中相应的存储过程,点击右键,打开属性对话框,选择权限,如果存在“public的显示权限”,则将所有Execute权限修改为“拒绝”.

(2)在SQL Server 2000中打开企业管理器,连接相应的数据库实例,依次展开数据库、master、扩展存储过程节点,选中相应的存储过程,点击右键,打开属性对话框,选择权限,将public角色对其的EXEC权限修改为“拒绝”,或者删除这个存储过程(其它存储过程可能依赖这个存储过程,不建议删除);

Sqlserver-14 检查是否安装最新补丁

检测步骤:

登录数据库执行以下命令查询SQL Server数据库版本信息:

判定依据

#select @@version

判定依据:

数据库安装了最新补丁则合规,否则不合规.

检查点(0) 检查SQL Server 2005补丁

截图

结果

并说明符合/不符合,不符合的需整改为符合

检查点(1) 检查SQL Server 2008补丁

截图

结果

并说明符合/不符合,不符合的需整改为符合

检查点(2) 检查SQL Server 2008 R2 补丁

截图

结果

并说明符合/不符合,不符合的需整改为符合

检查点(3) 检查SQL Server 2012补丁

截图

结果

并说明符合/不符合,不符合的需整改为符合

检查点(4) 检查SQL Server 2000补丁

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

请到微软官方网站下载对应SQL Server 最新补丁包并安装.

加固方案

说明:SQL Server 2000最新补丁包是SP4,SQL Server 2005是SP4,SQL Server 2008是SP3,SQL Server 2008 R2是SP2,SQL Server

2012是SP1。

Sqlserver-15 检查服务端口是否被更改

检测步骤:

在目标设备上打开命令行窗口,执行以下命令查看是否存在1433

判定依据

tcp监听端口:

#netstat -ano|find "1433"

判定依据:

修改了SQLServer默认tcp监听端口则合规,否则不合规.

检查点 检查服务端口是否被更改

截图

结果

并说明符合/不符合,不符合的需整改为符合

参考步骤:

(1).打开SQL Server 配置管理器-SQL Server <版本> 网路配置-SQLSERVER 的协议

加固方案 (2).修改TCP/IP属性.

(3)修改IP地址标签-IPALL下的tcp端口,将其修改为非1433且未被占用的端口.

(4)重启SQL Server服务.

Sqlserver-16 最大(用户)并发连接数

检测步骤:

1、使用以下命令查看当前数据库最大并发连接数设置:

判定依据 #select value from sysconfigures where config=103

判定依据:

value的值不为0则合规,否则不合规.

检查点 检查最大并发连接数

截图

结果

并说明符合/不符合,不符合的需整改为符合

加固方案 参考步骤:

(1).打开SQL Server Management Studio(在SQL Server 2000下打开企业管理器),连接相应的数据库实例.

(2).在数据库名称上点击右键,打开其属性对话框,选择“连接”选项卡,按需要修改“最大并发连接数”(在SQL Server 2000下为“并发用户连接的最大数目”).

(3)并重启数据库使之生效。

说明:0是默认值,表示没有限制。在SQL Server2000中连接数上限为10000,在SQL Server 2005及以上版本的SQL Server中上限为32767。


本文标签: 是否 数据库 检查 登录 端口