提高SQL Server安全性的一些建議(1)

iSQlServer發表於2009-08-10

1.安裝最新的服務包

為了提高SQL Server安全性,最有效的一個方法就是升級到 SQL Server 2000 Service Pack 3a (SP3a)。要下載 SP3a,請訪問SQL Server 2000 SP3a 頁面。另外,您還應該安裝所有已釋出的安全更新。要訂閱新安全更新的通知,請訪問產品安全通知頁面。

2.使用 Microsoft 基線安全性分析器(MBSA)來評估伺服器的安全性

MBSA 是一個掃描多種 Microsoft 產品的不安全配置的工具,包括 SQL Server 和 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)。它可以在本地執行,也可以通過網路執行。該工具針對下面問題對 SQL Server 安裝進行檢測:

過多的sysadmin固定伺服器角色成員。

授予sysadmin以外的其他角色建立 CmdExec 作業的權利。

空的或簡單的密碼。

脆弱的身份驗證模式。

授予管理員組過多的權利。

SQL Server資料目錄中不正確的訪問控制表(ACL)。

安裝檔案中使用純文字的sa密碼。

授予guest帳戶過多的權利。

在同時是域控制器的系統中執行SQL Server。

所有人(Everyone)組的不正確配置,提供對特定登錄檔鍵的訪問。

SQL Server 服務帳戶的不正確配置。

沒有安裝必要的服務包和安全更新。

3.使用 Windows 身份驗證模式

在任何可能的時候,您都應該對指向 SQL Server 的連線要求 Windows 身份驗證模式。它通過限制對Microsoft Windows®使用者和域使用者帳戶的連線,保護 SQL Server 免受大部分 Internet 的工具的侵害,。而且,您的伺服器也將從 Windows 安全增強機制中獲益,例如更強的身份驗證協議以及強制的密碼複雜性和過期時間。另外,憑證委派(在多臺伺服器間橋接憑證的能力)也只能在 Windows 身份驗證模式中使用。在客戶端,Windows 身份驗證模式不再需要儲存密碼。儲存密碼是使用標準 SQL Server 登入的應用程式的主要漏洞之一。要在 SQL Server 的 EntERPrise Manager 安裝 Windows 身份驗證模式,請按下列步驟操作:

◆展開伺服器組。

◆右鍵點選伺服器,然後點選屬性。

◆在安全性選項卡的身份驗證中,點選僅限 Windows。

4.隔離您的伺服器,並定期備份

物理和邏輯上的隔離組成 了SQL Server 安全性的基礎。駐留資料庫的機器應該處於一個從物理形式上受到保護的地方,最好是一個上鎖的機房,配備有洪水檢測以及火災檢測/消防系統。資料庫應該安裝在企業內部網的安全區域中,不要直接連線到 Internet。定期備份所有資料,並將副本儲存在安全的站點外地點。有關備份過程和其他操作性最佳實踐的指南,請參閱SQL Server 2000操作指南。

5.分配一個強健的sa密碼

sa帳戶應該總擁有一個強健的密碼,即使在配置為要求 Windows 身份驗證的伺服器上也該如此。這將保證在以後伺服器被重新配置為混合模式身份驗證時,不會出現空白或脆弱的sa。

◆要分配sa密碼,請按下列步驟操作:

◆展開伺服器組,然後展開伺服器。

◆展開安全性,然後點選登入。

◆在細節窗格中,右鍵點選SA,然後點選屬性。

◆在密碼方框中,輸入新的密碼。6.限制 SQL Server服務的許可權

SQL Server 2000 和 SQL Server Agent 是作為 Windows 服務執行的。每個服務必須與一個 Windows 帳戶相關聯,並從這個帳戶中衍生出安全性上下文。SQL Server允許sa 登入的使用者(有時也包括其他使用者)來訪問作業系統特性。這些作業系統呼叫是由擁有伺服器程式的帳戶的安全性上下文來建立的。如果伺服器被攻破了,那麼這些作業系統呼叫可能被利用來向其他資源進行攻擊,只要所擁有的過程(SQL Server服務帳戶)可以對其進行訪問。因此,為 SQL Server 服務僅授予必要的許可權是十分重要的。

我們推薦您採用下列設定:SQL Server Engine/MSSQLServer

如果擁有指定例項,那麼它們應該被命名為MSSQL$InstanceName。作為具有一般使用者許可權的 Windows 域使用者帳戶執行。不要作為本地系統、本地管理員或域管理員帳戶來執行。

SQL Server Agent Service/SQLServerAgent

如果您的環境中不需要,請禁用該服務;否則請作為具有一般使用者許可權的Windows域使用者帳戶執行。不要作為本地系統、本地管理員或域管理員帳戶來執行。

重點: 如果下列條件之一成立,那麼 SQL Server Agent 將需要本地 Windows管理員許可權:

SQL Server Agent 使用標準的 SQL Server 身份驗證連線到SQL Server(不推薦)。

SQL Server Agent 使用多伺服器管理主伺服器(MSX)帳戶,而該帳戶使用標準 SQL Server 身份驗證進行連線。

SQL Server Agent 執行非sysadmin固定伺服器角色成員所擁有的 Microsoft ActiveX®指令碼或 CmdExec 作業。

如果您需要更改與 SQL Server服務相關聯的帳戶,請使用 SQL Server Enterprise Manager。Enterprise Manager 將為 SQL Server 所使用的檔案和登錄檔鍵設定合適的許可權。不要使用 Microsoft 管理控制檯的"服務"(在控制皮膚中)來更改這些帳戶,因為這樣需要手動地調製大量的登錄檔鍵和NTFS檔案系統許可權以及Micorsoft Windows使用者許可權。帳戶資訊的更改將在下一次服務啟動時生效。如果您需要更改與 SQL Server 以及 SQL Server Agent 相關聯的帳戶,那麼您必須使用 Enterprise Manager 分別對兩個服務進行更改。

7.在防火牆上禁用埠,提高 SQL Server安全性

SQL Server 的預設安裝將監視 TCP 埠 1433 以及UDP埠 1434。配置您的防火牆來過濾掉到達這些埠的資料包。而且,還應該在防火牆上阻止與指定例項相關聯的其他埠。

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

NTFS 是最適合安裝 SQL Server 的檔案系統。它比 FAT 檔案系統更穩定且更容易恢復。而且它還包括一些安全選項,例如檔案和目錄 ACL 以及檔案加密(EFS)。在安裝過程中,如果偵測到 NTFS,SQL Server 將在登錄檔鍵和檔案上設定合適的 ACL。不應該去更改這些許可權。通過 EFS,資料庫檔案將在執行 SQL Server 的帳戶身份下進行加密。只有這個帳戶才能解密這些檔案。如果您需要更改執行 SQL Server 的帳戶,那麼您必須首先在舊帳戶下解密這些檔案,然後在新帳戶下重新進行加密。

9.刪除或保護舊的安裝檔案

SQL Server 安裝檔案可能包含由純文字或簡單加密的憑證和其他在安裝過程中記錄的敏感配置資訊。這些日誌檔案的儲存位置取決於所安裝的SQL Server版本。在 SQL Server 2000 中,下列檔案可能受到影響:預設安裝時:\Program Files\Microsoft SQL Server\MSSQL\Install資料夾中,以及指定例項的:\Program Files\Microsoft SQL Server\ MSSQL$\Install資料夾中的sqlstp.log, sqlsp.log和setup.iss

如果當前的系統是從 SQL Server 7.0 安裝升級而來的,那麼還應該檢查下列檔案:%Windir% 資料夾中的setup.iss以及Windows Temp資料夾中的sqlsp.log。Microsoft釋出了一個免費的實用工具 Killpwd,它將從您的系統中找到並刪除這些密碼。

10.稽核指向 SQL Server 的連線

SQL Server 可以記錄事件資訊,用於系統管理員的審查。至少您應該記錄失敗的 SQL Server 連線嘗試,並定期地檢視這個日誌。在可能的情況下,不要將這些日誌和資料檔案儲存在同一個硬碟上。要在 SQL Server 的 Enterprise Manager 中稽核失敗連線,請按下列步驟操作:

◆展開伺服器組。

◆右鍵點選伺服器,然後點選屬性。

◆在安全性選項卡的稽核等級中,點選失敗。

◆要使這個設定生效,您必須停止並重新啟動伺服器。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-611773/,如需轉載,請註明出處,否則將追究法律責任。

相關文章