首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 資料庫安全稽核 30 項檢查清單:從補丁、權限到稽核追蹤

     編輯:關於SqlServer

建立安全的 SQL Server 環境需從作業系統、網路、帳號、權限、稽核多層面著手。以下為 30 項實務檢查清單:

作業系統與網路層 (1-5)

  1. 套用最新 NT/2000 與 SQL Server 修補程式
  2. 評估選擇安全網路協定(多重協定較佳,但異構環境受限)
  3. 設定強式 sa 與 probe 密碼,妥善保管
  4. SQL Server 服務帳號使用低權限網域帳號,勿用 LocalSystem/sa
  5. 資料與系統檔置於 NTFS 分區,設定適當 ACL

擴展預存程序與危險功能 (6-9)

  1. 不需 xp_cmdshell 即移除:EXEC sp_dropextendedproc 'xp_cmdshell'
  2. 若保留,限制 SQLExecutiveCmdExec 帳號(參考 KB Q159221)
  3. 移除 OLE 自動化擴展程序(sp_OA*),除非必要
  4. 移除登錄存取擴展程序(xp_reg*),保留 xp_regread/write 以免影響日誌/SP 安裝
  5. 移除其他具威脅的系統預存程序,先在開發機測試

登入與存取控制 (10-16)

  1. 企業管理器「安全性選項」停用預設登入(僅 SQL 6.5)
  2. 移除各資料庫 guest 帳號(master/tempdb 除外)
  3. 非必要停用 SQL Mail(防木馬/病毒/DOS)
  4. 檢查 master..sp_helpstartup 無可疑啟動程序,用 sp_unmakestartup 移除
  5. 比對 master..sp_password 與全新安裝腳本,偵測木馬代碼
  6. 啟用登入稽核:xp_instance_regwrite ... AuditLevel=3(失敗+成功)
  7. 改寫應用程式使用預存程序/視圖,停用直接資料表存取

實體與網路安全 (17-20)

  1. 移除不需的網路協定
  2. 實體安全:伺服器鎖機房、管制鑰匙
  3. 排程工作執行 findstr "Login Failed" mssql7\log\*.* 監控登入失敗
  4. 設定「登入失敗/拒絕存取」事件警示,郵件通知操作員

權限與角色管理 (21-26)

  1. 伺服器/資料庫角色僅授予必要使用者
  2. 定期稽核角色成員,採角色授權簡化稽核
  3. 確認 public 角色無法查詢系統表
  4. 稽核空密碼登入:SELECT name, password FROM syslogins WHERE password IS NULL
  5. 採 Windows 整合驗證,簡化管理、密碼不出現在連接字串
  6. 稽核非 sa 使用者的擴展/預存程序執行權限

企業管理器密碼洩漏風險 (26 續)

  • SQL 6.5:註冊表 HKEY_CURRENT_USER\Software\Microsoft\MSSQLServer\SQLEW\Registered Server X 存明文 sa 密碼
  • SQL 7/2000:HKEY_USERS\Software\Microsoft\Microsoft SQL Server\Tools\SQLEW\Registered Server X\SQL Server Group
  • 改用整合驗證登入企業管理器,並用 regedit 清除舊密碼

持續性治理 (27-30)

  1. 建立月度稽核計畫與安全報告(新漏洞、成功攻擊、備份保護、存取失敗統計)
  2. 禁止使用者互動式登入 SQL Server 主機
  3. 最小權限原則:限制使用者查詢/存取操作
  4. (原文缺 29,此處補充)定期進行滲透測試與弱點掃描

安全非一次性設定,而是持續的流程。將此清單納入月度例行作業,才能維持資料庫長期安全態勢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved