資料庫伺服器是攻擊者的高價值目標。本文提供生產環境必檢的 10 大安全強化項目,涵蓋作業系統、網路協定、帳號管理、服務帳號、檔案系統、擴展預存程序、登錄存取與系統預存程序移除。
確認作業系統 (Windows Update) 與 SQL Server (累積更新/CU、GDR) 皆套用最新安全性修補程式。啟用自動更新或建立定期修補排程。
sa 帳號:設定複雜長密碼 (16+ 字元、大小寫、數字、符號),並停用 或重新命名。probe 帳號 (效能監視/複寫使用):同樣設定強密碼並妥善保管。sa 日常使用,啟用稽核追蹤。-- 必要權限 (透過本地安全性原則 secpol.msc 指派)
SeServiceLogonRight -- 以服務登入
SeBatchLogonRight -- 批次作業登入
SeLockMemoryPrivilege -- 鎖定記憶體頁面 (AWE/大頁面)
SeChangeNotifyPrivilege -- 繞過遍歷檢查
SeAssignPrimaryTokenPrivilege -- 取代程序層級 Token
最佳做法:使用 SQL Server Configuration Manager 變更服務帳號,工具會自動設定檔案系統/登錄 ACL 與上述權限。
-- 永久移除 (sysadmin 可隨時加回)
USE master; GO
EXEC sp_dropextendedproc 'xp_cmdshell';
GO
-- 或僅限制非 sysadmin 使用 (SQL 6.5/2000)
EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE;
注意:移除前確認無合法應用相依 (如備份腳本、ETL)。相依 DLL (xplog70.dll) 可能被其他擴展程序共用,移除前需查詢 syscomments 確認。
EXEC sp_dropextendedproc 'sp_OACreate';
EXEC sp_dropextendedproc 'sp_OADestroy';
EXEC sp_dropextendedproc 'sp_OAGetErrorInfo';
EXEC sp_dropextendedproc 'sp_OAGetProperty';
EXEC sp_dropextendedproc 'sp_OAMethod';
EXEC sp_dropextendedproc 'sp_OASetProperty';
EXEC sp_dropextendedproc 'sp_OAStop';
警告:停用後企業管理器部分功能 (如資料庫圖表、工作排程 UI) 可能失效。開發環境請保留。
EXEC sp_dropextendedproc 'xp_regaddmultistring';
EXEC sp_dropextendedproc 'xp_regdeletekey';
EXEC sp_dropextendedproc 'xp_regdeletevalue';
EXEC sp_dropextendedproc 'xp_regenumvalues';
EXEC sp_dropextendedproc 'xp_regremovemultistring';
-- 保留 xp_regread / xp_regwrite (移除會影響日誌、SP 安裝等核心功能)
以下程序可洩露系統資訊或執行敏感操作,建議在測試環境驗證無副作用後移除:
sp_sdidebug, xp_availablemedia, xp_deletemail, xp_dirtree, xp_dropwebtask, xp_dsninfo, xp_enumdsn, xp_enumerrorlogs, xp_enumgroups, xp_enumqueuedtasks, xp_eventlog, xp_findnextmsg...原則:先在開發/測試機移除並完整回歸測試,確認無功能損失再套用至生產環境。
sys.dm_exec_connections, sys.dm_exec_sessions 異常連線。| # | 項目 | 狀態 | 負責人 | 備註 |
|---|---|---|---|---|
| 1 | OS/SQL 修補程式最新 | ☐ | ||
| 2 | 僅啟用 TCP/IP + Shared Memory | ☐ | ||
| 3 | sa/probe 強密碼 + 停用 sa | ☐ | ||
| 4 | 服務帳號專用最小權限 | ☐ | ||
| 5 | 資料/記錄/備份檔 NTFS ACL | ☐ | ||
| 6 | xp_cmdshell 移除/停用 | ☐ | ||
| 7 | OLE 自動化程序移除 | ☐ | ||
| 8 | 登錄寫入程序移除 | ☐ | ||
| 9 | 其他高風險程序移除 | ☐ | ||
| 10 | 稽核/監控機制啟用 | ☐ |
資料庫安全是持續過程而非一次專案。建立季度複查機制,配合弱點掃描與滲透測試,持續精進防禦姿態。