Q:數(shù)據(jù)庫安全之防范黑客入侵技術(shù)
A:隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)據(jù)庫的應(yīng)用十分廣泛,深入到各個領(lǐng)域,但隨之而來產(chǎn)生了數(shù)據(jù)的安全問題。各種應(yīng)用系統(tǒng)的數(shù)據(jù)庫中大量數(shù)據(jù)的安全問題、敏感數(shù)據(jù)的防竊取和防篡改問題,越來越引起人們的高度重視。
數(shù)據(jù)庫系統(tǒng)的安全除依賴自身內(nèi)部的安全機(jī)制外,還與外部網(wǎng)絡(luò)環(huán)境、應(yīng)用環(huán)境、從業(yè)人員素質(zhì)等因素息息相關(guān),因此,從廣義上講,數(shù)據(jù)庫系統(tǒng)的安全框架可以劃分為三個層次:
?、?nbsp;網(wǎng)絡(luò)系統(tǒng)層次;
?、?nbsp;宿主操作系統(tǒng)層次;
?、?nbsp;數(shù)據(jù)庫管理系統(tǒng)層次。
這三個層次構(gòu)筑成數(shù)據(jù)庫系統(tǒng)的安全體系,與數(shù)據(jù)安全的關(guān)系是逐步緊密的,防范的重要性也逐層加強(qiáng),從外到內(nèi)、由表及里保證數(shù)據(jù)的安全。下面就安全框架的三個層次展開論述。
1. 網(wǎng)絡(luò)系統(tǒng)層次安全技術(shù)
從廣義上講,數(shù)據(jù)庫的安全首先依賴于網(wǎng)絡(luò)系統(tǒng)。隨著Internet的發(fā)展和普及,越來越多的公司將其核心業(yè)務(wù)向互聯(lián)網(wǎng)轉(zhuǎn)移,各種基于網(wǎng)絡(luò)的數(shù)據(jù)庫應(yīng)用系統(tǒng)如雨后春筍般涌現(xiàn)出來,面向網(wǎng)絡(luò)用戶提供各種信息服務(wù)??梢哉f網(wǎng)絡(luò)系統(tǒng)是數(shù)據(jù)庫應(yīng)用的外部環(huán)境和基礎(chǔ),數(shù)據(jù)庫系統(tǒng)要發(fā)揮其強(qiáng)大作用離不開網(wǎng)絡(luò)系統(tǒng)的支持,數(shù)據(jù)庫系統(tǒng)的用戶(如異地用戶、分布式用戶)也要通過網(wǎng)絡(luò)才能訪問數(shù)據(jù)庫的數(shù)據(jù)。網(wǎng)絡(luò)系統(tǒng)的安全是數(shù)據(jù)庫安全的*道屏障,外部入侵首先就是從入侵網(wǎng)絡(luò)系統(tǒng)開始的。網(wǎng)絡(luò)入侵試圖破壞信息系統(tǒng)的完整性、機(jī)密性或可信任的任何網(wǎng)絡(luò)活動的集合,具有以下特點(diǎn):
a) 沒有地域和時間的限制,跨越國界的攻擊就如同在現(xiàn)場一樣方便;
b) 通過網(wǎng)絡(luò)的攻擊往往混雜在大量正常的網(wǎng)絡(luò)活動之中,隱蔽性強(qiáng);
c) 入侵手段更加隱蔽和復(fù)雜。
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)開放式環(huán)境面臨的威脅主要有以下幾種類型:
a) 欺騙(Masquerade);
b) 重發(fā)(Replay);
c) 報(bào)文修改(Modification of message);
d) 拒絕服務(wù)(Deny of service);
e) 陷阱門(Trapdoor);
f) 特洛伊木馬(Trojan horse);
g) 攻擊,如透納攻擊(Tunneling Attack)、應(yīng)用軟件攻擊等。這些安全威脅是無時、無處不在的,因此必須采取有效的措施來保障系統(tǒng)的安全。
從技術(shù)角度講,網(wǎng)絡(luò)系統(tǒng)層次的安全防范技術(shù)有很多種,大致可以分為防火墻、入侵檢測、協(xié)作式入侵檢測技術(shù)等。
?、?nbsp;防火墻
防火墻是應(yīng)用最廣的一種防范技術(shù)。作為系統(tǒng)的*道防線,其主要作用是監(jiān)控可信任網(wǎng)絡(luò)和不可信任網(wǎng)絡(luò)之間的訪問通道,可在內(nèi)部與外部網(wǎng)絡(luò)之間形成一道防護(hù)屏障,攔截來自外部的非法訪問并阻止內(nèi)部信息的外泄,但它無法阻攔來自網(wǎng)絡(luò)內(nèi)部的非法操作。它根據(jù)事先設(shè)定的規(guī)則來確定是否攔截信息流的進(jìn)出,但無法動態(tài)識別或自適應(yīng)地調(diào)整規(guī)則,因而其智能化程度很有限。防火墻技術(shù)主要有三種:數(shù)據(jù)*濾器(packet filter)、代理(proxy)和狀態(tài)分析(stateful inspection)?,F(xiàn)代防火墻產(chǎn)品通?;旌鲜褂眠@幾種技術(shù)。
?、?nbsp;入侵檢測
入侵檢測(IDS—Instrusion Detection System)是近年來發(fā)展起來的一種防范技術(shù),綜合采用了統(tǒng)計(jì)技術(shù)、規(guī)則方法、網(wǎng)絡(luò)通信技術(shù)、人工智能、密碼學(xué)、推理等技術(shù)和方法,其作用是監(jiān)控網(wǎng)絡(luò)和計(jì)算機(jī)系統(tǒng)是否出現(xiàn)被入侵或?yàn)E用的征兆。1987年,Derothy Denning首次提出了一種檢測入侵的思想,經(jīng)過不斷發(fā)展和完善,作為監(jiān)控和識別攻擊的標(biāo)準(zhǔn)解決方案,IDS系統(tǒng)已經(jīng)成為安全防御系統(tǒng)的重要組成部分。
入侵檢測采用的分析技術(shù)可分為三大類:簽名、統(tǒng)計(jì)和數(shù)據(jù)完整性分析法。
?、?nbsp;協(xié)作式入侵監(jiān)測技術(shù)
獨(dú)立的入侵監(jiān)測系統(tǒng)不能夠?qū)V泛發(fā)生的各種入侵活動都做出有效的監(jiān)測和反應(yīng),為了彌補(bǔ)獨(dú)立運(yùn)作的不足,人們提出了協(xié)作式入侵監(jiān)測系統(tǒng)的想法。在協(xié)作式入侵監(jiān)測系統(tǒng)中,IDS基于一種統(tǒng)一的規(guī)范,入侵監(jiān)測組件之間自動地交換信息,并且通過信息的交換得到了對入侵的有效監(jiān)測,可以應(yīng)用于不同的網(wǎng)絡(luò)環(huán)境。
2. 宿主操作系統(tǒng)層次安全技術(shù)
操作系統(tǒng)是大型數(shù)據(jù)庫系統(tǒng)的運(yùn)行平臺,為數(shù)據(jù)庫系統(tǒng)提供一定程度的安全保護(hù)。目前操作系統(tǒng)平臺大多數(shù)集中在Windows NT和Unix,安全級別通常為C1、C2級。主要安全技術(shù)有操作系統(tǒng)安全策略、安全管理策略、數(shù)據(jù)安全等方面。
操作系統(tǒng)安全策略用于配置本地計(jì)算機(jī)的安全設(shè)置,包括密碼策略、賬戶鎖定策略、審核策略、IP安全策略、用戶權(quán)利指派、加密數(shù)據(jù)的恢復(fù)代理以及其它安全選項(xiàng)。具體可以體現(xiàn)在用戶賬戶、口令、訪問權(quán)限、審計(jì)等方面。
用戶賬戶:用戶訪問系統(tǒng)的“身份證”,只有合法用戶才有賬戶。
口令:用戶的口令為用戶訪問系統(tǒng)提供一道驗(yàn)證。
訪問權(quán)限:規(guī)定用戶的權(quán)限。
審計(jì):對用戶的行為進(jìn)行跟蹤和記錄,便于系統(tǒng)管理員分析系統(tǒng)的訪問情況以及事后的追查使用。
安全管理策略是指網(wǎng)絡(luò)管理員對系統(tǒng)實(shí)施安全管理所采取的方法及策略。針對不同的操作系統(tǒng)、網(wǎng)絡(luò)環(huán)境需要采取的安全管理策略一般也不盡相同,其核心是保證服務(wù)器的安全和分配好各類用戶的權(quán)限。
數(shù)據(jù)安全主要體現(xiàn)在以下幾個方面:數(shù)據(jù)加密技術(shù)、數(shù)據(jù)備份、數(shù)據(jù)存儲的安全性、數(shù)據(jù)傳輸?shù)陌踩缘???梢圆捎玫募夹g(shù)很多,主要有Kerberos認(rèn)證、IPSec、SSL、TLS、VPN(PPTP、L2TP)等技術(shù)。
3. 數(shù)據(jù)庫管理系統(tǒng)層次安全技術(shù)
數(shù)據(jù)庫系統(tǒng)的安全性很大程度上依賴于數(shù)據(jù)庫管理系統(tǒng)。如果數(shù)據(jù)庫管理系統(tǒng)安全機(jī)制非常強(qiáng)大,則數(shù)據(jù)庫系統(tǒng)的安全性能就較好。目前市場上流行的是關(guān)系式數(shù)據(jù)庫管理系統(tǒng),其安全性功能很弱,這就導(dǎo)致數(shù)據(jù)庫系統(tǒng)的安全性存在一定的威脅。
由于數(shù)據(jù)庫系統(tǒng)在操作系統(tǒng)下都是以文件形式進(jìn)行管理的,因此入侵者可以直接利用操作系統(tǒng)的漏洞竊取數(shù)據(jù)庫文件,或者直接利用OS工具來非法偽造、篡改數(shù)據(jù)庫文件內(nèi)容。這種隱患一般數(shù)據(jù)庫用戶難以察覺,分析和堵塞這種漏洞被認(rèn)為是B2級的安全技術(shù)措施。
數(shù)據(jù)庫管理系統(tǒng)層次安全技術(shù)主要是用來解決這一問題,即當(dāng)前面兩個層次已經(jīng)被突破的情況下仍能保障數(shù)據(jù)庫數(shù)據(jù)的安全,這就要求數(shù)據(jù)庫管理系統(tǒng)必須有一套強(qiáng)有力的安全機(jī)制。解決這一問題的有效方法之一是數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫文件進(jìn)行加密處理,使得即使數(shù)據(jù)不幸泄露或者丟失,也難以被人破譯和閱讀。
我們可以考慮在三個不同層次實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的加密,這三個層次分別是OS層、DBMS內(nèi)核層和DBMS外層。
?、?nbsp;在OS層加密。在OS層無法辨認(rèn)數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系,從而無法產(chǎn)生合理的密鑰,對密鑰合理的管理和使用也很難。所以,對大型數(shù)據(jù)庫來說,在OS層對數(shù)據(jù)庫文件進(jìn)行加密很難實(shí)現(xiàn)。
⑵ 在DBMS內(nèi)核層實(shí)現(xiàn)加密。這種加密是指數(shù)據(jù)在物理存取之前完成加/解密工作。這種加密方式的優(yōu)點(diǎn)是加密功能強(qiáng),并且加密功能幾乎不會影響DBMS的功能,可以實(shí)現(xiàn)加密功能與數(shù)據(jù)庫管理系統(tǒng)之間的無縫耦合。其缺點(diǎn)是加密運(yùn)算在服務(wù)器端進(jìn)行,加重了服務(wù)器的負(fù)載,而且DBMS和加密器之間的接口需要DBMS開發(fā)商的支持。
⑶ 在DBMS外層實(shí)現(xiàn)加密。比較實(shí)際的做法是將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個外層工具,根據(jù)加密要求自動完成對數(shù)據(jù)庫數(shù)據(jù)的加/解密處理。
采用這種加密方式進(jìn)行加密,加/解密運(yùn)算可在客戶端進(jìn)行,它的優(yōu)點(diǎn)是不會加重?cái)?shù)據(jù)庫服務(wù)器的負(fù)載并且可以實(shí)現(xiàn)網(wǎng)上傳輸?shù)募用?,缺點(diǎn)是加密功能會受到一些限制,與數(shù)據(jù)庫管理系統(tǒng)之間的耦合性稍差。
下面我們進(jìn)一步解釋在DBMS外層實(shí)現(xiàn)加密功能的原理:
數(shù)據(jù)庫加密系統(tǒng)分成兩個功能獨(dú)立的主要部件:一個是加密字典管理程序,另一個是數(shù)據(jù)庫加/解密引擎。數(shù)據(jù)庫加密系統(tǒng)將用戶對數(shù)據(jù)庫信息具體的加密要求以及基礎(chǔ)信息保存在加密字典中,通過調(diào)用數(shù)據(jù)加/解密引擎實(shí)現(xiàn)對數(shù)據(jù)庫表的加密、脫密及數(shù)據(jù)轉(zhuǎn)換等功能。數(shù)據(jù)庫信息的加/解密處理是在后臺完成的,對數(shù)據(jù)庫服務(wù)器是透明的。
按以上方式實(shí)現(xiàn)的數(shù)據(jù)庫加密系統(tǒng)具有很多優(yōu)點(diǎn):首先,系統(tǒng)對數(shù)據(jù)庫的最終用戶是完全透明的,管理員可以根據(jù)需要進(jìn)行明文和密文的轉(zhuǎn)換工作;其次,加密系統(tǒng)完全獨(dú)立于數(shù)據(jù)庫應(yīng)用系統(tǒng),無須改動數(shù)據(jù)庫應(yīng)用系統(tǒng)就能實(shí)現(xiàn)數(shù)據(jù)加密功能;第三,加解密處理在客戶端進(jìn)行,不會影響數(shù)據(jù)庫服務(wù)器的效率。
數(shù)據(jù)庫加/解密引擎是數(shù)據(jù)庫加密系統(tǒng)的核心部件,它位于應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間,負(fù)責(zé)在后臺完成數(shù)據(jù)庫信息的加/解密處理,對應(yīng)用開發(fā)人員和操作人員來說是透明的。數(shù)據(jù)加/解密引擎沒有操作界面,在需要時由操作系統(tǒng)自動加載并駐留在內(nèi)存中,通過內(nèi)部接口與加密字典管理程序和用戶應(yīng)用程序通訊。數(shù)據(jù)庫加/解密引擎由三大模塊組成:加/解密處理模塊、用戶接口模塊和數(shù)據(jù)庫接口模塊。其中,“數(shù)據(jù)庫接口模塊”的主要工作是接受用戶的操作請求,并傳遞給“加/解密處理模塊”,此外還要代替“加/解密處理模塊”去訪問數(shù)據(jù)庫服務(wù)器,并完成外部接口參數(shù)與加/脫密引擎內(nèi)部數(shù)據(jù)結(jié)構(gòu)之間的轉(zhuǎn)換。“加/解密處理模塊”完成數(shù)據(jù)庫加/解密引擎的初始化、內(nèi)部專用命令的處理、加密字典信息的檢索、加密字典緩沖區(qū)的管理、SQL命令的加密變換、查詢結(jié)果的脫密處理以及加脫密算法實(shí)現(xiàn)等功能,另外還包括一些公用的輔助函數(shù)。
數(shù)據(jù)加/解密處理的主要流程如下:
1) 對SQL命令進(jìn)行語法分析,如果語法正確,轉(zhuǎn)下一步;如不正確,則轉(zhuǎn)6),直接將SQL命令交數(shù)據(jù)庫服務(wù)器處理。
2) 是否為數(shù)據(jù)庫加/脫密引擎的內(nèi)部控制命令?如果是,則處理內(nèi)部控制命令,然后轉(zhuǎn)7);如果不是則轉(zhuǎn)下一步。
3) 檢查數(shù)據(jù)庫加/脫密引擎是否處于關(guān)閉狀態(tài)或SQL命令是否只需要編譯?如果是則轉(zhuǎn)6),否則轉(zhuǎn)下一步。
4) 檢索加密字典,根據(jù)加密定義對SQL命令進(jìn)行加脫密語義分析。
5) SQL命令是否需要加密處理?如果是,則將SQL命令進(jìn)行加密變換,替換原SQL命令,然后轉(zhuǎn)下一步;否則直接轉(zhuǎn)下一步。
6) 將SQL命令轉(zhuǎn)送數(shù)據(jù)庫服務(wù)器處理。
7) SQL命令執(zhí)行完畢,清除SQL命令緩沖區(qū)。
以上以一個例子說明了在DBMS外層實(shí)現(xiàn)加密功能的原理。
本文對數(shù)據(jù)庫系統(tǒng)安全防入侵技術(shù)進(jìn)行綜述,提出了數(shù)據(jù)庫系統(tǒng)的安全體系三個層次框架,并對三個層次的技術(shù)手段展開描述。文中還以在DBMS外層實(shí)現(xiàn)加密功能的原理為例,詳細(xì)說明了如何應(yīng)用數(shù)據(jù)庫管理系統(tǒng)層次的安全技術(shù)。
數(shù)據(jù)庫系統(tǒng)安全框架的三個層次是相輔相承的,各層次的防范重點(diǎn)和所采取的技術(shù)手段也不盡相同,一個好的安全系統(tǒng)必須綜合考慮核運(yùn)用這些技術(shù),以保證數(shù)據(jù)的安全。
A:隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)據(jù)庫的應(yīng)用十分廣泛,深入到各個領(lǐng)域,但隨之而來產(chǎn)生了數(shù)據(jù)的安全問題。各種應(yīng)用系統(tǒng)的數(shù)據(jù)庫中大量數(shù)據(jù)的安全問題、敏感數(shù)據(jù)的防竊取和防篡改問題,越來越引起人們的高度重視。
數(shù)據(jù)庫系統(tǒng)的安全除依賴自身內(nèi)部的安全機(jī)制外,還與外部網(wǎng)絡(luò)環(huán)境、應(yīng)用環(huán)境、從業(yè)人員素質(zhì)等因素息息相關(guān),因此,從廣義上講,數(shù)據(jù)庫系統(tǒng)的安全框架可以劃分為三個層次:
?、?nbsp;網(wǎng)絡(luò)系統(tǒng)層次;
?、?nbsp;宿主操作系統(tǒng)層次;
?、?nbsp;數(shù)據(jù)庫管理系統(tǒng)層次。
這三個層次構(gòu)筑成數(shù)據(jù)庫系統(tǒng)的安全體系,與數(shù)據(jù)安全的關(guān)系是逐步緊密的,防范的重要性也逐層加強(qiáng),從外到內(nèi)、由表及里保證數(shù)據(jù)的安全。下面就安全框架的三個層次展開論述。
1. 網(wǎng)絡(luò)系統(tǒng)層次安全技術(shù)
從廣義上講,數(shù)據(jù)庫的安全首先依賴于網(wǎng)絡(luò)系統(tǒng)。隨著Internet的發(fā)展和普及,越來越多的公司將其核心業(yè)務(wù)向互聯(lián)網(wǎng)轉(zhuǎn)移,各種基于網(wǎng)絡(luò)的數(shù)據(jù)庫應(yīng)用系統(tǒng)如雨后春筍般涌現(xiàn)出來,面向網(wǎng)絡(luò)用戶提供各種信息服務(wù)??梢哉f網(wǎng)絡(luò)系統(tǒng)是數(shù)據(jù)庫應(yīng)用的外部環(huán)境和基礎(chǔ),數(shù)據(jù)庫系統(tǒng)要發(fā)揮其強(qiáng)大作用離不開網(wǎng)絡(luò)系統(tǒng)的支持,數(shù)據(jù)庫系統(tǒng)的用戶(如異地用戶、分布式用戶)也要通過網(wǎng)絡(luò)才能訪問數(shù)據(jù)庫的數(shù)據(jù)。網(wǎng)絡(luò)系統(tǒng)的安全是數(shù)據(jù)庫安全的*道屏障,外部入侵首先就是從入侵網(wǎng)絡(luò)系統(tǒng)開始的。網(wǎng)絡(luò)入侵試圖破壞信息系統(tǒng)的完整性、機(jī)密性或可信任的任何網(wǎng)絡(luò)活動的集合,具有以下特點(diǎn):
a) 沒有地域和時間的限制,跨越國界的攻擊就如同在現(xiàn)場一樣方便;
b) 通過網(wǎng)絡(luò)的攻擊往往混雜在大量正常的網(wǎng)絡(luò)活動之中,隱蔽性強(qiáng);
c) 入侵手段更加隱蔽和復(fù)雜。
計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)開放式環(huán)境面臨的威脅主要有以下幾種類型:
a) 欺騙(Masquerade);
b) 重發(fā)(Replay);
c) 報(bào)文修改(Modification of message);
d) 拒絕服務(wù)(Deny of service);
e) 陷阱門(Trapdoor);
f) 特洛伊木馬(Trojan horse);
g) 攻擊,如透納攻擊(Tunneling Attack)、應(yīng)用軟件攻擊等。這些安全威脅是無時、無處不在的,因此必須采取有效的措施來保障系統(tǒng)的安全。
從技術(shù)角度講,網(wǎng)絡(luò)系統(tǒng)層次的安全防范技術(shù)有很多種,大致可以分為防火墻、入侵檢測、協(xié)作式入侵檢測技術(shù)等。
?、?nbsp;防火墻
防火墻是應(yīng)用最廣的一種防范技術(shù)。作為系統(tǒng)的*道防線,其主要作用是監(jiān)控可信任網(wǎng)絡(luò)和不可信任網(wǎng)絡(luò)之間的訪問通道,可在內(nèi)部與外部網(wǎng)絡(luò)之間形成一道防護(hù)屏障,攔截來自外部的非法訪問并阻止內(nèi)部信息的外泄,但它無法阻攔來自網(wǎng)絡(luò)內(nèi)部的非法操作。它根據(jù)事先設(shè)定的規(guī)則來確定是否攔截信息流的進(jìn)出,但無法動態(tài)識別或自適應(yīng)地調(diào)整規(guī)則,因而其智能化程度很有限。防火墻技術(shù)主要有三種:數(shù)據(jù)*濾器(packet filter)、代理(proxy)和狀態(tài)分析(stateful inspection)?,F(xiàn)代防火墻產(chǎn)品通?;旌鲜褂眠@幾種技術(shù)。
?、?nbsp;入侵檢測
入侵檢測(IDS—Instrusion Detection System)是近年來發(fā)展起來的一種防范技術(shù),綜合采用了統(tǒng)計(jì)技術(shù)、規(guī)則方法、網(wǎng)絡(luò)通信技術(shù)、人工智能、密碼學(xué)、推理等技術(shù)和方法,其作用是監(jiān)控網(wǎng)絡(luò)和計(jì)算機(jī)系統(tǒng)是否出現(xiàn)被入侵或?yàn)E用的征兆。1987年,Derothy Denning首次提出了一種檢測入侵的思想,經(jīng)過不斷發(fā)展和完善,作為監(jiān)控和識別攻擊的標(biāo)準(zhǔn)解決方案,IDS系統(tǒng)已經(jīng)成為安全防御系統(tǒng)的重要組成部分。
入侵檢測采用的分析技術(shù)可分為三大類:簽名、統(tǒng)計(jì)和數(shù)據(jù)完整性分析法。
?、?nbsp;協(xié)作式入侵監(jiān)測技術(shù)
獨(dú)立的入侵監(jiān)測系統(tǒng)不能夠?qū)V泛發(fā)生的各種入侵活動都做出有效的監(jiān)測和反應(yīng),為了彌補(bǔ)獨(dú)立運(yùn)作的不足,人們提出了協(xié)作式入侵監(jiān)測系統(tǒng)的想法。在協(xié)作式入侵監(jiān)測系統(tǒng)中,IDS基于一種統(tǒng)一的規(guī)范,入侵監(jiān)測組件之間自動地交換信息,并且通過信息的交換得到了對入侵的有效監(jiān)測,可以應(yīng)用于不同的網(wǎng)絡(luò)環(huán)境。
2. 宿主操作系統(tǒng)層次安全技術(shù)
操作系統(tǒng)是大型數(shù)據(jù)庫系統(tǒng)的運(yùn)行平臺,為數(shù)據(jù)庫系統(tǒng)提供一定程度的安全保護(hù)。目前操作系統(tǒng)平臺大多數(shù)集中在Windows NT和Unix,安全級別通常為C1、C2級。主要安全技術(shù)有操作系統(tǒng)安全策略、安全管理策略、數(shù)據(jù)安全等方面。
操作系統(tǒng)安全策略用于配置本地計(jì)算機(jī)的安全設(shè)置,包括密碼策略、賬戶鎖定策略、審核策略、IP安全策略、用戶權(quán)利指派、加密數(shù)據(jù)的恢復(fù)代理以及其它安全選項(xiàng)。具體可以體現(xiàn)在用戶賬戶、口令、訪問權(quán)限、審計(jì)等方面。
用戶賬戶:用戶訪問系統(tǒng)的“身份證”,只有合法用戶才有賬戶。
口令:用戶的口令為用戶訪問系統(tǒng)提供一道驗(yàn)證。
訪問權(quán)限:規(guī)定用戶的權(quán)限。
審計(jì):對用戶的行為進(jìn)行跟蹤和記錄,便于系統(tǒng)管理員分析系統(tǒng)的訪問情況以及事后的追查使用。
安全管理策略是指網(wǎng)絡(luò)管理員對系統(tǒng)實(shí)施安全管理所采取的方法及策略。針對不同的操作系統(tǒng)、網(wǎng)絡(luò)環(huán)境需要采取的安全管理策略一般也不盡相同,其核心是保證服務(wù)器的安全和分配好各類用戶的權(quán)限。
數(shù)據(jù)安全主要體現(xiàn)在以下幾個方面:數(shù)據(jù)加密技術(shù)、數(shù)據(jù)備份、數(shù)據(jù)存儲的安全性、數(shù)據(jù)傳輸?shù)陌踩缘???梢圆捎玫募夹g(shù)很多,主要有Kerberos認(rèn)證、IPSec、SSL、TLS、VPN(PPTP、L2TP)等技術(shù)。
3. 數(shù)據(jù)庫管理系統(tǒng)層次安全技術(shù)
數(shù)據(jù)庫系統(tǒng)的安全性很大程度上依賴于數(shù)據(jù)庫管理系統(tǒng)。如果數(shù)據(jù)庫管理系統(tǒng)安全機(jī)制非常強(qiáng)大,則數(shù)據(jù)庫系統(tǒng)的安全性能就較好。目前市場上流行的是關(guān)系式數(shù)據(jù)庫管理系統(tǒng),其安全性功能很弱,這就導(dǎo)致數(shù)據(jù)庫系統(tǒng)的安全性存在一定的威脅。
由于數(shù)據(jù)庫系統(tǒng)在操作系統(tǒng)下都是以文件形式進(jìn)行管理的,因此入侵者可以直接利用操作系統(tǒng)的漏洞竊取數(shù)據(jù)庫文件,或者直接利用OS工具來非法偽造、篡改數(shù)據(jù)庫文件內(nèi)容。這種隱患一般數(shù)據(jù)庫用戶難以察覺,分析和堵塞這種漏洞被認(rèn)為是B2級的安全技術(shù)措施。
數(shù)據(jù)庫管理系統(tǒng)層次安全技術(shù)主要是用來解決這一問題,即當(dāng)前面兩個層次已經(jīng)被突破的情況下仍能保障數(shù)據(jù)庫數(shù)據(jù)的安全,這就要求數(shù)據(jù)庫管理系統(tǒng)必須有一套強(qiáng)有力的安全機(jī)制。解決這一問題的有效方法之一是數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫文件進(jìn)行加密處理,使得即使數(shù)據(jù)不幸泄露或者丟失,也難以被人破譯和閱讀。
我們可以考慮在三個不同層次實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的加密,這三個層次分別是OS層、DBMS內(nèi)核層和DBMS外層。
?、?nbsp;在OS層加密。在OS層無法辨認(rèn)數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系,從而無法產(chǎn)生合理的密鑰,對密鑰合理的管理和使用也很難。所以,對大型數(shù)據(jù)庫來說,在OS層對數(shù)據(jù)庫文件進(jìn)行加密很難實(shí)現(xiàn)。
⑵ 在DBMS內(nèi)核層實(shí)現(xiàn)加密。這種加密是指數(shù)據(jù)在物理存取之前完成加/解密工作。這種加密方式的優(yōu)點(diǎn)是加密功能強(qiáng),并且加密功能幾乎不會影響DBMS的功能,可以實(shí)現(xiàn)加密功能與數(shù)據(jù)庫管理系統(tǒng)之間的無縫耦合。其缺點(diǎn)是加密運(yùn)算在服務(wù)器端進(jìn)行,加重了服務(wù)器的負(fù)載,而且DBMS和加密器之間的接口需要DBMS開發(fā)商的支持。
⑶ 在DBMS外層實(shí)現(xiàn)加密。比較實(shí)際的做法是將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個外層工具,根據(jù)加密要求自動完成對數(shù)據(jù)庫數(shù)據(jù)的加/解密處理。
采用這種加密方式進(jìn)行加密,加/解密運(yùn)算可在客戶端進(jìn)行,它的優(yōu)點(diǎn)是不會加重?cái)?shù)據(jù)庫服務(wù)器的負(fù)載并且可以實(shí)現(xiàn)網(wǎng)上傳輸?shù)募用?,缺點(diǎn)是加密功能會受到一些限制,與數(shù)據(jù)庫管理系統(tǒng)之間的耦合性稍差。
下面我們進(jìn)一步解釋在DBMS外層實(shí)現(xiàn)加密功能的原理:
數(shù)據(jù)庫加密系統(tǒng)分成兩個功能獨(dú)立的主要部件:一個是加密字典管理程序,另一個是數(shù)據(jù)庫加/解密引擎。數(shù)據(jù)庫加密系統(tǒng)將用戶對數(shù)據(jù)庫信息具體的加密要求以及基礎(chǔ)信息保存在加密字典中,通過調(diào)用數(shù)據(jù)加/解密引擎實(shí)現(xiàn)對數(shù)據(jù)庫表的加密、脫密及數(shù)據(jù)轉(zhuǎn)換等功能。數(shù)據(jù)庫信息的加/解密處理是在后臺完成的,對數(shù)據(jù)庫服務(wù)器是透明的。
按以上方式實(shí)現(xiàn)的數(shù)據(jù)庫加密系統(tǒng)具有很多優(yōu)點(diǎn):首先,系統(tǒng)對數(shù)據(jù)庫的最終用戶是完全透明的,管理員可以根據(jù)需要進(jìn)行明文和密文的轉(zhuǎn)換工作;其次,加密系統(tǒng)完全獨(dú)立于數(shù)據(jù)庫應(yīng)用系統(tǒng),無須改動數(shù)據(jù)庫應(yīng)用系統(tǒng)就能實(shí)現(xiàn)數(shù)據(jù)加密功能;第三,加解密處理在客戶端進(jìn)行,不會影響數(shù)據(jù)庫服務(wù)器的效率。
數(shù)據(jù)庫加/解密引擎是數(shù)據(jù)庫加密系統(tǒng)的核心部件,它位于應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間,負(fù)責(zé)在后臺完成數(shù)據(jù)庫信息的加/解密處理,對應(yīng)用開發(fā)人員和操作人員來說是透明的。數(shù)據(jù)加/解密引擎沒有操作界面,在需要時由操作系統(tǒng)自動加載并駐留在內(nèi)存中,通過內(nèi)部接口與加密字典管理程序和用戶應(yīng)用程序通訊。數(shù)據(jù)庫加/解密引擎由三大模塊組成:加/解密處理模塊、用戶接口模塊和數(shù)據(jù)庫接口模塊。其中,“數(shù)據(jù)庫接口模塊”的主要工作是接受用戶的操作請求,并傳遞給“加/解密處理模塊”,此外還要代替“加/解密處理模塊”去訪問數(shù)據(jù)庫服務(wù)器,并完成外部接口參數(shù)與加/脫密引擎內(nèi)部數(shù)據(jù)結(jié)構(gòu)之間的轉(zhuǎn)換。“加/解密處理模塊”完成數(shù)據(jù)庫加/解密引擎的初始化、內(nèi)部專用命令的處理、加密字典信息的檢索、加密字典緩沖區(qū)的管理、SQL命令的加密變換、查詢結(jié)果的脫密處理以及加脫密算法實(shí)現(xiàn)等功能,另外還包括一些公用的輔助函數(shù)。
數(shù)據(jù)加/解密處理的主要流程如下:
1) 對SQL命令進(jìn)行語法分析,如果語法正確,轉(zhuǎn)下一步;如不正確,則轉(zhuǎn)6),直接將SQL命令交數(shù)據(jù)庫服務(wù)器處理。
2) 是否為數(shù)據(jù)庫加/脫密引擎的內(nèi)部控制命令?如果是,則處理內(nèi)部控制命令,然后轉(zhuǎn)7);如果不是則轉(zhuǎn)下一步。
3) 檢查數(shù)據(jù)庫加/脫密引擎是否處于關(guān)閉狀態(tài)或SQL命令是否只需要編譯?如果是則轉(zhuǎn)6),否則轉(zhuǎn)下一步。
4) 檢索加密字典,根據(jù)加密定義對SQL命令進(jìn)行加脫密語義分析。
5) SQL命令是否需要加密處理?如果是,則將SQL命令進(jìn)行加密變換,替換原SQL命令,然后轉(zhuǎn)下一步;否則直接轉(zhuǎn)下一步。
6) 將SQL命令轉(zhuǎn)送數(shù)據(jù)庫服務(wù)器處理。
7) SQL命令執(zhí)行完畢,清除SQL命令緩沖區(qū)。
以上以一個例子說明了在DBMS外層實(shí)現(xiàn)加密功能的原理。
本文對數(shù)據(jù)庫系統(tǒng)安全防入侵技術(shù)進(jìn)行綜述,提出了數(shù)據(jù)庫系統(tǒng)的安全體系三個層次框架,并對三個層次的技術(shù)手段展開描述。文中還以在DBMS外層實(shí)現(xiàn)加密功能的原理為例,詳細(xì)說明了如何應(yīng)用數(shù)據(jù)庫管理系統(tǒng)層次的安全技術(shù)。
數(shù)據(jù)庫系統(tǒng)安全框架的三個層次是相輔相承的,各層次的防范重點(diǎn)和所采取的技術(shù)手段也不盡相同,一個好的安全系統(tǒng)必須綜合考慮核運(yùn)用這些技術(shù),以保證數(shù)據(jù)的安全。