前言
資料庫安全非單一設定,而是**纵深防禦**體系。本文將安全強化濃縮為五大系統化步驟,涵蓋**補丁基線、威脅情報、弱點掃描、認證加固、審計監控**,構建從預防、偵測到回應的完整閉環。
步驟一:建立補丁基線 — 永遠套用最新 Service Pack
- SQL Server 2000 基線:**SP3a** (含 MS02-061 修補 Slammer 蠕蟲漏洞)
- SP3a 為累積性更新,**無需**先裝 SP1/SP2/SP3
- 注意:SP3 安裝前提為已裝 SP1 或 SP2
- **自動化**:WSUS / SCCM / PowerShell DSC 推送修補程式,建立合規報表
步驟二:訂閱威脅情報 — 零時差掌握安全公告
- 註冊 **Microsoft Security Notification Service** (免費郵件訂閱)
- 關鍵資訊來源:
- Microsoft Security Bulletin (每月第二個週二發布)
- SQL Server Release Services Blog
- CVE / NVD 資料庫
- 建立內部 **SLA**:關鍵漏洞 (CVSS ≥ 7) 48 小時內評估、72 小時內測試部署
步驟三:基線弱點掃描 — Microsoft Baseline Security Analyzer (MBSA)
掃描範圍 (SQL Server / MSDE 2000)
| 檢查項目 | 風險描述 |
| sysadmin 角色成員過多 | 過度授權,單點失效風險 |
| 非 sysadmin 角色擁有 CmdExec 作業權限 | 可執行作業系統命令,提權路徑 |
| 空密碼/弱密碼帳號 | 暴力破解易得手 |
脆弱驗證模式 (混合模式非必要不啟用)
Administrators 群組過度授權
資料目錄 ACL 設定不當
安裝檔案/登錄殘留明文 sa 密碼
guest 帳號過度權限
網域控制器上運行 SQL Server
Everyone 群組擁有敏感登錄鍵存取
SQL Server 服務帳號配置不當
缺少必要 Service Pack/安全更新
執行方式
- 本地掃描:
mbsacli.exe /catalog offline
- 網路掃描:
mbsacli.exe /domain 或指定 IP 範圍
- 整合至 CI/CD:建立基線掃描作業,阻擋不合規建置上線
步驟四:認證加固 — 清除舊密碼、強化 sa、最小權限服務帳號
4.1 移除歷史安裝檔案中的明文密碼
- 路徑:
Program Files\Microsoft SQL Server\MSSQL\Install、MSSQL$InstanceName\Install
- 檔案:
sqlstp.log, sqlsp.log, setup.iss
- 升級自 SQL 7.0:另檢
%Windir%\setup.iss, Windows Temp\sqlsp.log
- **工具**:
Killpwd.exe (微軟免費) — 自動掃描清除殘留密碼
4.2 sa 帳號強化
- **無論驗證模式為何,sa 必須設定強密碼** (防未來切換混合模式時空密碼)
- 企業管理器:安全性 → 登入 → sa → 屬性 → 密碼
- **最佳實務**:停用 sa,改用具名系統管理員帳號,審計追蹤更清晰
4.3 服務帳號最小權限原則
| 服務 | 推薦帳號類型 | 嚴禁帳號類型 | 需本地管理員權限的例外 |
| SQL Server (MSSQLSERVER / MSSQL$Instance) | 網域一般使用者 | Local System / Local Admin / Domain Admin | 無 |
| SQL Server Agent (SQLSERVERAGENT) | 網域一般使用者 | Local System / Local Admin / Domain Admin | 1. Agent 使用 SQL 驗證連線 2. 多伺服器管理 (MSX) 使用 SQL 驗證 3. 執行非 sysadmin 擁有的 ActiveX/CmdExec 作業 |
- **修改帳號必須用企業管理器 / SQL Server Configuration Manager** — 自動設定檔案/登錄 ACL、使用者權限指派
- **禁用** 服務管理員 (services.msc) 直接修改 — 導致權限不一致
步驟五:審計監控 — 記錄失敗登入、定期審閱、日誌異地備份
5.1 啟用失敗登入審計
- 企業管理器 → 伺服器屬性 → 安全性 → 審計層級 → **僅失敗**
- **必須重啟服務生效**
5.2 進階審計策略 (SQL 2005+)
CREATE SERVER AUDIT → 記錄至檔案/安全性記錄/應用程式記錄
CREATE SERVER AUDIT SPECIFICATION → 精確選擇動作群組:
FAILED_LOGIN_GROUP, SCHEMA_CHANGE_GROUP, DATABASE_PERMISSION_CHANGE_GROUP...
- 細粒度資料存取審計:
CREATE DATABASE AUDIT SPECIFICATION 針對特定表/欄位/主體
5.3 日誌管理鐵律
- **日誌與資料檔案分離存放** (不同磁碟/儲存體)
- **集中化轉發**:Syslog / Windows Event Forwarding / SIEM (Splunk, Azure Sentinel, Elastic)
- **保留期**:依合規要求 (通常 ≥ 1 年)
- **定期審閱**:自動化報表 + 人工抽樣,關注異常登入時間、來源 IP、頻率
總結:五步走檢查清單
- [ ] 最新 SP + 所有安全更新已套用 (WSUS/SCCM 合規 100%)
- [ ] 訂閱 Microsoft 安全通知,建立漏洞評估 SLA
- [ ] MBSA 掃描零發現 (或所有發現已風險接受/緩解)
- [ ] sa 強密碼、歷史安裝檔清理完成、服務帳號最小權限
- [ ] 失敗登入審計啟動、日誌集中轉發、定期審閱機制運作
安全是**過程而非狀態**。將此五步走納入月度巡檢、季度演練、年度認證體系,才能在威脅演化中保持防禦有效性。