簡述:任何服務(wù)器,安全與性能是兩個(gè)永恒的主題。作為企業(yè)的信息化安全人員,其主要任務(wù)就是如何在保障服務(wù)器性能的前提下提高服務(wù)器的安全性。而要做到這一點(diǎn),服務(wù)器的訪問權(quán)限控制策略無疑是其中的一個(gè)重要環(huán)節(jié)。筆者企
任何服務(wù)器,安全與性能是兩個(gè)永恒的主題。作為企業(yè)的信息化安全人員,其主要任務(wù)就是如何在保障服務(wù)器性能的前提下提高服務(wù)器的安全性。而要做到這一點(diǎn),服務(wù)器的訪問權(quán)限控制策略無疑是其中的一個(gè)重要環(huán)節(jié)。筆者企業(yè)最近上了一臺新的數(shù)據(jù)庫服務(wù)器,我為他設(shè)計(jì)了一些權(quán)限控制手段。這些方法雖然不能夠百分之百的保證數(shù)據(jù)庫服務(wù)器的安全性,但是,這些仍然是數(shù)據(jù)庫服務(wù)器安全策略中必不可少的因素。他對提高數(shù)據(jù)庫服務(wù)器的安全性有著不可磨滅的作用。
其實(shí),這些控制策略,不但對數(shù)據(jù)庫服務(wù)器有效;對其他的應(yīng)用服務(wù)器仍然具有參考價(jià)值。
一、給用戶授予其所需要的最小權(quán)限
不要給數(shù)據(jù)庫用戶提供比其需要的還要多的權(quán)限。換句話說,只給用戶真正需要的、為高效和簡潔地完成工作所需要的權(quán)限。這個(gè)道理很容易理解。這就好像防止職業(yè)貪污一樣。你若只給某個(gè)員工其完成工作所必需的費(fèi)用,一分都不多給,那其從哪里貪污呢?
如從數(shù)據(jù)庫服務(wù)器的角度來考慮這個(gè)問題,這就要求數(shù)據(jù)庫管理員在設(shè)置用戶訪問權(quán)限的時(shí)候,注意如下幾個(gè)方面的問題。
1.是要限制數(shù)據(jù)庫管理員用戶的數(shù)量。在任何一個(gè)服務(wù)器中,管理員具有最高的權(quán)限。為了讓數(shù)據(jù)庫維持正常的運(yùn)轉(zhuǎn),必須給數(shù)據(jù)庫配置管理員賬戶。否則的話,當(dāng)數(shù)據(jù)庫出現(xiàn)故障的時(shí)候,就沒有合適的用戶對其進(jìn)行維護(hù)了。但是,這個(gè)管理員賬戶的數(shù)量要嚴(yán)格進(jìn)行限制。不能為了貪圖方便,把各個(gè)用戶都設(shè)置成為管理員。如筆者企業(yè),在一臺數(shù)據(jù)庫服務(wù)器中運(yùn)行著兩個(gè)實(shí)例,但是,只有一個(gè)數(shù)據(jù)庫管理員負(fù)責(zé)數(shù)據(jù)庫的日常維護(hù)。所以,就只有一個(gè)管理員賬戶。
2.是選擇合適的賬戶連接到數(shù)據(jù)庫。一般數(shù)據(jù)庫的訪問權(quán)限可以通過兩種方式進(jìn)行控制。一是通過前臺應(yīng)用程序。也就是說,其連接到數(shù)據(jù)庫是一個(gè)統(tǒng)一的賬戶,如管理員賬戶;但是,在前臺應(yīng)用程序中設(shè)置了一些關(guān)卡,來控制用戶的訪問權(quán)限。這種方式雖然可以減少前臺程序開發(fā)的工作量,但是,對于數(shù)據(jù)庫服務(wù)器的安全是不利的。二是在前臺程序中,就直接利用員工賬戶的賬號登陸到數(shù)據(jù)庫系統(tǒng)。這種做法雖然可以提高數(shù)據(jù)庫的安全性,但是,其前臺配置的工作量會比較繁瑣。而筆者往往采用折中的方法。在數(shù)據(jù)庫中有兩類賬戶,一類是管理員賬戶,只有前臺系統(tǒng)管理員才可以利用這類賬戶登陸到數(shù)據(jù)庫系統(tǒng)。另外一類是普通賬戶,其雖然可以訪問數(shù)據(jù)庫中的所有非系統(tǒng)對象,但是,他們不能夠?qū)?shù)據(jù)庫系統(tǒng)的運(yùn)行參數(shù)進(jìn)行修改。然后具體數(shù)據(jù)對象的訪問,則通過前臺應(yīng)用程序控制。如此,前臺應(yīng)用程序普通員工只需要通過同一個(gè)賬戶連接到數(shù)據(jù)庫系統(tǒng)。而系統(tǒng)管理員若需要進(jìn)行系統(tǒng)維護(hù),如數(shù)據(jù)庫系統(tǒng)備份與還原,則可以通過數(shù)據(jù)庫管理員賬戶連接到數(shù)據(jù)庫系統(tǒng)。則即方便了前臺應(yīng)用程序的配置效率,又提高了數(shù)據(jù)庫服務(wù)器的安全性。總之,我們的目的就是要限制以數(shù)據(jù)庫管理員身份連接到數(shù)據(jù)庫的用戶數(shù)量。
在其他應(yīng)用服務(wù)器中,也有管理員賬戶與普通賬戶之分。在權(quán)限分配的時(shí)候,也最好只給用戶授予其需要的最小權(quán)限,以保障數(shù)據(jù)庫服務(wù)器的安全。
二、取消默認(rèn)賬戶不需要的權(quán)限
在建立賬戶的時(shí)候,服務(wù)器往往給給其一些默認(rèn)的權(quán)限。如在數(shù)據(jù)庫中,Public是授予每個(gè)用戶的默認(rèn)角色。任何用戶,只要沒有指定具體的角色,則其都可以授予Public組的權(quán)限。這其中,還包括執(zhí)行各種SQL語句的權(quán)限。如此,用戶就有可能利用這個(gè)管理漏洞,去訪問那些不允許他們直接訪問的包。因?yàn)檫@個(gè)默認(rèn)權(quán)限,對于那些需要他們并且需要合適配置和使用他們的應(yīng)用來說,是非常有用的,所以,系統(tǒng)默認(rèn)情況下,并沒有禁止。但是,這些包可能不適合與其他應(yīng)用。故,除非絕對的需要,否則就應(yīng)該從默認(rèn)缺陷中刪除。
也就是說,通常某個(gè)賬戶的默認(rèn)權(quán)限,其是比較大的。如對于數(shù)據(jù)庫來說,其賬戶的默認(rèn)權(quán)限就是可以訪問所有的非系統(tǒng)對象表。數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,主要是為了考慮新建用戶的方便。而且,新建用戶的時(shí)候,數(shù)據(jù)庫確實(shí)也無法識別這個(gè)用戶到底能夠訪問哪些用戶對象。但是,對于企業(yè)應(yīng)用系統(tǒng)來說,若給每個(gè)員工都默認(rèn)具有這么大的訪問權(quán)限,那則是很不安全的。
筆者的做法是,會把應(yīng)用系統(tǒng)的默認(rèn)用戶權(quán)限設(shè)置為最小,有些甚至把默認(rèn)用戶權(quán)限全部取消掉。這就迫使服務(wù)器管理員在建立賬戶的時(shí)候,給賬戶指定管理員預(yù)先設(shè)定的角色。這就可以有效的防止管理員“偷懶”。在建立賬戶的時(shí)候,不指定角色。
三、正確的鑒別客戶端
正確的鑒別客戶端的合法性,這是提高應(yīng)用服務(wù)器安全性的一個(gè)不二法則。有時(shí)候,為了服務(wù)器安全性考慮,必須要求對客戶端的合法性進(jìn)行鑒別。對此,我們可以通過如下措施來管理客戶端。
一是對于具有管理員賬戶的角色進(jìn)行遠(yuǎn)程鑒別。雖然從理論上說,可以對任何一臺客戶端都采取遠(yuǎn)程鑒別,如通過主機(jī)名或者IP地址進(jìn)行合法性鑒別。但是,這么做的話,往往太過于小題大做,會增加管理上的煩惱?;蛘哒f,投入與回報(bào)不成正比。所以,在實(shí)際配置中,筆者不會對每一臺客戶端都進(jìn)行合法性驗(yàn)證。而只對于利用管理員賬戶登陸服務(wù)器的客戶端才進(jìn)行合法性驗(yàn)證。如可以在數(shù)據(jù)庫服務(wù)器上進(jìn)行設(shè)置,只有哪幾個(gè)IP地址才可以通過管理員角色連接到數(shù)據(jù)庫系統(tǒng)中。通過對客戶端身份的合法鑒別,就可以再進(jìn)一步提高數(shù)據(jù)庫服務(wù)器管理員角色賬戶的安全性。即使管理員賬戶與口令被竊取,有客戶端身份驗(yàn)證這一功能,也不怕他們進(jìn)行非法攻擊。
二是不要太過于相應(yīng)客戶端的自我保護(hù)功能。如在某個(gè)品牌的數(shù)據(jù)庫系統(tǒng)中,有一種遠(yuǎn)程鑒別功能。他會處理連接到數(shù)據(jù)庫的遠(yuǎn)程客戶的用戶鑒別問題。數(shù)據(jù)庫絕對信任任何客戶都已經(jīng)進(jìn)行了正確的鑒別。但是,我們都知道,在任何情況下,我們不能夠相信客戶端會正確地執(zhí)行操作系統(tǒng)鑒別。故,往往這個(gè)安全特性只是作為擺設(shè)。對于數(shù)據(jù)庫服務(wù)器來說,一個(gè)比較安全的做法是,不采用這種遠(yuǎn)程鑒別功能,而是在服務(wù)器上對客戶端進(jìn)行統(tǒng)一的鑒別。如在服務(wù)器上,通過身份認(rèn)證功能來確保連接到服務(wù)器上的客戶端的合法性與真實(shí)性。
三、數(shù)據(jù)庫系統(tǒng)最好不要穿透防火墻
如果把數(shù)據(jù)庫服務(wù)器放置在防火墻的后面,則最好在任何情況下,都不要穿透該防火墻。否則的話,會讓數(shù)據(jù)庫系統(tǒng)失去防火墻的保護(hù),從而把數(shù)據(jù)庫暴露在互聯(lián)網(wǎng)下,成為眾多黑客茶余飯后“調(diào)戲”、“攻擊”的對象。
例如,不要打開數(shù)據(jù)庫的1521端口來與互聯(lián)網(wǎng)進(jìn)行連接。如果用戶執(zhí)意要這么做的話,則會引起很多重要的安全弱點(diǎn)。因?yàn)楣粽呖梢詰{借這個(gè)弱點(diǎn),打開更多的穿透防火墻的端口、多線程操作系統(tǒng)服務(wù)器的問題,以及泄漏防火墻后面應(yīng)用服務(wù)器中的重要信息。再者,這個(gè)弱點(diǎn)還有可能被用來探測數(shù)據(jù)庫服務(wù)器的關(guān)鍵細(xì)節(jié),如利用竊聽監(jiān)聽器來獲得關(guān)鍵信息。因?yàn)楸O(jiān)聽器會監(jiān)聽該數(shù)據(jù)庫的運(yùn)行軌跡、登陸信息、標(biāo)識信息、數(shù)據(jù)庫描述服務(wù)以及服務(wù)名等等。
所以,執(zhí)意把放在企業(yè)防火墻背后的應(yīng)用服務(wù)器中的某個(gè)關(guān)鍵端口,設(shè)置成為穿透防火墻的端口是一種很不好的安全習(xí)慣。雖然其可以帶來管理上的方便,但是,出于安全考慮,騰佑科技還是不建議管理員進(jìn)行如此的配置。
個(gè)方面,是大家在數(shù)據(jù)庫服務(wù)器部署的時(shí)候,容易忽視的幾個(gè)地方。希望這篇文章,能夠給大家一些提醒。
搜索詞
熱門產(chǎn)品推薦