Mssql数据库系统加固规范2024年9月目录1账号管理、认证授权............................................................................................11.1.1SHG-Mssql-01-01-01....................................................................................11.1.2SHG-Mssql-01-01-02....................................................................................21.1.3SHG-Mssql-01-01-03....................................................................................31.1.4SHG-Mssql-01-01-04....................................................................................41.1.5SHG-Mssql-01-01-05....................................................................................51.1.6SHG-Mssql-01-01-06....................................................................................52日志配置................................................................................................................72.1.1SHG-Mssql-02-01-01....................................................................................73通信协议................................................................................................................83.1.1SHG-Mssql-03-01-01....................................................................................83.1.2SHG-Mssql-03-01-02....................................................................................83.1.3SHG-Mssql-03-01-04....................................................................................104设备其他安全要求................................................................................................114.1.1SHG-Mssql-04-01-01....................................................................................114.1.2SHG-Mssql-04-01-02....................................................................................1411账号管理、认证授权账号管理、认证授权1.1.11.1.1SHG-Mssql-01-01-0SHG-Mssql-01-01-011编号SHG-Mssql-01-01-01名称为不同的管理员分配不同的账号实施目的应按照用户分配账号,避免不同用户间共享账号,提高安全性。问题影响账号混淆,权限不明确,存在用户越权使用的可能。系统当前状态usemasterSelectname,passwordfromsysloginsorderbyname记录用户列表实施步骤1、参考配置操作sp_addlogin'user_name_1','password1'sp_addlogin'user_name_2','password2'或在企业管理器中直接添加远程登陆用户建立角色,并给角色授权,把角色赋给不同的用户或修改用户属性中的角色和权限2、补充操作说明1、user_name_1和user_name_1是两个不同的账号名称,可根据不同用户,取不同的名称;回退方案删除添加的用户判断依据询问管理员是否安装需求分配用户账号实施风险高重要等级★★★备注1.1.21.1.2SHG-Mssql-01-01-0SHG-Mssql-01-01-022编号SHG-Mssql-01-01-02名称删除或锁定无效账号实施目的删除或锁定无效的账号,减少系统安全隐患。问题影响允许非法利用系统默认账号系统当前状态usemasterSelectname,passwordfromsysloginsorderbyname记录用户列表实施步骤1、参考配置操作Mssql企业管理器->SQLServer组->(Local)(WindowsNT)->安全性->登录在用户上点右键选择删除回退方案增加删除的帐户判断依据询问管理员,哪些账号是无效账号实施风险高重要等级★★★备注1.1.31.1.3SHG-Mssql-01-01-0SHG-Mssql-01-01-033编号SHG-Mssql-01-01-03名称限制启动账号权限实施目的限制账号过高的用户启动sqlserver问题影响启动mssql的账号权限过高,会导致其子进程具有相同权限.系统当前状态Mssql企业管理器->SQLServer组->(Local)(WindowsNT)-属性(右键)-安全性实施步骤1、参考配置操作新建SQLserver服务账号后,建议将其从User组中删除,且不要把该账号提升为Administrators组的成员。授予以下windowsSQLRunAs账户最少的权限启动SQLServer数据库。回退方案替换会原来启动账号判断依据判定条件查看启动账号权限.实施风险高重要等级★★★备注1.1.41.1.4SHG-Mssql-01-01-0SHG-Mssql-01-01-044编号SHG-Mssql-01-01-04名称权限最小化实施目的在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。问题影响账号权限越大,对系统的威胁性越高系统当前状态记录用户拥有权限实施步骤1、参考配置操作a)更改数据库属性,取消业务数据库帐号不需要的服务器角色;b)更改数据库属性,取消业务数据库帐号不需要的“数据库访问许可”和“数据库角色中允许”中不需要的角色。2、补充操作说明操作a)用于修改数据库帐号的最小系统角色操作b)用于修改用户多余数据库访问许可权限和数据库内角色回退方案还原添加或删除的权限判断依据业务测试正常实施风险高重要等级★备注1.1.51.1.5SHG-Mssql-01-01-0SHG-Mssql-01-01-055编号SHG-Mssql-01-01-05名称数据库角色实施目的使用数据库角色(ROLE)来管理对象的权限。问题影响账号管理混乱系统当前状态记录对应数据库用户角色权限实施步骤a)企业管理器-〉数据库-〉对应数据库-〉角色-中创建新角色;b)调整角色属性中的权限,赋予角色中拥有对象对应的SELECT、INSERT、UPDATE、DELETE、EXEC、DRI权限回退方案删除相应的角色判断依据对应用户不要赋予不必要的权限实施风险高重要等级★备注1.1.61.1.6SHG-Mssql-01-01-06SHG-Mssql-01-01-06编号SHG-Mssql-01-01-06名称空密码实施目的对用户的属性进行安全检查,包括空密码、密码更新时间等。修改目前所有账号的口令,确认为强口令。特别是sa账号,需要设置至少10位的强口令。问题影响账号安全性低.系统当前状态select*fromsysusersSelectname,Passwordfromsysloginswherepasswordisnullorderbyname#查看口令为空的用户实施步骤Usemasterexecsp_password‘旧口令’,‘新口令’,用户名回退方案恢复用户密码到原来状态判断依据Selectname,Passwordfromsysloginswherepasswordisnullorderbyname查看是否有账号为密码实施风险高重要等级★备注22日志配置日志配置2.1.12.1.1SHG-Mssql-02-01-0SHG-Mssql-02-01-011编号SHG-Mssql-02-01-01名称启用日志记录功能实施目的数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP地址。问题影响无法对用户的登陆进行日志记录系统当前状态打开数据库属性,查看安全属性实施步骤打开数据库属性,选择安全性,将安全性中的审计级别调整为“全部”,身份验证调整为“SQLServer和Windows”回退方案设置安全属性到原先状态判断依据判定条件登录测试,检查相关信息是否被记录实施风险低重要等级★★★备注33通信协议通信协议3.1.13.1.1SHG-Mssql-03-01-0SHG-Mssql-03-01-011编号SHG-Mssql-03-01-01名称网络协议实施目的除去不必要的服务问题影响增加数据库安全隐患系统当前状态在MicrosoftSQLServer程序组,运行服务网络实用工具,查看协议列表实施步骤参考配置操作在MicrosoftSQLServer程序组,运行服务网络实用工具。建议只使用TCP/IP协议,禁用其他协议。回退方案添加删除的协议判断依据判定条件在MicrosoftSQLServer程序组,运行服务网络实用工具,查看协议列表,查看是否有多余协议.实施风险高重要等级★★备注3.1.23.1.2SHG-Mssql-03-01-0SHG-Mssql-03-01-022编号SHG-Mssql-03-01-02名称加固TCP/IP协议栈实施目的加固TCP/IP协议栈,加强系统防御网络攻击能力.问题影响网络防御能力弱.系统当前状态查看HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\DisableIPSourceRoutingHKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableICMPRedirectHKLM\System\CurrentControlSet\Services\Tcpip\Parameters\SynAttackProtect注册表键值实施步骤参考配置操作对于TCP/IP协议栈的加固主要是某些注册表键值的修改。主要是以下几个:HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\DisableIPSourceRouting说明:该键值应设为2,以防御源路由欺骗攻击。HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableICMPRedirect说明:该键值应设为0,以ICMP重定向。HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\SynAttackProtect说明:该键值应设为2,防御SYNFLOOD攻击。回退方案还原注册表更改键值判断依据判定条件读取HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\DisableIPSourceRoutingHKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableICMPRedirectHKLM\System\CurrentControlSet\Services\Tcpip\Parameters\SynAttackProtect键值.实施风险高重要等级★★备注3.1.33.1.3SHG-Mssql-03-01-04SHG-Mssql-03-01-04编号SHG-Mssql-03-01-04名称通讯协议加密实施目的使用通讯协议加密问题影响数据库的不安全性增加系统当前状态启动服务器网络配置工具,查看“常规”设置实施步骤参考配置操作启动服务器网络配置工具,更改“常规”设置为“强制协议加密”。回退方案恢复“强制协议加密”到原状态判断依据启动服务器网络配置工具,查看“常规”设置实施风险高重要等级★备注44设备其他安全要求设备其他安全要求4.1.14.1.1SHG-Mssql-04-01-01SHG-Mssql-04-01-01编号SHG-Mssql-04-01-01名称停用不必要的存储过程实施目的停用sqlserver中存在的危险存储过程问题影响数据库的不安全性增加系统当前状态查看存储过程列表实施步骤参考配置操作usemasterexecsp_dropextendedproc'xp_cmdshell'execsp_dropextendedproc'xp_dirtree'execsp_dropextendedproc'xp_enumgroups'execsp_dropextendedproc'xp_fixeddrives'execsp_dropextendedproc'xp_loginconfig'execsp_dropextendedproc'xp_enumerrorlogs'execsp_dropextendedproc'xp_getfiledetails'execsp_dropextendedproc'Sp_OACreate'execsp_dropextendedproc'Sp_OADestroy'execsp_dropextendedproc'Sp_OAGetErrorInfo'execsp_dropextendedproc'Sp_OAGetProperty'execsp_dropextendedproc'Sp_OAMethod'execsp_dropextendedproc'Sp_OASetProperty'execsp_dropextendedproc'Sp_OAStop'execsp_dropextendedproc'Xp_regaddmultistring'execsp_dropextendedproc'Xp_regdeletekey'execsp_dropextendedproc'Xp_regdeletevalue'execsp_dropextendedproc'Xp_regenumvalues'execsp_dropextendedproc'Xp_regread'execsp_dropextendedproc'Xp_regremovemultistring'execsp_dropextendedproc'Xp_regwrite'dropproceduresp_makewebtaskGo删除测试或不必要的存储过程,一般情况下建议删除的存储过程有:sp_OACreatesp_OADestroysp_OAGetErrorInfosp_OAGetPropertysp_OAMethodsp_OASetPropertysp_OAStopsp_regaddmultistringxp_regdeletekeyxp_regdeletevaluexp_regenumvaluesxp_regremovemultistring除非应用程序需要否则以下存储过程也建议删除:xp_perfendxp_perfmonitorxp_perfsamplexp_perfstartxp_readerrorlogxp_readmailxp_revokeloginxp_runwebtaskxp_schedulersignalxp_sendmailxp_servicecontrolxp_snmp_getstatexp_snmp_raisetrapxp_sprintfxp_sqlinventoryxp_sqlregisterxp_sqltracexp_sscanfxp_startmailxp_stopmailxp_subdirsxp_unc_to_drivexp_dirtreesp_sdidebugxp_availablemediaxp_cmdshellxp_deletemailxp_dirtreexp_dropwebtaskxp_dsninfoxp_enumdsnxp_enumerrorlogsxp_enumgroupsxp_enumqueuedtasksxp_eventlogxp_findnextmsgxp_fixeddrivesxp_getfiledetailsxp_getnetnamexp_grantloginxp_logeventxp_loginconfigxp_logininfoxp_makewebtaskxp_msver回退方案新建存储过程将删除的手工建立或恢复备份的数据库判断依据调用存储过程,检查是否存在Exec存储过程(参数1,参数2)实施风险高重要等级★备注4.1.24.1.2SHG-Mssql-04-01-02SHG-Mssql-04-01-02编号SHG-Mssql-04-01-02名称安装补丁实施目的为系统打最新的补丁包。问题影响数据库的不安全性增加系统当前状态select@@version实施步骤参考配置操作select@@version确保SQLServer的补丁为最新的。下载并安装最新的补丁SQLServer2000的版本和补丁号对应关系如下:8.00.194-------SQLServer2000RTM8.00.384-------(SP1)8.00.534-------(SP2)8.00.760-------(SP3)8.00.2039-------(SP4)回退方案无判断依据微软自动升级工具查看未安装补丁实施风险高重要等级★备注