文/和旭冉
(西北工業(yè)大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 陜西省西安市 710129)
隨著計算機(jī)網(wǎng)絡(luò)的不斷普及,越來越多的領(lǐng)域都需要應(yīng)用數(shù)據(jù)庫系統(tǒng),系統(tǒng)網(wǎng)絡(luò)化、全球化已成為發(fā)展的趨勢。但是數(shù)據(jù)庫系統(tǒng)所面臨的威脅也變得越來越嚴(yán)峻,加上人們對信息安全的重視程度不斷提升,網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)安全防護(hù)已成為其應(yīng)用中必須解決的首要問題之一。
“數(shù)據(jù)庫系統(tǒng)安全防護(hù)的目標(biāo)就是最大限度地防止數(shù)據(jù)庫被非法篡改或破壞,保證數(shù)據(jù)的完整性、一致性。”[1]
數(shù)據(jù)庫系統(tǒng)安全防護(hù)技術(shù)是用來保護(hù)數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫中的數(shù)據(jù)、應(yīng)用、存儲以及相關(guān)網(wǎng)絡(luò)連接,從而實(shí)現(xiàn)數(shù)據(jù)的保密性、完整性和可用性的技術(shù)。保密性指不允許未經(jīng)授權(quán)的用戶非法存取數(shù)據(jù);完整性指保護(hù)數(shù)據(jù)的正確性、有效性和相容性,防止已授權(quán)用戶向數(shù)據(jù)庫中加入不符合語義的數(shù)據(jù)造成無效操作;可用性指不應(yīng)拒絕已授權(quán)的用戶對數(shù)據(jù)進(jìn)行存取。
“數(shù)據(jù)庫系統(tǒng)安全防護(hù)技術(shù)主要分為動態(tài)入侵行為檢測和靜態(tài)安全特性檢測兩種類型防護(hù)技術(shù)?!盵2]動態(tài)入侵行為檢測是識別和分析客戶端對數(shù)據(jù)庫訪問請求的通信信息,從中發(fā)現(xiàn)可能危險入侵的通信指令。靜態(tài)安全特性檢測是分析測試數(shù)據(jù)庫設(shè)計中可能存在的漏洞,從中發(fā)現(xiàn)安全策略或設(shè)置的問題。
一般數(shù)據(jù)庫系統(tǒng)安全防護(hù)包括用戶層、物理層、網(wǎng)絡(luò)層、操作系統(tǒng)層和數(shù)據(jù)庫系統(tǒng)層等五個層次。為了保障數(shù)據(jù)庫系統(tǒng)安全,必須在所有層次上采用安全防護(hù)措施。
1.3.1 用戶層
主要進(jìn)行用戶權(quán)限管理和身份認(rèn)證等操作,從而防范未經(jīng)授權(quán)用戶采用各種方式非法訪問數(shù)據(jù)庫。
1.3.2 物理層
數(shù)據(jù)庫系統(tǒng)物理層容易受到攻擊和破壞,該層主要是保護(hù)計算機(jī)網(wǎng)絡(luò)系統(tǒng)、網(wǎng)絡(luò)鏈路及其網(wǎng)絡(luò)節(jié)點(diǎn)的實(shí)體安全。
1.3.3 網(wǎng)絡(luò)層
所有網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)都允許通過網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程訪問,因此網(wǎng)絡(luò)層安全性和物理層安全性同樣重要。
1.3.4 操作系統(tǒng)層
在數(shù)據(jù)庫系統(tǒng)中,操作系統(tǒng)與數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)交互并協(xié)助控制管理數(shù)據(jù)庫,因此操作系統(tǒng)安全漏洞常常被利用進(jìn)行非法訪問數(shù)據(jù)庫。
1.3.5 數(shù)據(jù)庫系統(tǒng)層
數(shù)據(jù)庫存儲著重要程度和敏感程度不同的各種數(shù)據(jù),供不同授權(quán)的多用戶共享,數(shù)據(jù)庫系統(tǒng)必須采取權(quán)限管理、訪問控制、數(shù)據(jù)加密、審計和應(yīng)急處理等安全措施。
數(shù)據(jù)庫安全防護(hù)技術(shù)主要包括:敏感數(shù)據(jù)梳理、數(shù)據(jù)庫漏洞掃描、數(shù)據(jù)庫加密、數(shù)據(jù)庫防火墻、數(shù)據(jù)庫脫敏、數(shù)據(jù)庫安全審計等。
敏感數(shù)據(jù)梳理技術(shù)是在網(wǎng)絡(luò)內(nèi)自動搜索未知數(shù)據(jù)庫,通過預(yù)置發(fā)現(xiàn)規(guī)則自動識別數(shù)據(jù)庫中的敏感數(shù)據(jù)、數(shù)據(jù)庫賬戶權(quán)限、敏感數(shù)據(jù)使用熱度,包括數(shù)據(jù)庫自動嗅探、敏感數(shù)據(jù)自動識別、敏感數(shù)據(jù)分級分類和權(quán)限梳理等四種核心技術(shù)。該技術(shù)能夠幫助用戶清晰認(rèn)識數(shù)據(jù)資產(chǎn)分布、使用、數(shù)據(jù)量級、訪問權(quán)限、職責(zé)部門、角色設(shè)定等內(nèi)容,對風(fēng)險預(yù)估和異常行為評測,避免核心數(shù)據(jù)遭破壞或泄露。
數(shù)據(jù)庫漏洞掃描技術(shù)是自動化評估數(shù)據(jù)庫系統(tǒng)安全性的技術(shù),能夠有效檢測出數(shù)據(jù)庫的DBMS漏洞、缺省配置、權(quán)限提升漏洞、緩沖區(qū)溢出、補(bǔ)丁未升級等自身漏洞,并提供修復(fù)建議,持續(xù)監(jiān)控數(shù)據(jù)庫的安全狀況。該技術(shù)包括黑盒、白盒、滲透測試三種實(shí)現(xiàn)方式。黑盒檢測方法是在未知數(shù)據(jù)庫登錄賬戶的情況下,根據(jù)權(quán)威漏洞披露平臺和數(shù)據(jù)庫版本號掃描網(wǎng)絡(luò),生成數(shù)據(jù)庫漏洞檢測報告。白盒檢測方法是使用數(shù)據(jù)庫賬號和口令登錄,基于漏洞知識庫構(gòu)建漏洞描述和修復(fù)建議模型,采用檢測規(guī)則庫形成漏洞對應(yīng)檢測方法,使用NASL腳本語言實(shí)現(xiàn)檢測,目前大多采用該方法。滲透測試是評估數(shù)據(jù)庫系統(tǒng)安全的一種評估方法,通過模擬黑客使用的漏洞發(fā)現(xiàn)技術(shù)和攻擊手段,發(fā)現(xiàn)和挖掘系統(tǒng)中存在的漏洞,獲得系統(tǒng)權(quán)限、執(zhí)行系統(tǒng)命令、篡改數(shù)據(jù)等,從而分析目標(biāo)數(shù)據(jù)庫的安全性。
數(shù)據(jù)庫加密技術(shù)是以加密的方式存儲數(shù)據(jù)庫中敏感數(shù)據(jù)的技術(shù),能夠有效防止發(fā)生以明文方式存儲引起的內(nèi)部泄密數(shù)據(jù)、高權(quán)限用戶(數(shù)據(jù)庫管理員、開發(fā)人員、第三方外包服務(wù)提供商等)竊取數(shù)據(jù)等情況,從根源上降低敏感數(shù)據(jù)泄漏風(fēng)險。該技術(shù)使用數(shù)據(jù)庫安全保密中間件對數(shù)據(jù)進(jìn)行加密,主要有系統(tǒng)中加密、客戶端(DBMS外層)加密、服務(wù)器端(DBMS內(nèi)核層)加密等三種實(shí)現(xiàn)方式。經(jīng)過加密后,敏感數(shù)據(jù)以密文方式存儲,能夠?qū)崿F(xiàn)訪問控制增強(qiáng)、應(yīng)用訪問安全、密文訪問審計及三權(quán)分立等功能。
數(shù)據(jù)庫防火墻專門監(jiān)測和審計對數(shù)據(jù)庫的SQL訪問,部署在應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器之間,用戶必須通過防火墻才能對數(shù)據(jù)庫進(jìn)行訪問或管理。數(shù)據(jù)庫防火墻技術(shù)是加強(qiáng)數(shù)據(jù)庫保護(hù)的一種主動安全防御機(jī)制,主動實(shí)時監(jiān)控、識別、告警、阻擋繞過內(nèi)部網(wǎng)絡(luò)邊界防護(hù)的外部數(shù)據(jù)攻擊、來自于內(nèi)部的高權(quán)限用戶的數(shù)據(jù)竊取、破壞、損壞等,是從數(shù)據(jù)庫SQL語句精細(xì)化控制技術(shù)層面提供的一種主動安全防御措施。
數(shù)據(jù)庫脫敏技術(shù)主要是為了兼顧數(shù)據(jù)安全與數(shù)據(jù)使用而采用的技術(shù),通過數(shù)據(jù)抽取、數(shù)據(jù)漂白和動態(tài)掩碼等算法對敏感數(shù)據(jù)進(jìn)行變形、屏蔽、替換、隨機(jī)化、加密等操作,將敏感數(shù)據(jù)轉(zhuǎn)化為虛構(gòu)數(shù)據(jù),實(shí)現(xiàn)對敏感隱私數(shù)據(jù)可靠保護(hù)的技術(shù)。它通常是不可逆轉(zhuǎn)的過程,無法返回原始數(shù)據(jù),這樣就可以在開發(fā)、測試環(huán)境中安全使用脫敏后的真實(shí)數(shù)據(jù)集。
數(shù)據(jù)庫安全審計實(shí)時記錄網(wǎng)絡(luò)上對數(shù)據(jù)庫的操作。通常采用旁路部署的方式,通過鏡像或探針的方式采集所有數(shù)據(jù)庫的訪問流量,并基于SQL語法語義的解析技術(shù),實(shí)時記錄下對數(shù)據(jù)庫的所有訪問和操作,包括訪問數(shù)據(jù)庫的用戶(IP、賬號、時間)、操作(增、刪、查、改)、對象(表、字段)等。采用數(shù)據(jù)庫安全審計技術(shù)可以在發(fā)生數(shù)據(jù)篡改、泄露等數(shù)據(jù)庫安全事件后為事件的追責(zé)定責(zé)提供依據(jù),還可以對數(shù)據(jù)庫操作的風(fēng)險行為進(jìn)行實(shí)時告警。
數(shù)據(jù)庫備份與恢復(fù)技術(shù)是把數(shù)據(jù)庫里的部分或全部數(shù)據(jù)復(fù)制到其他存儲介質(zhì)或服務(wù)器上,當(dāng)前服務(wù)器發(fā)生故障或是數(shù)據(jù)狀態(tài)不一致時,將備份數(shù)據(jù)恢復(fù)成數(shù)據(jù)庫本身,使數(shù)據(jù)復(fù)原到正常或一致狀態(tài),把數(shù)據(jù)損失降到最低?!皵?shù)據(jù)備份不僅是當(dāng)數(shù)據(jù)發(fā)生意外損壞時可以及時恢復(fù),也是歷史數(shù)據(jù)保存歸檔的一種方式?!盵3]
在網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)中,逐級逐層采取安全防護(hù)措施,它的安全防護(hù)模型如圖1所示。在該模型中,當(dāng)用戶需要訪問數(shù)據(jù)庫系統(tǒng)時,首先操作系統(tǒng)根據(jù)輸入的用戶標(biāo)識符或所使用的硬件設(shè)備信息來驗(yàn)證用戶身份,只允許合法用戶進(jìn)入數(shù)據(jù)庫系統(tǒng)。然后DBMS對進(jìn)入系統(tǒng)的用戶進(jìn)行安全訪問控制,只允許用戶執(zhí)行合法操作。最后數(shù)據(jù)經(jīng)過加密,用密文形式存儲在數(shù)據(jù)庫中。
在網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)中,采用數(shù)據(jù)庫防火墻技術(shù)實(shí)現(xiàn)數(shù)據(jù)庫服務(wù)器、Web服務(wù)器及客戶機(jī)之間的物理隔離,從而保障數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)應(yīng)用軟件系統(tǒng)的安全。防火墻從物理上將整個網(wǎng)絡(luò)劃分為內(nèi)網(wǎng)、外網(wǎng)、DMZ(Demilitarized Zone)區(qū)三部分。內(nèi)網(wǎng)是受防火墻保護(hù)的安全區(qū)域,將數(shù)據(jù)庫服務(wù)器部署在內(nèi)網(wǎng);外網(wǎng)是不受防火墻保護(hù)的非安全區(qū)域,客戶機(jī)都放置在該區(qū)域;DMZ 區(qū)也叫隔離區(qū),位于內(nèi)網(wǎng)與外網(wǎng)之間的小網(wǎng)絡(luò)區(qū)域內(nèi),是為解決安裝防火墻后外網(wǎng)客戶機(jī)不能訪問內(nèi)網(wǎng)服務(wù)器問題而設(shè)立的一個非安全系統(tǒng)與安全系統(tǒng)之間的緩沖區(qū),可以在該區(qū)域內(nèi)放置一些必須公開的服務(wù)器設(shè)施,如Web服務(wù)器、FTP服務(wù)器和論壇等。DMZ區(qū)對攻擊者來說又多了一道關(guān)卡,可以提供更高的安全性,有效地保護(hù)內(nèi)網(wǎng)。在網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)中將Web服務(wù)器部署在DMZ區(qū)。通過在防火墻上設(shè)置訪問控制策略,只允許Web服務(wù)器訪問數(shù)據(jù)庫服務(wù)器。外網(wǎng)的客戶機(jī)不能直接訪問數(shù)據(jù)庫服務(wù)器,只能通過訪問DMZ區(qū)的Web服務(wù)器來訪問數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù),從而有效地控制外網(wǎng)客戶機(jī)訪問數(shù)據(jù)庫,從物理位置上保證了網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的安全性。
數(shù)據(jù)庫服務(wù)器的訪問控制既可以使用防火墻設(shè)置,也可以使用數(shù)據(jù)庫管理系統(tǒng)的相關(guān)操作限制特定IP訪問數(shù)據(jù)庫。在SQL Server數(shù)據(jù)庫系統(tǒng)中可以使用觸發(fā)器設(shè)置允許訪問的計算機(jī)IP,Oracle數(shù)據(jù)庫系統(tǒng)中還可以通過修改數(shù)據(jù)庫服務(wù)器的網(wǎng)絡(luò)配置文件sqlnet.ora來設(shè)置允許訪問的IP地址。
圖1:網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)安全防護(hù)模型
圖2:中間件方式訪問數(shù)據(jù)庫
數(shù)據(jù)庫中間件負(fù)責(zé)管理Web服務(wù)器和數(shù)據(jù)庫服務(wù)器之間的通信并提供應(yīng)用程序服務(wù),實(shí)現(xiàn)應(yīng)用程序與本地或異地的同構(gòu)或異構(gòu)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換,如圖2所示??蛻魴C(jī)發(fā)出數(shù)據(jù)查詢指令,經(jīng)過中間件處理,發(fā)送到數(shù)據(jù)庫服務(wù)器,由服務(wù)器完成數(shù)據(jù)查詢,再通過中間件將結(jié)果送回客戶機(jī)。采用該技術(shù)可以有效控制應(yīng)用軟件訪問數(shù)據(jù)庫,保證了網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的安全性。
網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的訪問可以采用兩級用戶認(rèn)證機(jī)制,將網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)中用戶分為數(shù)據(jù)庫用戶和應(yīng)用用戶兩種,兩種用戶分別具有不同的權(quán)限。數(shù)據(jù)庫用戶是能夠直接訪問數(shù)據(jù)庫的賬戶;應(yīng)用用戶是分配給終端用戶的賬戶,只能訪問數(shù)據(jù)庫系統(tǒng),不能直接訪問數(shù)據(jù)庫本身,終端用戶通過系統(tǒng)找到對應(yīng)的用戶組,再關(guān)聯(lián)到對應(yīng)的數(shù)據(jù)庫用戶,然后利用這個數(shù)據(jù)庫用戶通過數(shù)據(jù)加密機(jī)制訪問網(wǎng)絡(luò)數(shù)據(jù)庫中的數(shù)據(jù)。
多數(shù)數(shù)據(jù)庫系統(tǒng)備份都是在后臺運(yùn)行,可以根據(jù)存儲介質(zhì)的容量和系統(tǒng)的具體情況選擇合適的備份方式。使用數(shù)據(jù)庫備份技術(shù)時要有機(jī)結(jié)合數(shù)據(jù)庫恢復(fù)技術(shù),形成完整的系統(tǒng),有效備份恢復(fù)數(shù)據(jù)信息。Oracle、SQL Server、MySQL等網(wǎng)絡(luò)數(shù)據(jù)庫備份可以通過備份命令,由指定的計劃任務(wù)程序定時自動激發(fā)來實(shí)現(xiàn),增強(qiáng)了網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)的安全性。
在信息時代,保障數(shù)據(jù)庫安全和穩(wěn)定已經(jīng)成為一項(xiàng)舉足輕重的工作,網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)遭受到來自多方面的安全風(fēng)險威脅,頻繁爆發(fā)數(shù)據(jù)庫安全事件,因此必須采取有效措施解決存在的安全隱患,加強(qiáng)數(shù)據(jù)庫系統(tǒng)防護(hù)技術(shù)的應(yīng)用,由內(nèi)而外,深度防護(hù)數(shù)據(jù)庫系統(tǒng)安全,防止數(shù)據(jù)被破壞和泄露。通過授權(quán)訪問、內(nèi)外網(wǎng)隔離、IP 管理等措施手段,加強(qiáng)防護(hù)能力,提高數(shù)據(jù)庫系統(tǒng)運(yùn)行的穩(wěn)定性和安全性。