實作 SQL Server 安全性設定以符合資安研究院「資料庫技術檢測」
2024-05-29
筆記 SQL Server 的各項安全性設定對應 資安研究院「資料庫技術檢測」的檢測項目。
說明
目前設定的對照版本為 v1.0。
特權帳戶管理
變更資料庫預設管理帳戶
SQL Server 預設的管理帳戶是 sa
,必須停用這個帳號,另外將其他帳號設定為 sys_admin
啟用帳戶鎖定次數、啟用帳戶鎖定時間、啟用通行碼複雜度原則、啟用通行碼長度原則、
對所有的 SQL Server Login 設定 CHECK_POLICY=ON
USE [master]
ALTER LOGIN [A13DomainPlanerUser] WITH CHECK_POLICY=ON, CHECK_EXPIRATION=OFF
GO
搭配本機原則 (secpol.msc
) 進行以下設定:
- 鎖定次數 5、鎖定時間 15 分鐘
- 最小長度 12 字元
- 複雜度包含下列四種字元中的三種:
- 英文大寫字元 (A 到 Z)
- 英文小寫字元 (a 到 z)
- 10 進位數字 (0 到 9)
- 非英文字母字元 (例如: !、$、#、%)
啟用通行碼最長有效期限原則
如果要符合,必須要將 CHECK_EXPIRATION
設定為 ON,但這樣連線帳號就必須要經常變更密碼,如果銜接不上,反而會造成應用系統的可用性受到影響,這點需要採用單位審慎評估。或使用資安防護補償措施。
或是區別應用系統連線帳號與管理者帳號,為了系統穩定可用性考量,僅對於管理者帳號要求啟用啟用通行碼最長有效期限原則。
USE [master]
ALTER LOGIN [A13DomainPlanerUser] WITH CHECK_EXPIRATION=ON
GO
限制管理者帳戶透過遠端存取
依照項目說明「資料庫應限制管理者帳戶無法從非管理者網段進行遠端連線」,可以實作為只允許特定的 IP 位置可以對資料庫伺服器進行遠端連線。
這裡的遠端連線指的是使用 mstsc
的方式遠端桌面進入資料庫伺服器,不包含使用 SSMS 的特定 IP 限制。
如果要包含 SSMS 的連線設定,可以搭配 wf.msc
去設定對 SQL Server Port 連線的白名單。
資料加密
資料庫資料具有適當保護機制(加密)
依照項目說明「避免機敏資料以明文方式儲存」,加密機制的採用包含:
加密需求 | 對應技術 |
---|---|
資料庫加密 | TDE |
資料欄位內容加密 | Column Data Encryption |
資料表欄位內容加密 | Always Encrypted |
資料庫傳輸具有安全機制
🌶️編輯進度
資料庫加密金鑰具有適當保護機制
TDE 的金鑰的保護方式,如密件文件保存等。
存取授權
限制資料庫主機服務埠
使用 nmap 或者是 powershell 的 test-netconnection
測試 SQL Server 是否有開啟資料庫服務 (預設 TCP 1433) 以外的 Port。
限制遠端存取來源
限制遠端存取帳戶
限制遠端存取操作
資料庫帳戶權限最小原則
稽核紀錄
啟用資料庫帳戶變更稽核
啟用資料庫帳戶登出/登入稽核
啟用資料庫結構變更稽核
稽核紀錄管理方式
資料庫主機時間校時
稽核紀錄分析
委外管理
委外廠商外部連線方式
委外廠商資料存取方式
委外廠商帳戶授權方式
備份保護
資料庫定期執行備份
資料庫備份具有適當保護機制
資料庫備份回復測試
弱點管理
執行資料庫主機弱點掃描
修補資料庫主機弱點項目
修補資料庫主機安全性更新項目