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。
版权声明:本文标题:SqlServer数据库基线检查 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1705894207a492841.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论