這些例子說明了管理員、係統密碼和帳號是何等的重要,它們都可能會遭到意想不到的攻擊方法的攻擊。注意密碼管理問題決不僅限於Oracle數據庫,幾乎所有主要數據庫提供商的產品都有這種問題。
操作係統的後門-許多數據庫係統的特征參數盡管方便了DBA,但也為數據庫服務器主機操作係統留下了後門。
如上所述,對Sybase或SQL服務器的"sa"密碼造成危害的入侵者有可能利用"擴展入駐程序",得到基本操作係統的使用權限。以"sa"的身份登錄,入侵者使用擴展入駐程序xp-cmdshell,該程序允許Sybase或SQL服務器的用戶運行係統指令,就象該用戶在服務器控製台上運行指令一樣。例如,可實用下列SQL指令添加一個WindowsNT帳號,帳號名為"hacker1",密碼為"nopassoword",並把"hacker1"添加到"Administrators"組:
xp-cmdshell'netuserhacker1nopassword/ADD'
go
xp-comdshell'netlocalgroup/ADDAdministratorshacker1'
go
現在這個非法入侵者就成了WindowsNT的管理員了(我們隻能祈禱這個SQL服務器不是域控製器)。這個簡單的攻擊之所以成功,是因為命令被提交給實用WindowsNT帳號的操作係統,而MSSQLServer的服務就運行在這個帳號下。在默認情況下,這個帳號就是"LocalSystem"帳號---本地WindowsNT係統中最有效力的帳號。另一個途徑是黑客可能使用SQL服務器,利用入駐程序xp-regread從注冊表中讀出加密的WindowsNTSAM密碼,對操作係統的安全造成威脅。由於有幾種免費的WindowsNT密碼攻擊器軟件,因此保管好加密的WindowsNT密碼的安全變得格外重要。以下例子說明了入侵者是怎樣得到信息的:
xp-regread'HKEY-LOCAL-MACHINE','SECURITYSAMDomainsAccount','F'
注意,從注冊表中讀出加密密碼是一件本地WindowsNT管理員帳號都無法做到的事。SQL服務器之所以能夠做到,是因為默認方式運行的SQL服務使用的恰恰就是"LocalSystem"帳號。
Oracle數據庫係統還具有很多有用的特征,可用於對操作係統自帶文件係統的直接訪問。例如在合法訪問時,UTL_FILE軟件包允許用戶向主機操作係統進行讀寫文件的操作。UTL_FILE_DIR簡檔變量很容易配置錯誤,或被故意設置為允許Oracle用戶用UTL_FILE軟件包在文件係統的任何地方進行寫入操作,這樣也對主機操作係統構成了潛在的威脅。
校驗-關係數據庫係統的校驗係統可以記錄下信息和事件,從基本情況到任一細節,無一遺漏。但是校驗係統隻在合理使用和配置的前提下,才能提供有用的安全防範和警告信息。當入侵者正在試圖侵入特定的數據庫服務器時,這些特征可及早給出警告信息,為檢測和彌補損失提供了寶貴的線索。
特洛伊木馬程序-盡管人們知道操作係統中的特洛伊木馬程序已經有好幾年了,但是數據庫管理員還需注意到木馬程序帶給係統入駐程序的威脅。一個著名的特洛伊木馬程序修改了入駐程序的密碼,並且當更新密碼時,入侵者能得到新的密碼。例如,某個個人可以在sp-password係統入駐程序中添加幾行命令,就可在表單中增加新的密碼,用e-mail傳遞密碼或將密碼寫入外部文件以備日後使用。這一辦法可連續獲取密碼,直到入侵者得到的"sa"密碼被更換-使得更深層的入侵未被察覺。一個入侵者或心懷不滿的雇員隻需進入係統一次,放置好特洛伊木馬後就可得到以後的一係列密碼。
總結
安全專業人士、校驗員、DBA和電子商務的規劃人員在部署重要商業係統時,都需注意到數據庫的安全問題。要想了解的係統的安全狀態和發展方向,您就得部署係統,以對數據庫服務器做出最徹底的評估,並進行常規的安全評估。所有係統都應該采用信息風險管理原則,以進行監督、檢測,對安全漏洞做出響應。