SQL Server中保護(hù)數(shù)據(jù)的安全選項(xiàng)
不同于以往所有過(guò)分宣傳的數(shù)據(jù)庫(kù)漏洞,以及幾十個(gè)隱私和安全規(guī)范,新出現(xiàn)了一個(gè)讓SQL Server開發(fā)人員和數(shù)據(jù)庫(kù)管理員們陷入了不得不面對(duì)強(qiáng)勢(shì)用戶的尷尬境地。他們問(wèn):
你如何保護(hù)數(shù)據(jù)庫(kù)中的敏感數(shù)據(jù)?
你對(duì)你的數(shù)據(jù)庫(kù)使用了什么加密方法?
你如何將我們的數(shù)據(jù)與其他人的分離開來(lái)?
我們有很多不同的客戶——你能加密每個(gè)數(shù)據(jù)集嗎?(這是以上最壞的問(wèn)題。)
雖然這些問(wèn)題看上去很古怪,但是他們問(wèn)出來(lái)了,你就需要知道如何應(yīng)對(duì),無(wú)論你是一個(gè)獨(dú)立的軟件開發(fā)人員,還是給一家大公司工作,或者是在兩者之間。
許多人都這樣盲目地要求數(shù)據(jù)庫(kù)分離和加密。他們受到來(lái)自審計(jì)員、經(jīng)理們、銷售人員,或者那些不懂得數(shù)據(jù)庫(kù)安全措施工作方式的客戶們的壓力。許多人都認(rèn)為分離數(shù)據(jù)集并且采用數(shù)據(jù)庫(kù)加密就像電閘開關(guān)一樣簡(jiǎn)單。
他們不知道數(shù)據(jù)庫(kù)管理員和開發(fā)人員面臨著什么。這里有性能的需求,代碼重新編寫,必要的系統(tǒng)升級(jí),第三方控制的實(shí)現(xiàn),系統(tǒng)維護(hù)等等內(nèi)容。更不必說(shuō),所有這些的價(jià)格對(duì)于需要它們的人來(lái)說(shuō)通常就像是一片難以下咽的藥片。
我從來(lái)不是一個(gè)大驚小怪的人,如果說(shuō)到數(shù)據(jù)庫(kù)分離和加密,沒(méi)有人會(huì)拒絕這樣的事實(shí):數(shù)據(jù)庫(kù)里面有黃金,壞人都希望在攻擊你的系統(tǒng)的時(shí)候有最大的收獲。如果數(shù)據(jù)庫(kù)沒(méi)有被充分保護(hù),這就任憑攻擊者的處置了。
對(duì)于數(shù)據(jù)庫(kù)分離和加密,你有很多的選項(xiàng)。你可以升級(jí)到SQL Server 2005,編寫你自己的加密機(jī)制,或者部署一個(gè)第三方的加密系統(tǒng),你還可以:
為每個(gè)用戶創(chuàng)建一個(gè)唯一的數(shù)據(jù)庫(kù)
為每個(gè)客戶建立一個(gè)唯一的應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器
為不同的數(shù)據(jù)庫(kù)和表建立(并管理)不同的用戶賬號(hào)
為每個(gè)用戶建立唯一的加密密鑰,這樣他們就可以訪問(wèn)他們存放在數(shù)據(jù)庫(kù)中的自己的數(shù)據(jù)了
但是所有這些都沒(méi)有完成整個(gè)畫面。這里有太多的變數(shù)了。大多數(shù)數(shù)據(jù)庫(kù)安全技術(shù)的問(wèn)題是,如果前端應(yīng)用程序或者經(jīng)過(guò)授權(quán)的SQL Server賬號(hào)可以訪問(wèn)并且解密敏感數(shù)據(jù),那么那些進(jìn)行SQL注入的攻擊者或者破解了弱密碼的人也可以做。
最大多數(shù)情況中,無(wú)論你是在服務(wù)器上有一個(gè)單獨(dú)的數(shù)據(jù)庫(kù),還是有多個(gè)數(shù)據(jù)庫(kù)分散在多個(gè)系統(tǒng)中,這一點(diǎn)都是適用的。底線——如果你的前端應(yīng)用程序虛弱的話,那么你的數(shù)據(jù)庫(kù)中的敏感數(shù)據(jù)仍然是有風(fēng)險(xiǎn)的。
我想要說(shuō)的是,數(shù)據(jù)庫(kù)安全控制,例如分離和加密都不輕松或者便宜。盡管有一件事情是必然的——如果你把敏感數(shù)據(jù)和私人數(shù)據(jù)放在了你的數(shù)據(jù)庫(kù)里面,那么它基本上是安全的,人們會(huì)開始問(wèn),你做了什么來(lái)保護(hù)它。你不會(huì)讓它離開你的視線的。
看看實(shí)現(xiàn)這些額外的數(shù)據(jù)庫(kù)安全控制需要涉及多少方面。把你的方式解釋給他們聽,你如何分隔每個(gè)數(shù)據(jù)庫(kù),加密敏感信息等。給他們一個(gè)你不能做的理由。按照你已經(jīng)部署的其它控制,減少數(shù)據(jù)庫(kù)分離和加密的需求.
例如,輸入過(guò)濾,強(qiáng)有力的認(rèn)真,甚至是所有磁盤的加密,以防你的整個(gè)數(shù)據(jù)庫(kù)服務(wù)器或者硬盤被偷去。還有,不要忽視利用好工具和人工評(píng)估進(jìn)行的滲透測(cè)試。
還有正式的利用一些工具的數(shù)據(jù)庫(kù)安全審計(jì),例如AppDetective 和NGSSQuirreL,甚至是源代碼分析工具,例如Compuware, Ounce Labs, Fortify Software, SPI Dynamics, 和 Klocwork公司提供的針對(duì)你的應(yīng)用程序的分析工具。
【相關(guān)推薦】