SQL Server 2000 資源安全性指南

Cc723727.community-sm(zh-tw,TechNet.10).gif本頁索引

1) 安裝最新的 Service Pack
2) 使用 Microsoft Baseline Security Analyzer (MBSA) 評估伺服器安全性
3) 使用 Windows 的帳戶驗證模式
4) 隔離伺服器並定期備份
5) 指派嚴密的 sa 密碼
6) 限制 SQL Server 服務的權限層級
7) 停用防火牆上的 SQL Server 通訊埠
8) 使用最安全的檔案系統
9) 刪除舊安裝檔案或保護其安全
10) 稽核 SQL Server 的連線
持續安全性維護
其他的安全性資源

以下是您現在就可以用來加強 SQL Server 安裝安全性的十個要點:
 

1) 安裝最新的 Service Pack

加強伺服器安全性最有效的單一動作是:升級至 SQL Server 2000 Service Pack 3a (SP3a)。若要下載 SP3a,請造訪 SQL Server 2000 SP3a 網頁

您也應該在任何安全性更新發佈時,即加以安裝。若要在有新的安全性更新發佈時收到電子郵件通知,請造訪產品安全性通知網頁

2) 使用 Microsoft Baseline Security Analyzer (MBSA) 評估伺服器安全性

MBSA 工具可以掃描數種 Microsoft 產品中常見的不安全設定,其中包括 SQL Server 和 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)。這項工具可以在本機或從網路上執行,它可以檢測出 SQL Server 的安裝問題,例如:

  • sysadmin 固定伺服器角色的成員太多。
  • 建立 CmdExec 工作的權限授予給 sysadmin 以外的角色。
  • 密碼空白或容易破解。
  • 低安全性的驗證模式。
  • 授予 Administrators 群組過多的權限。
  • SQL Server 資料目錄上的存取控制清單 (ACL) 不正確。
  • 安裝檔案中有純文字的 sa 密碼。
  • 授予 guest 帳戶過多的權限。
  • 執行 SQL Server 的系統同時也是網域控制站。
  • Everyone 群組的設定不適當,可以存取某些登錄機碼。
  • SQL Server 服務帳戶的設定不適當。
  • 缺少 Service Pack 和安全性更新。
  • Microsoft 是以免費下載的方式散發 MBSA,若要取得完整的文件說明及最新版的 MBSA,請造訪 MBSA 網頁

3) 使用 Windows 的帳戶驗證模式

連線至 SQL Server 時,請儘可能要求使用「Windows 的帳戶驗證模式」。限制 Microsoft Windows® 使用者和網域使用者帳戶的連線,可以保護 SQL Server 安裝免於受到最常見的 Internet 攻擊。您的伺服器也會受益於 Windows 安全性強制機制,如更健全的驗證通訊協定,以及強制的密碼複雜性和到期日。同時,憑證委派 (可以跨越多部伺服器橋接憑證的能力) 也只能在 Windows 的帳戶驗證模式中使用。而在用戶端上,Windows 的帳戶驗證模式也可以去除儲存密碼的需求,這是使用標準 SQL Server 登入之應用程式的主要弱點。

若要使用 SQL Server 的 Enterprise Manager 設定 Windows 的帳戶驗證模式安全性:

  1. 展開伺服器群組。
  2. 以滑鼠右鍵按一下伺服器,然後按一下 [內容]。
  3. 在 [安全性] 索引標籤的 [驗證] 下,按一下 [只有 Windows]。

如需詳細資訊,請參閱《SQL Server 線上叢書》或 MSDN 中的 <Authentication Mode> (驗證模式) 主題。

實體和邏輯的隔離措施是 SQL Server 安全性的基礎。裝載資料庫的機器應該放置於完全保護的位置中,理想的位置是具有防水和防火系統監控的機房內。資料庫應安裝於企業內部網路的安全區域中,並且絕對不要直接與 Internet 連線。請定期備份所有資料並將複本儲存於公司外的安全位置。如需有關備份程序的指引和其他操作上的最佳實務,請參閱《SQL Server 2000 Operations Guide》(SQL Server 2000 操作指南)。

5) 指派嚴密的 sa 密碼

即使伺服器已經設定為需要 Windows 的帳戶驗證,sa 帳戶還是必須使用嚴密的密碼。這樣在將來伺服器重新設定為「混合模式驗證」時,才可以確保不會洩露出空白或低安全性的 sa 密碼。

若要指派 sa 密碼:

  1. 展開伺服器群組,然後展開伺服器。
  2. 展開 [安全性],然後按一下 [登入]。
  3. 在 [詳細資料] 窗格中,以滑鼠右鍵按一下 [SA],然後按一下 [內容]。
  4. 在 [密碼] 方塊中,輸入新的密碼。

如需詳細資訊,請參閱《SQL Server 線上叢書》或 MSDN 中的 <System Administrator (sa) Login> (系統管理員 (sa) 登入) 主題。

6) 限制 SQL Server 服務的權限層級

SQL Server 2000 和 SQL Server 代理程式是以 Windows 服務的型態執行。每項服務都必須與一個 Windows 帳戶相關聯,從而衍生其安全性條件。SQL Server 允許以 sa 登入的使用者,並在某些狀況下允許其他使用者,可以存取作業系統功能。這些作業系統呼叫是使用擁有伺服器處理序之帳戶的安全性條件而執行,如果伺服器已遭破解,這些作業系統呼叫可能會遭到利用,而將攻擊擴散到處理序 (SQL Server 服務帳戶) 可以存取的任何其他資源。基於這個原因,請務必只將必要的權限授予給 SQL Server 服務。

建議您採用下列的設定:

  • SQL Server 引擎/MSSQLServer
    如果有具名執行個體 (Named Instance) 存在,將命名為 MSSQL$InstanceName。請以具有一般使用者權限的 Windows 網域使用者帳戶來執行,請勿以本機系統、本機系統管理員或網域系統管理員帳戶執行。
  • SQL Server 代理程式服務/SQLServerAgent

    如果環境中不需要這項服務,請加以停用;否則,請以具有一般使用者權限的 Windows 網域使用者帳戶來執行,請勿以本機系統、本機系統管理員或網域系統管理員帳戶執行。

    重要 如果下列其中一項敘述為真,SQL Server 代理程式將需要本機 Windows 系統管理員權限:
  • SQL Server 代理程式使用標準 SQL Server 驗證連線至 SQL Server (不建議)。
  • SQL Server 代理程式使用多重伺服器系統管理主伺服器 (MSX,Multiserver Administration Master Server) 帳戶,而該帳戶是使用 SQL Server 驗證連線。
  • SQL Server 代理程式執行的 Microsoft ActiveX® 指令碼或 CmdExec 工作,是由不屬於 sysadmin 固定伺服器角色成員的使用者擁有。

如果需要變更與 SQL Server 服務相關聯的帳戶,請使用 SQL Server Enterprise Manager。Enterprise Manager 將對 SQL Server 所使用的檔案和登錄機碼設定適當的權限。絕對不要使用 (控制台中) Microsoft Management Console 的 [服務] Applet 變更這些帳戶,因為這種方式必須手動調整許多登錄,以及 NTFS 檔案系統權限和 Microsoft Windows 使用者權限。

如需詳細資訊,請參閱 Microsoft 知識庫文件 <Change the SQL Server Service Account Without Using SQL Enterprise Manager in SQL Server 2000> (不使用 SQL Server 2000 的 SQL Enterprise Manager 變更 SQL Server 服務帳戶)。

帳戶資訊的變更將在下次啟動服務時生效。如果需要變更與 SQL Server 和 SQL Server 代理程式相關聯的帳戶,您必須使用 Enterprise Manager 將變更分別套用至這兩項服務。

7) 停用防火牆上的 SQL Server 通訊埠

SQL Server 的預設安裝會監視 TCP 通訊埠 1433 和 UDP 通訊埠 1434。請設定防火牆以篩選送往這些通訊埠的封包。而與具名執行個體相關聯的其他通訊埠,應該也要在防火牆加以阻擋。

8) 使用最安全的檔案系統

NTFS 是 SQL Server 安裝時慣用的檔案系統。它比 FAT 檔案系統穩定、容易復原,並且可以啟用安全性選項,如檔案和目錄 ACL 以及檔案加密 (EFS)。SQL Server 在安裝期間如果偵測出 NTFS,將對登錄機碼和檔案設定適當的 ACL。您不應該變更這些權限。

使用 EFS,加密後的資料庫檔案是位於執行 SQL Server 的帳戶下,只有這個帳戶可以將檔案解密。如果需要變更執行 SQL Server 的帳戶,請先以舊帳戶解密檔案,然後再以新帳戶重新加密檔案。

9) 刪除舊安裝檔案或保護其安全

SQL Server 安裝檔案中可能含有純文字或低度加密的憑證,以及在安裝期間記錄的其他敏感設定資訊。這些記錄檔的位置依安裝的 SQL Server 版本而有所不同,在 SQL Server 2000 中,可能會影響到的檔案包括:<systemdrive>:\Program Files\Microsoft SQL Server\MSSQL\Install 資料夾中預設安裝的 sqlstp.log、sqlsp.log 和 setup.iss,以及具名執行個體的 <systemdrive>:\Program Files\Microsoft SQL Server\ MSSQL$<Instance Name>\Install 資料夾。

如果目前的系統是從 SQL Server 7.0 版安裝升級,請同時檢查下列檔案:%Windir% 資料夾中的 setup.iss,以及 Windows 的 Temp 資料夾中的 sqlsp.log。

Microsoft 提供一個免費的公用程式 Killpwd,可以從系統中找出並移除這些密碼。若需有關這個免費下載的詳細資訊,請參閱 Microsoft 知識庫文件 <Service Pack Installation May Save Standard Security Password in File> (Service Pack 安裝可能會將標準安全性密碼儲存於檔案中)。

10) 稽核 SQL Server 的連線

SQL Server 可以記錄活動資訊,供系統管理員檢閱。您至少應該記錄 SQL Server 的失敗連線並定期檢閱記錄,同時儘可能將這些記錄與資料檔分開儲存於不同的硬碟。

若要使用 SQL Server 的 Enterprise Manager 啟用失敗連線的稽核:

  1. 展開伺服器群組。
  2. 以滑鼠右鍵按一下伺服器,然後按一下 [內容]。
  3. 在 [安全性] 索引標籤的 [稽核層級] 下,按一下 [失敗]。

您必須停止並重新啟動伺服器,才能使這項設定生效。

如需詳細資訊,請參閱 Microsoft TechNet 上的 <SQL Server 2000 Auditing> (SQL Server 2000 稽核) 以及《SQL Server 線上叢書》或 MSDN 中的 <Using Audit Logs> (使用稽核記錄) 主題。

注意 如需有關防護伺服器免於受 Slammer 病毒的攻擊,請造訪 <Finding and Fixing Slammer Vulnerabilities> (尋找和修復 Slammer 弱點) 網頁。如需有關 SQL Server 2000 Service Pack 3 (SP3) 安全性功能及最佳實務的詳細資訊,請參考文件 <Microsoft SQL Server 2000 SP3 Security Features and Best Practices> (Microsoft SQL Server 2000 SP3 安全性功能及最佳實務) 。

持續安全性維護

如果沒有進行持續的安全性維護,您的系統將很容易遭受新型態的攻擊。此外,系統的安全性也會因為系統管理員在管理系統時的人為錯誤而愈來愈脆弱。請依照下列建議步驟定期維護系統:

  1. 使用 Baseline Security Analyzer 定期掃描及評估 SQL Server 的安全性。
  2. 當有新的安全性更新發佈時,請務必套用這些新的更新。

其他的安全性資源

您可以在下列來源中,找到維護 SQL Server 2000 伺服器安全性的其他資訊:

SQL Server 2000 C2 系統管理員和使用者安全性指南

顯示: