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


  1. 說明
  2. 特權帳戶管理
  3. 資料加密
  4. 存取授權
  5. 稽核紀錄
  6. 委外管理
  7. 備份保護
  8. 弱點管理

筆記 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。

限制遠端存取來源

限制遠端存取帳戶

限制遠端存取操作

資料庫帳戶權限最小原則

稽核紀錄

啟用資料庫帳戶變更稽核

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

啟用資料庫結構變更稽核

稽核紀錄管理方式

資料庫主機時間校時

稽核紀錄分析

委外管理

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

備份保護

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

弱點管理

執行資料庫主機弱點掃描

修補資料庫主機弱點項目

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