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