SQL Server数据库安全配置要求及参考操作

SqlServer IT敢客 1年前 (2017-09-16) 8803次浏览 已收录 0个评论 扫描二维码

SQL Server 数据库安全配置要求及参考操作

 

  1. 范围

本规范适用于使用 MS SQL Server 数据库的设备。本规范明确了 MS SQL Server 数据库安全配置方面的基本要求,适用于所有的安全等级。

由于版本不同,配置操作有所不同,本规范以 MS SQL Server2000 为例,给出参考配置操作。

  1. 缩略语

SA

Super Administrator

超级管理员账户

TCP

Transmission Control Protocol

传输控制协议

UDP

User Datagram Protocol

用户数据包协议

IP

Internet Protocol

网络协议

  1. 安全配置要求

  1. 账号

    编号: 1

操作指南

1
参考配置操作

sp_addlogin 'user_name_1','password1' sp_addlogin 'user_name_2','password2'

或在企业管理器中直接添加远程登陆用户建立角色,并给角色授权,把角色赋给不同的用户或修改用户属性中的角色和权限
2

补充操作说明

user_name_1 user_name_2 是两个不同的账号名称,可根据不



用户,取不同的名称;

检测方法

  1. 判定条件

不同名称的用户可以连接数据库

  1. 检测操作

在查询分析器中用 user_name_1/password1 连接数据库成功

  1. 补充说明

编号:2

要求内容

应删除与数据库运行、维护等工作无关的账号。

操作指南

  1. 参考配置操作

SQL SERVER 企业管理器〉安全性〉登陆中删除无关帐号;

SQL SERVER 企业管理器〉数据库〉对应数据库〉用户中删除无关帐号;

  1. 补充操作说明

检测方法

  1. 判定条件

首先删除不需要的用户,已删除数据库不能登陆使用

注:无关的账号主要指测试帐户、共享帐号、长期不用账号(半年以上不用)等

  1. 检测操作

MS SQL SERVER 查询分析器的登陆界面中使用已删除帐号登陆

 

3、补充说明


编号:3

要求内容

禁止账号过高的用户启动 SQL server

操作指南

参考配置操作新建 SQL server 服务账号后,建议将其从 User 组中删除,且不要把该账号提升为 Administrators 组的成员。授予以下 windows SQLRunAs 账户最少的权限启动 SQL Server 数据库。

检测方法

查看启动账号权限


编号:4

要求内容

禁止 SA 账户远程登录

操作指南

1. 参考配置操作

  1. 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"

    连接上 SQL Server



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



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



  4. 重新启动 SQL Server 服务。

    (可以在 dos 或命令行下面 net stop mssqlserver 停止服务,net start mssqlserver 启动服务)

检测方法

SA 帐号不能连接 SQL server


编号:5

要求内容

SA 权限的用户不能够访问数据库系统表

操作指南

1. 参考配置操作打开SQLserver的登录属性,点击数据库访问,分别点击 master、model、 msdb、tempdb 这四个系统库,在下方的数据库角色允许中只选择 db_sysadmin。其他角色都不能被选择。

检测方法

system administrator 角色外,其他角色的用户访问系统数据库均被拒绝。

  1. 授权

编号: 1

要求内容

在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

操作指南

1
参考配置操作

  1. 更改数据库属性,取消业务数据库帐号不需要的服务器角色;

  2. 更改数据库属性,取消业务数据库帐号不需要的"数据库访问许可"和"数据库角色中允许"中不需要的角色。

2
补充操作说明

操作 a)用于修改数据库帐号的最小系统角色

操作 b)用于修改用户多余数据库访问许可权限和数据库内角色

检测方法

  1. 判定条件

调整业务帐号权限后业务测试正常

  1. 检测操作

对业务系统数据库交互部分进行功能测试

  1. 补充说明

编号:2

要求内容

使用数据库角色(ROLE)来管理对象的权限。

操作指南

1、参考配置操作

  1. 企业管理器〉数据库〉对应数据库〉角色中创建新角色;

  2. 调整角色属性中的权限,赋予角色中拥有对象对应的 SELECT

    INSERTUPDATEDELETEEXECDRI 权限

2、补充操作说明

检测方法

1、判定条件

对应用户没有赋予不必要的权限

 

2、检测操作

  1. 口令

编号: 1

要求内容

对用户的属性进行安全检查,包括空密码、密码更新时间等。修改目前所有账号的口令,确认为强口令。特别是 sa 账号,需要设置至少

10 位的强口令。

操作指南

  1. 参考配置操作查看用户状态运行查询分析器,执行

    select * from sysusers

    Select name,Password from syslogins where password is null order

    by name # 查看口令为空的用户

  2. 补充操作说明

检测方法

1、判定条件

  1. createdate、updatedate 时间为确认时间。

  2. password 字段不为 null。

2、检测操作

1. 检查 createdate、updatedate 时间。

2.检查 password 字段是否为 null。

3、补充说明更改口令:

Use master

exec sp_password '旧口令','新口令',用户名

  1. 日志

编号: 1

要求内容

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

操作指南

1
参考配置操作

打开数据库属性,选择安全性,将安全性中的审计级别调整为"全部",身份验证调整为"SQL Server Windows"

 

2、补充操作说明

检测方法

  1. 判定条件

登录成功和失败测试,检查相关信息是否被记录

  1. 检测操作

  2. 补充说明

编号:2

要求内容

数据库应配置日志功能,记录对与数据库相关的安全事件。

操作指南

  1. 参考配置操作

    数据库默认开启日志记录

  2. 补充操作说明

增加帐号登陆审计:打开数据库属性,选择安全性,将安全性中

的审计级别调整为"全部",身份验证调整为"SQL Server Windows"


 

检测方法

  1. 判定条件

SQL Server 日志中是否存在数据库相关事件日志信息。对用户登录进行记录,包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的 IP 地址。

 

  1. 检测操作

打开企业管理器,查看数据库"管理"中的"SQL Server 日志",

查看当前的日志记录和存档的日志记录是否包含相关数据库安全事件

  1. 补充说明

  1. 不必要的存储过程

    编号: 1

    要求内容

    停用不必要的存储过程,同时在系统中删除或重命名相关 dll

    操作指南

    1
    参考配置操作以停用 xp_cmdshell 扩展存贮过程为例:

    use master  sp_dropextendedproc 'xp_cmdshell'

     

    用以上命令可删除其他存储过程。一般情况下建议删除的存储过程有:

    Sp_OACreate

    Sp_OADestroy

    Sp_OAGetErrorInfo

    Sp_OAGetProperty

    Sp_OAMethod

    Sp_OASetProperty

    Sp_OAStop

    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_grantlogin xp_logevent xp_loginconfig

    xp_logininfo xp_makewebtask xp_msver xp_perfend xp_perfmonitor xp_perfsample xp_perfstart xp_readerrorlog xp_readmail xp_revokelogin 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


     

    检测方法

    SQL Server 2000 下:从对象资源管理器打开 master 数据库->扩展存储过程查看,不必要的扩展存储过程已删除

    Exec 存储过程(参数 1,参数 2)

    1. 补充说明

    2. 检测操作

    3. 判定条件

    1. 加密通信协议

    2. 编号: 1

    要求内容

    使用通讯协议加密。

    操作指南

    1. 参考配置操作

      启动服务器网络配置工具,在"常规"中选择"强制协议加密"

    2. 补充操作说明

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

    检测方法

    1. 判定条件

    2. 检测操作


    查找注册表默认实例

    HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSSQLServer\\MSSQL

    Server\\SuperSocketNetLib\\Encrypt


     

    HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\ 实例名\\MSSQLServer\\SuperSocketNetLib\\Encrypt" rs="eq">1<

    3、补充说明

    1. 补丁

    编号: 1

    要求内容

    系统安装了最新的安全补丁
    (注:在保证业务及网络安全的前提下,经过兼容性测试后)

    操作指南

    1
    参考配置操作检查当前所有已安装的数据库产品的版本信息,运行 SQL 查询分析

    器,执行:

    select @@version

    安装补丁详细操作请参照其中的 readme 文件

    SQL Server2000 的版本和补丁号对应关系如下:

    8.00.194 ——SQL Server 2000 RTM  

    8.00.384 ——(SP1)  

    8.00.534 ——(SP2)  

    8.00.760 ——(SP3)

    8.00.2039——(SP4)

    2
    补充操作说明

    检测方法

    1. 判定条件确保数据库是最新版本,无明显漏洞

    2. 检测操作

      SQL Server 2000 下:打开 Microsoft SQL Server 企业管理器 ->工具->SQL Server 配置属性,查看版本信息

    1. 连接超时设置

    编号: 1

    要求内容

    在某些应用环境下,对数据库连接超时进行设置

    操作指南

    1、参考配置操作

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

     

    2、补充操作说明如果数据库在维护时被访问,该项为必选;如果被业务系统所访问,该项为可选

    检测方法

    1、判定条件

    15 分钟以上的无任何操作的空闲数据库连接被自动断开

    1. 可信 IP 地址访问控制

    要求内容

    根据机器性能和业务需求,设置最大最小连接数。

     

     

    编号: 1

    要求内容

    通过数据库所在操作系统或防火墙限制,只有信任的 IP 地址才能通过监听器访问数据库。

    操作指南

    1、参考配置操作

    在防火墙中做限制,只允许与指定的 IP 地址建立 1433 的通讯。当然,从更为安全的角度来考虑,应该把 1433 端口改成其他的端口。

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

    2. 单击"添加端口"。

    3. 键入您要允许的端口名称,键入端口号,然后单击"TCP"或"UDP" 以提示这是 TCP 还是 UDP 端口。

    4. 单击"更改范围"。

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


       

    检测方法

    1. 判定条件

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

    1. 检测操作

    打开"Windows 防火墙"。

    单击"例外"选项卡,然后验证您的配置是否已应用于 Windows 防火墙。

    1. 补充说明

    1. 连接数设置

    操作指南

    1、参考配置操作执行 sql 指令:

    sp_configure 'user connections', 需要的连接数 go

    reconfigure with override

    补充操作说明连接数值:缺省值为 032767 的并发连接)。

    检测方法

    1. 判定条件

    当连接数超过设定值时,会出现"已达到连接的最大限制"提示

    1. 检测操作

    执行
    sp_configure
    查看当前使用的值

     


     


    IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:SQL Server 数据库安全配置要求及参考操作
    喜欢 (155)
    [313176056@qq.com]
    分享 (0)
    IT敢客
    关于作者:
    “我所做的一切都是为了方便我的生活~~~“
    发表我的评论
    取消评论
    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址