1. 背景介绍
SQL Server是深受企业用户欢迎的关系型数据库管理系统(RDBMS),它提供了可靠性、安全性以及高度可扩展性的数据管理能力。然而,SQL Server中通过启用安全漏洞利用的方法重置系统管理账户的技术(SETHC),也被广泛应用于管理擅自接管的SQL Server实例。通过这个方法可以绕过对系统的安全控制,获取管理员权限,对数据进行篡改和窃取。此外,在云环境中,容器技术或者微服务架构,SQL Server的SETHC技术被更多的恶意攻击者所利用。
1.1 SQL Server 中的SETHC 漏洞
SETHC漏洞最早是由美国黑客教练Alexander Sotirov在2008年提出的,他发现通过重命名系统文件,可以让恶意攻击者利用service exe 的系统特权来访问机器,再注册为system32文件夹的一个执行文件。同时,还可以通过与Windows启动进程一同运行cmd.exe进程,并将其设置为安全劫持会话,进而获得管理员权限。
net user administrator password
ren c:\windows\system32\sethc.exe sethc1.exe
copy cmd.exe sethc.exe
1.2 SETHC 漏洞的危害
SETHC 漏洞的发现不仅让微软公司陷入被动,SETHC漏洞所带来的风险也让企业用户们陷入恐慌。当管理员使用SQL Server时,该漏洞允许其他人尝试以系统账户的身份登录到目标服务器上,即使在加密的情况下也是如此。通过利用这个漏洞,攻击者可以获得完整的控制权并注入自己的恶意代码或卸载软件,以导致离线攻击或信息泄露,这对于许多企业来说是致命的。
2. 新起点:防范SETHC漏洞
针对SQL Server 中SETHC漏洞引起的企业安全问题,微软公司出台了一系列的安全措施和建议,企业可以根据这些方案来加强安全管理。
2.1 确保及时安装补丁
之前的SQL Server版本可能存在SETHC漏洞,需要使用累积更新或者快速修补程序来修补漏洞。微软公司持续发布安全更新补丁以修复这些漏洞,建议管理员及时更新对应的补丁程序。
DECLARE @hotfix_sql VARCHAR(MAX)='SELECT * FROM sys.dm_qn_store_cleaner_events'
+CHAR(59)
+'SELECT * FROM sys.dm_xtp_object_stats;'
+CHAR(59)
+'UPDATE STATISTICS mytable WITH FULLSCAN;'
EXEC sp_executesql @hotfix_sql
2.2 防火墙策略的效应
在SQL Server 安装中启用了较为严格的防火墙策略能够有效的缓解SETHC漏洞的风险,建议提供SQL服务的Windows防火墙开启严格的入站规则,只允许虚拟专用网络VPN 和IP范围内的指定IP地址进行连接。
2.3 禁用SA账户并创造为其他的管理员账户
固定账户SA拥有最高的数据库权限,攻击者利用SETHC漏洞进行注入可直接获取该管理员权限。为了降低风险,建议使用Windows登录账户进行SQL Server的授权,禁用SA账号,创建其他限制的管理员账户,使用这些账户来执行SQL Server的管理任务。
3. 新自由:SQL Server 应用中的助手
SETHC漏洞恶意攻击者不能完全避免,因此如何发现已经遭遇攻击是一个值得重视的问题,这样能够更快的管理整个应用。SQL Server应用中,我们通过以下方法来帮助捕获和标识SETHC 漏洞的攻击行为。
3.1 SQL Server状况监测
我们可以通过SQL Server的状态监测机制来获得SQL Server在运行过程中的所有信息。通过监测温度(temperature)、CPU和内存占用情况,可以及时发现SETHC漏洞的攻击行为。
SELECT
approximate_bucket_count,
bucket_count,
empty_bucket_count,
max_length_in_bytes,
min_length_in_bytes,
avg_length_in_bytes,
range_rows_count,
equal_rows_count
FROM sys.dm_db_stats_histogram ('myDB','mytable');
3.2 使用工具记录SQL Server的行为
我们可以通过工具来抓取SQL Server的网络流量并检测恶意数据传输的异常流量,标识监测SETHC漏洞的攻击行为。
在SQL Server Management Studio中开启服务器端跟踪(trace),以帮助手动诊断SETHC漏洞和各种其他SQL Server问题,以及提供有关查询性能的信息。
4. 结论
从防范SETHC漏洞和帮助捕获攻击行为两个方面出发,SQL Server在应用中应该更加注重其安全管理。以上方法不仅有助于SQL Server本身,也有助于企业安全风险的缓解。相信在未来的SQL Server应用中,继续加强安全防范并汇总安全监测日志,能够更好的发现和解决服务器安全问题。我们期待着在SQL Server应用领域中,更多的创新安全防御和应对的相关方法的出现。