資料庫管理中防駭客入侵技術概述

xuniji123發表於2007-01-07

1. 前言

隨著計算機技術的飛速發展,資料庫的應用十分廣泛,深入到各個領域,但隨之而來產生了資料的安全問題。各種應用系統的資料庫中大量資料的安全問題、敏感資料的防竊取和防篡改問題,越來越引起人們的高度重視。資料庫系統作為資訊的聚集體,是計算機資訊系統的核心部件,其安全性至關重要,關係到企業興衰、國家安全。因此,如何有效地保證資料庫系統的安全,實現資料的保密性、完整性和有效性,已經成為業界人士探索研究的重要課題之一,本文就安全防入侵技術做簡要的討論。

資料庫系統的安全除依賴自身內部的安全機制外,還與外部網路環境、應用環境、從業人員素質等因素息息相關,因此,從廣義上講,資料庫系統的安全框架可以劃分為三個層次:

⑴ 網路系統層次;

⑵ 宿主作業系統層次;

⑶ 資料庫管理系統層次。

這三個層次構築成資料庫系統的安全體系,與資料安全的關係是逐步緊密的,防範的重要性也逐層加強,從外到內、由表及裡保證資料的安全。下面就安全框架的三個層次展開論述。

2. 網路系統層次安全技術

從廣義上講,資料庫的安全首先依賴於網路系統。隨著Internet的發展和普及,越來越多的公司將其核心業務向網際網路轉移,各種基於網路的資料庫應用系統如雨後春筍般湧現出來,面向網路使用者提供各種資訊服務。可以說網路系統是資料庫應用的外部環境和基礎,資料庫系統要發揮其強大作用離不開網路系統的支援,資料庫系統的使用者(如異地使用者、分散式使用者)也要透過網路才能訪問資料庫的資料。網路系統的安全是資料庫安全的第一道屏障,外部入侵首先就是從入侵網路系統開始的。網路入侵試圖破壞資訊系統的完整性、機密性或可信任的任何網路活動的集合,具有以下特點:

a) 沒有地域和時間的限制,跨越國界的攻擊就如同在現場一樣方便;

b) 透過網路的攻擊往往混雜在大量正常的網路活動之中,隱蔽性強;

c) 入侵手段更加隱蔽和複雜。

計算機網路系統開放式環境面臨的威脅主要有以下幾種型別:

a) 欺騙(Masquerade);

b) 重發(Replay);

c) 報文修改(Modification of message);

d) 拒絕服務(Deny of service);

e) 陷阱門(Trapdoor);

f) 特洛伊木馬(Trojan horse);

g) 攻擊,如透納攻擊(Tunneling Attack)、應用軟體攻擊等。這些安全威脅是無時、無處不在的,因此必須採取有效的措施來保障系統的安全。

從技術角度講,網路系統層次的安全防範技術有很多種,大致可以分為防火牆、入侵檢測、協作式入侵檢測技術等。

⑴ 防火牆。防火牆是應用最廣的一種防範技術。作為系統的第一道防線,其主要作用是監控可信任網路和不可信任網路之間的訪問通道,可在內部與外部網路之間形成一道防護屏障,攔截來自外部的非法訪問並阻止內部資訊的外洩,但它無法阻攔來自網路內部的非法操作。它根據事先設定的規則來確定是否攔截資訊流的進出,但無法動態識別或自適應地調整規則,因而其智慧化程度很有限。防火牆技術主要有三種:資料包過濾器(packet filter)、代理(proxy)和狀態分析(stateful inspection)。現代防火牆產品通常混合使用這幾種技術。

⑵ 入侵檢測。入侵檢測(IDS—Instrusion Detection System)是近年來發展起來的一種防範技術,綜合採用了統計技術、規則方法、網路通訊技術、人工智慧、密碼學、推理等技術和方法,其作用是監控網路和計算機系統是否出現被入侵或濫用的徵兆。1987年,Derothy Denning首次提出了一種檢測入侵的思想,經過不斷髮展和完善,作為監控和識別攻擊的標準解決方案,IDS系統已經成為安全防禦系統的重要組成部分。

入侵檢測採用的分析技術可分為三大類:簽名、統計和資料完整性分析法。

① 簽名分析法。主要用來監測對系統的已知弱點進行攻擊的行為。人們從攻擊模式中歸納出它的簽名,編寫到IDS系統的程式碼裡。簽名分析實際上是一種模板匹配操作。

② 統計分析法。以統計學為理論基礎,以系統正常使用情況下觀察到的動作模式為依據來判別某個動作是否偏離了正常軌道。

③ 資料完整性分析法。以密碼學為理論基礎,可以查證檔案或者物件是否被別人修改過。

IDS的種類包括基於網路和基於主機的入侵監測系統、基於特徵的和基於非正常的入侵監測系統、實時和非實時的入侵監測系統等。

⑶ 協作式入侵監測技術

獨立的入侵監測系統不能夠對廣泛發生的各種入侵活動都做出有效的監測和反應,為了彌補獨立運作的不足,人們提出了協作式入侵監測系統的想法。在協作式入侵監測系統中,IDS基於一種統一的規範,入侵監測元件之間自動地交換資訊,並且透過資訊的交換得到了對入侵的有效監測,可以應用於不同的網路環境。

3. 宿主作業系統層次安全技術

作業系統是大型資料庫系統的執行平臺,為資料庫系統提供一定程度的安全保護。目前作業系統平臺大多數集中在Windows NT和Unix,安全級別通常為C1、C2級。主要安全技術有作業系統安全策略、安全管理策略、資料安全等方面。

作業系統安全策略用於配置本地計算機的安全設定,包括密碼策略、賬戶鎖定策略、稽核策略、IP安全策略、使用者權利指派、加密資料的恢復代理以及其它安全選項。具體可以體現在使用者賬戶、口令、訪問許可權、審計等方面。

使用者賬戶:使用者訪問系統的“身份證”,只有合法使用者才有賬戶。

口令:使用者的口令為使用者訪問系統提供一道驗證。

訪問許可權:規定使用者的許可權。

審計:對使用者的行為進行跟蹤和記錄,便於系統管理員分析系統的訪問情況以及事後的追查使用。

安全管理策略是指網路管理員對系統實施安全管理所採取的方法及策略。針對不同的作業系統、網路環境需要採取的安全管理策略一般也不盡相同,其核心是保證伺服器的安全和分配好各類使用者的許可權。

資料安全主要體現在以下幾個方面:資料加密技術、資料備份、資料儲存的安全性、資料傳輸的安全性等。可以採用的技術很多,主要有Kerberos認證、IPSec、SSL、TLS、VPN(PPTP、L2TP)等技術。

4. 資料庫管理系統層次安全技術

資料庫系統的安全性很大程度上依賴於資料庫管理系統。如果資料庫管理系統安全機制非常強大,則資料庫系統的安全效能就較好。目前市場上流行的是關係式資料庫管理系統,其安全性功能很弱,這就導致資料庫系統的安全性存在一定的威脅。

由於資料庫系統在作業系統下都是以檔案形式進行管理的,因此入侵者可以直接利用作業系統的漏洞竊取資料庫檔案,或者直接利用OS工具來非法偽造、篡改資料庫檔案內容。這種隱患一般資料庫使用者難以察覺,分析和堵塞這種漏洞被認為是B2級的安全技術措施。

資料庫管理系統層次安全技術主要是用來解決這一問題,即當前面兩個層次已經被突破的情況下仍能保障資料庫資料的安全,這就要求資料庫管理系統必須有一套強有力的安全機制。解決這一問題的有效方法之一是資料庫管理系統對資料庫檔案進行加密處理,使得即使資料不幸洩露或者丟失,也難以被人破譯和閱讀。

我們可以考慮在三個不同層次實現對資料庫資料的加密,這三個層次分別是OS層、DBMS核心層和DBMS外層。

⑴ 在OS層加密。在OS層無法辨認資料庫檔案中的資料關係,從而無法產生合理的金鑰,對金鑰合理的管理和使用也很難。所以,對大型資料庫來說,在OS層對資料庫檔案進行加密很難實現。

⑵ 在DBMS核心層實現加密。這種加密是指資料在物理存取之前完成加/解密工作。這種加密方式的優點是加密功能強,並且加密功能幾乎不會影響DBMS的功能,可以實現加密功能與資料庫管理系統之間的無縫耦合。其缺點是加密運算在伺服器端進行,加重了伺服器的負載,而且DBMS和加密器之間的介面需要DBMS開發商的支援。

定義加密要求工具;

DBMS;

資料庫應用系統;

加密器(軟體或硬體)。

⑶ 在DBMS外層實現加密。比較實際的做法是將資料庫加密系統做成DBMS的一個外層工具,根據加密要求自動完成對資料庫資料的加/解密處理:

定義加密要求工具加密器;

(軟體或硬體);

DBMS;

資料庫應用系統。

採用這種加密方式進行加密,加/解密運算可在客戶端進行,它的優點是不會加重資料庫伺服器的負載並且可以實現網上傳輸的加密,缺點是加密功能會受到一些限制,與資料庫管理系統之間的耦合性稍差。

下面我們進一步解釋在DBMS外層實現加密功能的原理:

資料庫加密系統分成兩個功能獨立的主要部件:一個是加密字典管理程式,另一個是資料庫加/解密引擎。資料庫加密系統將使用者對資料庫資訊具體的加密要求以及基礎資訊儲存在加密字典中,透過呼叫資料加/解密引擎實現對資料庫表的加密、脫密及資料轉換等功能。資料庫資訊的加/解密處理是在後臺完成的,對資料庫伺服器是透明的。

加密字典管理程式;

加密系統;

應用程式;

資料庫加解密引擎;

資料庫伺服器;

加密字典;

使用者資料。

按以上方式實現的資料庫加密系統具有很多優點:首先,系統對資料庫的終端使用者是完全透明的,管理員可以根據需要進行明文和密文的轉換工作;其次,加密系統完全獨立於資料庫應用系統,無須改動資料庫應用系統就能實現資料加密功能;第三,加解密處理在客戶端進行,不會影響資料庫伺服器的效率。

資料庫加/解密引擎是資料庫加密系統的核心部件,它位於應用程式與資料庫伺服器之間,負責在後臺完成資料庫資訊的加/解密處理,對應用開發人員和操作人員來說是透明的。資料加/解密引擎沒有操作介面,在需要時由作業系統自動載入並駐留在記憶體中,透過內部介面與加密字典管理程式和使用者應用程式通訊。資料庫加/解密引擎由三大模組組成:加/解密處理模組、使用者介面模組和資料庫介面模組。其中,“資料庫介面模組”的主要工作是接受使用者的操作請求,並傳遞給“加/解密處理模組”,此外還要代替“加/解密處理模組”去訪問資料庫伺服器,並完成外部介面引數與加/脫密引擎內部資料結構之間的轉換。“加/解密處理模組”完成資料庫加/解密引擎的初始化、內部專用命令的處理、加密字典資訊的檢索、加密字典緩衝區的管理、SQL命令的加密變換、查詢結果的脫密處理以及加脫密演算法實現等功能,另外還包括一些公用的輔助函式。

資料加/解密處理的主要流程如下:

1) 對SQL命令進行語法分析,如果語法正確,轉下一步;如不正確,則轉6),直接將SQL命令交資料庫伺服器處理。

2) 是否為資料庫加/脫密引擎的內部控制命令?如果是,則處理內部控制命令,然後轉7);如果不是則轉下一步。

3) 檢查資料庫加/脫密引擎是否處於關閉狀態或SQL命令是否只需要編譯?如果是則轉6),否則轉下一步。

4) 檢索加密字典,根據加密定義對SQL命令進行加脫密語義分析。

5) SQL命令是否需要加密處理?如果是,則將SQL命令進行加密變換,替換原SQL命令,然後轉下一步;否則直接轉下一步。

6) 將SQL命令轉送資料庫伺服器處理。

7) SQL命令執行完畢,清除SQL命令緩衝區。

以上以一個例子說明了在DBMS外層實現加密功能的原理。

5. 結束語

本文對資料庫系統安全防入侵技術進行綜述,提出了資料庫系統的安全體系三個層次框架,並對三個層次的技術手段展開描述。文中還以在DBMS外層實現加密功能的原理為例,詳細說明了如何應用資料庫管理系統層次的安全技術。

資料庫系統安全框架的三個層次是相輔相承的,各層次的防範重點和所採取的技術手段也不盡相同,一個好的安全系統必須綜合考慮核運用這些技術,以保證資料的安全。

[@more@]作者:jindao 來源:賽迪網技術社群

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8271432/viewspace-888841/,如需轉載,請註明出處,否則將追究法律責任。

相關文章