軟件測試數據庫中保護SQL Server數據庫安全的十種方法
1. 安裝最新的服務(wù)包
為了提高服務(wù)器安全性,最有效的一個(gè)方法就是升級到SQL Server 2000 Service Pack 4a (SP4a)。另外,您還應該安裝所有已發(fā)布的安全更新。
2. 使用Microsoft基線(xiàn)安全性分析器(MBSA)來(lái)評估服務(wù)器的安全性
MBSA 是一個(gè)掃描多種Microsoft產(chǎn)品的不安全配置的工具,包括SQL Server和Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)。它可以在本地運行,也可以通過(guò)網(wǎng)絡(luò )運行。該工具針對下面問(wèn)題對SQL Server安裝進(jìn)行檢測:
1) 過(guò)多的sysadmin固定服務(wù)器角色成員。
2) 授予sysadmin以外的其他角色創(chuàng )建CmdExec作業(yè)的權利。
3) 空的或簡(jiǎn)單的密碼。
4) 脆弱的身份驗證模式。
5) 授予管理員組過(guò)多的權利。
6) SQL Server數據目錄中不正確的訪(fǎng)問(wèn)控制表(ACL)。
7) 安裝文件中使用純文本的sa密碼。
授予guest帳戶(hù)過(guò)多的權利。
9) 在同時(shí)是域控制器的系統中運行SQL Server。
10) 所有人(Everyone)組的不正確配置,提供對特定注冊表鍵的訪(fǎng)問(wèn)。
11) SQL Server 服務(wù)帳戶(hù)的不正確配置。
12) 沒(méi)有安裝必要的服務(wù)包和安全更新。
Microsoft 提供 MBSA 的免費下載。
3. 使用Windows身份驗證模式
在任何可能的時(shí)候,您都應該對指向SQL Server的連接要求Windows身份驗證模式。它通過(guò)限制對Microsoft Windows用戶(hù)和域用戶(hù)帳戶(hù)的連接,保護SQL Server免受大部分Inte.net工具的侵害,而且,您的服務(wù)器也將從Windows安全增強機制中獲益,例如更強的身份驗證協(xié)議以及強制的密碼復雜性和過(guò)期時(shí)間。另外,憑證委派(在多臺服務(wù)器間橋接憑證的能力)也只能在Windows身份驗證模式中使用。在客戶(hù)端,Windows身份驗證模式不再需要存儲密碼。存儲密碼是使用標準SQL Server登錄的應用程序的主要漏洞之一。要在SQL Server的Enterprise Manager安裝Windows身份驗證模式,請按下列步驟操作:
1)展開(kāi)服務(wù)器組。
2)右鍵點(diǎn)擊服務(wù)器,然后點(diǎn)擊屬性。
3)在安全性選項卡的身份驗證中,點(diǎn)擊僅限Windows。
4. 隔離您的服務(wù)器,并定期備份
物理和邏輯上的隔離組成了SQL Server安全性的基礎。駐留數據庫的機器應該處于一個(gè)從物理形式上受到保護的地方,最好是一個(gè)上鎖的機房,配備有洪水檢測以及火災檢測及消防系統。數據庫應該安裝在企業(yè)內部網(wǎng)的安全區域中,不要直接連接到Internet。定期備份所有數據,并將副本保存在安全的站點(diǎn)外地點(diǎn)。
5. 分配一個(gè)強健的sa密碼
sa帳戶(hù)應該總擁有一個(gè)強健的密碼,即使在配置為要求 Windows 身份驗證的服務(wù)器上也該如此。這將保證在以后服務(wù)器被重新配置為混合模式身份驗證時(shí),不會(huì )出現空白或脆弱的sa。
要分配sa密碼,請按下列步驟操作:
1) 展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器。
2) 展開(kāi)安全性,然后點(diǎn)擊登錄。
3) 在細節窗格中,右鍵點(diǎn)擊SA,然后點(diǎn)擊屬性。
4) 在密碼方框中,輸入新的密碼。
6. 限制 SQL Server服務(wù)的權限
SQL Server 2000和SQL Server Agent是作為Windows服務(wù)運行的。每個(gè)服務(wù)必須與一個(gè)Windows帳戶(hù)相關(guān)聯(lián),并從這個(gè)帳戶(hù)中衍生出安全性上下文。SQL Server允許sa登錄的用戶(hù)(有時(shí)也包括其他用戶(hù))來(lái)訪(fǎng)問(wèn)操作系統特性。這些操作系統調用是由擁有服務(wù)器進(jìn)程的帳戶(hù)的安全性上下文來(lái)創(chuàng )建的。如果服務(wù)器被攻破了,那么這些操作系統調用可能被利用來(lái)向其他資源進(jìn)行攻擊,只要所擁有的過(guò)程(SQL Server服務(wù)帳戶(hù))可以對其進(jìn)行訪(fǎng)問(wèn)。因此,為SQL Server服務(wù)僅授予必要的權限是十分重要的。
我們推薦您采用下列設置:
1) SQL Server Engine/MSSQLServer
如果擁有指定實(shí)例,那么它們應該被命名為MSSQL$InstanceName。作為具有一般用戶(hù)權限的Windows域用戶(hù)帳戶(hù)運行。不要作為本地系統、本地管理員或域管理員帳戶(hù)來(lái)運行。
2) SQL Server Agent Service/SQLServerAgent
如果您的環(huán)境中不需要,請禁用該服務(wù);否則請作為具有一般用戶(hù)權限的Windows域用戶(hù)帳戶(hù)運行。不要作為本地系統、本地管理員或域管理員帳戶(hù)來(lái)運行。
重點(diǎn): 如果下列條件之一成立,那么SQL Server Agent將需要本地Windows管理員權限:
SQL Server Agent使用標準的SQL Server身份驗證連接到SQL Server(不推薦);
SQL Server Agent使用多服務(wù)器管理主服務(wù)器(MSX)帳戶(hù),而該帳戶(hù)使用標準SQL Server身份驗證進(jìn)行連接;
SQL Server Agent運行非sysadmin固定服務(wù)器角色成員所擁有的Microsoft ActiveX腳本或 CmdExec作業(yè)。
如果您需要更改與SQL Server服務(wù)相關(guān)聯(lián)的帳戶(hù),請使用 SQL Server Enterprise Manager。Enterprise Manager將為SQL Server所使用的文件和注冊表鍵設置合適的權限。不要使用Microsoft管理控制臺的“服務(wù)”(在控制面板中)來(lái)更改這些帳戶(hù),因為這樣需要手動(dòng)地調制大量的注冊表鍵和NTFS文件系統權限以及Micorsoft Windows用戶(hù)權限。
帳戶(hù)信息的更改將在下一次服務(wù)啟動(dòng)時(shí)生效。如果您需要更改與SQL Server以及SQL Server Agent相關(guān)聯(lián)的帳戶(hù),那么您必須使用Enterprise Manager分別對兩個(gè)服務(wù)進(jìn)行更改。
7. 在防火墻上禁用SQL Server端口
SQL Server的默認安裝將監視TCP端口1433以及UDP端口1434。配置您的防火墻來(lái)過(guò)濾掉到達這些端口的數據包。而且,還應該在防火墻上阻止與指定實(shí)例相關(guān)聯(lián)的其他端口。
8. 使用最安全的文件系統
NTFS是最適合安裝SQL Server的文件系統。它比FAT文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄ACL以及文件加密(EFS)。在安裝過(guò)程中,如果偵測到 NTFS,SQL Server將在注冊表鍵和文件上設置合適的ACL。不應該去更改這些權限。
通過(guò)EFS,數據庫文件將在運行SQL Server的帳戶(hù)身份下進(jìn)行加密。只有這個(gè)帳戶(hù)才能解密這些文件。如果您需要更改運行SQL Server的帳戶(hù),那么您必須首先在舊帳戶(hù)下解密這些文件,然后在新帳戶(hù)下重新進(jìn)行加密。
9. 刪除或保護舊的安裝文件
SQL Server安裝文件可能包含由純文本或簡(jiǎn)單加密的憑證和其他在安裝過(guò)程中記錄的敏感配置信息。這些日志文件的保存位置取決于所安裝的SQL Server版本。在SQL Server 2000中,下列文件可能受到影響:默認安裝時(shí):\Program Files\Microsoft SQL Server\MSSQL\Install文件夾中,以及指定實(shí)例的:\Program Files\Microsoft SQL Server\ MSSQL$\Install文件夾中的sqlstp.log, sqlsp.log和setup.iss。
如果當前的系統是從SQL Server 7.0安裝升級而來(lái)的,那么還應該檢查下列文件:%Windir% 文件夾中的setup.iss以及Windows Temp文件夾中的sqlsp.log。
Microsoft發(fā)布了一個(gè)免費的實(shí)用工具Killpwd,它將從您的系統中找到并刪除這些密碼。
10. 審核指向SQL Server的連接
SQL Server可以記錄事件信息,用于系統管理員的審查。至少您應該記錄失敗的SQL Server連接嘗試,并定期地查看這個(gè)日志。在可能的情況下,不要將這些日志和數據文件保存在同一個(gè)硬盤(pán)上。
要在SQL Server的Enterprise Manager中審核失敗連接,請按下列步驟操作:
1) 展開(kāi)服務(wù)器組。
2) 右鍵點(diǎn)擊服務(wù)器,然后點(diǎn)擊屬性。
3) 在安全性選項卡的審核等級中,點(diǎn)擊失敗。
4) 要使這個(gè)設置生效,您必須停止并重新啟動(dòng)服務(wù)器。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/