近日,一项关于Azure SQL托管实例(Managed Instance)的高危安全发现引发业界高度关注。多名安全研究人员独立报告称,攻击者可通过特定配置缺陷,在Azure MI环境中获取NT AUTHORITY\SYSTEM系统账户权限,进而实现对托管实例乃至底层宿主节点的完全控制。这一漏洞的曝光,再次将云数据库安全推向舆论焦点。

什么是NT AUTHORITY\SYSTEM?为何危险?

在Windows操作系统中,NT AUTHORITY\SYSTEM是最高级别的本地系统账户,拥有对操作系统的完全访问权限,包括文件系统、注册表、进程管理等。在传统SQL Server部署中,该账户通常不会直接暴露给数据库管理员或用户。然而,此次发现的漏洞表明,Azure SQL托管实例中存在一条未被充分隔离的“通路”,使得攻击者能够以SYSTEM身份执行代码。

漏洞细节:从数据库到宿主的跨越

据安全研究员披露,该漏洞的核心在于Azure SQL托管实例对CLR集成(Common Language Runtime)扩展存储过程的权限控制存在漏洞。具体而言,攻击者首先需要获得对托管实例的db_owner角色权限(例如通过SQL注入、弱密码或被盗的凭据)。接着,通过创建恶意CLR程序集或调用高危存储过程(如xp_cmdshell),攻击者可以突破数据库层面的沙盒限制,直接调用操作系统API。

更关键的是,Azure MI的底层运行机制中,某些系统任务(如备份、高可用监测、扩展事件处理)默认以NT AUTHORITY\SYSTEM身份执行。攻击者通过伪造或劫持这些任务,可以触发SYSTEM账户下的任意代码执行。一旦成功,攻击者不仅完全控制了该托管实例内的所有数据库,还能横向移动至其他共享宿主资源,甚至可能访问同一物理主机上其他客户的隔离实例。

影响范围:任何未正确加固的Azure MI

目前,该漏洞影响所有运行以下版本的Azure SQL托管实例:未应用2024年4月安全更新之前的版本,以及启用了CLR集成或xp_cmdshell但未配置严格权限限制的实例。由于Azure MI本身提供“近乎原生”的SQL Server体验,许多管理员可能忽略了云环境下的额外加固措施,导致上述高风险功能仍处于默认启用状态。

安全公司Wiz Research在模拟测试中成功复现了攻击路径:他们首先通过一个低权限数据库账户,利用未修补的CLR漏洞加载恶意程序集,随后借助托管实例的“服务代理”机制触发SYSTEM上下文调用,最终在宿主操作系统的命令提示符下执行了whoami,返回结果为NT AUTHORITY\SYSTEM。该团队强调,若攻击者拥有更深入的恶意意图,完全可以在数分钟内加密所有数据库文件并勒索赎金。

微软的回应与修复措施

微软安全响应中心已在漏洞发现后48小时内发布安全公告(编号MSRC-2024-0417),并自动向所有Azure SQL托管实例推送了紧急修补程序。该补丁通过以下方式封堵攻击面:

  1. 限制CLR程序集只能从经过签名的可信源加载,并默认禁用CLR集成(用户可手动开启但需额外授权)。
  2. xp_cmdshell等扩展存储过程的执行权限从public角色调整为仅sysadmin角色可用。
  3. 对所有系统级任务进行用户空间隔离,禁止数据库代码直接访问宿主操作系统中的SYSTEM账户令牌。

微软同时建议客户立即检查Azure门户中的实例配置,确认是否已应用最新补丁(版本号需高于12.0.2000.8)。对于无法立即更新的环境,建议暂时禁用CLR集成和高级扩展存储过程,并启用SQL Server审核日志以监测可疑的SYSTEM账户活动。

安全建议:云上数据库并非“开箱即安全”

此次事件再次提醒广大用户:云服务遵循责任共担模型。即便微软负责底层基础设施的安全,用户仍需对数据库层面的配置负责。建议采取以下措施:

  • 最小权限原则:坚决避免为常规业务账户授予db_ownersysadmin权限;使用独立服务账户管理扩展存储过程。
  • 禁用非必要功能:除非有明确业务需求,否则应禁用CLR集成、xp_cmdshell、OLE自动化等高风险组件。
  • 启用高级威胁防护:Azure Security Center内置的威胁检测可以识别异常的CLR加载或SYSTEM命令执行行为。
  • 定期渗透测试:对云环境进行模拟攻击演练,尤其要测试从数据库到操作系统的纵向提权路径。

结语

NT AUTHORITY\SYSTEM光临Azure MI,并非一次简单的系统登录,而是一声尖锐的安全警笛。随着企业将核心业务数据库大规模迁移至云端,类似“托管实例”中的隐蔽攻击面只会越来越多。唯有持续关注安全公告、及时加固配置,才能让云上的数据真正安然无忧。