摘要:服務器漏洞是安全問題的起源。只有了解可能存在或潛在的安全問題,才能采取相應的防護對策,保證Oracle數據庫的安全性。本文討論了基于Oracle數據庫下服務器可能出現的一些安全問題,并提出了相應的安全防護對策。
關鍵詞:oracle數據庫;服務器;安全問題;防護對策
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)06-00ppp-0c
Server Safe Problem of Database Oracle
ZHAO Qing-yuan
(Jiangmen Public Security Science Academy Institute,Jiangmen 529000,China)
Abstract:The server loophole is the origins of safe problem. Only understanding possible existence or latent and safe problems,then we can adopt the homologous protection counterplan, and assurance safety of the Oracle database.The paper discussed some safe problems that the server may appear under Oracle database,and put forward safe protection counterplan.
Key words:database of oracle;server;safe problem;protection counterplan
1 引言
隨著計算機網絡應用的普及和提高,Oracle數據庫應用在各個領域日新月異,它性能優異,操作靈活方便,是目前數據庫系統中受到廣泛青睞的幾家之一。Oracle數據庫使用了多種手段來保證數據庫的安全性,如密碼,角色,權限等等。然而,隨著應用的深入,數據信息的不斷增加,由于計算機軟、硬件故障,導致數據庫系統不能正常運轉,仍造成大量數據信息丟失,甚至使數據庫系統崩潰。因此,數據庫的安全性問題已提到了一個十分重要的議事日程上,是數據庫管理員日常工作中十分關注的一個問題,也一直是圍繞著數據庫管理員的噩夢,數據庫數據的丟失以及數據庫被非法用戶的侵入使得數據庫管理員身心疲憊不堪。對于數據庫數據的安全問題,數據庫管理員可以參考有關系統雙機熱備份功能以及數據庫的備份和恢復的資料。影響數據庫的安全也有很多方面,包括組和安全性、Oracle服務器、SQL*DBA命令的安全性、數據庫文件的安全性、網絡安全性等。而服務器漏洞是安全問題的起源,黑客對網站的攻擊也大多是從查找對方的漏洞開始的。因服務器的安全漏洞問題,而易導致其中數據的丟失、權限被非法取得。所以只有了解自身的漏洞,網站管理人員才能采取相應的對策,阻止外來的攻擊,保證Oracle數據庫的安全性。本文就此討論基于Oracle數據庫下服務器可能出現的一些安全問題,并提出了相應的解決措施,希望對數據庫管理員有所幫助。
2 基于oracle數據庫下服務器的安全問題
基于oracle數據庫下服務器具有以下特征:用戶帳號及密碼、校驗系統、優先級模型和控制數據庫目標的特別許可、內置式命令(存儲的步驟或包)、唯一的腳本和編程語言、middleware、網絡協議、補丁和服務包、強有力的數據庫管理實用程序和開發工具。許多管理人員都忙于管理復雜的系統,所以很可能沒有檢查出嚴重的安全隱患和不當的配置,甚至根本沒有進行檢測。所以,正是由于傳統的安全體系在很大程度上忽略了數據庫服務器安全這一主題,使數據庫專業人員也通常沒有把安全問題當作他們的首要任務。
2.1 Oracle 服務器本身存在的多個漏洞。Oracle Application Server存在多個安全漏洞,包括資料溢寫、不安全的預設定、無法執行存取控制以及無法驗證輸入。這些漏洞造成的影響包括可被執行任意指令或程序代碼、拒絕服務,及未經授權的資料存取。Oracle Application Server 內含以 Apache HTTP Server 為基礎的 web server;在 web server 內加入數個不同的組件來提供接口給數據庫應用程序。這些組件包含有Procedural Language/Sturctured Query Language(PL/SQL)模塊, Java Server Pages,XSQL Servlets, 及 Simple Object Access Protocol(SOAP) applications 等等。
2.2 由于網絡服務和操作系統的漏洞,而導致服務器上的應用程序出現安全問題。由于oracle數據庫系統具有多種特征和性能配置方式,在使用時可能會誤用,或危及數據的保密性、有效性和完整性。首先,所有現代關系型數據庫系統都是“可從端口尋址的”,這意味著任何人只要有合適的查詢工具,就都可與數據庫直接相連,并能躲開操作系統的安全機制。多數數據庫系統還有眾所周知的默認帳號和密碼,可支持對數據庫資源的各級訪問。從這兩個簡單的數據相結合,很多重要的數據庫系統很可能受到威協。拙劣的數據庫安全保障設施不僅會危及數據庫的安全,還會影響到服務器的操作系統和其它信用系統。具體反映在以下幾方面:(1)用戶帳戶、作用和對特定數據庫目標的操作許可等方面數據庫安全系統對服務器影響的的潛在漏洞。例如,對表單和存儲步驟的訪問;(2)與銷售商提供的軟件相關的風險:軟件的BUG、缺少操作系統補丁、脆弱的服務和選擇不安全的默認配置;(3)與管理有關的風險:可用的但并未正確使用的安全選項、危險的默認設置、給用戶更多的不適當的權限,對系統配置的未經授權的改動;(4)與用戶活動有關的風險:密碼長度不夠、對重要數據的非法訪問以及竊取數據庫內容等惡意行動。
2.3 數據庫系統自身可能會提供危及整個網絡體系的機制。例如,某個公司可能會用數據庫服務器保存所有的技術手冊、文檔和白皮書的庫存清單。數據庫里的這些信息并不是特別重要的,所以它的安全優先級別不高。即使運行在安全狀況良好的操作系統中,入侵者也可通過“擴展入駐程序”等強有力的內置數據庫特征,利用對數據庫的訪問,獲取對本地操作系統的訪問權限。這些程序可以發出管理員級的命令,訪問基本的操作系統及其全部的資源。如果這個特定的數據庫系統與其它服務器有信用關系,那么入侵者就會危及整個網絡域的安全。
2.4 在重要數據庫服務器中,還存在著多種數據庫服務器的漏洞和錯誤配置。(1)安全特征不夠成熟。操作系統所應具備的特性,但在數據庫服務器的標準安全設施中并未出現。由于這些數據庫都可進行端口尋址的,操作系統的核心安全機制并未應用到與網絡直接聯接的數據庫中。由于系統管理員的帳號是不能重命名的,如果沒有密碼封鎖可用或已配置完畢,入侵者就可以對數據庫服務器發動強大字典式登錄進攻,最終能破解密碼;(2)數據庫密碼管理方面的問題。在數據庫系統提供的安全標準中,沒有任何機制能夠保證某個用戶正在選擇有力的或任意的密碼。Oracle數據庫系統具有十個以上地特定地默認用戶帳號和密碼,此外還有用于管理重要數據庫操作的唯一密碼。如果安全出現了問題,這些系統的許多密碼都可讓入侵者對數據庫進行完全訪問;(3)操作系統的后門:數據庫系統的特征參數盡管方便了管理人沒,但也為數據庫服務器主機操作系統留下了后門。Oracle數據庫系統具有很多有用的特征,可用于對操作系統自帶文件系統的直接訪問。例如在合法訪問時,UTL_FILE軟件包允許用戶向主機操作系統進行讀寫文件的操作。UTL_FILE_DIR簡檔變量很容易配置錯誤,或被故意設置為允許Oracle用戶用UTL_FILE軟件包在文件系統的任何地方進行寫入操作,這樣也對主機操作系統構成了潛在的威脅。
以上各類存在或潛在的安全隱患都可能發生在網絡設備、操作系統或數據庫自身當中。對Oracle數據庫服務器進行安全保護時,都應將這些因素考慮在內。
3 基于Oracle數據庫下服務器的安全防護對策
3.1 針對Oracle 服務器本身存在的多個漏洞,及時完善更新補強程序,安裝相應的補丁。Oracle Security Alerts:http://otn.oracle.com/deploy/security/alerts.htm;MetaLink (registration required):http://metalink.oracle.com。
3.2 積極有效并全面地保障數據庫服務器上的網絡和操作系統數據安全。以下是保護Oracle服務器不被非法用戶使用的幾條建議:(1)確保$ORACLE_HOME/bin目錄下的所有程序的擁有權歸Oracle軟件擁有者所有;(2)給所有用戶實用便程(sqiplus,sqiforms,exp,imp等)711權限,使服務器上所有的用戶都可訪問Oracle服務器; (3)給所有的DBA實用例程700權限。(4)Oracle服務器和Unix組當訪問本地的服務器時,可以通過在操作系統下把Oracle服務器的角色映射到Unix的組的方式來使用Unix管理服務器的安全性,這種方法適應于本地訪問。在Unix中指定Oracle服務器角色的格式如下: ora_sid_role[_dla]。其中sid是Oracle數據庫的oracle_sid;role 是Oracle服務器中角色的名字;d (可選)表示這個角色是缺省值;a (可選)表示這個角色帶有WITH ADMIN選項;只可以把這個角色授予其他角色,不能是其他用戶。⑤為了使這些數據庫角色起作用,必須shutdown數據庫系統,設置Oracle數據庫參數文件initORACLE_SID.ora中os_roles參數為True,然后重新啟動數據庫。如果想讓這些角色有connectinternal權限,運行orapwd為這些角色設置密碼。當嘗試connect internal時,鍵入的密碼表示了角色所對應的權限。
3.3 全面構筑數據庫系統安全體系。數據庫系統的安全除依賴自身內部的安全機制外,還與外部網絡環境、應用環境、從業人員素質等因素息息相關。數據庫系統的安全體系可以劃分為三個層次:網絡系統層次;宿主操作系統層次;數據庫管理系統層次。數據庫系統安全體系的這三個層次是相輔相承的,與數據安全的關系是逐步緊密的,防范的重要性也逐層加強,從外到內、由表及里保證體系安全。
3.4 對管理員、系統密碼和帳號基本等基本的安全問題需要細心的監督。此外還需要對全部密碼列表進行管理和安全檢查。注意密碼管理問題決不僅限于Oracle數據庫,幾乎所有主要數據庫提供商的產品都有這種問題。
4 結束語
總之,以上是對Oracle數據庫服務器安全問題及其安全保護對策的一些初步探討。其實,關鍵的問題還是在于網絡管理員對網絡安全意識的建立和實施。因為多數網絡安全事件的發生,都是因為網絡管理員安全意識的缺乏和防范措施實施的不到位。同時在部署系統時,積極注意數據庫的安全問題,對數據庫服務器做出最徹底的評估,并進行常規的安全評估。所有系統都應該采用信息風險管理原則,以進行監督、檢測,對安全漏洞做出響應。
參考文獻:
[1]袁福慶.Oracle數據庫管理與維護手冊[M].北京:人民郵電出版社,2006,(05):72-99.
[2]劉文濤.網絡安全開發包詳解[M].北京:電子工業出版社,2005.
[3]王群.非常網管-網絡安全[M].北京:人民郵電出版社,2007.
收稿日期:2008-01-07
作者簡介:趙清源(1974-),男,廣東臺山人,工程師,1997年7月畢業于廣東省五邑大學計算機應用專業,本科,現從事計算機及其周邊設備的實用技術研究工作。