依循微軟最佳實踐,從修補程式、基線掃描、驗證模式、網路隔離、強式密碼、服務帳號最小權限、稽核、備份加密、防火牆、持續監控十大面向,建構纵深防禦體系。
1. 套用最新 Service Pack 與安全性更新
2. 執行 Microsoft Baseline Security Analyzer (MBSA)
掃描 12 類高風險設定:
- sysadmin 角色成員過多
- 非 sysadmin 擁有 CmdExec 作業權限
- 空白/弱密碼帳號
- 使用 SQL 驗證而非 Windows 驗證
- Administrators 群組過度授權
- 資料目錄 ACL 不當
- 安裝檔案含明文 sa 密碼
- guest 帳號過度權限
- SQL 安裝於網域控制站
- Everyone 群組擁有登錄機碼存取權
- SQL 服務帳號設定不當
- 缺乏必要修補程式
下載:MBSA 2.3 (支援至 SQL 2012),新版環境改用 Microsoft Defender for Cloud / Azure Security Center。
3. 強制使用 Windows 驗證模式
- Enterprise Manager → 伺服器右鍵 → 內容 → 安全性 → 「僅限 Windows 驗證」
- 優勢:Kerberos/NTLM 強式協定、密碼策略 (複雜度/過期/鎖定)、憑證委派、用戶端無需儲存密碼
- 若舊應用需 SQL 驗證 → 獨立實例/容器隔離,並啟用「強制加密連線」
4. 物理與邏輯隔離 + 定期離場備份
- 資料庫伺服器置於上鎖機房、防水/防火設備完善
- 網路架構:DB 置於內網 DMZ 後段,**禁止直接對外公開**
- 備份 3-2-1 原則:3 份副本、2 種媒體、1 份異地 (雲端/磁帶離場)
- 備份加密:
BACKUP DATABASE ... WITH ENCRYPTION (ALGORITHM = AES_256, SERVER CERTIFICATE = ...)
5. 設定強健 sa 密碼 (即使啟用 Windows 驗證)
- 長度 ≥ 16 字元、大小寫、數字、特殊符號混合
- 定期輪換 (90 天),使用密碼管理器儲存
- 考慮**停用 sa** 或重新命名:
ALTER LOGIN sa DISABLE; CREATE LOGIN RealAdmin ...; ALTER SERVER ROLE sysadmin ADD MEMBER RealAdmin;
6. 限制 SQL Server 服務帳號權限
- **專用網域帳號** (非 Local System / Network Service / 本地管理員)
- 僅授予:
Log on as a service、資料/記錄/備份目錄 Modify、註冊 SPN 權限
- 啟用 Managed Service Account (gMSA) 自動輪換密碼
7. 停用/移除高風險擴充預存程序
xp_cmdshell:EXEC sp_dropextendedproc 'xp_cmdshell'; (需時再臨時加回)
xp_regread/write/delete、xp_servicecontrol、xp_availablemedia 等登錄/服務/媒體操作類
- 使用 CLR 整合 替代 (啟用
clr enabled 並簽署組件)
8. 啟用稽核與追蹤
- SQL 2008+:SQL Server Audit (伺服器/資料庫層級),記錄登入失敗、結構變更、權限異動、敏感資料存取
- 舊版:
C2 Audit Tracing 或 Default Trace (預設開啟)
- 日誌轉發至 SIEM (Splunk, Azure Sentinel, Elastic) 做即時告警
9. 防火牆與網路分段
- Windows 防火牆/硬體防火牆**僅開放應用伺服器 IP → SQL 埠 (預設 1433/自訂)**
- 啟用 Force Encryption (組態管理器 → 協定 → Flags → ForceEncryption = Yes) + 憑證
- 停用 Browser 服務 (UDP 1434) 若無具名實例需求
10. 持續監控與事件回應
- 監控指標:失敗登入率、長時間查詢、磁碟/記憶體壓力、死鎖、異常
xp_cmdshell 呼叫
- 建立 事件回應手冊:偵測 → 隔離 → 取證 → 根因 → 修補 → 複盤
- 定期滲透測試 / 紅隊演練,驗證防禦有效性
總結檢查清單 (可列印貼機房)
| # | 項目 | 狀態 | 負責人 | 備註 |
| 1 | 最新 SP/CU 已套用 | ☐ | | |
| 2 | MBSA/Defender 掃描零高風險 | ☐ | | |
| 3 | Windows 驗證模式 | ☐ | | |
| 4 | 網路隔離 + 異地加密備份 | ☐ | | |
| 5 | sa 強密碼/停用 | ☐ | | |
| 6 | 服務帳號最小權限 + gMSA | ☐ | | |
| 7 | 高風險 xp_* 已移除 | ☐ | | |
| 8 | 稽核已啟用 + SIEM 對接 | ☐ | | |
| 9 | 防火牆白名單 + 強制加密 | ☐ | | |
| 10 | 監控告警 + 事件回應演練 | ☐ | | |