• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    可信計算環(huán)境下的數(shù)據(jù)庫強制行為控制研究

    2018-08-15 08:02:32李曄鋒徐達(dá)文樂嘉錦
    計算機應(yīng)用與軟件 2018年8期
    關(guān)鍵詞:訪問控制事務(wù)客體

    李曄鋒 公 備 徐達(dá)文 樂嘉錦

    1(北京工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院 北京 100124)2(寧波工程學(xué)院電子與信息工程學(xué)院 浙江 寧波 315211)3(東華大學(xué)計算機科學(xué)與技術(shù)學(xué)院 上海 201620)

    0 引 言

    訪問控制是數(shù)據(jù)庫安全領(lǐng)域的重點[1],它根據(jù)主體和客體的屬性進行授權(quán)操作[2],用于限制未授權(quán)用戶對敏感數(shù)據(jù)的訪問。然而,這種以權(quán)限、授權(quán)、身份作為基礎(chǔ)的控制方式存在較大的安全隱患,如:攻擊者利用密碼嗅探可能獲得用戶賬號和密碼;利用緩沖區(qū)溢出和代碼漏洞可能竊取敏感數(shù)據(jù);利用SQL注入[3]可能繞過訪問控制執(zhí)行非法的操作。更重要的是,很多的犯罪行為是由擁有權(quán)限的內(nèi)部人員所為[4],如銀行的財務(wù)人員可以利用INSERT和UPDATE權(quán)限向非法的信用卡賬號執(zhí)行轉(zhuǎn)賬操作[5]。由此可見,存儲著敏感信息的數(shù)據(jù)庫不但需要運行在一個可信的環(huán)境中,更需要對內(nèi)部用戶的行為進行主動控制,防止權(quán)限濫用現(xiàn)象的發(fā)生。

    可信計算是指計算機運算的同時進行安全防護,使操作和過程行為在任意條件下的結(jié)果總是與預(yù)期一樣,計算全程可測可控,不被干擾,是一種運算和防護并存,自我免疫的新計算模式[6]。在TCG制訂的國際標(biāo)準(zhǔn)中,可信平臺模塊(TPM)依賴于上層應(yīng)用的調(diào)用,只能對數(shù)據(jù)完整性進行度量,無法對系統(tǒng)的運行情況進行實時監(jiān)控[7]。我國自主創(chuàng)新的可信平臺控制模塊(TPCM)[8]除了擁有TPM的所有功能外,還能支持信任鏈的擴展,實現(xiàn)對軟件的運行狀態(tài)和API調(diào)用行為進行主動度量[9]。但這些行為由指令和編碼組成,在不同的軟件中可能代表不同的含義,導(dǎo)致語義斷層的出現(xiàn)。

    根據(jù)目前的研究成果,可信計算能夠為DBMS的運行提供安全的環(huán)境,免疫一些外部攻擊如密碼嗅探、代碼注入和緩沖區(qū)溢出等非法操作。另外,盡管各大DBMS廠商提供的參數(shù)化查詢[10]方案有效地杜絕了從Web端進行SQL注入的可能。但是對于存儲過程中的SQL注入攻擊[11]以及內(nèi)部人員的權(quán)限濫用行為卻仍然無法避免。針對此類行為,目前大多采用機器學(xué)習(xí)相關(guān)的方法進行被動地檢測[12-14],然而檢測結(jié)果存在誤報率,且通用性較差。

    基于當(dāng)前的研究現(xiàn)狀,本文提出了一種數(shù)據(jù)庫強制行為控制模型,為單獨查詢語句和事務(wù)中的查詢序列制定運行規(guī)則,充分體現(xiàn)了“強制”的特點。在可信計算的基礎(chǔ)上,提出可信數(shù)據(jù)庫控制基(TDCB)結(jié)構(gòu),提供行為策略控制者的可信認(rèn)證和行為策略調(diào)用過程中的完整性度量。此外,模型還具有以下的特點:行為控制策略使用白名單機制[15],免疫任何未通過策略定義的行為;行為匹配過程基于優(yōu)化后的語法樹,拼接查詢語句無法達(dá)到非常訪問的目的;通過可信軟件基(TSB)[16]調(diào)用TPCM的度量機制對行為策略進行主動度量,充分保證行為策略在存儲和執(zhí)行過程中不被非法篡改。

    本文貢獻主要存在于兩個方面:

    (1) 強制行為控制模型中的相關(guān)定義約束了授權(quán)用戶的操作行為,嚴(yán)格限制非法訪問現(xiàn)象的發(fā)生。

    (2) TDCB連接DBMS和TSB,對強制行為策略進行完整性度量,實現(xiàn)可信計算技術(shù)對數(shù)據(jù)庫內(nèi)部行為的保護。

    1 問題的描述與動機

    1.1 數(shù)據(jù)庫訪問控制的局限性

    傳統(tǒng)的訪問控制技術(shù)只關(guān)心權(quán)限使用的“能”與“否”,用戶一旦獲取權(quán)限后就可以為所欲為,在用戶名和密碼被盜用的情況下數(shù)據(jù)庫將遭受巨大的損失。在不丟失用戶賬號的情況下,使用SQL注入也可以繞過訪問控制達(dá)到非法訪問的目的,在下面的SQL語句中表述了登錄判斷行為:

    SELECT * FROM USERS

    WHERE username=’mike’ and password=’123’

    即使數(shù)據(jù)庫部署在可信計算環(huán)境保護的服務(wù)器上,但如果連接數(shù)據(jù)庫的Web應(yīng)用程序健壯性比較差,惡意訪問者可以通過在表單或者瀏覽器的地址欄中填入形如“’or ’1’=‘ 1--”的字符達(dá)到SQL注入的效果。究其本質(zhì),是因為寫在應(yīng)用程序連接字符串中的數(shù)據(jù)庫用戶對USERS表具有SELECT操作的權(quán)限。

    通過構(gòu)建上述查詢的語法樹,不難發(fā)現(xiàn)該查詢擁有三個節(jié)點:一個投影操作π(USERS.*)、兩個選擇操作σ(USERS.username)和σ(USERS.password)。如果規(guī)定在此登錄判斷行為對應(yīng)的查詢中必須包含對username和password字段的選擇操作,并且必須使用等號作為操作符,則上面的SQL注入攻擊失效。

    為了達(dá)到上述效果,需要引入“必須”作為修飾詞,對用戶的操作行為進行約束,并體現(xiàn)其強制性。這種方法除了能夠抵御SQL注入攻擊外,還具備以下兩個優(yōu)點:

    (1) 授權(quán)用戶必須了解某條記錄中username或者password字段的內(nèi)容,才能獲取該記錄中其他字段的信息。

    (2) 授權(quán)用戶的每次操作只能獲取有限條記錄,使得信息泄露和篡改造成的損失降低到最小。

    但是,目前沒有行為控制與數(shù)據(jù)庫層次上的研究,下面簡要介紹行為控制的研究。

    1.2 行為控制的研究現(xiàn)狀

    “行為控制”(Behavior Control)這個概念最早由Bondi提出[17],它本身就是為可信計算服務(wù),后來在《軟件行為學(xué)》中被形式化定義[4]:“主體S對行為A是否被執(zhí)行由其主體行為蹤跡A1A2…An針對某個條件的滿足性決定”。與傳統(tǒng)的訪問控制相比,它具有兩個改進:

    (1) 安全控制概念從個體概念向群體概念升級。

    (2) 把行為的完整性添加到完整性概念范疇中。

    《軟件行為學(xué)》通過建立被訪問客體和系統(tǒng)狀態(tài)之間的關(guān)聯(lián),使得行為控制具有“強制性”,即行為必須包括歷史行為序列的條件滿足性檢查。它的另一貢獻是闡述了強制行為控制(MBC)與傳統(tǒng)訪問控制(DAC和MAC)之間的結(jié)構(gòu)關(guān)系(圖1),即行為控制必須建立在訪問控制的基礎(chǔ)上。一旦脫離了訪問控制,行為控制將變得毫無意義。

    圖1 具有MBC的訪問控制

    (1) 客體關(guān)聯(lián)系統(tǒng)狀態(tài)只是增強了行為控制能力,并沒有真正體現(xiàn)出“強制”的特點。

    (2) 盡管行為控制以訪問控制為基礎(chǔ),但它應(yīng)當(dāng)具有一定的獨立性,即行為控制策略與訪問控制策略之間不是整體與部分的關(guān)系,而是低耦合的調(diào)用關(guān)系。

    (3) 行為控制過程開銷巨大,采用分布式主動控制和伴侶代理的方法并不適用于數(shù)據(jù)庫環(huán)境。

    1.3 可信計算技術(shù)與數(shù)據(jù)庫研究現(xiàn)狀

    目前,我國的可信計算已經(jīng)形成了“以密碼學(xué)為基礎(chǔ)、可信芯片為信任根、主板為平臺、軟件為核心、網(wǎng)絡(luò)為紐帶、應(yīng)用成體系”的自主創(chuàng)新技術(shù)框架[19],幾乎覆蓋了整個計算機的體系結(jié)構(gòu),但是在數(shù)據(jù)庫方面仍然缺乏可信機制的配套。

    作為一種系統(tǒng)軟件,DBMS具有它的特殊性。一方面,它位于OS之上,在運行時受到OS訪問控制策略的制約;另一方面,它自身擁有的訪問控制體系不依賴于OS,具有較強的獨立性?,F(xiàn)有的可信計算技術(shù)能夠為DBMS提供可信的運行環(huán)境,包括硬件、OS和網(wǎng)絡(luò)環(huán)境,并且對構(gòu)成DBMS的可執(zhí)行文件進行度量,但無法深入DBMS內(nèi)部對其客體進行更細(xì)粒度的可信度量。例如,假設(shè)DBMS存在一個擁有修改元數(shù)據(jù)權(quán)限的后門用戶,它可以修改任何訪問控制策略。由于該后門只針對DBMS本身,在操作系統(tǒng)層次不產(chǎn)生任何安全威脅,故當(dāng)策略發(fā)生修改時,可信計算技術(shù)無法對其進行實時度量。

    2 可信計算環(huán)境下的數(shù)據(jù)庫強制行為控制研究

    2.1 數(shù)據(jù)庫強制行為控制模型

    2.1.1 模型定義

    下面給出了數(shù)據(jù)庫強制行為控制(MBC)模型的相關(guān)定義。目前,模型中只包含數(shù)據(jù)庫中最主要的DML行為,即含有SELECT、INSERT、DELETE和UPDATE操作的行為,因為它們會生成不同的查詢語法樹和執(zhí)行計劃,進而產(chǎn)生不同的語義。其他類型的操作都是立即執(zhí)行的,可以通過配置訪問控制策略進行管理。

    定義1主體主體即操作者實體,通常表示數(shù)據(jù)庫用戶,每個主體在元數(shù)據(jù)中有唯一的id與之對應(yīng)。主體的集合用S表示。

    定義2客體客體即被操作者實體,可以表示粗粒度的表、視圖等,也可以表示細(xì)粒度的屬性,每個客體在元數(shù)據(jù)中有唯一的id與之對應(yīng)??腕w的集合用O表示。

    定義3原子操作行為該定義表示不可分割的操作行為,用f(OB,op)表示,其中f∈{prj,sel,join}分別對應(yīng)投影、選擇和連接操作,OB?O表示客體集合,op為一個短整數(shù)對應(yīng)一個操作符(如“=”、“>”、“<”等)或一個操作謂詞(如LIKE、BETWEEN、IN等)。針對不同的原子操作行為,有如下的約定:

    對于投影操作,有op=0(即不需要操作符)且|OB|=1;對于選擇操作,有|OB|=1;對于連接操作,有|OB|=2。

    定義4操作行為操作行為的一般形式化描述為:A=F(OBJ):{f(OB,op)|OB?OBJ},其中OBJ?O表示客體集合(通常來自于FROM子句),意味著每種操作行為都由原子操作行為組成,而F={SELECT,INSERT,DELETE,UPDATE}表示對應(yīng)的DML操作,每種操作對應(yīng)一個短整數(shù)。

    操作行為的另一種形式化描述為A=F(OBJ):{∪(PRJ,SEL,JOIN)},其中PRJ、SEL和JOIN分別表示執(zhí)行投影、選擇和連接原子操作行為的集合。針對不同的操作行為,有如下的約定:

    (1) 對于DELETE操作,PRJ=?;對于UPDATE操作,使用投影操作對應(yīng)SET語句;對于INSERT操作則沒有任何原子操作行為。以上三種操作中的|OBJ|=1,即只有一個客體參與(本文忽略INSERT INTO … SELECT和UPDATE … SET… FROM等在個別數(shù)據(jù)庫中出現(xiàn)的特殊情況)。

    (2) 使用符號t(F(OBJ))或t(A)表示操作行為A發(fā)生的時刻,同理t(f(OBJ))表示原子操作行為發(fā)生的時間,規(guī)定同一個操作行為中所有的原子操作行為發(fā)生的時刻都是相同的。

    定義5事務(wù)數(shù)據(jù)庫的事務(wù)可由一組DML操作行為序列表示:T={A1,A2,…,An|t(A1)

    定義6強制行為約束強制行為約束的形式化描述為M=F(OBJ):{(INC,EXC)|INC∩EXC=?},其中INC={∪(PRJ1,SEL1,JOIN1)}?OBJ表示必須出現(xiàn)的原子操作行為集合,EXC={∪(PRJ2,SEL2,JOIN2)} ?OBJ表示必須不能出現(xiàn)的原子操作行為集合,并且EXC中各原子行為的op=0。一旦不允許某個原子行為出現(xiàn),無論它使用哪種操作符都沒有任何意義。

    定義7操作行為匹配給定操作行為A=F(OBJ):{f(OB,op)} 以及強制行為約束M=F′(OBJ′):{(INC,EXC)},如果滿足以下的條件:

    (1)F=F′且OBJ?OBJ′;

    (2)INC?{f(OB,op)};

    (3)EXC∩{f(OB,op)}=?。

    則稱操作行為A匹配行為約束M,記為A∝M。

    定義7通過約束M明確規(guī)定了操作行為A的類型、被操作客體的范圍、必須出現(xiàn)和不能出現(xiàn)的原子操作行為。以1.1節(jié)所述的登錄判斷為例,可定義約束 M=SELECT(USERS):INC={sel(USERS.username,=), sel(USERS.password,=)},EXC=?,表示必須對用戶名和密碼兩個字段執(zhí)行選擇操作,使用的操作符必須皆為等號,沒有不能出現(xiàn)的原子操作行為。當(dāng)本節(jié)開始的例子中的查詢語句到來后,它會在優(yōu)化語法樹的過程中被自動轉(zhuǎn)換為A=SELECT(USERS):{prj(USERS. *),sel(USERS.username,=),sel(USERS.password,=)},根據(jù)定義易知A匹配M。

    定義8行為約束序列行為約束序列可由一組強制行為約束的序列表示:L={M1,M2,…,Mn}。

    定義9事務(wù)匹配對于任意事務(wù)T和行為約束序列L,如果滿足以下條件:

    (1) |T|=|L|=n;

    (2)Ai∝Mi,i=1,2,…,n。

    則稱事務(wù)T匹配行為約束序列L,記為T∝L。

    定義9表示事務(wù)T中的各個操作行為必須與策略P中的強制行為約束匹配,并且連執(zhí)行順序都需要與P一致,不能額外增加和刪減操作,這一點足以證明MBP能夠保證事務(wù)的ACID屬性。

    定義10強制行為策略(MBP) 強制行為策略由二元組(SUB,L)構(gòu)成,其中SUB∈S表示允許使用行為約束列表L的主體集合。

    強制行為策略構(gòu)成強制行為列表(MBL),即MBL={(SUB,L)|SUB∈S}。MBL在數(shù)據(jù)庫內(nèi)以白名單的形式存儲,若MBL=?,即使主體通過了訪問控制驗證,也不能執(zhí)行任何DML操作。

    定義11可信事務(wù)假設(shè)主體s對事務(wù)T中的每一條語句都具有相應(yīng)的訪問控制權(quán)限,并且存在策略P=(SUB,L)∈MBL滿足s∈SUB及T∝L,則稱T為可信事務(wù)。

    2.1.2 模型實現(xiàn)

    實現(xiàn)MBC模型的關(guān)鍵是行為策略的實現(xiàn),主要包含兩個方面:行為編碼和MBP描述。其中行為編碼分為行為約束編碼和操作行為編碼,前者的目的是讓MBP能夠存儲到數(shù)據(jù)庫的元數(shù)據(jù)中,后者的目的是使用戶輸入的DML語句能夠與已編碼的行為約束進行匹配。策略描述的目的是讓MBP能夠以一種形式化的方式供外部可信模塊使用。

    文獻[18]提出了一種用戶行為編碼方法,按照查詢語句的結(jié)構(gòu)把編碼過程分為結(jié)構(gòu)編碼和條件編碼。它的思想與定義4操作行為和定義6強制行為約束的描述都類似,但是文獻[18]還需要考慮選擇操作中屬性取值的問題,因此本節(jié)對該方案進行了簡化和改進,作為行為約束編碼和操作行為編碼的依據(jù)。

    根據(jù)定義6,一個強制行為約束由以下幾個部分組成:DML操作類型、被操作的客體集合、必須出現(xiàn)的三種原子操作集合、必須不能出現(xiàn)的三種原子操作集合。在編碼過程中,本文對結(jié)構(gòu)編碼和條件編碼進行整合,并約定如下的編碼規(guī)則:

    (1) 使用從元數(shù)據(jù)中獲取的id來描述客體,多個客體用逗號“,”分隔。

    (2) 以單獨的id表示單個投影操作;以(id, op)的形式表示單個選擇操作;以(id, op, id)的形式表示單個連接操作;沒有任何操作用0表示。每個原子操作行為之間使用逗號“,”分隔。

    假設(shè)USERS表的id為10000,它的username和password屬性的id分別為23000和23001,則對登錄判斷事務(wù)中的行為約束進行編碼的結(jié)果如表1所示。

    表1 強制行為約束的編碼結(jié)果

    每一條編碼的結(jié)果被存入元數(shù)據(jù)中,完善相關(guān)屬性(如主外鍵等)后形成行為約束表。此外還需要有一張行為策略表,包含主體信息和行為約束的數(shù)目等,其主鍵與行為約束表的外鍵構(gòu)成關(guān)聯(lián)。

    用戶輸入的DML語句,從詞法分析開始到物理執(zhí)行計劃的生成,包含多個階段,其中的語法樹優(yōu)化是一個重要的階段,它決定著執(zhí)行計劃的生成,包括使用SQL注入攻擊時語句拼接的處理結(jié)果,因此強制行為控制必須以它為基礎(chǔ)。定義3描述的原子操作行為伴隨著語法樹的生成被初始化,并且在語法樹被優(yōu)化后最終確定,因此大多數(shù)的DBMS會在這個階段根據(jù)訪問控制進行權(quán)限判斷。一旦當(dāng)前主體擁有該DML語句的操作權(quán)限,系統(tǒng)將對其進行操作行為編碼,并把編碼結(jié)果存儲在緩沖區(qū)中。

    操作行為的編碼過程與行為約束編碼類似,不同的是前者的編碼結(jié)果只包含DML操作符F、參與操作的客體集合OBJ以及PRJ、SEL和JOIN,如定義4所示。

    這樣,在事務(wù)提交前,其中的每條DML語句都通過了訪問控制驗證,并且執(zhí)行了相應(yīng)的行為編碼,生成了最終的物理執(zhí)行計劃,此時需要判斷該事務(wù)是否可信,算法描述如下:

    輸入:數(shù)據(jù)庫用戶主體s,事務(wù)T,MBL。

    輸出:True或者False。

    1. begin

    2. while (P=MBL.next)!=NULL

    3. flag=true;

    4. if s(P.SUB continue;

    5. if |T|!=|P.L| continue;

    6. for i=1 to |T|

    7. if !(T.Ai(P.L.Mi)

    8. flag=false;

    9. break;

    10. end if

    11. end for

    12. if flag return flag;

    13. end while

    14. return false;

    15. end

    根據(jù)定義11,算法遍歷MBL中的所有MBP,首先判斷主體s是否屬于的SUB(第4行),然后根據(jù)定義9判斷事務(wù)T是否根MBP中的行為序列L匹配,包括T和L長度的匹配(第5行)以及逐條進行操作行為匹配,只要有一條不匹配即退出內(nèi)層循環(huán)(第7~10行)。其中操作行為匹配的過程(第7行)依據(jù)定義7的原則進行,按照操作行為和行為約束的編碼結(jié)果進行匹配。如果所有的MBP均不能匹配,則返回false(第14行)。

    假設(shè)MBL的長度為l,每條策略中SUB集合的平均長度為ls,策略中行為約束序列的平均長度為lc,每條行為約束和操作行為中OBJ和OBJ’集合的平均長度為lo,PRJ、SEL、JOIN集合的平均長度為la,據(jù)此計算算法的復(fù)雜度。

    根據(jù)定義7,操作行為的匹配由三個條件組成,其中第一個條件的復(fù)雜度為la2+16;第二個條件和第三個條件的復(fù)雜度均為3la2,因此每一次行為匹配的復(fù)雜度為:6la2+lo2+16。它與行為序列平均長度lc的乘積即為事務(wù)匹配的復(fù)雜度,再加上主體的判斷,算法的總復(fù)雜度為:

    l×(ls2+lc×(6la2+lo2+16))

    (1)

    式中:MBL的長度l是影響算法性能的最主要因素。多數(shù)事務(wù)在與強制行為序列比較長度階段(第5行)時就不符合條件,不再執(zhí)行后面的匹配過程,因此算法的實際影響要低于式(1)中的理論值。

    2.2 基于可信計算的行為策略度量方案

    本節(jié)提出了一種可信數(shù)據(jù)庫控制基(TDCB)結(jié)構(gòu),如圖2所示。其目標(biāo)就是防止非可信用戶(如1.3節(jié)中提到的“后門用戶”)對已制定好的MBP進行非法篡改。它基于可信華泰的“白細(xì)胞”操作系統(tǒng)免疫教學(xué)平臺,位于可信軟件基(TSB)和DBMS之間,其中的認(rèn)證模塊和度量模塊分別用于策略操作者的可信認(rèn)證和MBP的完整性度量,通過調(diào)用可信華泰提供的API訪問TSB獲得度量結(jié)果。所有的MBP及其操作者的登錄信息都將被存儲到DBMS的元數(shù)據(jù)中,被自身的查詢模塊和安全模塊調(diào)用。

    圖2 TDCB結(jié)構(gòu)及所處的位置

    TDCB為MBP創(chuàng)建獨立的安全管理員用戶,以區(qū)別DBMS自身的安全管理員。TDCB的安全管理員用戶對數(shù)據(jù)庫中的MBP擁有創(chuàng)建、修改和刪除的權(quán)限,但是對其他實體(如表、視圖等)只有查看的權(quán)限。

    每個用戶的登錄密鑰由兩部分組成:一部分是用戶自己設(shè)置的密碼,另一部分由TPCM的可信密碼模塊生成的Pin碼,以USBKey的形式分發(fā)給用戶。因此,當(dāng)安全管理員用戶在登錄DBMS前,首先必須以“雙因子認(rèn)證”的形式與TDCB建立連接,即用戶自己的密碼和存儲在USB中的Pin碼。然后TDCB的認(rèn)證模塊向TSB發(fā)出請求,由TSB調(diào)用TPCM中密碼模塊的相關(guān)接口完成用戶身份的認(rèn)證。

    針對MBP的完整性度量,其主要步驟如下:

    (1) TDCB的安全管理員用戶創(chuàng)建或修改一個MBP時,通過調(diào)用API函數(shù)向TSB發(fā)送請求,獲取MBP對應(yīng)行為約束編碼的摘要值。

    (2) TDCB把MBP和摘要值下發(fā)到DBMS,存儲到元數(shù)據(jù)中。

    (3) 在事務(wù)提交前,DBMS向TDCB發(fā)起通信,再次請求TSB計算當(dāng)前MBP的摘要值,并與存儲在元數(shù)據(jù)中的值進行比對,若成功則提交事務(wù),否則不執(zhí)行提交。

    3 實 驗

    3.1 MBC性能和可靠性測試實驗

    為了測試強制行為控制對事務(wù)執(zhí)行性能的影響,在CentOS 7.3操作系統(tǒng)上修改MySQL 5.7.19的源碼實現(xiàn)了MBC,并使用TPCC-MySQL工具生成測試數(shù)據(jù)。TPC-C是一個聯(lián)機事務(wù)處理(OLTP)基準(zhǔn),它包含5個事務(wù):New-Order、Payment、Order-Status、Delivery和Stock-Level。在TPCC-MySQL工具中已將這些事務(wù)用具體的SQL語句描述。

    本實驗共設(shè)置了5條MBP,分別對應(yīng)這5個事務(wù),并對它們進行編碼。另外設(shè)置了一些不匹配策略的自定義事務(wù)測試MBC的有效性。表2顯示了輸入各組事務(wù)對應(yīng)的DML語句獲取執(zhí)行的時間,其中“開啟MBC”表示事務(wù)的執(zhí)行需要經(jīng)過強制行為控制驗證,“關(guān)閉MBC”表示事務(wù)的執(zhí)行不受強制行為控制約束。

    表2 性能和有效性測試實驗

    續(xù)表2

    測試結(jié)果顯示了算法的性能和有效性兩個方面。在行為控制策略數(shù)目較少的情況下,MBC對事務(wù)的運行性能影響差別均為數(shù)百毫秒,可見該影響與數(shù)據(jù)量的大小無關(guān)。

    下面根據(jù)各事務(wù)的特性對算法的有效性進行分析:

    (1) 如果事務(wù)完全匹配MBP,則它可以執(zhí)行,如表2的前五條事務(wù)所示。

    (2) 自定義事務(wù)1到事務(wù)4分別對應(yīng)單條的INSERT、DELETE、UPDATE和SELECT語句,由于5條MBP的長度都不等于1,事務(wù)匹配失敗。

    (3) 自定義事務(wù)5把New-Order事務(wù)的第4條語句和第5條語句的執(zhí)行順序進行了交換,這兩條語句都是Insert,區(qū)別是前者向orders表執(zhí)行插入操作,后者向new_orders表執(zhí)行插入操作,由于被操作的客體不同,事務(wù)匹配失敗。

    (4) 自定義事務(wù)6把Payment事務(wù)的最后一條語句刪除,該語句是向history表中插入了歷史的支付信息。刪除后事務(wù)的長度為9,與New-Order事務(wù)對應(yīng)的MBP長度一致,但內(nèi)部的操作行為不匹配,事務(wù)匹配失敗。

    (5) 自定義事務(wù)7在Order-Status事務(wù)的第3和第4條語句之間插入了一條SELECT語句,由于其長度不滿足任何一條MBP,事務(wù)匹配失敗。

    (6) 自定義事務(wù)8刪除了Delivery事務(wù)中第5條語句中對ol_w_id字段的選擇操作,即在Where子句中去掉“AND ol_w_id=:w_id”,由于該操作是必須出現(xiàn)的,事務(wù)匹配失敗。

    綜上所述,算法保證了事務(wù)的可信性,內(nèi)部人員對事務(wù)的任何細(xì)小篡改如增減執(zhí)行語句、交換執(zhí)行順序等都會導(dǎo)致事務(wù)匹配失敗,其結(jié)果是無法執(zhí)行。

    3.2 MBP完整性度量實驗

    本實驗在MySQL中設(shè)置了一個后門用戶injector,它具有修改元數(shù)據(jù)的權(quán)限。首先TDCB創(chuàng)建了上一個實驗中指定的5個MBP,并下發(fā)到MySQL中;然后injector用戶把Delivery事務(wù)修改成自定義事務(wù)8的形式;最后運行自定義事務(wù)8,觀察是否能夠執(zhí)行。

    實驗結(jié)果顯示,由于該MBP受到了非法篡改,其摘要值與元數(shù)據(jù)中保存的摘要值不相等,因此即使自定義事務(wù)8匹配被修改后的MBP,它仍然被拒絕執(zhí)行。此時,如果TDCB重新執(zhí)行下發(fā)MBP的操作,便可恢復(fù)到修改前的狀態(tài),保證正常事務(wù)的執(zhí)行。

    4 結(jié) 語

    本文提出了一種可信計算環(huán)境下的數(shù)據(jù)庫強制行為控制模型,能夠阻止不可信事務(wù)的執(zhí)行,并檢測后門用戶對控制策略的非法修改。盡管該模型解決了SQL注入和數(shù)據(jù)庫內(nèi)部用戶權(quán)限濫用等問題,它仍然具有一些不足之處,主要表現(xiàn)在以下幾個方面:

    (1) 只支持基礎(chǔ)性的DML操作,不支持嵌套查詢,也不支持存儲過程、觸發(fā)器內(nèi)部的DML調(diào)用。

    (2) 缺乏對邏輯操作(AND、OR和NOT)的約束,使得評判事務(wù)“可信”的標(biāo)準(zhǔn)未達(dá)到更高程度。

    (3) 沒有對并發(fā)事務(wù)的執(zhí)行過程進行約束。

    未來的工作將進一步完善模型,使其能夠具備更高的可用性、通用性和安全性。

    猜你喜歡
    訪問控制事務(wù)客體
    “事物”與“事務(wù)”
    基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計與實現(xiàn)
    河湖事務(wù)
    ONVIF的全新主張:一致性及最訪問控制的Profile A
    動態(tài)自適應(yīng)訪問控制模型
    淺析云計算環(huán)境下等級保護訪問控制測評技術(shù)
    大數(shù)據(jù)平臺訪問控制方法的設(shè)計與實現(xiàn)
    舊客體抑制和新客體捕獲視角下預(yù)覽效應(yīng)的機制*
    論著作權(quán)客體的演變
    關(guān)稅課稅客體歸屬論
    五峰| 晋中市| 东兰县| 新丰县| 禄丰县| 策勒县| 黎城县| 盱眙县| 翼城县| 四平市| 宁国市| 社会| 无极县| 高碑店市| 南宁市| 法库县| 缙云县| 手机| 噶尔县| 塘沽区| 阿克苏市| 江川县| 吉水县| 普陀区| 永宁县| 龙山县| 资中县| 襄汾县| 松溪县| 孟州市| 新巴尔虎左旗| 镇巴县| 当涂县| 北流市| 体育| 汤阴县| 玉树县| 广德县| 吉安县| 玉溪市| 康马县|