|
Oracle的銷售在向客戶兜售其數(shù)據(jù)庫系統(tǒng)一直把它吹捧為牢不可破的,耍嘴皮子容易,兌現(xiàn)起來可就不那么容易了。不管什么計(jì)算機(jī)系統(tǒng),人們總能夠找到攻擊它的方法,Oracle也不例外。本文將和大家從黑客的角度討論黑客是用哪些方法把黑手伸向了你原以為他們不能觸及的數(shù)據(jù),希望作為Oracle的數(shù)據(jù)庫管理員能夠清楚的闡明自己基礎(chǔ)架構(gòu)的哪些區(qū)域比較容易受到攻擊。同時(shí)我們也會討論保護(hù)系統(tǒng)防范攻擊的方法。
1.SQL注入攻擊
如今大部分的Oracle數(shù)據(jù)庫都具有為某種類型網(wǎng)絡(luò)應(yīng)用服務(wù)的后端數(shù)據(jù)存儲區(qū),網(wǎng)頁應(yīng)用使數(shù)據(jù)庫更容易成為我們的攻擊目標(biāo)體現(xiàn)在三個(gè)方面。其一,這些應(yīng)用界面非常復(fù)雜,具有多個(gè)組成成分,使數(shù)據(jù)庫管理員難以對它們進(jìn)行徹底檢查。其二,阻止程序員侵入的屏障很低,即便不是C語言的編程專家,也能夠?qū)σ恍╉撁孢M(jìn)行攻擊。下面我們會簡單地解釋為什么這對我們這么重要。第三個(gè)原因是優(yōu)先級的問題。網(wǎng)頁應(yīng)用一直處于發(fā)展的模式,所以他們在不斷變化,推陳出新。這樣安全問題就不是一個(gè)必須優(yōu)先考慮的問題。
SQL注入攻擊是一種很簡單的攻擊,在頁面表單里輸入信息,悄悄地加入一些特殊代碼,誘使應(yīng)用程序在數(shù)據(jù)庫里執(zhí)行這些代碼,并返回一些程序員沒有料到的結(jié)果。例如,有一份用戶登錄表格,要求輸入用戶名和密碼才能登錄,在用戶名這一欄,輸入以下代碼:
cyw’);selectusername,passwordfromall_users;–
如果數(shù)據(jù)庫程序員沒有聰明到能夠檢查出類似的信息并“清洗”掉我們的輸入,該代碼將在遠(yuǎn)程數(shù)據(jù)庫系統(tǒng)執(zhí)行,然后這些關(guān)于所有用戶名和密碼的敏感數(shù)據(jù)就會返回到我們的瀏覽器。
你可能會認(rèn)為這是在危言聳聽,不過還有更絕的。DavidLitchfield在他的著作《Oracle黑客手冊》(OracleHacker’sHandbook)中把某種特殊的pl/sql注入攻擊美其名曰:圣杯(holygrail),因?yàn)樗racle8到Oracle10g的所有Oracle數(shù)據(jù)庫版本。很想知道其作用原理吧。你可以利用一個(gè)被稱為DBMS_EXPORT_EXTENSION的程序包,使用注入攻擊獲取執(zhí)行一個(gè)異常處理程序的代碼,該程序會賦予用戶或所有相關(guān)用戶數(shù)據(jù)庫管理員的特權(quán)。
這就是Oracle發(fā)布的著名安全升級補(bǔ)丁SecurityAlert68所針對的漏洞。不過據(jù)Litchfield稱,這些漏洞是永遠(yuǎn)無法完全修補(bǔ)完畢的。
防范此類攻擊的方法
總而言之,雖說沒有萬能的防彈衣,但鑒于這個(gè)問題涉及到所有面向網(wǎng)絡(luò)的應(yīng)用軟件,還是要盡力防范。目前市面上有各式各樣可加以利用的SQL注入檢測技術(shù)。
對于軟件開發(fā)人員來說,很多軟件包都能夠幫助你“清洗”輸入信息。如果你調(diào)用對從頁面表單接受的每個(gè)值都調(diào)用清洗例行程序進(jìn)行處理,這樣可以更加嚴(yán)密的保護(hù)你的系統(tǒng)。不過,最好使用SQL注入工具對軟件進(jìn)行測試和驗(yàn)證,以確保萬無一失。
。.默認(rèn)密碼
Oracle數(shù)據(jù)庫是一個(gè)龐大的系統(tǒng),提供了能夠創(chuàng)建一切的模式。絕大部分的系統(tǒng)自帶用戶登錄都配備了預(yù)設(shè)的默認(rèn)密碼。想知道數(shù)據(jù)庫管理員工作是不是夠勤奮?這里有一個(gè)方法可以找到答案?纯聪旅孢@些最常用的預(yù)設(shè)用戶名和密碼是不是能夠登錄到數(shù)據(jù)庫吧:
UsernamePassword
applsysapps
ctxsyschange_on_install
dbsnmpdbsnmp
outlnoutln
owaowa
perfstatperfstat
scotttiger
systemchange_on_install
systemmanager
syschange_on_install
sysmanager
就算數(shù)據(jù)庫管理員已經(jīng)很勤奮的把這些默認(rèn)配對都改了,有時(shí)候想猜出登錄密碼也不是一件困難的事情,逐個(gè)試試“oracle”、“oracle4”、“oracle8i”、“oracle11g”,看看碰巧是不是有一個(gè)能登錄上去的。
PeteFinnigan提供了一份關(guān)于缺省用戶和對應(yīng)密碼的名單,該名單非常全面而且是最新的,并包括已經(jīng)加密的密碼。如果你用all_users來進(jìn)行查詢,可以嘗試并比較一下這份名單。
防范此類攻擊的方法
作為數(shù)據(jù)庫管理員,應(yīng)該定期審核所有的數(shù)據(jù)庫密碼,如果某些商業(yè)方面的阻力使你不能輕易更改容易被人猜出的密碼,你可以盡量心平氣和地和相關(guān)人員解釋,用一些直觀的例子來闡明如果不修改密碼的話會有什么不好的事情發(fā)生,會有什么樣的風(fēng)險(xiǎn)存在。
Oracle也提供了密碼安全profile,你可以激活該profile,在某種水平上加強(qiáng)數(shù)據(jù)庫密碼的復(fù)雜性,還可以執(zhí)行定期密碼失效。要注意要把這個(gè)功能設(shè)置為只對通過網(wǎng)絡(luò)服務(wù)器或中間層應(yīng)用服務(wù)器登錄的事件起作用。 本新聞共 3頁,當(dāng)前在第 1頁 1 2 3 |
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|