嚴(yán)守七道關(guān) 保證Web數(shù)據(jù)庫(kù)安全性
—— 閱讀:10735次
關(guān)于網(wǎng)絡(luò)數(shù)據(jù)庫(kù)里一些商業(yè)數(shù)據(jù)被盜竊后公布于網(wǎng)上;公司商業(yè)網(wǎng)站的產(chǎn)品價(jià)格數(shù)據(jù)又被惡意修改,類似這樣的案例,在網(wǎng)上搜索了一下,實(shí)在不少。其原因只有一個(gè),就是來(lái)自網(wǎng)絡(luò)上對(duì)Web數(shù)據(jù)庫(kù)攻擊。那么,在Web環(huán)境下的數(shù)據(jù)庫(kù)是否能有足夠的安全為企業(yè)服務(wù)呢?答案是肯定的。
Web數(shù)據(jù)庫(kù)是基于Internet/Intranet的應(yīng)用系統(tǒng),由于互連網(wǎng)開放性和通信協(xié)議的安全缺陷,以及在網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)存儲(chǔ)和對(duì)其訪問(wèn)與處理的分布性特點(diǎn),網(wǎng)上傳輸?shù)臄?shù)據(jù)容易受到破壞、竊取、篡改、轉(zhuǎn)移和丟失。這些危害通常是對(duì)網(wǎng)絡(luò)的攻擊引起的。到現(xiàn)在,針對(duì)Web數(shù)據(jù)庫(kù)的應(yīng)用級(jí)入侵已經(jīng)變得越來(lái)越猖獗,如SQL注入、跨站點(diǎn)腳本攻擊和未經(jīng)授權(quán)的用戶訪問(wèn)等。所有這些入侵都有可能繞過(guò)前臺(tái)安全系統(tǒng)并對(duì)數(shù)據(jù)庫(kù)系統(tǒng)攻擊。如何保證Web數(shù)據(jù)庫(kù)的安全性已成為新的課題。
第一關(guān)、對(duì)用戶安全管理
Web數(shù)據(jù)庫(kù)是個(gè)極為復(fù)雜的系統(tǒng),因此很難進(jìn)行正確的配置和安全維護(hù),當(dāng)然,必須首先要保證的就是數(shù)據(jù)庫(kù)用戶的權(quán)限的安全性。當(dāng)用戶通過(guò)Web方式要對(duì)數(shù)據(jù)庫(kù)中的對(duì)象(表、視圖、觸發(fā)器、存儲(chǔ)過(guò)程等)進(jìn)行操作時(shí),必須通過(guò)數(shù)據(jù)庫(kù)訪問(wèn)的身份認(rèn)證。多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)還有眾所周知的默認(rèn)賬號(hào)和密碼,可支持對(duì)數(shù)據(jù)庫(kù)資源的各級(jí)訪問(wèn)。因此,很多重要的數(shù)據(jù)庫(kù)系統(tǒng)很可能受到威協(xié)。用戶存取權(quán)限是指不同的用戶對(duì)于不同的數(shù)據(jù)對(duì)象有不同的操作權(quán)限。存取權(quán)限由兩個(gè)要素組成:數(shù)據(jù)對(duì)象和操作類型。定義一個(gè)用戶的存取權(quán)限就是要定義這個(gè)用戶可以在哪些數(shù)據(jù)對(duì)象上進(jìn)行哪些類型的操作。權(quán)限分系統(tǒng)權(quán)限和對(duì)象權(quán)限兩種。系統(tǒng)權(quán)限由DBA授予某些數(shù)據(jù)庫(kù)用戶,只有得到系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫(kù)用戶。對(duì)象權(quán)限是授予數(shù)據(jù)庫(kù)用戶對(duì)某些數(shù)據(jù)對(duì)象進(jìn)行某些操作的權(quán)限,它既可由DBA授權(quán),也可由數(shù)據(jù)對(duì)象的創(chuàng)建者授予。
第二關(guān)、定義視圖
為不同的用戶定義不同的視圖,可以限制用戶的訪問(wèn)范圍。通過(guò)視圖機(jī)制把需要保密的數(shù)據(jù)對(duì)無(wú)權(quán)存取這些數(shù)據(jù)的用戶隱藏起來(lái),可以對(duì)數(shù)據(jù)庫(kù)提供一定程度的安全保護(hù)。實(shí)際應(yīng)用中常將視圖機(jī)制與授權(quán)機(jī)制結(jié)合起來(lái)使用,首先用視圖機(jī)制屏蔽一部分保密數(shù)據(jù),然后在視圖上進(jìn)一步進(jìn)行授權(quán)。
第三關(guān)、數(shù)據(jù)加密
數(shù)據(jù)安全隱患無(wú)處不在。一些機(jī)密數(shù)據(jù)庫(kù)、商業(yè)數(shù)據(jù)等必須防止它人非法訪問(wèn)、修改、拷貝。如何保證數(shù)據(jù)安全?數(shù)據(jù)加密是應(yīng)用最廣、成本最低廉而相對(duì)最可靠的方法。數(shù)據(jù)加密是保護(hù)數(shù)據(jù)在存儲(chǔ)和傳遞過(guò)程中不被竊取或修改的有效手段。數(shù)據(jù)加密系統(tǒng)包括對(duì)系統(tǒng)的不同部分要選擇何種加密算法、需要多高的安全級(jí)別、各算法之間如何協(xié)作等因素。在系統(tǒng)的不同部分要綜合考慮執(zhí)行效率與安全性之間的平衡。因?yàn)橐话銇?lái)講安全性總是以犧牲系統(tǒng)效率為代價(jià)的。如果要在Internet上的兩個(gè)客戶端傳遞安全數(shù)據(jù),這就要求客戶端之間可以彼此判斷對(duì)方的身份,傳遞的數(shù)據(jù)必須加密,當(dāng)數(shù)據(jù)在傳輸中被更改時(shí)可以被發(fā)覺(jué)。
第四關(guān)、事務(wù)管理和故障恢復(fù)
事務(wù)管理和故障恢復(fù)主要是對(duì)付系統(tǒng)內(nèi)發(fā)生的自然因素故障,保證數(shù)據(jù)和事務(wù)的一致性和完整性。
故障恢復(fù)的主要措施是進(jìn)行日志記錄和數(shù)據(jù)復(fù)制。在網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)中,分布事務(wù)首先要分解為多個(gè)子事務(wù)到各個(gè)站點(diǎn)上去執(zhí)行,各個(gè)服務(wù)器之間還必須采取合理的算法進(jìn)行分布式并發(fā)控制和提交,以保證事務(wù)的完整性。事務(wù)運(yùn)行的每一步結(jié)果都記錄在系統(tǒng)日志文件中,并且對(duì)重要數(shù)據(jù)進(jìn)行復(fù)制,發(fā)生故障時(shí)根據(jù)日志文件利用數(shù)據(jù)副本準(zhǔn)確地完成事務(wù)的恢復(fù)。
第五關(guān)、數(shù)據(jù)庫(kù)備份與恢復(fù)
計(jì)算機(jī)同其他設(shè)備一樣,都可能發(fā)生故障。計(jì)算機(jī)故障的原因多種多樣,包括磁盤故障、電源故障、軟件故障、災(zāi)害故障以及人為破壞等。一旦發(fā)生這種情況,就可能造成數(shù)據(jù)庫(kù)的數(shù)據(jù)丟失。因此數(shù)據(jù)庫(kù)系統(tǒng)必須采取必要的措施,以保證發(fā)生故障時(shí),可以恢復(fù)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)的備份和恢復(fù)機(jī)制就是保證在數(shù)據(jù)庫(kù)系統(tǒng)出故障時(shí),能夠?qū)?shù)據(jù)庫(kù)系統(tǒng)還原到正常狀態(tài)。加強(qiáng)數(shù)據(jù)備份非常重要,數(shù)據(jù)庫(kù)擁有很多關(guān)鍵的數(shù)據(jù),這些數(shù)據(jù)一旦遭到破壞后果不堪設(shè)想,而這往往是入侵者真正關(guān)心的東西。不少管理員在這點(diǎn)上作得并不好,不是備份不完全,就是備份不及時(shí)。數(shù)據(jù)備份需要仔細(xì)計(jì)劃,制定出一個(gè)策略測(cè)試后再去實(shí)施,備份計(jì)劃也需要不斷地調(diào)整。
第六關(guān)、審計(jì)追蹤機(jī)制
審計(jì)追蹤機(jī)制是指系統(tǒng)設(shè)置相應(yīng)的日志記錄,特別是對(duì)數(shù)據(jù)更新、刪除、修改的記錄,以便日后查證。日志記錄的內(nèi)容可以包括操作人員的名稱、使用的密碼、用戶的IP地址、登錄時(shí)間、操作內(nèi)容等。若發(fā)現(xiàn)系統(tǒng)的數(shù)據(jù)遭到破壞,可以根據(jù)日志記錄追究責(zé)任,或者從日志記錄中判斷密碼是否被盜,以便修改密碼,重新分配權(quán)限,確保系統(tǒng)的安全。
第七關(guān)、重點(diǎn)在服務(wù)器
Web數(shù)據(jù)庫(kù)的三層體系結(jié)構(gòu)中,數(shù)據(jù)存放在數(shù)據(jù)庫(kù)服務(wù)器中,大部分的事務(wù)處理及商業(yè)邏輯處理在應(yīng)用服務(wù)器中進(jìn)行,由應(yīng)用服務(wù)器提出對(duì)數(shù)據(jù)庫(kù)的操作請(qǐng)求。理論上,既可以通過(guò)Web頁(yè)面調(diào)用業(yè)務(wù)處理程序來(lái)訪問(wèn)數(shù)據(jù)庫(kù),也可以繞過(guò)業(yè)務(wù)處理程序,使用一些數(shù)據(jù)庫(kù)客戶端工具直接登錄數(shù)據(jù)庫(kù)服務(wù)器,存取操作其中的數(shù)據(jù)。所以,數(shù)據(jù)庫(kù)服務(wù)器的安全設(shè)置至關(guān)重要。用IDS(入侵檢測(cè)系統(tǒng))保衛(wèi)數(shù)據(jù)庫(kù)安全逐步普及,這種安全技術(shù)將傳統(tǒng)的網(wǎng)絡(luò)和操作系統(tǒng)級(jí)入侵探測(cè)系統(tǒng)(IDS)概念應(yīng)用于數(shù)據(jù)庫(kù)。應(yīng)用IDS提供主動(dòng)的、針對(duì)SQL的保護(hù)和監(jiān)視,可以保護(hù)預(yù)先包裝或自行開發(fā)的Web應(yīng)用。