风险:
默认账号(如sa
)使用弱密码(如sa123
),易被暴力破解工具(如 Hydra)攻破;
未禁用默认测试账号(如guest
),攻击者可利用其低权限逐步渗透。
案例:2023 年某企业因sa
密码为admin123
,被黑客远程登录并加密数据库勒索。
风险:
同时启用 Windows 身份验证和 SQL Server 身份验证时,若未强制使用 Windows 身份验证,攻击者可能通过 SQL 账号漏洞入侵;
未启用密码策略(如复杂度、过期时间),导致账号密码长期不更新。
风险:
普通用户被赋予sysadmin
等高权限角色,可直接修改数据库结构、删除系统表;
存储过程或函数拥有EXECUTE
权限但未限制调用范围,被用于执行恶意命令(如调用xp_cmdshell
)。
风险:
生产环境直接使用sa
账号连接,而非创建低权限专用账号;
sa
密码未定期更换,泄露后导致整个数据库完全失控。
风险:
未修改默认端口(1433),攻击者可通过端口扫描快速定位 SQL Server;
启用不必要的服务(如SQL Server Browser
),增加攻击面。
风险:
未启用 TLS 加密(SQL Server 配置管理器中未勾选 “强制加密”),客户端与服务器间数据可被嗅探(如账号密码、敏感数据);
远程连接未通过 VPN 或防火墙限制 IP 访问,暴露在公网。
风险:
master
/tempdb
等系统数据库未严格保护,攻击者可篡改系统表;
保留默认示例数据库(如AdventureWorks
),其中可能包含测试存储过程,成为攻击跳板。
风险:
应用程序未对输入参数做防注入处理(如未使用参数化查询),攻击者通过输入'; DROP TABLE Users;--
等语句篡改或删除数据;
存储过程未过滤恶意字符,导致数据库被注入恶意 SQL 命令。
风险:
未禁用危险扩展存储过程(如xp_cmdshell
、sp_OACreate
),攻击者可通过存储过程执行系统命令(如创建管理员账号、上传木马);
2024 年某漏洞利用xp_cmdshell
执行net user
命令获取服务器账号信息。
风险:
未安装微软 SQL Server 补丁(如 CVE-2023-23397 远程代码执行漏洞),攻击者利用漏洞绕过身份验证;
数据库版本过旧(如 SQL Server 2008 已停止支持),无官方补丁可用。
风险:
测试环境开启调试功能(如xp_debug
)或保留测试账号,未在上线前清理,成为攻击入口。
风险:
存储信用卡号、身份证等敏感数据时未使用ENCRYPTBYKEY
等函数加密,数据库被拖库后直接泄露;
明文存储账号密码(如应用配置文件中的连接字符串)。
风险:
数据库备份文件(.bak)未加密且存储在共享目录,被攻击者下载后恢复到本地服务器读取数据;
备份日志未定期清理,暴露数据变更记录。
风险:
未启用 SQL Server 审计(SQL Server Audit),无法追踪高危操作(如DROP TABLE
、修改sa
密码);
日志保留时间过短,攻击痕迹被覆盖,无法溯源。
风险:
未通过防火墙或网络监控工具(如 Wireshark)识别针对 SQL Server 的暴力破解尝试(短时间内大量失败登录)。
风险:
SQL Server 服务以NT AUTHORITY\SYSTEM
等高权限运行,若数据库被入侵,攻击者可通过服务权限控制整个服务器;
数据库与域控服务器在同一内网,攻击者利用数据库漏洞横向渗透至域环境。
账号安全:
禁用sa
账号或重命名,使用 Windows 身份验证为主,强制密码复杂度(长度≥12,含大小写 + 数字 + 符号);
为不同业务创建专用低权限账号,避免 “一刀切” 高权限。
权限..小化:
通过sp_droprolemember
移除不必要的角色权限,限制存储过程仅调用必要函数,禁用xp_cmdshell
(用sp_configure 'xp_cmdshell', 0
)。
配置加固:
修改默认端口,在防火墙中仅允许可信 IP 访问;启用 TLS 加密(SQL Server 配置管理器→协议→TCP/IP→属性→强制加密)。
防注入与补丁:
应用层使用参数化查询(如ADO.NET的SqlParameter
),数据库层启用SQL Server注入防护
功能;
每月安装微软补丁,淘汰老旧版本(如 SQL Server 2012 以下建议升级)。
数据与备份保护:
敏感数据使用ENCRYPTBYCERT
加密,备份文件存储在加密磁盘并限制访问权限。
审计与监控:
启用 SQL Server 审计,记录SELECT
敏感表、ALTER
结构、失败登录等事件,结合 SIEM 工具实时告警。
SQL Server 的安全问题本质是 “权限失控” 与 “攻击面暴露” 的叠加,需从账号、配置、代码、数据四个维度构建防护体系。建议定期进行安全扫描(如使用微软SQL Vulnerability Assessment
),并通过渗透测试模拟攻击路径,及时封堵漏洞。
(声明:本文来源于网络,仅供参考阅读,涉及侵权请联系我们删除、不代表任何立场以及观点。)