數(shù)據(jù)庫服務(wù)器實際上是每一個電子交易、金融和企業(yè)資源規(guī)劃(ERP)系統(tǒng)的基礎(chǔ),它還經(jīng)常包括來自商業(yè)伙伴和客戶的敏感信息。盡管這些系統(tǒng)的數(shù)據(jù)完整性和安全性是相當重要的,但對數(shù)據(jù)庫采取的安全檢查措施的級別還比不上操作系統(tǒng)和網(wǎng)絡(luò)的安全檢查措施的級別。許多因素都可能破壞數(shù)據(jù)的完整性并導(dǎo)致非法訪問,這些因素包括復(fù)雜程度、密碼安全性較差、誤配置、未被察覺的系統(tǒng)后門以及自適應(yīng)數(shù)據(jù)庫安全方法的強制性常規(guī)使用等。
數(shù)據(jù)庫安全問題為什么非常重要?
保護系統(tǒng)敏感信息和數(shù)字資產(chǎn)不受非法訪問。
任何公司的主要電子數(shù)字資產(chǎn)都存貯在現(xiàn)代的關(guān)系數(shù)據(jù)產(chǎn)品中。商業(yè)機構(gòu)和政府組織都是利用這些數(shù)據(jù)庫服務(wù)器得到人事信息,如員工的工資表,醫(yī)療記錄等。因此他們有責任保護別人的隱私,并為他們保密。數(shù)據(jù)庫服務(wù)器還存有以前的和將來的敏感的金融數(shù)據(jù),包括貿(mào)易記錄、商業(yè)合同及帳務(wù)數(shù)據(jù)等。象技術(shù)的所有權(quán)、工程數(shù)據(jù),甚至市場企劃等決策性的機密信息,必須對竟爭者保密,并阻止非法訪問,數(shù)據(jù)庫服務(wù)器還包括詳細的顧客信息,如財務(wù)帳目,信用卡號及商業(yè)伙伴的信用信息等。
數(shù)據(jù)庫是個極為復(fù)雜的系統(tǒng),因此很難進行正確的配置和安全維護
數(shù)據(jù)庫服務(wù)器的應(yīng)用相當復(fù)雜,掌握起來非常困難-當然竟爭者使用的操作系統(tǒng)也是一樣的復(fù)雜。諸如Oracle、sybase、Microsoft SQL服務(wù)器都具有以下特征:用戶帳號及密碼、校驗系統(tǒng)、優(yōu)先級模型和控制數(shù)據(jù)庫目標的特別許可、內(nèi)置式命令(存儲的步驟或包)、唯一的腳本和編程語言(通常為SQL的特殊衍生語)、middleware、網(wǎng)絡(luò)協(xié)議、補丁和服務(wù)包⑶坑辛Φ氖菘夤芾硎滌貿(mào)絳蠔涂⒐ぞ?。写夃DBA都忙于管理復(fù)雜的系統(tǒng),所以很可能沒有檢查出嚴重的安全隱患和不當?shù)呐渲?,甚至根本沒有進行檢測。所以,正是由于傳統(tǒng)的安全體系在很大程度上忽略了數(shù)據(jù)庫安全這一主題,使數(shù)據(jù)庫專業(yè)人員也通常沒有把安全問題當作他們的首要任務(wù)?!白赃m應(yīng)網(wǎng)絡(luò)安全”的理念-將安全問題看作持續(xù)不斷的“工作進程”,而不是一次性的檢查-并未被大多數(shù)數(shù)據(jù)庫管理者所接受。
保障數(shù)據(jù)庫服務(wù)器上的網(wǎng)絡(luò)和操作系統(tǒng)數(shù)據(jù)安全是至關(guān)重要的,但這些措施對于保護數(shù)據(jù)庫服務(wù)器的安全還很不夠。
在許多資深安全專家中普遍存在著一個錯誤概念,他們認為:一旦訪問并鎖定了關(guān)鍵的網(wǎng)絡(luò)服務(wù)和操作系統(tǒng)的漏洞,服務(wù)器上的所有應(yīng)用程序就得到了安全保障?,F(xiàn)代數(shù)據(jù)庫系統(tǒng)具有多種特征和性能配置方式,在使用時可能會誤用,或危及數(shù)據(jù)的保密性、有效性和完整性。首先,所有現(xiàn)代關(guān)系型數(shù)據(jù)庫系統(tǒng)都是“可從端口尋址的”,這意味著任何人只要有合適的查詢工具,就都可與數(shù)據(jù)庫直接相連,并能躲開操作系統(tǒng)的安全機制。例如:可以用TCP/IP協(xié)議從1521和1526端口訪問Oracle 7.3和8數(shù)據(jù)庫。多數(shù)數(shù)據(jù)庫系統(tǒng)還有眾所周知的默認帳號和密碼,可支持對數(shù)據(jù)庫資源的各級訪問。從這兩個簡單的數(shù)據(jù)相結(jié)合,很多重要的數(shù)據(jù)庫系統(tǒng)很可能受到威協(xié)。不幸的是,高水平的入侵者還沒有停止對數(shù)據(jù)庫的攻擊。
拙劣的數(shù)據(jù)庫安全保障設(shè)施不僅會危及數(shù)據(jù)庫的安全,還會影響到服務(wù)器的操作系統(tǒng)和其它信用系統(tǒng)。
還有一個不很明顯的原因說明了保證數(shù)據(jù)庫安全的重要性-數(shù)據(jù)庫系統(tǒng)自身可能會提供危及整個網(wǎng)絡(luò)體系的機制。例如,某個公司可能會用數(shù)據(jù)庫服務(wù)器保存所有的技術(shù)手冊、文檔和白皮書的庫存清單。數(shù)據(jù)庫里的這些信息并不是特別重要的,所以它的安全優(yōu)先級別不高。即使運行在安全狀況良好的操作系統(tǒng)中,入侵者也可通過“擴展入駐程序”等強有力的內(nèi)置數(shù)據(jù)庫特征,利用對數(shù)據(jù)庫的訪問,獲取對本地操作系統(tǒng)的訪問權(quán)限。這些程序可以發(fā)出管理員級的命令,訪問基本的操作系統(tǒng)及其全部的資源。如果這個特定的數(shù)據(jù)庫系統(tǒng)與其它服務(wù)器有信用關(guān)系,那么入侵者就會危及整個網(wǎng)絡(luò)域的安全。
數(shù)據(jù)庫是新型電子交易、企業(yè)資源規(guī)劃(ERP)和其它重要商業(yè)系統(tǒng)的基礎(chǔ)。
在電子商務(wù)、電子貿(mào)易的著眼點集中于WEB服務(wù)器、Java和其它新技術(shù)的同時,應(yīng)該記住這些以用戶為導(dǎo)向和企業(yè)對企業(yè)的系統(tǒng)都是以Web服務(wù)器后的關(guān)系數(shù)據(jù)庫為基礎(chǔ)的。它們的安全直接關(guān)系到系統(tǒng)的有效性、數(shù)據(jù)和交易的完整性、保密性。系統(tǒng)拖延效率欠佳,不僅影響商業(yè)活動,還會影響公司的信譽。不可避免地,這些系統(tǒng)受到入侵的可能性更大,但是并未對商業(yè)伙伴和客戶敏感信息的保密性加以更有效的防范。此外,ERP和管理系統(tǒng),如ASPR/3和PeopleSoft等,都是建立在相同標準的數(shù)據(jù)庫系統(tǒng)中。無人管理的安全漏洞與時間拖延、系統(tǒng)完整性問題和客戶信任等有直接的關(guān)系。
我需要尋找哪此類型的安全漏洞呢?
傳統(tǒng)的數(shù)據(jù)庫安全系統(tǒng)只側(cè)重于以下幾項:用戶帳戶、作用和對特定數(shù)據(jù)庫目標的操作許可。例如,對表單和存儲步驟的訪問。必須對數(shù)據(jù)庫系統(tǒng)做范圍更廣的徹底安全分析,找出所有可能領(lǐng)域內(nèi)的潛在漏洞,包括以下提到的各項內(nèi)容。
與銷售商提供的軟件相關(guān)的風險-軟件的BUG、缺少操作系統(tǒng)補丁、脆弱的服務(wù)和選擇不安全的默認配置。
與管理有關(guān)的風險 -可用的但并未正確使用的安全選項、危險的默認設(shè)置、給用戶更多的不適當?shù)臋?quán)限,對系統(tǒng)配置的未經(jīng)授權(quán)的改動。
與用戶活動有關(guān)的風險-密碼長度不夠、對重要數(shù)據(jù)的非法訪問以及竊取數(shù)據(jù)庫內(nèi)容等惡意行動。
以上各類危險都可能發(fā)生在網(wǎng)絡(luò)設(shè)備、操作系統(tǒng)或數(shù)據(jù)庫自身當中。對數(shù)據(jù)庫服務(wù)器進行安全保護時,都應(yīng)將這些因素考慮在內(nèi)。
數(shù)據(jù)庫安全-漏洞區(qū)域及示例
在重要數(shù)據(jù)庫服務(wù)器中,還存在著多種數(shù)據(jù)庫服務(wù)器的漏洞和錯誤配置。下面列出了幾個實例。
安全特征不夠成熟-絕大多數(shù)常用的關(guān)系數(shù)據(jù)庫系統(tǒng)已經(jīng)存在了十多年之久,并且具有強大的特性,產(chǎn)品非常成熟。但不幸的是,IT及安全專業(yè)人士認為理所當然應(yīng)該具有的許多特征,在操作系統(tǒng)和現(xiàn)在普遍使用的數(shù)據(jù)庫系統(tǒng)中,并沒有提供。
非內(nèi)建式數(shù)據(jù)庫標準安全性能
MS SQL Server Sybase Oracle 7 Oracle 8
帳戶鎖定設(shè)備 no no no yes
重命名管理帳戶 no no no no
要求嚴密的口令 no no no yes
陳舊的帳戶 no no no no
密碼失效 no yes no yes
登錄時間限制 no no no no
例如,上表列出了大多數(shù)IT專業(yè)人士期望或要求操作系統(tǒng)所應(yīng)具備的特性,但在數(shù)據(jù)庫服務(wù)器的標準安全設(shè)施中并未出現(xiàn)。由于這些數(shù)據(jù)庫都可進行端口尋址的,操作系統(tǒng)的核心安全機制并未應(yīng)用到與網(wǎng)絡(luò)直接聯(lián)接的數(shù)據(jù)庫中。一些產(chǎn)品,例如Microsoft SQL Server, 都可利用功能更加強大的Windows NT安全機制去發(fā)現(xiàn)上面提到的安全漏洞。但是,考慮到兼容性問題(運行環(huán)境并不全是Windows NT),所以大多數(shù)依然執(zhí)行MS SQL Server的安全標準。而實施則是另外一回事了。如果公司實用的是Oracle 8,管理員如何能知道是否真地實施了安全特性?是否一直在全公司中得到實施?
這幾項特性相結(jié)合,使得與之相關(guān)的問題更加嚴峻。由于系統(tǒng)管理員的帳號是不能重命名的(SQL和Sybase是“sa”,對于Oracle是“System”和“sys”),如果沒有密碼封鎖可用或已配置完畢,入侵者就可以對數(shù)據(jù)庫服務(wù)器發(fā)動強大字典式登錄進攻,最終能破解密碼,有什么能夠擋住他們對服務(wù)器耐心,持久的高水平攻擊呢?
數(shù)據(jù)庫密碼的管理-在多數(shù)數(shù)據(jù)庫系統(tǒng)提供的安全標準中,沒有任何機制能夠保證某個用戶正在選擇有力的-或任意的-密碼。這一基本的安全問題需要細心的監(jiān)督。此外還需要對全部密碼列表進行管理和安全檢查。例如,Oracle數(shù)據(jù)庫系統(tǒng)具有十個以上地特定地默認用戶帳號和密碼,此外還有用于管理重要數(shù)據(jù)庫操作的唯一密碼,如對Oracle數(shù)據(jù)庫開機程序的管理、訪問網(wǎng)絡(luò)的聽眾過程以及遠程訪問數(shù)據(jù)庫的權(quán)限等。如果安全出現(xiàn)了問題,這些系統(tǒng)的許多密碼都可讓入侵者對數(shù)據(jù)庫進行完全訪問,這些密碼甚至還被存儲在操作系統(tǒng)的普通文本文件里。下面有幾個示例:
Oracle Internal 密碼-Oracle內(nèi)部密碼存放在文件名為“strXXX.cmd”的文本文件中,XXX是Oracle系統(tǒng)的ID或SID,默認值為“ORCL”。用在Oracle數(shù)據(jù)庫的啟動過程中,要用到Oracle Internet密碼,具有隨意訪問數(shù)據(jù)庫資源的權(quán)力。這個文件應(yīng)妥善保管,以用于基于Windows NT的ORACLE程序。
Oracle監(jiān)聽程序過程密碼-用于起動并停止Oracle監(jiān)聽程序過程的密碼,該過程可將所有的新業(yè)務(wù)路由到系統(tǒng)上合適的Oracle例子中,需選擇一個保密性強的密碼替換系統(tǒng)的默認值,使用許可必須在“l(fā)istener.ora”文件中得到保護,該文件存貯了Oracle所有的使用密碼。對密碼的不當訪問可能會使入侵者對基于Oracle的電子交易站點進行拒絕服務(wù)攻擊。
Oracle內(nèi)部密碼 -“orapw”文件許可控制-Oracle內(nèi)部密碼和由SYSDBA授權(quán)的帳號密碼存貯在“Orapw”文本文件中。盡管文件已被加密,但在ORACLE的UNIX和Windows NT的程序中,還是要限制該文件的使用權(quán)限。如果該文件被訪問,那么遭解密的文件很容易遭到強有力的攻擊。
這些例子說明了管理員、系統(tǒng)密碼和帳號是何等的重要,它們都可能會遭到意想不到的攻擊方法的攻擊。注意密碼管理問題決不僅限于Oracle數(shù)據(jù)庫,幾乎所有主要數(shù)據(jù)庫提供商的產(chǎn)品都有這種問題。
操作系統(tǒng)的后門-許多數(shù)據(jù)庫系統(tǒng)的特征參數(shù)盡管方便了DBA,但也為數(shù)據(jù)庫服務(wù)器主機操作系統(tǒng)留下了后門。
如上所述,對Sybase或SQL服務(wù)器的“sa”密碼造成危害的入侵者有可能利用“擴展入駐程序”,得到基本操作系統(tǒng)的使用權(quán)限。以“sa”的身份登錄,入侵者使用擴展入駐程序xp–cmdshell,該程序允許Sybase或SQL服務(wù)器的用戶運行系統(tǒng)指令,就象該用戶在服務(wù)器控制臺上運行指令一樣。例如,可實用下列SQL指令添加一個Windows NT帳號,帳號名為“hacker1”,密碼為“nopassoword”,并把“hacker1”添加到“Administrators”組:
xp-cmdshell ‘net user hacker1 nopassword/ADD’
go
xp-comdshell ’net localgroup/ADD Administrators hacker1’
go
現(xiàn)在這個非法入侵者就成了Windows NT的管理員了(我們只能祈禱這個SQL服務(wù)器不是域控制器)。這個簡單的攻擊之所以成功,是因為命令被提交給實用Windows NT帳號的操作系統(tǒng),而MSSQLServer的服務(wù)就運行在這個帳號下。在默認情況下,這個帳號就是“LocalSystem”帳號---本地Windows NT系統(tǒng)中最有效力的帳號。另一個途徑是黑客可能使用SQL服務(wù)器,利用入駐程序xp-regread從注冊表中讀出加密的Windows NT SAM密碼,對操作系統(tǒng)的安全造成威脅。由于有幾種免費的Windows NT密碼攻擊器軟件,因此保管好加密的Windows NT密碼的安全變得格外重要。以下例子說明了入侵者是怎樣得到信息的:
xp-regread’HKEY–LOCAL–MACHINE’,’SECURITYSAMDomainsAccount’,’F’
注意,從注冊表中讀出加密密碼是一件本地Windows NT管理員帳號都無法做到的事。SQL服務(wù)器之所以能夠做到,是因為默認方式運行的SQL服務(wù)使用的恰恰就是“LocalSystem”帳號。
Oracle數(shù)據(jù)庫系統(tǒng)還具有很多有用的特征,可用于對操作系統(tǒng)自帶文件系統(tǒng)的直接訪問。例如在合法訪問時,UTL_FILE軟件包允許用戶向主機操作系統(tǒng)進行讀寫文件的操作。UTL_FILE_DIR簡檔變量很容易配置錯誤,或被故意設(shè)置為允許Oracle用戶用UTL_FILE軟件包在文件系統(tǒng)的任何地方進行寫入操作,這樣也對主機操作系統(tǒng)構(gòu)成了潛在的威脅。
校驗-關(guān)系數(shù)據(jù)庫系統(tǒng)的校驗系統(tǒng)可以記錄下信息和事件,從基本情況到任一細節(jié),無一遺漏。但是校驗系統(tǒng)只在合理使用和配置的前提下,才能提供有用的安全防范和警告信息。當入侵者正在試圖侵入特定的數(shù)據(jù)庫服務(wù)器時,這些特征可及早給出警告信息,為檢測和彌補損失提供了寶貴的線索。
特洛伊木馬程序-盡管人們知道操作系統(tǒng)中的特洛伊木馬程序已經(jīng)有好幾年了,但是數(shù)據(jù)庫管理員還需注意到木馬程序帶給系統(tǒng)入駐程序的威脅。一個著名的特洛伊木馬程序修改了入駐程序的密碼,并且當更新密碼時,入侵者能得到新的密碼。例如,某個個人可以在sp–password系統(tǒng)入駐程序中添加幾行命令,就可在表單中增加新的密碼,用e-mail傳遞密碼或?qū)⒚艽a寫入外部文件以備日后使用。這一辦法可連續(xù)獲取密碼,直到入侵者得到的“sa”密碼被更換-使得更深層的入侵未被察覺。一個入侵者或心懷不滿的雇員只需進入系統(tǒng)一次,放置好特洛伊木馬后就可得到以后的一系列密碼。
總結(jié)
安全專業(yè)人士、校驗員、DBA和電子商務(wù)的規(guī)劃人員在部署重要商業(yè)系統(tǒng)時,都需注意到數(shù)據(jù)庫的安全問題。要想了解的系統(tǒng)的安全狀態(tài)和發(fā)展方向,您就得部署系統(tǒng),以對數(shù)據(jù)庫服務(wù)器做出最徹底的評估,并進行常規(guī)的安全評估。所有系統(tǒng)都應(yīng)該采用信息風險管理原則,以進行監(jiān)督、檢測,對安全漏洞做出響應(yīng)。
更多信息請查看IT技術(shù)專欄