我需要尋找哪此類型的安全漏洞呢?
傳統的數據庫安全係統隻側重於以下幾項:用戶帳戶、作用和對特定數據庫目標的操作許可。例如,對表單和存儲步驟的訪問。必須對數據庫係統做範圍更廣的徹底安全分析,找出所有可能領域內的潛在漏洞,包括以下提到的各項內容。
與銷售商提供的軟件相關的風險-軟件的BUG、缺少操作係統補丁、脆弱的服務和選擇不安全的默認配置。
與管理有關的風險-可用的但並未正確使用的安全選項、危險的默認設置、給用戶更多的不適當的權限,對係統配置的未經授權的改動。
與用戶活動有關的風險-密碼長度不夠、對重要數據的非法訪問以及竊取數據庫內容等惡意行動。
以上各類危險都可能發生在網絡設備、操作係統或數據庫自身當中。對數據庫服務器進行安全保護時,都應將這些因素考慮在內。
數據庫安全-漏洞區域及示例
在重要數據庫服務器中,還存在著多種數據庫服務器的漏洞和錯誤配置。下麵列出了幾個實例。
安全特征不夠成熟-絕大多數常用的關係數據庫係統已經存在了十多年之久,並且具有強大的特性,產品非常成熟。但不幸的是,IT及安全專業人士認為理所當然應該具有的許多特征,在操作係統和現在普遍使用的數據庫係統中,並沒有提供。
非內建式數據庫標準安全性能
MSSQLServerSybaseOracle7Oracle8
帳戶鎖定設備nononoyes
重命名管理帳戶nononono
要求嚴密的口令nononoyes
陳舊的帳戶nononono
密碼失效noyesnoyes
登錄時間限製nononono
例如,上表列出了大多數IT專業人士期望或要求操作係統所應具備的特性,但在數據庫服務器的標準安全設施中並未出現。由於這些數據庫都可進行端口尋址的,操作係統的核心安全機製並未應用到與網絡直接聯接的數據庫中。一些產品,例如MicrosoftSQLServer,都可利用功能更加強大的WindowsNT安全機製去發現上麵提到的安全漏洞。但是,考慮到兼容性問題(運行環境並不全是WindowsNT),所以大多數依然執行MSSQLServer的安全標準。而實施則是另外一回事了。如果公司實用的是Oracle8,管理員如何能知道是否真地實施了安全特性?是否一直在全公司中得到實施?
這幾項特性相結合,使得與之相關的問題更加嚴峻。由於係統管理員的帳號是不能重命名的(SQL和Sybase是"sa",對於Oracle是"System"和"sys"),如果沒有密碼封鎖可用或已配置完畢,入侵者就可以對數據庫服務器發動強大字典式登錄進攻,最終能破解密碼,有什麼能夠擋住他們對服務器耐心,持久的高水平攻擊呢?
數據庫密碼的管理-在多數數據庫係統提供的安全標準中,沒有任何機製能夠保證某個用戶正在選擇有力的-或任意的-密碼。這一基本的安全問題需要細心的監督。此外還需要對全部密碼列表進行管理和安全檢查。例如,Oracle數據庫係統具有十個以上地特定地默認用戶帳號和密碼,此外還有用於管理重要數據庫操作的唯一密碼,如對Oracle數據庫開機程序的管理、訪問網絡的聽眾過程以及遠程訪問數據庫的權限等。如果安全出現了問題,這些係統的許多密碼都可讓入侵者對數據庫進行完全訪問,這些密碼甚至還被存儲在操作係統的普通文本文件裏。下麵有幾個示例:
OracleInternal密碼-Oracle內部密碼存放在文件名為"strXXX.cmd"的文本文件中,XXX是Oracle係統的ID或SID,默認值為"ORCL"。用在Oracle數據庫的啟動過程中,要用到OracleInternet密碼,具有隨意訪問數據庫資源的權力。這個文件應妥善保管,以用於基於WindowsNT的ORACLE程序。
Oracle監聽程序過程密碼-用於起動並停止Oracle監聽程序過程的密碼,該過程可將所有的新業務路由到係統上合適的Oracle例子中,需選擇一個保密性強的密碼替換係統的默認值,使用許可必須在"listener.ora"文件中得到保護,該文件存貯了Oracle所有的使用密碼。對密碼的不當訪問可能會使入侵者對基於Oracle的電子交易站點進行拒絕服務攻擊。
Oracle內部密碼-"orapw"文件許可控製-Oracle內部密碼和由SYSDBA授權的帳號密碼存貯在"Orapw"文本文件中。盡管文件已被加密,但在ORACLE的UNIX和WindowsNT的程序中,還是要限製該文件的使用權限。如果該文件被訪問,那麼遭解密的文件很容易遭到強有力的攻擊。