SQL Server是微软开发的关系型数据库管理系统(RDBMS),支持企业级数据存储、处理与分析,具有非常多的用户,广泛用于金融、医疗、电商等场景,是企业级数据管理的首选方案之一。SQL Server虽然是微软开发的,但也不是没有安全隐患,相反漏洞还挺恐怖的。例如可以通过xp_cmdshell执行cmd.exe等高危命令,从而入侵服务器。
要解决SQL Server安全问题,首先需要禁用xp_cmdshell,然后再打最新的补丁,之后再对运行身份进行降权(千万不要使用system和administrators账户运行)。最后有条件的话务必部署专业的安全防护系统,拦截SQL Server各种提权入侵。
1、禁用xp_cmdshell方法
在SQL SERVER查询分析器执行如下脚本
-- 允许配置高级选项 USE Master GO EXEC sp_configure 'show advanced options', 1 GO -- 重新配置 RECONFIGURE GO -- 禁用xp_cmdshell EXEC sp_configure 'xp_cmdshell', 0 GO --重新配置 RECONFIGURE GO
2、必打补丁
SQL Server必须打的补丁:KB3171021。若不打此补丁,只要SQL Server在网上一经公布,几乎都会被入侵。
3、降权方法
打开“SQL Server配置管理器”,点击左侧“SQL Server服务”菜单,在右侧列表找到“SQL Server(MSSQLSERVER)”(如下图一)。
点击右键,“登录身份”选择“本地账户”,并输入“NT Service\MSSQLSERVER” ,再点击“确定”,并选择重启服务就可以(如下图二)。
注意:如果更改登录身份后启动不了SQL Server,这是因为文件ACL权限不足导致,只有将运行身份改回去( “登录身份”改为“内置账户/Local System” )。
4、安全防护软件
推荐使用《护卫神.防入侵系统》,因为其内置SQL Server防护规则,可以有效拦截SQL Server提权入侵,拦截效果如下图三。
(图三:护卫神.防入侵系统拦截SQL Server提权入侵)
最后,如果SQL Server无需对外开放,务必关闭其端口(默认使用1433),能阻止大部分入侵。