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

    基于Mycat的擬態(tài)數(shù)據(jù)庫中間件研究①

    2019-10-18 06:41:22曹國棟喻衛(wèi)東
    計算機系統(tǒng)應(yīng)用 2019年10期
    關(guān)鍵詞:擬態(tài)中間件異構(gòu)

    曹國棟,倪 明,喻衛(wèi)東,王 燦

    (華東計算技術(shù)研究所,上海 201808)

    現(xiàn)在社會,信息技術(shù)飛速發(fā)展,伴隨著數(shù)以億計的數(shù)據(jù)產(chǎn)生,數(shù)據(jù)庫作為整個系統(tǒng)中信息輸入和輸出的重要組件,對于其保護(hù)和處理,日益成為人們關(guān)注的焦點.據(jù)統(tǒng)計僅2018年數(shù)據(jù)泄露事件高達(dá)945次,導(dǎo)致的信息泄露數(shù)量達(dá)到45億條之多,信息量陡增133個百分點.

    2018年5 月,在南京舉辦的“強網(wǎng)杯”擬態(tài)防御挑戰(zhàn)賽,在國內(nèi)外22支頂尖戰(zhàn)隊的高強度攻擊下,擬態(tài)防御設(shè)備成功封堵了所有攻擊,即使開放管理員權(quán)限,在擬態(tài)防御設(shè)備中隨意注入后門,也沒有任何戰(zhàn)隊突破擬態(tài)防御,為擬態(tài)防御進(jìn)行全方位、高強度的安全檢驗.擬態(tài)防御[1,2](Cyberspace Mimic Defense,CMD)是在功能等價的條件下提供可控的執(zhí)行環(huán)境的跳變和遷移,使攻擊者對目標(biāo)環(huán)境的難以掌握[3,4].在擬態(tài)環(huán)境中,海量數(shù)據(jù)存儲與訪問是系統(tǒng)設(shè)計與使用的瓶頸問題,利用開源的分布式存儲數(shù)據(jù)庫中間件Mycat,通過對數(shù)據(jù)進(jìn)行水平切分,將不同的表映射到不同的數(shù)據(jù)庫中,通過集群管理,事務(wù)分布式處理[5],實現(xiàn)數(shù)據(jù)庫容量的擴(kuò)充和數(shù)據(jù)庫結(jié)構(gòu)的冗余,加之其對SQL語句有攔截和分析的作用,依據(jù)指紋特征對執(zhí)行體指紋化SQL指令進(jìn)行特征化處理,發(fā)現(xiàn)并剔除攻擊者注入的非法指令.Mycat對數(shù)據(jù)庫返回的數(shù)據(jù)進(jìn)行表決,判斷異常數(shù)據(jù)庫,并對出現(xiàn)故障的數(shù)據(jù)庫進(jìn)行還原保護(hù),實現(xiàn)數(shù)據(jù)庫的擬態(tài)化.

    1 擬態(tài)介紹

    擬態(tài)防御(CMD)是中國工程院鄔江興院士在2013年的提出的關(guān)于網(wǎng)絡(luò)空間安全防御的創(chuàng)新性理論,網(wǎng)絡(luò)空間擬態(tài)防御是基于一種主動防御和被動防御相結(jié)合的網(wǎng)絡(luò)安全防御架構(gòu),克服了以往計算機系統(tǒng)漏洞,后門或者病毒的時間不確定性,危害未知性,資源破壞性,為將來的網(wǎng)絡(luò)安全防御提供普適創(chuàng)新的理論和方法指導(dǎo)[6,7].

    1.1 擬態(tài)防御應(yīng)用

    在網(wǎng)絡(luò)基礎(chǔ)設(shè)施中,一些高校和科研院所已提出了擬態(tài)防御中異構(gòu)性的構(gòu)造方法,文獻(xiàn)[8]提出了利用軟硬件多樣性實現(xiàn)多源異構(gòu)化處理方法;文獻(xiàn)[9,10]提出了利用軟件多樣化編譯對單一軟件進(jìn)行異構(gòu)化處理的方法,也隨之研制出了包括擬態(tài)Web服務(wù)器[11,12]、擬態(tài)防御路由器[13,14]擬態(tài)DNS服務(wù)器[15]等應(yīng)用設(shè)備.

    1.2 擬態(tài)防御原理

    擬態(tài)防御的基本原理是:在不依賴未知攻擊特征信息的前提下,通過多個等價等功能的不同體系結(jié)構(gòu)的執(zhí)行體,利用動態(tài)異構(gòu)冗余架構(gòu)(DynamicHetero geneous Redundant Architecture,DHRA)[2],DHRA模型如圖1所示,實現(xiàn)運行環(huán)境、網(wǎng)絡(luò)、數(shù)據(jù)、軟件等結(jié)構(gòu)的主動切換或快速轉(zhuǎn)移,代表性技術(shù)如表1,使攻擊者難以判斷目標(biāo)對象的運行環(huán)境和機制,提高攻擊者在時間維度和空間維度的攻擊成本和難度[8].

    圖1 DHRA模型

    表1 動態(tài)性技術(shù)分類

    在高可靠的非相似余度“容錯”模式下,執(zhí)行體通過可重組,可重構(gòu),可重建和可重定義等動態(tài)構(gòu)造方法,實現(xiàn)異構(gòu)性,動態(tài)性和冗余判斷.動態(tài)異構(gòu)冗余模型(DHRA)由輸入,輸入代理,執(zhí)行體集(A1,A2,A3,… ,An),多模/策略表決器,輸出組成.根據(jù)系統(tǒng)輸入,異構(gòu)元素池中選擇異構(gòu)元素,組成m個異構(gòu)構(gòu)件,通過系統(tǒng)的策略調(diào)度,形成n個異構(gòu)執(zhí)行體,經(jīng)過對執(zhí)行體產(chǎn)生的結(jié)果多模判決,決定系統(tǒng)輸出[2].

    2 擬態(tài)數(shù)據(jù)庫中間件

    數(shù)據(jù)庫中間應(yīng)用于Web服務(wù)器和數(shù)據(jù)服務(wù)器之間,對兩者之間交互的數(shù)據(jù)庫指令進(jìn)行攔截.擬態(tài)數(shù)據(jù)庫中間件要實現(xiàn)數(shù)據(jù)庫的切分和擴(kuò)容,集群管理,事務(wù)分布式處理,與此同時,要實現(xiàn)對SQL語言進(jìn)行特征處理,識別和執(zhí)行SQL指紋語句,剔除攻擊者注入的非法指令,并對出現(xiàn)故障的數(shù)據(jù)庫進(jìn)行還原保護(hù).

    基于此現(xiàn)狀,本研究提出利用Mycat在擬態(tài)環(huán)境中作為數(shù)據(jù)庫的中間件,借助于動態(tài)冗余異構(gòu)模型設(shè)計,利用擬態(tài)安全的環(huán)境為依托,簡化擬態(tài)環(huán)境中數(shù)據(jù)的切分,存取和同步,調(diào)用對應(yīng)SQL指紋指令對前端指紋SQL執(zhí)行進(jìn)行去指紋化.

    2.1 中間件簡介

    Mycat是用于解決傳統(tǒng)關(guān)系型數(shù)據(jù)庫大數(shù)據(jù)存儲不足而設(shè)計的開源分布式數(shù)據(jù)存儲中間件[16],使用NIO重構(gòu)的網(wǎng)絡(luò)模塊,優(yōu)化緩沖內(nèi)核,增強聚合等基本特性,兼容Oralce、PostgreSQL等多種數(shù)據(jù)庫,實現(xiàn)跨語言,跨平臺,跨數(shù)據(jù)庫的通用中間件,并提供和原生數(shù)據(jù)庫一致的命令訪問的支持,可實現(xiàn)集群管理,自動擴(kuò)容,智能優(yōu)化的功能[5],Mycat架構(gòu)如圖2.Mycat作為中間件,其功能更好的對數(shù)據(jù)庫實現(xiàn)擬態(tài)防御中動態(tài)異構(gòu)冗余模型(DHRA)構(gòu)造,使數(shù)據(jù)的訪問和處理更安全,高效.

    2.2 中間件在擬態(tài)中集群管理

    由于在擬態(tài)環(huán)境中需要多個執(zhí)行體,為保證執(zhí)行體執(zhí)行的數(shù)據(jù)統(tǒng)一和多模裁決,所有執(zhí)行體共用一個數(shù)據(jù)庫集群,這就要求數(shù)據(jù)庫能夠同時容納并處理大量數(shù)據(jù),并且對指紋SQL語言有切分判決能力.Mycat作為數(shù)據(jù)庫的中間件能在擬態(tài)環(huán)境中搭建以Mysql為底層節(jié)點的分布式數(shù)據(jù)庫系統(tǒng)[17],系統(tǒng)通過Mysql的通信協(xié)議[18]與用戶以及底層數(shù)據(jù)庫通信,實現(xiàn)負(fù)載均衡、指紋SQL語句重寫、讀寫分離、多臺數(shù)據(jù)庫并行處理以及結(jié)果集合并等功能[5],又因其是開源程序,Mycat對整個集群能透明地訪問和管理,集群管理如圖3,這在擬態(tài)環(huán)境中,集群管理為數(shù)據(jù)的安全訪問和處理提供了更可靠高效的保障.

    圖2 Mycat架構(gòu)

    圖3 Mycat集群管理

    2.2.1 數(shù)據(jù)庫中間件的切分

    在擬態(tài)環(huán)境中,多個異構(gòu)執(zhí)行體訪問同一數(shù)據(jù)庫,這就對數(shù)據(jù)庫存儲和運算能力有一定的要求.作為執(zhí)行體和數(shù)據(jù)庫的中間件,Mycat對執(zhí)行體發(fā)送的SQL語句進(jìn)行攔截分析,通過邏輯表中的取模分片算法、分片枚舉、Hash分片等特定算法,將數(shù)據(jù)的存儲和讀取,由一個數(shù)據(jù)庫分散到多個數(shù)據(jù)庫中,減少了單個數(shù)據(jù)庫存儲和運算壓力,實現(xiàn)數(shù)據(jù)分布式存儲[5],Mycat分布式數(shù)據(jù)存儲構(gòu)架如圖4.

    圖4 Mycat分布式數(shù)據(jù)存儲構(gòu)架

    2.2.2 數(shù)據(jù)庫中間件高可用性

    在擬態(tài)環(huán)境中,多個執(zhí)行體對數(shù)據(jù)庫進(jìn)行頻繁的數(shù)據(jù)存儲和讀取,Mycat作為執(zhí)行體和數(shù)據(jù)庫連接點,其本身的高可用性涉及所連接數(shù)據(jù)庫乃至整個擬態(tài)系統(tǒng)的高可用性.數(shù)據(jù)庫經(jīng)過切分后,在各個節(jié)點的數(shù)據(jù)庫獨立運行前提下,Mycat使用主從復(fù)制高的可用配置,將dataHost中的writeNode配置為主節(jié)點,readNode配置為從節(jié)點,在邏輯表中,可配置多個readNode和writeNode,實現(xiàn)多寫多讀.在Mycat正常運行時,其內(nèi)部對dataHost中的全部readHost和WriteHost節(jié)點定期發(fā)起心跳檢測[5],將全部的DML SQL發(fā)送給第一個writeNode,當(dāng)?shù)谝粋€writeNode所在的節(jié)點出現(xiàn)宕機,默認(rèn)3次心跳檢測失敗后,Mycat將自動切換到下一個可用的writeNode,并執(zhí)行DML SQL語句.由于Mycat是無狀態(tài)中間件,在擬態(tài)環(huán)境下,用HAProxy等負(fù)載均衡軟件部署為集群模式[1],Mycat高可用架構(gòu)如圖5.

    圖5 Mycat高可用架構(gòu)

    2.2.3 數(shù)據(jù)庫中間件分布式處理

    事務(wù)處理由一組操作構(gòu)成,其具有原子性(atomicity)、隔離性(isolation)、持久性(durability)和一致性(consistency)4 個特性[5],在擬態(tài)環(huán)境中,我們希望通過中間件的分布式處理[17](Distributed Transaction Processing,DTP)將所有SQL語句正確執(zhí)行.分布式事務(wù)處理(DTP)是在一個或多個數(shù)據(jù)庫完成SQL語句執(zhí)行過程的集合,其關(guān)鍵是知道事務(wù)在數(shù)據(jù)庫中任何地方所做的動作,通過事務(wù)準(zhǔn)備,提交,反饋,產(chǎn)生統(tǒng)一的結(jié)果,如果某個步驟發(fā)生錯誤,就需要回滾到上一步已經(jīng)完成的操作.X/Open定義了分布式事務(wù)處理模型,其由應(yīng)用程序 (ApplicationProgram,AP)、資源管理器(ResourceManagement,RM)、通信資源管理器 (Communication Resource Management,CRM)、事務(wù)管理器(Transaction Management,TM)四部分組成[5].AP可以和TM以及RM通信,TM和RM互相之間可以通信,TM和RM通過XA接口進(jìn)行雙向通信,TM通知RM提交事務(wù)或者回滾到上一事務(wù)正確執(zhí)行完的點,RM把提交結(jié)果通知給TM.

    在擬態(tài)環(huán)境中,在準(zhǔn)備階段,Mycat中事務(wù)管理器通知節(jié)點數(shù)據(jù)庫準(zhǔn)備分支事務(wù),節(jié)點數(shù)據(jù)庫準(zhǔn)備結(jié)果;在提交階段,事務(wù)管理器通知節(jié)點數(shù)據(jù)庫提交分支事務(wù),節(jié)點數(shù)據(jù)庫將結(jié)果提交給Mycat,正常提交執(zhí)行過程如圖6.當(dāng)在第一階段出現(xiàn)某一個數(shù)據(jù)讀取和改寫失敗,第二階段就回滾到第一階段已經(jīng)預(yù)提交成功的數(shù)據(jù),提交失敗執(zhí)行過程如圖7.

    圖6 提交成功

    圖7 提交失敗

    2.2.4 數(shù)據(jù)庫中間件對指紋SQL處理

    現(xiàn)在網(wǎng)絡(luò)數(shù)據(jù)竊取成功,主要是攻擊者了解并熟悉被攻擊系統(tǒng)的語言,進(jìn)而注入代碼攻擊成功,在擬態(tài)環(huán)境中,SQL腳本采用基于指紋化的數(shù)據(jù)庫指令異構(gòu)[2],通過對正常的執(zhí)行語句加入指紋,讓攻擊者不了解指紋化的執(zhí)行語言,使其注入的指令是無法正確執(zhí)行.當(dāng)指紋SQL語句通過Mycat時,數(shù)據(jù)庫首先判斷請求的地址,若請求來自網(wǎng)站端,將請求指令加到執(zhí)行體對性的隊列中,然后進(jìn)行指紋SQL語言過濾,指紋SQL處理結(jié)構(gòu)如圖8,利用多模表決機制,將SQL語句進(jìn)行一致性表決,表決一致,則執(zhí)行正常SQL語句,表決不一致,則進(jìn)行異常處理.

    圖8 指紋SQL處理結(jié)構(gòu)圖

    數(shù)據(jù)庫返回的結(jié)果保存到緩沖區(qū)中,相同的數(shù)據(jù)會被映射到Hash表中的相同位置,所有結(jié)果返回完整后,對數(shù)據(jù)庫返回內(nèi)容的完整性進(jìn)行Hash比較,比較通過后,數(shù)據(jù)返回給執(zhí)行體,若比較不一致,把出錯信息發(fā)送給擬態(tài)系統(tǒng)的反饋調(diào)度服務(wù)器進(jìn)行決策調(diào)度.

    Hash表中數(shù)據(jù)信息進(jìn)行比較偽代碼如下所示:數(shù)據(jù)庫的返回結(jié)果Ri包括多個數(shù)據(jù)包,形式為:Ri={P1,P2,···,Pn}

    Foriin 1..n:

    Pi= get_resp()

    Put_to_push()//將數(shù)據(jù)庫返回的結(jié)果放入Hash表中

    If get(Pi)>n/2+1//相同結(jié)果超過一半時

    Send(Pi)//返回結(jié)果

    Remove(Pi)//刪除已經(jīng)對比完成的數(shù)據(jù)

    2.2.5 數(shù)據(jù)庫多模表決機制

    在擬態(tài)環(huán)境中,用動態(tài)冗余架構(gòu)特性改變傳統(tǒng)防御環(huán)境中的相似性,確定性和靜態(tài)性;利用矢量空間多模裁決機制,如圖9,形成非協(xié)同條件下,多元動態(tài)目標(biāo)協(xié)同一致攻擊難度以實現(xiàn)“面防御”功能.在數(shù)據(jù)庫環(huán)境中,目標(biāo)對象外部SQL服務(wù)請求依據(jù)策略分發(fā)給各個數(shù)據(jù)庫,數(shù)據(jù)庫的輸出矢量經(jīng)過Hash表比較進(jìn)行裁決輸出.

    多模表決器按照規(guī)則對n個功能相同但相互獨立的數(shù)據(jù)庫的輸出進(jìn)行表決操作,保證系統(tǒng)正確輸出,本文采用n取k表決模型,當(dāng)k個數(shù)據(jù)庫正常讀取時,便認(rèn)為數(shù)據(jù)庫正常運行,當(dāng)k個及以上數(shù)據(jù)庫返回的數(shù)據(jù)異常時,才會輸出錯誤非正常數(shù)據(jù),在異構(gòu)冗余的擬態(tài)環(huán)境中,不同的數(shù)據(jù)庫運行環(huán)境不同,攻擊注入方式不同,無論從時間和技術(shù)上,對攻擊者都是極大的消耗,由此數(shù)據(jù)庫的安全性和可靠性得以提高.

    圖9 擬態(tài)表決器模型

    3 實驗與分析

    為了驗證Mycat在擬態(tài)環(huán)境中能夠高效保障數(shù)據(jù)的讀取和安全性,我們在開源的企業(yè)辦公系統(tǒng)然之協(xié)同中,使用三模異構(gòu)冗余模型進(jìn)行實驗測試,然之協(xié)同的優(yōu)勢如下:

    (1)功能齊全,能滿足日常的辦公需求,使用范圍廣,人數(shù)無限制.

    (2)私有化部署,安全性高.

    (3)開源產(chǎn)品,能修改代碼滿足個性化需求.

    硬件配置如表2.

    表2

    3.1 環(huán)境配置

    在擬態(tài)環(huán)境中,3個異構(gòu)執(zhí)行體運行的系統(tǒng)分別為windows7(IP:192.168.126.133),Ubuntu (IP:192.168.126.134)和centos (IP:192.168.126.135),Mycat安裝在IP 地址為 192.168.126.141,并建立“ranzhi”數(shù)據(jù)庫.

    (1)Schema.xml配置

    Schema.xml作為Mycat最重要的配置文件之一,管理著邏輯庫,分片規(guī)則,節(jié)點主機等信息,關(guān)鍵代碼如下:

    在各自的系統(tǒng)中,安裝然之協(xié)同,其所連立的數(shù)據(jù)庫設(shè)置為Mycat所在的物理地址和Mycat的端口,如圖10.

    圖10 執(zhí)行體Mycat連接

    3.2 實驗結(jié)果分析

    (1)指紋SQL識別

    通過Mycat,指紋SQL能夠在數(shù)據(jù)庫中正常執(zhí)行,如圖11,無指紋的SQL語言,不能運行,如圖12.

    圖11 指紋SQL執(zhí)行結(jié)果

    圖12 無指紋SQL執(zhí)行結(jié)果

    (2)數(shù)據(jù)庫注入測試

    在一般的數(shù)據(jù)庫中,進(jìn)行數(shù)據(jù)庫注入攻擊測試,數(shù)據(jù)庫返回數(shù)據(jù),如圖13,圖14所示.

    當(dāng)使用本文中擬態(tài)環(huán)境中的數(shù)據(jù)庫,進(jìn)行相同的數(shù)據(jù)庫注入攻擊,未能返回數(shù)據(jù),攻擊失敗,如圖15所示.

    圖13 數(shù)據(jù)庫注入過程

    圖14 數(shù)據(jù)庫注入結(jié)果

    圖15 數(shù)據(jù)庫注入失敗

    數(shù)據(jù)庫安全測試如表3所示.

    經(jīng)上述實驗,在擬態(tài)環(huán)境中,數(shù)據(jù)庫成功防御數(shù)據(jù)庫注入攻擊,保障了數(shù)據(jù)庫安全.

    表3 數(shù)據(jù)庫安全測試結(jié)果

    4 結(jié)論與展望

    通過在擬態(tài)環(huán)境中使用Mycat作為數(shù)據(jù)庫訪問的中間件,實現(xiàn)了數(shù)據(jù)庫的集群管理,高可用性,以及對指紋SQL語言的處理,極大的提高擬態(tài)防御中對數(shù)據(jù)安全的保障和數(shù)據(jù)存儲,讀取的高效性.在未來的信息時代,網(wǎng)絡(luò)空間的數(shù)據(jù)存取和保護(hù)越來越得到重視,隨著社會科技的發(fā)展,會有更多的數(shù)據(jù)庫中間件出現(xiàn),其功能和架構(gòu)模式也會不斷的更新和成熟,數(shù)據(jù)庫中間件在擬態(tài)環(huán)境中會發(fā)揮更大的作用.

    猜你喜歡
    擬態(tài)中間件異構(gòu)
    試論同課異構(gòu)之“同”與“異”
    章魚大師的擬態(tài)課堂
    中韓擬聲詞擬態(tài)詞形態(tài)上的特征
    模仿大師——擬態(tài)章魚
    RFID中間件技術(shù)及其應(yīng)用研究
    電子制作(2018年14期)2018-08-21 01:38:10
    基于VanConnect中間件的設(shè)計與開發(fā)
    電子測試(2018年10期)2018-06-26 05:54:02
    關(guān)于擬聲擬態(tài)詞的考察
    overlay SDN實現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
    LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
    在新興異構(gòu)SoCs上集成多種系統(tǒng)
    苍溪县| 宾阳县| 西乌珠穆沁旗| 高邮市| 蚌埠市| 安乡县| 瑞丽市| 杂多县| 会东县| 昌宁县| 岑巩县| 福贡县| 台江县| 紫金县| 屯昌县| 新田县| 云安县| 明水县| 安新县| 西盟| 嘉黎县| 德庆县| 清丰县| 松溪县| 巴彦县| 南投市| 玛曲县| 虞城县| 平乡县| 西畴县| 长乐市| 南投县| 十堰市| 左权县| 桐梓县| 正蓝旗| 宝兴县| 乐亭县| 青岛市| 汉川市| 金华市|