歡迎您光臨本站 登入註冊首頁

概述

過許可權控制提高資料庫伺服器安全作為企業的信息化安全人員,其主要任務就是如何在保障伺服器性能的前提下提高伺服器的安全性。而要做到這一點,伺服器的訪問許可權控制策略無疑是其中的一個重要環節。假如某企業新……

通過許可權控制提高資料庫伺服器安全

作為企業的信息化安全人員,其主要任務就是如何在保障伺服器性能的前提下提高伺服器的安全性。而要做到這一點,伺服器的訪問許可權控制策略無疑是其中的一個重要環節。假如某企業新進一台資料庫伺服器,為他設計一些許可權控制手段。這些方法雖然不能夠百分之百的保證資料庫伺服器的安全性,但是,這些仍然是資料庫伺服器安全策略中必不可少的因素。對提高資料庫伺服器的安全性有著不可磨滅的作用。這些控制策略,不但對資料庫伺服器有效;對其他的應用伺服器仍然具有參考價值。

  一、給用戶授予其所需要的最小許可權

  不要給資料庫用戶提供比其需要的還要多的許可權。換句話說,只給用戶真正需要的、為高效和簡潔地完成工作所需要的許可權。這個道理很容易理解。這就好像防止職業貪污一樣。你若只給某個員工其完成工作所必需的費用,一分都不多給,那其從哪裡貪污呢?

  如從資料庫伺服器的角度來考慮這個問題,這就要求資料庫管理員在設置用戶訪問許可權的時候,注意如下幾個方面的問題。

  1.是要限制資料庫管理員用戶的數量。在任何一個伺服器中,管理員具有最高的許可權。為了讓資料庫維持正常的運轉,必須給資料庫配置管理員賬戶。否則的話,當資料庫出現故障的時候,就沒有合適的用戶對其進行維護了。但是,這個管理員賬戶的數量要嚴格進行限制。不能為了貪圖方便,把各個用戶都設置成為管理員。如筆者企業,在一台資料庫伺服器中運行著兩個實例,但是,只有一個資料庫管理員負責資料庫的日常維護。所以,就只有一個管理員賬戶。

  2.是選擇合適的賬戶連接到資料庫。一般資料庫的訪問許可權可以通過兩種方式進行控制。一是通過前台應用程序。也就是說,其連接到資料庫是一個統一的賬戶,如管理員賬戶;但是,在前台應用程序中設置了一些關卡,來控制用戶的訪問許可權。這種方式雖然可以減少前台程序開發的工作量,但是,對於資料庫伺服器的安全是不利的。二是在前台程序中,就直接利用員工賬戶的賬號登陸到資料庫系統。這種做法雖然可以提高資料庫的安全性,但是,其前台配置的工作量會比較繁瑣。而筆者往往採用折中的方法。在資料庫中有兩類賬戶,一類是管理員賬戶,只有前台系統管理員才可以利用這類賬戶登陸到資料庫系統。另外一類是普通賬戶,其雖然可以訪問資料庫中的所有非系統對象,但是,他們不能夠對資料庫系統的運行參數進行修改。然後具體數據對象的訪問,則通過前台應用程序控制。如此,前台應用程序普通員工只需要通過同一個賬戶連接到資料庫系統。而系統管理員若需要進行系統維護,如資料庫系統備份與還原,則可以通過資料庫管理員賬戶連接到資料庫系統。則即方便了前台應用程序的配置效率,又提高了資料庫伺服器的安全性。總之,我們的目的就是要限制以資料庫管理員身份連接到資料庫的用戶數量。

  在其他應用伺服器中,也有管理員賬戶與普通賬戶之分。在許可權分配的時候,也最好只給用戶授予其需要的最小許可權,以保障資料庫伺服器的安全。

  二、取消默認賬戶不需要的許可權

  在建立賬戶的時候,伺服器往往給給其一些默認的許可權。如在資料庫中,Public是授予每個用戶的默認角色。任何用戶,只要沒有指定具體的角色,則其都可以授予Public組的許可權。這其中,還包括執行各種SQL語句的許可權。如此,用戶就有可能利用這個管理漏洞,去訪問那些不允許他們直接訪問的包。因為這個默認許可權,對於那些需要他們並且需要合適配置和使用他們的應用來說,是非常有用的,所以,系統默認情況下,並沒有禁止。但是,這些包可能不適合與其他應用。故,除非絕對的需要,否則就應該從默認缺陷中刪除。

  也就是說,通常某個賬戶的默認許可權,其是比較大的。如對於資料庫來說,其賬戶的默認許可權就是可以訪問所有的非系統對象表。資料庫設計的時候,主要是為了考慮新建用戶的方便。而且,新建用戶的時候,資料庫確實也無法識別這個用戶到底能夠訪問哪些用戶對象。但是,對於企業應用系統來說,若給每個員工都默認具有這麼大的訪問許可權,那則是很不安全的。

  把應用系統的默認用戶許可權設置為最小,有些甚至把默認用戶許可權全部取消掉。這就迫使伺服器管理員在建立賬戶的時候,給賬戶指定管理員預先設定的角色。這就可以有效的防止管理員「偷懶」。在建立賬戶的時候,不指定角色。

  三、正確的鑒別客戶端

  正確的鑒別客戶端的合法性,這是提高應用伺服器安全性的一個不二法則。有時候,為了伺服器安全性考慮,必須要求對客戶端的合法性進行鑒別。對此,我們可以通過如下措施來管理客戶端。

  一是對於具有管理員賬戶的角色進行遠程鑒別。雖然從理論上說,可以對任何一台客戶端都採取遠程鑒別,如通過主機名或者IP地址進行合法性鑒別。但是,這麼做的話,往往太過於小題大做,會增加管理上的煩惱。或者說,投入與回報不成正比。所以,在實際配置中,筆者不會對每一台客戶端都進行合法性驗證。而只對於利用管理員賬戶登陸伺服器的客戶端才進行合法性驗證。如可以在資料庫伺服器上進行設置,只有哪幾個IP地址才可以通過管理員角色連接到資料庫系統中。通過對客戶端身份的合法鑒別,就可以再進一步提高資料庫伺服器管理員角色賬戶的安全性。即使管理員賬戶與口令被竊取,有客戶端身份驗證這一功能,也不怕他們進行非法攻擊。

  二是不要太過於相應客戶端的自我保護功能。如在某個品牌的資料庫系統中,有一種遠程鑒別功能。他會處理連接到資料庫的遠程客戶的用戶鑒別問題。資料庫絕對信任任何客戶都已經進行了正確的鑒別。但是,我們都知道,在任何情況下,我們不能夠相信客戶端會正確地執行操作系統鑒別。故,往往這個安全特性只是作為擺設。對於資料庫伺服器來說,一個比較安全的做法是,不採用這種遠程鑒別功能,而是在伺服器上對客戶端進行統一的鑒別。如在伺服器上,通過身份認證功能來確保連接到伺服器上的客戶端的合法性與真實性。

  四、資料庫系統最好不要穿透防火牆

  如果把資料庫伺服器放置在防火牆的後面,則最好在任何情況下,都不要穿透該防火牆。否則的話,會讓資料庫系統失去防火牆的保護,從而把資料庫暴露在網際網路下,成為眾多黑客茶餘飯後「調戲」、「攻擊」的對象。

  例如,不要打開資料庫的1521埠來與網際網路進行連接。如果用戶執意要這麼做的話,則會引起很多重要的安全弱點。因為攻擊者可以憑藉這個弱點,打開更多的穿透防火牆的埠、多線程操作系統伺服器的問題,以及泄漏防火牆後面應用伺服器中的重要信息。再者,這個弱點還有可能被用來探測資料庫伺服器的關鍵細節,如利用竊聽監聽器來獲得關鍵信息。因為監聽器會監聽該資料庫的運行軌跡、登陸信息、標識信息、資料庫描述服務以及服務名等等。

  所以,執意把放在企業防火牆背後的應用伺服器中的某個關鍵埠,設置成為穿透防火牆的埠是一種很不好的安全習慣。雖然其可以帶來管理上的方便,但是,出於安全考慮,還是不建議管理員進行如此的配置。

  針對資料庫應用伺服器的訪問與連接的許可權控制,還有許多。以上四個方面,是大家在資料庫伺服器部署的時候,容易忽視的幾個地方。希望這篇文章,能夠給大家一些提醒。

[admin via 研發互助社區 ] 通過許可權控制提高資料庫伺服器安全已經有3511次圍觀

http://cocdig.com/docs/show-post-143.html