實作 SQL Server 安全性設定以符合資安研究院「資料庫技術檢測」

2024-05-29

筆記 SQL Server 的各項安全性設定對應 資安研究院「資料庫技術檢測」的檢測項目。

SQL Server Logo

說明

目前設定的對照版本為 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。

限制遠端存取來源

限制遠端存取帳戶

限制遠端存取操作

資料庫帳戶權限最小原則

稽核紀錄

啟用資料庫帳戶變更稽核

啟用資料庫帳戶登出/登入稽核

啟用資料庫結構變更稽核

稽核紀錄管理方式

資料庫主機時間校時

稽核紀錄分析

委外管理

委外廠商外部連線方式
委外廠商資料存取方式
委外廠商帳戶授權方式

備份保護

資料庫定期執行備份
資料庫備份具有適當保護機制
資料庫備份回復測試

弱點管理

執行資料庫主機弱點掃描

修補資料庫主機弱點項目

修補資料庫主機安全性更新項目