摘 要: 為在數據庫安全增強工作中如何進行推理控制給出了一種較為完整的解決方案。
關鍵詞: 多級安全數據庫 推理控制 強制訪問控制 函數依賴
信息技術的發展使得計算機已經滲透到社會生活的各個方面。隨著Internet的廣泛應用,網上信息的開放與共享性日益增強,因此,計算機已經成為必不可少的信息處理手段。但隨之而來的是對信息的惡意破壞愈加嚴重,因而使信息安全成為研究的一個重點。數據庫作為網上信息的主要載體,其安全性自然成為信息安全的重中之重。
當前被廣泛使用的數據庫系統一般只達到了C2級安全標準,為了確保數據庫中數據的安全性和可用性,只能采用在現有的數據庫系統上進行安全增強工作的方法。
多級安全數據庫使用基于多級安全模型的強制訪問控制MAC(Mandatory Access Control)機制來保證數據庫的安全。但是在多級安全數據庫中,由于推理通道的存在,即使強制訪問機制完全發生作用,有時也不可避免地存在信息泄漏的問題。本文針對在實現多級安全數據庫增強器時如何解決推理通道的問題,提出了一種解決方案。
1 多級安全數據庫與推理問題
1.1 多級安全數據庫
現實世界中的大多數應用需要將信息劃分為不同的保密級別,對同一條記錄內的不同字段也可能要劃分為不同的保密級別,甚至同一字段的不同值之間都要劃分為不同的保密級別。在多級安全數據庫體系中,對不同的數據項賦予不同的保密級別,然后根據數據項的密級決定某一訪問操作是否合法。在對數據進行了分級劃分后,MAC通過一定的強制訪問控制策略來控制用戶對信息的存取,從而保證信息的安全。
多級安全數據庫通過使用多級保護機制,擴展了系統安全的粒度,提供了更為全面的安全保證。
1.2 數據庫中的推理問題
多級安全數據庫中的推理是指:數據庫中擁有低安全分類標識的用戶,通過獲取低安全分類標識的數據,并通過數據庫查詢之外的操作,可以推斷出具有高安全分類標識的信息。下面是Marks[2]給出的一個數據庫推理問題的正式定義:
多級安全數據庫中的推理是指用戶從數據庫中獲取元組集T,該元組具有屬性A。此時如果可以描述出一個元組集T′,具有屬性集A′,而且有T′不包含于T或者A′不等于A,則從邏輯上講,此時存在一個推理通道,從元組集T可以推導出元組集T′。
在多級安全數據庫中,通過多級安全模型及其MAC機制能夠防止具有低安全分類標識的用戶通過查詢命令來直接獲取高安全分類標識的數據。但是用戶可以通過推理來獲取高安全分類標識的數據信息,MAC并不能解決因此而帶來的信息泄密問題。因此需要對多級安全數據庫中的推理通道進行控制。
2 推理控制
2.1 推理問題的分類
多級安全數據庫中的推理安全問題可分二類。第一類問題是由于數據庫安全設計不合理導致分類的不連續性,從而引起的推理問題。這類問題主要是使用數據庫中元數據信息進行推理所引起的;第二類問題是由于語義信息而導致的推理問題。存儲在數據庫中的信息不僅包括個體的數據條目,還包含這些條目間的關系。但是關系數據模型強調有效的數據結構和操作,缺乏一個可以充分表示應用分類的數據關聯。所以通過對于數據項的安全分類標識不能確保數據的安全。如果此時應用的語義,或者說數據條目之間的關系沒有被考慮,就會產生安全問題。
2.2 推理控制的方法
從上面對推理問題的分類可以看到,推理所使用的知識可以分成二類:一類是數據庫中元數據的信息;另一類是數據庫中和應用相關的數據信息。對于第一類知識,由于只和數據庫中數據模式相關,因此這樣的信息在數據庫設計階段就可以獲得。而第二類知識是數據庫中和應用相關的數據信息,這樣的信息只能在數據庫運行期獲得。由于用于推理的知識可以在不同的階段獲得,所以可以把推理控制工作分為設計期推理控制和運行期推理控制。
設計期推理控制研究的目的在于產生一個設計良好的多級安全數據庫,從而使用戶不能通過一系列的查詢來推斷出受限制的元組。其主要方法是在數據庫的設計階段,使用數據庫的元數據信息進行檢測,確定可能存在的推理通道,并修改數據庫中客體的安全分類標識,從而控制數據庫中的推理通道。如修改不成功則要把該條函數依賴關系作為查詢期推理控制的規則傳送給查詢期推理控制模塊。 設計期推理控制的結構如圖1所示。
在數據庫的設計階段并不能完全解決數據庫系統中的所有推理問題,尤其是和存儲在數據庫中的具體數據相關的推理問題。對于這樣的問題,還需要在數據庫的運行過程中對用戶的查詢操作所涉及到的數據進行檢測,才能發現存在的推理通道。在關系數據庫系統中,對用戶所提交的查詢命令及其查詢結果數據進行分析,并根據系統中所存儲的推理規則來進行推理通道的檢測,根據檢測的結果來進行推理控制,這一過程被稱為基于用戶查詢的推理控制。對于需要使用只有在運行期才能獲得的外部知識的推理問題,只能在查詢期進行相應的控制。同時,在設計期沒有消除的推理通道也要在查詢期進行檢查和控制。查詢期推理控制的結構如圖2所示。
3 設計期推理控制的設計和實現
3.1 設計期的推理控制
在設計期,主要考慮由于元數據的使用而導致的推理問題。與元數據相關的推理往往是由于在安全設計時忽略了元數據知識對系統安全的影響,從而造成了潛在的推理通道。對于這樣的問題,可以通過調整系統的安全設計來保證信息的安全。具體的方法就是通過分析在設計期就可以獲得的元數據信息,使用安全約束規則,發現潛在的違反安全約束規則的安全設計,然后調整或者重新分配客體的安全分類標識,從而保證運行期的安全。這樣設計的主要優點是:解決了由元數據引起的推理問題,同時可修改應用的安全設計且不需要在查詢期分析大量數據,所以不會影響數據庫運行的效率。本文研究的元數據知識主要是和函數依賴相關的信息。
設存在一個關系模式R(A1,A2……An),Ai表示關系R上的屬性,r為該關系模式上的一個關系實例,t表示關系r的一個元組。假設X、Y為關系R屬性子集,t(X)則表示元組t在屬性X上的取值。如果在二個屬性集X、Y之間存在函數依賴關系X→Y,則:對于任意一個關系實例r上的二個元組t1、t2,如果有t1[X]=t2[X],則必有t1[Y]=t2[Y],也就是說Y的值依賴于X的值。
此時由于函數依賴關系的存在可能會產生信息泄漏。在多級安全數據庫中可以通過調整應用的安全設計來消除上述的推理通道。
3.2 設計期推理控制的設計
設計期推理控制器主要包括以下功能:
(1)知識獲取。推理需要外部知識,對于推理的控制,當然也需要獲取可能引起推理問題的外部知識。知識獲取模塊就是用來獲取同推理分析相關的知識。它主要包括系統安全管理員通過系統提供的界面輸入在設計階段已知的函數依賴關系。知識獲取模塊在獲取這樣的函數依賴關系之后,首先轉化為系統內部的數據結構,然后通過計算最小函數依賴集去除冗余的函數依賴關系(包括傳遞依賴和部分依賴),從而為推理通道分析準備數據。
(2)與強制訪問的接口。用來獲取數據庫安全控制模塊中的模式信息,以及相關的安全分類標識信息,即系統的安全設計信息。因為推理控制器對數據庫中可能存在的推理通道的分析,主要是為了發現由于函數依賴存在而違反了安全約束規則的一些安全設計。所以首先需要獲得的就是安全分類標識信息。同時對于推理通道的控制是通過修改數據庫中客體的安全分類標記來完成的,所以需要有與強制訪問相應的接口模塊。通過該模塊可以獲取數據庫中客體分類標識信息,也可以修改相應的安全分類標識。
對于待檢查的關系要獲取的信息為:出現在函數依賴集中的各個屬性的安全標記和該關系上所定義的關鍵字集合。
(3)推理控制模塊。在獲取了與系統安全設計相關的知識及與元數據相關的知識以后,推理控制模塊根據安全設計規則對相關知識進行分析,找到可能的推理通道,提示安全管理員,由安全管理員修改安全標記,從而達到去除推理通道的目的。
(4)與查詢期推理控制的接口。如果因為各種原因,修改安全標記失敗,使得設計期檢查發現的推理通道不能被消除,則要把這些存在問題的函數依賴記錄下來,加入查詢期推理控制的規則庫中,以備查詢期推理控制使用。
本系統所采用的推理控制規則是:對一條函數依賴關系,其決定因素中,除關鍵字之外,至少有一個屬性,它的安全標記應該不小于被決定因素。即如果存在函數依賴a、b、c=>d,其中a、b、c的安全級別均小于d的安全級別,而d的取值又由a、b、c的取值所決定,則有權訪問屬性a、b、c,卻無權訪問d的用戶便可推知d的取值,從而引起信息泄漏。對于滿足BCNF的關系,因為每個決定因素都是關鍵字,而關鍵字往往是檢索的主要依據,故安全級別較低。而在函數依賴A→B中,如果A是關鍵字,則即使A的安全級別低于B的安全級別,由于Unique關鍵字(包括主關鍵字)的惟一性約束要求一個Unique關鍵字只能對應一個元組,因此不會產生推理通道。這樣的推理控制規則可以使系統兼具安全性和可用性。
3.3 設計期推理控制的實現
系統實現的算法如下:
輸入:某模式下待檢查的關系名
輸出:該關系中可導致推理問題的函數依賴關系
errorset={ };Pkset={ };fdset={ };
ruleset={ }
GetPK(schemaname,tablename,Pkset);
GetFD(schemaname,tablename,fdset);
for each fd in fdset
{
for each x in fd.forepart
{
if x not in Pkset
{if x.level>m
m=x.level;
}
}
if m<fd.hindpart.level then
errorset=errorset∪fd
}
對存在推理問題的函數依賴關系的集合errorset作如下操作:
for each e in errorset
{
if (modify_level(e))
delete e from errorset
else
ruleset=ruleset∪e;
}
errorset存放可能引起推理問題的函數依賴關系;fdset存放待檢查關系上定義的函數依賴集合;Pkset為該關系上的關鍵字集合;ruleset為修改標記失敗的函數依賴的集合,將被用來作為查詢期推理控制所使用的規則的一部分;函數modify_level用于修改安全標記,使得函數依賴的前件至少有一個屬性的安全級別不小于后件的安全級別。
4 查詢期推理控制的設計和實現
4.1 查詢期推理控制
設計期的控制并不能避免所有的推理問題,尤其是聚集、關聯等問題。因為聚集推理主要通過應用數據來進行,所以只能在數據庫的運行期進行相應的控制,才能解決這個問題。
由于多級安全數據庫保證了用戶不可以直接對敏感信息進行操作,此時信息泄漏是通過多次查詢,根據獲得的非敏感信息按照一定的推理規則進行推理而產生的。 由于每一次查詢都是通過SQL語句進行,所以只要分析多個SQL查詢及查詢返回的結果集,就可以判斷是否存在信息泄漏。
4.2 查詢期推理控制設計
查詢期推理控制器主要包括下列功能:
(1)規則的獲取。獲得數據之間的語義聯系。這些可作為進行推理所需的規則,包括來自設計期的推理規則、安全管理員輸入的規則和系統自動發現的推理規則。
(2)與強制訪問控制(MAC)的接口。強制訪問控制模塊將直接拒絕違反MAC安全策略的查詢。通過了強制訪問檢查的用戶查詢,將由運行期的推理檢測模塊作進一步的檢查。
(3)推理檢測。把結果集返回給用戶之前,根據推理規則對當前查詢結果和用戶的歷史查詢進行分析。如果發現用戶可能使用了相應的推理規則,就說明存在潛在的信息泄漏。此時需要結合安全設計的相關信息,判斷推導出的信息對該用戶來說是否屬于敏感信息。如果是,就認為該查詢為惡意推理查詢。對于這樣的查詢需要進行控制,在系統中就會向用戶返回空的結果集。
(4)歷史查詢記錄。由于推理檢測時要用到用戶的歷史查詢結果,所以要存儲一段時間內的歷史查詢。
(5)與設計期推理控制的接口。從設計期推理控制模塊中取得在設計期存在推理問題卻未能成功修改安全標記的所有函數依賴關系,并將其作為查詢期推理控制的規則。
4.3 查詢期推理控制實現
輸入:用戶的查詢
輸出:結果集或空集
result=Execsql;known=getlog;
rules=genRule;
for each r in rules
{
if result∪known satisfies r
if sensitive (r)
return { }
}
retrun result;
genRule用來生成進行推理所用到的規則,包括:采用數據挖掘中尋找關聯規則的Apriori算法自動進行的規則挖掘;從安全管理員的輸入得到規則;從設計期推理控制模塊獲得的推理規則。Sensitive 用來檢查規則r所泄漏的信息對用戶是否為敏感的(即安全標識高于用戶安全標(接上頁)
識),Known存放用戶的歷史查詢記錄,result為執行當前查詢的結果。
5 結束語
本文為實現多級安全數據庫中的推理控制提供了一種較為完整的解決方案,為實現更高安全級別的安全數據庫系統中的推理控制提供了基礎。該方案目前被應用于國家863計劃信息安全領域內的數據庫安全增強技術課題中,以期實現一個能夠提供B2級(國家標準的結構化保護級)安全標準的主要安全功能的安全增強器,并取得了很好的效果。當前,對于多級安全數據庫的推理,很難找到一個完整的理論體系來描述所有的推理問題。由于多級安全數據庫推理控制的復雜性,本文雖然給出了解決推理問題的完整框架,但還需要更多的研究工作。
參考文獻
1 Stickel X.Detection and Elimination of Inference Channels in Multilevel Relational Database Systems.Proceeding Of the IEEE Symposium on Security and Privacy,1993
2 Marks.Inference in MLS Database Systems.IEEE Trans on Knowledge and Data Engineering,1996;8(1)
3 Su T.Inferences in Database.Dept of Computer Engineering and Science,Case Western Reserve University,Ph.D,1986
4 Su T,Ozsoyogiu G.Data Dependencies and Inference Control in Multilevel Relational Database Systems.Proceedings of the IEEE Symposium on Security and Privacy,1987
5 Han J W,Kamber M.Data Mining Concepts and Techniques. New York:Morgan Kaufmann Publishers,2001