「防火牆內、Windows 驗證、強密碼策略」≠ 絕對安全。現實中,SQL Server 密碼面臨網絡傳輸明文/弱加密、工具暴力破解、哈希提取反推、旁路攻擊、非生產實例淪陷等多維威脅。本文拆解六大認知盲區,構建纵深防禦體系。
誤區一:密碼測試無需計劃,直接上手破解
風險:賬戶鎖定導致業務中斷、應用連接池耗盡、SLA 違約。
正確姿勢:
- 獲取書面授權、變更諮詢委員會 (CAB) 批准;
- 制定回滾預案:鎖定閾值、解鎖腳本、業務影響評估;
- 隔離環境:備份庫還原到隔離網段,離線破解不影響生產。
誤區二:內網交換機環境下密碼傳輸安全
現實:
- SQL 驗證:TDS 協議默認**弱加密/明文**傳輸密碼哈希,`OmniPeek`、`Wireshark` 可直接抓包解析;
- Windows 驗證:NTLMv2/Kerberos 可被 `Cain & Abel` ARP 投毒中間人攻擊,強制降級捕獲哈希;
- 工具鏈:`SQLPing` 掃描實例 → `SQLRecon` 枚舉 → `sqlbf`/`John the Ripper` 破解。
防禦:強制 TLS 1.2 加密連接(`ForceEncryption=YES` + 憑證)、啟用 Kerberos 委派禁用 NTLM、網絡微隔離(SDN/防火牆)、ARP 防護(DAI/DHCP Snooping)。
誤區三:密碼策略足夠強,無需測試驗證
盲點:
- 策略不覆蓋:服務賬戶、鏈接服務器映射、作業代理賬戶、非域機器、舊版相容登錄;
- 繞過手段:`xp_cmdshell`、CLR 組件、鏈接服務器 `OPENQUERY`、備份文件離線攻擊;
- 工具驗證:`ElcomSoft Proactive Password Auditor`、`Ophcrack`(Windows)、`Hashcat`(GPU 加速)定期審計。
誤區四:SQL Server 密碼不可逆,破解無意義
事實:
- SQL 7/2000:`pwdencrypt()` 專有哈希,`NGSSQLCrack` 字典/暴力破解極快;
- SQL 2005+:`SHA-512 + Salt`(`PWDENCRYPT`/`PWDCOMPARE`),但**離線字典/彩虹表/GPU 破解**仍威脅弱密碼;
- 服務賬戶密碼常存於註冊表/配置文件/備份腳本中(明文/Base64)。
誤區五:MBSA 掃描無漏洞即安全
局限:MBSA 僅檢查配置基線(空密碼、默認賬戶、補丁),**不具備深度密碼破解能力**。
補充工具鏈:
- `SQLat` / `SQLninja`(SQL 注入利用框架,含密碼哈希提取);
- `PowerUpSQL`(PowerShell 攻擊工具包,枚舉、提權、數據窃取);
- `Responder` / `Inveigh`(LLMNR/NBT-NS 投毒捕獲 NTLMv2 哈希)。
誤區六:只需關注主數據庫服務器
盲區:
- MSDE / SQL Express / LocalDB:開發機、邊緣設備、嵌入式應用,常默認 `sa` 空密碼;
- 開發/測試/預發環境:數據真實、權限寬鬆、網絡隔離弱,是滲透跳板;
- `SQLPing 3` 掃描全網段發現所有實例(含隱藏實例),統一納管。
纵深防禦實施清單
| 層級 | 措施 | 工具/配置 |
| 傳輸層 | 強制加密、禁用弱協議 | ForceEncryption、TLS 1.2 憑證、GPO 禁用 SSL3/TLS1.0/1.1 |
| 認證層 | Windows 驗證 + Kerberos、禁用 SQL 驗證 | SPN 配置、約束委派、GPO `Network security: Restrict NTLM` |
| 賬戶層 | 最小權限、專用服務賬戶、定期輪換 | gMSA/虛擬賬戶、Password Vault (CyberArk/HashiCorp)、PAM |
| 審計層 | 登錄審計、失敗鎖定、異常告警 | SQL Server Audit、Extended Events、SIEM 聯動 |
| 數據層 | 備份加密、TDE、敏感列加密 | BACKUP ENCRYPTION、TDE、Always Encrypted |
| 環境層 | 全實例資產管理、網絡微隔離、補丁管理 | CMDB、SQLPing 掃描、WSUS/SCCM、漏洞掃描 |
總結
密碼安全非單點防護,而是傳輸加密、認證升級、賬戶治理、持續審計、環境納管的系統工程。打破六大誤區,引入攻擊者視角定期紅隊演練,將「感覺安全」轉化為「可證明安全」,才是 DBA 的核心交付物。