• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于三位一體協(xié)同的虛擬機(jī)隔離保護(hù)方案

      2023-05-30 17:13:35謝鑫梁衛(wèi)芳張鈺莎
      貴州大學(xué)學(xué)報(自然科學(xué)版) 2023年1期

      謝鑫 梁衛(wèi)芳 張鈺莎

      摘 要:針對基于虛擬機(jī)(virtual machine, VM)保護(hù)框架的代碼隔離技術(shù)中所存在的單一隔離環(huán)境安全問題,提出一種三位一體協(xié)同虛擬機(jī)保護(hù)方案。基于Mealy自動機(jī)對核心代碼和關(guān)鍵數(shù)據(jù)進(jìn)行混淆轉(zhuǎn)換,采用虛擬機(jī)框架進(jìn)行保護(hù),將關(guān)鍵數(shù)據(jù)和核心代碼遷移至第三方安全環(huán)境,最后結(jié)合篡改恢復(fù)和自毀技術(shù)構(gòu)建本地軟硬件和遠(yuǎn)程云端三位一體協(xié)同保護(hù)方案,構(gòu)建了模擬系統(tǒng),并基于測試保護(hù)程序驗(yàn)證了該保護(hù)方案的有效性和可行性。

      關(guān)鍵詞:虛擬機(jī)保護(hù);代碼隔離;三位一體協(xié)同;Mealy機(jī)混淆

      中圖分類號:TP309

      文獻(xiàn)標(biāo)志碼:A

      數(shù)字化正深刻地改變著人類的生產(chǎn)和生活方式,商品數(shù)字化、醫(yī)療服務(wù)數(shù)字化、企業(yè)流程管理數(shù)字化,數(shù)字經(jīng)濟(jì)和智慧城市建設(shè)等,在數(shù)字化浪潮下,新型軟件、通信、云計算、邊緣計算和區(qū)塊鏈等技術(shù)正快速發(fā)展,并在越來越多的場景下交叉融合演進(jìn),如區(qū)塊鏈系統(tǒng)中的通信軟件,基于軟硬件協(xié)同的通信系統(tǒng),基于云邊協(xié)同的軟件服務(wù)系統(tǒng)等。這些系統(tǒng)將滲透到人類生產(chǎn)和生活越來越多的角落,推動軟件產(chǎn)業(yè)迭代和社會經(jīng)濟(jì)增長。

      在很多解決方案中,軟件是重要的基礎(chǔ)設(shè)施,其中的邏輯結(jié)構(gòu)、核心數(shù)據(jù)和算法模型是重要的數(shù)字資產(chǎn),常常面臨完整性、機(jī)密性和唯一性的攻擊威脅,如受到惡意逆向分析和篡改,非法盜版和傳播等威脅。面對這些攻擊威脅,出現(xiàn)了如基于光盤、硬盤和加密狗等形式的硬件保護(hù)方式,也出現(xiàn)了基于代碼混淆、加密、水印、防篡改、驗(yàn)證、反-反匯編和反調(diào)試等技術(shù)[1]。

      基于虛擬機(jī)(virtual machine, VM)的代碼保護(hù)技術(shù)是代碼混淆技術(shù)的延伸,起源于俄羅斯VMProtect,并相繼出現(xiàn)了以Themida和Code Virtualizer為代表的多種虛擬機(jī)保護(hù)軟件[2]。代碼混淆技術(shù)中的表解釋為虛擬機(jī)保護(hù)的原型思想,段鋼基于該思想闡述了虛擬機(jī)保護(hù)的框架結(jié)構(gòu),并在移動終端上對其進(jìn)行了實(shí)現(xiàn)[3-4]。隨著軟件逆向攻擊能力的不斷提升,研究者對虛擬機(jī)保護(hù)框架的安全性能做了大量改進(jìn)工作,如:

      要素方面:采用隨機(jī)和模擬退火指令亂序算法提升虛擬指令解釋函數(shù)(Handler)的復(fù)雜度[5];采用等價替換和亂序切分算法提升多樣化Handler集合空間的復(fù)雜度[6];采用基于時間多樣性的Handler執(zhí)行技術(shù)提升執(zhí)行空間的復(fù)雜度[7];采用花指令和指令模糊變換技術(shù)提升虛擬機(jī)指令模塊的復(fù)雜度[8]。

      結(jié)構(gòu)方面:隨機(jī)打亂虛擬寄存器與操作數(shù)的編譯映射關(guān)系提升解釋執(zhí)行過程中的數(shù)據(jù)流復(fù)雜度[9];結(jié)合基本塊混淆和多樣化虛擬機(jī)環(huán)境技術(shù)提升虛擬機(jī)保護(hù)框架的復(fù)雜性[10];采用多樣化技術(shù)[11]和隨機(jī)化技術(shù)[12]提升虛擬機(jī)操作碼與機(jī)器指令或字節(jié)碼映射[13]的復(fù)雜性;采用多重嵌套技術(shù)提升整體虛擬機(jī)執(zhí)行結(jié)構(gòu)的復(fù)雜性[14];采用代碼并行切分和多套虛擬機(jī)框架執(zhí)行技術(shù)提升整體虛擬機(jī)保護(hù)的安全性[15];采用圖變換技術(shù)對虛擬進(jìn)行保護(hù)增強(qiáng)[16]。

      功能方面:采用動態(tài)加解密技術(shù)提升Handler模塊[17]非執(zhí)行狀態(tài)時的機(jī)密性;設(shè)計基于寄存器值檢查的防調(diào)試虛擬指令提升虛擬機(jī)框架的防調(diào)試性能[18];設(shè)計基于哨兵環(huán)技術(shù)的安全虛擬指令提升虛擬機(jī)框架防篡改性能[19];采用數(shù)據(jù)流混淆引擎、異常處理機(jī)制和雙進(jìn)程混合技術(shù)提升虛擬機(jī)的整體安全性[20];采用控制流迭代、指令序列隨機(jī)切分和動態(tài)加解密技術(shù)提升虛擬指令調(diào)度器(Dispatcher)的復(fù)雜度和機(jī)密性[21];采用隨機(jī)秘鑰還原和多樣化調(diào)度器解碼的虛擬代碼折疊技術(shù)提升虛擬機(jī)的復(fù)雜度和機(jī)密性[22]。

      上述研究工作,從虛擬機(jī)保護(hù)框架中的要素、結(jié)構(gòu)和功能三個方面進(jìn)行安全改進(jìn),以虛擬機(jī)保護(hù)框架自身作為系統(tǒng),從靜態(tài)和動態(tài)兩個方面,提升系統(tǒng)中要素的理解難度,增強(qiáng)要素與要素之間連接結(jié)構(gòu)的復(fù)雜性,增加虛擬機(jī)的機(jī)密性、防篡改性、防調(diào)試性多維安全功能,但依然存在本地代碼在“白盒環(huán)境”中的不安全性問題。有研究者將虛擬機(jī)保護(hù)框架從本地拓展到本地與遠(yuǎn)程一體,提出采用代碼隔離技術(shù)[23]解決該問題,取得了一定的效果;但攻擊者可以嘗試突破單一遠(yuǎn)程隔離環(huán)境,獲取本地和遠(yuǎn)程傳輸信息,實(shí)現(xiàn)虛擬機(jī)整體保護(hù)方案的破解,這樣延伸出了基于虛擬機(jī)保護(hù)框架的單一隔離環(huán)境安全性問題。針對這一問題,本文提出一種三位一體協(xié)同的虛擬機(jī)隔離保護(hù)方案,對核心代碼和數(shù)據(jù)進(jìn)行跳變轉(zhuǎn)換,將虛擬機(jī)框架中的核心代碼和關(guān)鍵數(shù)據(jù)存放于安全可信的本地硬件和遠(yuǎn)程云端環(huán)境進(jìn)行隔離,最后建立基于篡改恢復(fù)和自毀響應(yīng)的本地軟硬件和遠(yuǎn)程云端三位一體協(xié)同信息傳輸機(jī)制。

      1 基于虛擬機(jī)的代碼隔離技術(shù)

      1.1 虛擬機(jī)保護(hù)原理

      虛擬機(jī)保護(hù)技術(shù)通過對代碼和數(shù)據(jù)進(jìn)行虛擬化而達(dá)到保護(hù)其安全的目的,即通過設(shè)計一套區(qū)別于現(xiàn)有平臺的虛擬指令集,構(gòu)造一個與之相配套的解釋引擎來執(zhí)行虛擬指令,實(shí)現(xiàn)軟件保護(hù)。其本質(zhì)是在待保護(hù)程序的基礎(chǔ)上,構(gòu)建抽象層,用該層復(fù)雜性、難以理解性來提升逆向攻擊者對代碼和數(shù)據(jù)分析和理解的難度。虛擬機(jī)保護(hù)基本框架和原理如圖1所示。

      在該虛擬機(jī)保護(hù)框架中,關(guān)鍵代碼為被保護(hù)的代碼序列,虛擬指令為虛擬機(jī)框架內(nèi)部定義的一套指令,字節(jié)碼(Bytecode)為經(jīng)過虛擬機(jī)框架編譯生成的二進(jìn)制數(shù)據(jù),虛擬指令解釋函數(shù)(Handler)用于將字節(jié)碼映射到本地指令集序列,虛擬指令調(diào)度器(Dispatcher)用于對Handler函數(shù)模塊進(jìn)行調(diào)度解釋執(zhí)行,解釋函數(shù)跳轉(zhuǎn)表為Handler函數(shù)模塊和Bytecode之間的映射關(guān)系,虛擬機(jī)上下文用于存儲如虛擬寄存器,跳轉(zhuǎn)表等結(jié)構(gòu)。

      保護(hù)流程為:

      step1 抽取待保護(hù)程序P中的核心代碼和數(shù)據(jù),并對其進(jìn)行標(biāo)注;

      step2 將待保護(hù)的代碼和數(shù)據(jù)翻譯為虛擬指令序列,將虛擬指令序列編譯為字節(jié)碼序列;

      step3 構(gòu)造解釋函數(shù)集和跳轉(zhuǎn)表;

      step4 將VMcontext、VMStart、VMExit等各虛擬機(jī)代碼模塊嵌入待保護(hù)程序空間中。

      執(zhí)行流程為:

      step1 執(zhí)行受保護(hù)程序本地代碼,直到將進(jìn)入受保護(hù)的代碼序列;

      step2 虛擬機(jī)框架接管執(zhí)行流,通過VMDispatcher、Bytecode、Handlers等模塊對虛擬指令序列進(jìn)行解釋執(zhí)行,直到所有虛擬指令執(zhí)行完成;

      step3 跳出虛擬機(jī)保護(hù)的框架,回到受保護(hù)程序本地代碼繼續(xù)執(zhí)行,直至結(jié)束。

      1.2 虛擬機(jī)代碼隔離原理

      虛擬機(jī)代碼隔離保護(hù)技術(shù)是一種將虛擬機(jī)保護(hù)框架和代碼隔離相互融合的技術(shù),將受虛擬機(jī)框架保護(hù)后的代碼或數(shù)據(jù),從軟件整體中分隔開,需要時再組成一個整體,并運(yùn)行軟件,以提升程序抵御惡意逆向分析的能力。為保證軟件被分隔后的運(yùn)行效率,分隔出的部分不宜過大。關(guān)鍵數(shù)據(jù)和核心代碼隔離原理如圖2所示。

      隔離流程為:

      step1 確定受虛擬機(jī)保護(hù)后軟件中的關(guān)鍵代碼和核心數(shù)據(jù);

      step2 將關(guān)鍵代碼轉(zhuǎn)化為加密鎖內(nèi)可執(zhí)行的編譯代碼,將生成文件加密,寫入加密鎖;

      step3 對核心數(shù)據(jù)進(jìn)行加密,寫入加密鎖。

      執(zhí)行流程為:

      step1 執(zhí)行受保護(hù)程序,直至需與加密鎖通信;

      Step2 調(diào)用加密鎖的通信接口,獲取保存在其中的關(guān)鍵數(shù)據(jù)和核心代碼;

      Step3 調(diào)用解密算法對其進(jìn)行解密后使用。

      2 三位一體協(xié)同虛擬機(jī)隔離保護(hù)方案

      2.1 基本思想

      針對代碼隔離技術(shù)中,所存在的代碼和數(shù)據(jù)在單一隔離環(huán)境下的安全性問題,提出一種結(jié)合程序?qū)傩蕴兊娜灰惑w協(xié)同虛擬機(jī)隔離保護(hù)方案。首先確定待保護(hù)程序中的關(guān)鍵數(shù)據(jù)和核心代碼,對其進(jìn)行切分,對部分關(guān)鍵數(shù)據(jù)和核心代碼進(jìn)行跳變轉(zhuǎn)換,并采用虛擬機(jī)框架對其進(jìn)行保護(hù),將保護(hù)后程序以及未進(jìn)行跳變轉(zhuǎn)換的核心代碼和關(guān)鍵數(shù)據(jù),進(jìn)行代碼分隔,遷移到本地硬件加密鎖和遠(yuǎn)程云端安全服務(wù)上,并構(gòu)建基于本地虛擬機(jī)框架代碼和數(shù)據(jù)的三位一體協(xié)同方案。三位一體協(xié)同虛擬機(jī)隔離保護(hù)方案原理如圖3所示。

      2.2 具體實(shí)現(xiàn)

      三位一體協(xié)同虛擬機(jī)隔離保護(hù)方案實(shí)現(xiàn)分為三部分,關(guān)鍵數(shù)據(jù)和核心代碼切分轉(zhuǎn)換,基于虛擬機(jī)框架的保護(hù)和關(guān)鍵信息遷移,以及三位一體信息協(xié)同,具體實(shí)現(xiàn)過程如下:

      模塊1:數(shù)據(jù)和代碼切分轉(zhuǎn)換

      1)確定受保護(hù)程序中的關(guān)鍵數(shù)據(jù)D和核心代碼C。

      2)根據(jù)實(shí)際保護(hù)目標(biāo)和應(yīng)用場景設(shè)定重要性閾值L1,將關(guān)鍵數(shù)據(jù)D切分為集合{D1,D2},核心代碼C切分為集合{C1,C2},其中重要性I(D1, C1)>L1,I(D2, C2)≤L1。

      3)采用基于Mealy機(jī)的跳變轉(zhuǎn)換策略分別對C1和D1進(jìn)行轉(zhuǎn)換,如圖4所示。

      (1)設(shè)定切分?jǐn)?shù)目n;

      (2)將數(shù)據(jù)D1轉(zhuǎn)換為帶輸出的Mealy機(jī)代碼;

      (3)將Mealy機(jī)代碼隨機(jī)切分為n部分,形成n部分?jǐn)?shù)據(jù)片段集合D′;

      (4)將代碼C1切分為n部分代碼,形成n部分?jǐn)?shù)據(jù)片段;

      (5)構(gòu)造能輸出n部分?jǐn)?shù)據(jù)片段的Mealy機(jī)代碼集合C′。

      模塊2:虛擬機(jī)保護(hù)和遷移

      1)構(gòu)建基本虛擬機(jī)保護(hù)框架VM。

      2)采用VM對模塊1中的數(shù)據(jù)集合D′和代碼集合C′進(jìn)行保護(hù)。

      3)根據(jù)虛擬機(jī)保護(hù)后程序重要性閾值L2,將受保護(hù)程序中的關(guān)鍵數(shù)據(jù)Dk切分為集合{{Dk1,Dk2},核心代碼Ck切分為集合{Ck1,Ck2},其中重要I(Dk2,Ck2)>L2,I(Dk1,Ck1)≤L2。

      4)分別向硬件加密鎖EH和云服務(wù)CS中植入3DES和SM4解密算法模塊。

      5)采用隨機(jī)交叉策略進(jìn)行數(shù)據(jù)和代碼遷移,如下:

      (1)設(shè)E1={D2,Dk2},隨機(jī)劃分生成D2={D21, D22},Dk2={Dk21,Dk22};

      (2)設(shè)E2={C2,Ck2},隨機(jī)劃分生成C2={C21, C22},Ck2={Ck21,Ck22};

      (3)設(shè)硬件加密鎖為EH,云服務(wù)為CS,遷移到EH中用于和VM保護(hù)框架協(xié)同,遷移到CS中用于恢復(fù)EH信息的關(guān)鍵代碼和核心數(shù)據(jù)為{(D21,Dk21),(C21,Ck21)};遷移到CS中用于和VM保護(hù)框架協(xié)同,遷移到EH中用于恢復(fù)CS信息的關(guān)鍵代碼和核心數(shù)據(jù)為{(D22,Dk22),(C22,Ck22)};

      (4)將(C21,Ck21)轉(zhuǎn)化為加密鎖內(nèi)可執(zhí)行的編譯代碼,生成對應(yīng)文件F1;

      (5)采用3DES對F1和(D21,Dk21)進(jìn)行加密,并寫入硬件加密鎖EH中;

      (6)采用SM4對F1和(D21,Dk21)進(jìn)行加密,并遷移到云服務(wù)CS中;

      (7)將(C22,Ck22)轉(zhuǎn)化為云服務(wù)中可執(zhí)行的編譯代碼,生成對應(yīng)文件F2;

      (8)采用3DES對F2和(D22,Dk22)進(jìn)行加密,并遷移到云服務(wù)CS中;

      (9)采用SM4對F2和(D22,Dk22)進(jìn)行加密,寫入硬件加密鎖EH中。

      模塊3:三位一體信息協(xié)同

      1)程序本地的代碼信息協(xié)同,如下:

      (1)執(zhí)行受保護(hù)程序中未受虛擬機(jī)保護(hù)的本地代碼,直至需與EH和CS進(jìn)行通信;

      (2)調(diào)用EH和CS通信接口,獲取保存其中的關(guān)鍵數(shù)據(jù)D2和核心代碼C2;

      (3)調(diào)用3DES和SM4解密算法模塊對關(guān)鍵數(shù)據(jù)D2和核心代碼C2解密;

      (4)繼續(xù)執(zhí)行,直到程序運(yùn)行結(jié)束。

      2)基于虛擬機(jī)保護(hù)的代碼信息協(xié)同,如下:

      (1)執(zhí)行程序內(nèi)受虛擬機(jī)框架保護(hù)的代碼,直至需與EH和CS進(jìn)行通信;

      (2)調(diào)用EH和CS通信接口,獲取保存其中的關(guān)鍵數(shù)據(jù)Dk2和核心代碼Ck2;

      (3)調(diào)用3DES和SM4解密算法模塊對其解密;

      (4)跳出虛擬機(jī)保護(hù)框架,回到程序本地代碼,繼續(xù)執(zhí)行直至結(jié)束。

      3)基于硬件加密鎖與云服務(wù)的信息協(xié)同,如下:

      (1)若觸發(fā)了EH上的篡改恢復(fù)機(jī)制,EH向CS程序發(fā)送數(shù)據(jù)恢復(fù)指令;CS將受SM4加密的數(shù)據(jù)和代碼發(fā)送給EH;EH用SM4算法模塊對其解密,然后采用3DES算法模塊對其加密,并對被篡改的信息進(jìn)行完整性恢復(fù)。

      (2)若觸發(fā)了CS上的篡改恢復(fù)機(jī)制,CS向EH發(fā)送數(shù)據(jù)恢復(fù)指令;EH將受SM4加密的數(shù)據(jù)和代碼發(fā)送給CS;CS用SM4算法模塊對其解密,然后采用3DES算法模塊對其加密,并對被篡改的信息進(jìn)行完整性恢復(fù)。

      (3)若觸發(fā)了EH上的數(shù)據(jù)自毀機(jī)制,EH向CS發(fā)送數(shù)據(jù)刪除指令;CS接受刪除指令,刪除加密信息,并向EH發(fā)送響應(yīng)指令,EH刪除加密信息。

      (4)若觸發(fā)了CS上的數(shù)據(jù)自毀機(jī)制,CS向EH發(fā)送數(shù)據(jù)刪除指令;EH接受刪除指令,刪除加密信息,并向CS發(fā)送響應(yīng)指令,CS刪除加密信息。

      3 實(shí)驗(yàn)及分析

      3.1 理論分析

      三位一體協(xié)同的虛擬機(jī)隔離保護(hù)方案,其基本思想是對原虛擬機(jī)保護(hù)系統(tǒng)在保證功能不變的前提下,進(jìn)行要素的拆分和連接的重構(gòu),將原虛擬機(jī)保護(hù)框架作為改進(jìn)后保護(hù)系統(tǒng)中的子要素,先采用數(shù)據(jù)和代碼切分轉(zhuǎn)換對其進(jìn)行安全加固,再引入本地硬件安全環(huán)境和遠(yuǎn)程安全環(huán)境作為另外兩個子要素,基于密碼加固的代碼遷移技術(shù)、數(shù)據(jù)通信的防篡改和自毀技術(shù),將本地代碼、本地硬件和遠(yuǎn)程云端三要素進(jìn)行連接,形成新的保護(hù)系統(tǒng)。此方案構(gòu)建了多樣化的隔離環(huán)境,將虛擬機(jī)保護(hù)從本地軟件形式升級到本地軟硬結(jié)合,并進(jìn)一步擴(kuò)展到融合遠(yuǎn)程安全服務(wù)的三位一體系統(tǒng)保護(hù)。受該方案保護(hù)的軟件,對于攻擊者來說,需要理解的維度更寬,需要分析的要素和連接更復(fù)雜,由此大幅提升了受保護(hù)軟件內(nèi)關(guān)鍵代碼和核心數(shù)據(jù)的安全性。

      數(shù)據(jù)和代碼切分轉(zhuǎn)換模塊,基于Mealy自動機(jī)實(shí)現(xiàn)了代碼到代碼、數(shù)據(jù)到數(shù)據(jù)之間的轉(zhuǎn)換,對數(shù)據(jù)和代碼進(jìn)行了混淆,模糊了代碼和數(shù)據(jù)的屬性邊界。虛擬機(jī)保護(hù)和遷移模塊,基于3DES、SM4加解密算法,本地硬件加密鎖和云服務(wù),實(shí)現(xiàn)了關(guān)鍵代碼和核心數(shù)據(jù)的遷移隔離。三位一體信息協(xié)同模塊,基于通信傳輸、篡改響應(yīng)、自毀響應(yīng)等技術(shù),實(shí)現(xiàn)了本地代碼、虛擬機(jī)保護(hù)代碼和硬件加密鎖與云服務(wù)信息的三位一體。具體應(yīng)用可根據(jù)實(shí)際保護(hù)的目標(biāo)和場景,設(shè)定保護(hù)代碼和數(shù)據(jù)的體量,Mealy機(jī)膨脹混淆的量級,加密算法的強(qiáng)度和響應(yīng)檢測的頻率,以及觸發(fā)篡改和自毀的安全閾值等變量參數(shù)。

      設(shè)原系統(tǒng)S1={V1,E1},V1為所有要素的集合,E1為所有要素連接的集合。經(jīng)過數(shù)據(jù)和代碼切分轉(zhuǎn)換、虛擬機(jī)保護(hù)和遷移與三位一體信息協(xié)同,構(gòu)建保護(hù)系統(tǒng)S2。設(shè)S2={V2,E2},V2為所有要素的集合,E2為所有要素連接的集合。V2={V11, V12, CS, EH},其中:V11為原系統(tǒng)中不變的要素集合;V12為原系統(tǒng)中經(jīng)過數(shù)據(jù)和代碼切分轉(zhuǎn)化的要素集合,V12=O(V1-V11),O為數(shù)據(jù)和代碼切分轉(zhuǎn)換;CS和EH為云服務(wù)和本地硬件加密鎖要素。E2={E11, E12, E13},其中:E11為V11要素之間的連接集合;E12為V12要素之間的連接集合;E13為V11, V12和CS, EH要素所產(chǎn)生的連接集合。

      設(shè)N表示系統(tǒng)要素的統(tǒng)計數(shù),E表示系統(tǒng)要素之間所有連接的邊的數(shù)目,C表示圖的圈復(fù)雜度,則N(V2)+N(E2)>N(V1)+N(V2)。若C=E-N+2,C(S2)>C(S1)。若采用A代表攻擊所需要花費(fèi)的時間和經(jīng)濟(jì)開銷,A (V11)+ A (V12)>A (V1),在此基礎(chǔ)上進(jìn)一步增加了A (CS)和A (EH),同理A (E11)+ A (E12)+ A (E13)> A (E1)。因此,三位一體保護(hù)系統(tǒng)能夠提升攻擊者直接獲取和理解核心代碼和關(guān)鍵數(shù)據(jù)的難度,從整體系統(tǒng)角度降低了受保護(hù)軟件在“白盒環(huán)境”中的安全風(fēng)險。

      3.2 實(shí)驗(yàn)驗(yàn)證

      本文實(shí)驗(yàn)環(huán)境:Windows10家庭中文版64位操作系統(tǒng),Intel(R) Core(TM)i7-8700 CPU,內(nèi)存16 GB,主頻3.2 GHz;采用SAFENET模擬器模擬硬件加密鎖,采用VMWare15.5版本虛擬機(jī)模擬云服務(wù)器,其中嵌入用于協(xié)同的3DES和SM4加解密程序模塊,用于協(xié)同的信息傳輸和信息響應(yīng)程序模塊,以及用于協(xié)同的自毀和恢復(fù)程序模塊。

      希爾排序(ShellSort),插入排序(InsertionSort),冒泡排序(BubbleSort)和快速排序(QuickSort)為4款測試程序,具體說明見表1。其中,目標(biāo)代碼指令數(shù)目為靜態(tài)反匯編得到的指令數(shù)目,Key-Code執(zhí)行時間為以500個隨機(jī)數(shù)為輸入的10次執(zhí)行平均值。

      為驗(yàn)證保護(hù)方案所帶來的時間和空間開銷,對4款排序程序中的20條指令和10字節(jié)的核心數(shù)據(jù),面向無虛擬機(jī)保護(hù)和有虛擬機(jī)保護(hù)的單環(huán)境遷移。遷移前后本地程序大小的對比和目標(biāo)代碼執(zhí)行時間的對比分別如表2、表3所示。在加入虛擬機(jī)框架保護(hù)后,設(shè)定Mealy機(jī)切分參數(shù)為2。

      由表2可以看出:由于解密算法和信息傳輸代碼模塊的寫入,無虛擬機(jī)保護(hù)的本地程序大小在遷移后有少量增長;有虛擬機(jī)保護(hù)后,本地程序大小有進(jìn)一步的增長。由表3可以看出:由于本地程序和單環(huán)境需要進(jìn)行數(shù)據(jù)遷移傳輸,在加入虛擬機(jī)保護(hù)框架后,時間開銷有較大幅度的增長。

      基于虛擬機(jī)保護(hù)的單環(huán)境代碼遷移,進(jìn)一步構(gòu)建三位一體虛擬保護(hù)方案,從本地程序大小和目標(biāo)代碼執(zhí)行時間兩方面與商業(yè)軟件進(jìn)行比較。其中,CV版本號為3.0.8,使用的虛擬機(jī)類型為Tiger32 White;VMP版本號為3.5,采用默認(rèn)設(shè)置策略進(jìn)行虛擬機(jī)保護(hù)。表4和表5分別為保護(hù)前后本地程序大小和目標(biāo)代碼執(zhí)行時間。由表4和表5可知:經(jīng)過三位一體保護(hù)后的本地程序大小,相較于CV和VMP有空間開銷上的優(yōu)勢;其時間開銷與VMP較為接近,但相較于CV有較大幅度增長。

      基于三位一體保護(hù)方案,對4款程序進(jìn)行了篡改和自毀測試。每款程序進(jìn)行了10次重復(fù)實(shí)驗(yàn),手動模擬對遷移文件的篡改,觸發(fā)保護(hù)方案中的篡改恢復(fù)和自毀機(jī)制。對成功的實(shí)驗(yàn)計算平均時間,結(jié)果如表6所示。

      4 結(jié)語

      由于惡意逆向攻擊的手段越來越多,軟件所面臨的本地“白盒安全”問題與日俱增。虛擬機(jī)融合代碼隔離技術(shù)能夠?qū)浖?nèi)的關(guān)鍵數(shù)據(jù)和核心代碼進(jìn)行有效保護(hù)。本文關(guān)注虛擬機(jī)和代碼遷移技術(shù)的深度融合,在未受保護(hù)的軟件中對核心代碼和關(guān)鍵數(shù)據(jù)進(jìn)行基于Mealy機(jī)的切分轉(zhuǎn)換,增加代碼和數(shù)據(jù)的屬性邊界的模糊性;采用虛擬機(jī)框架進(jìn)行保護(hù),進(jìn)一步提升了數(shù)據(jù)和代碼的安全性;基于本地硬件和遠(yuǎn)程云服務(wù),結(jié)合篡改恢復(fù)和自毀機(jī)制提出三位一體協(xié)同虛擬機(jī)保護(hù)方案,系統(tǒng)性增加了惡意攻擊者的攻破難度,并基于本地和遠(yuǎn)程模擬,構(gòu)建了三位一體原型保護(hù)系統(tǒng)。

      本文依據(jù)現(xiàn)有對虛擬機(jī)保護(hù)研究的實(shí)驗(yàn)設(shè)計,從時空開銷角度,對保護(hù)方案進(jìn)行了可行性驗(yàn)證,并結(jié)合三位一體系統(tǒng)的保護(hù)特點(diǎn),從代碼量增加和篡改恢復(fù)和自毀檢測的角度,驗(yàn)證了方案的有效性,但缺乏從圖的圈復(fù)雜角度驗(yàn)證方案的有效性實(shí)驗(yàn)。其原因是經(jīng)過三位一體方案保護(hù)后的軟件,圖結(jié)構(gòu)的提取非常復(fù)雜。提取圖結(jié)構(gòu)本質(zhì)是攻擊者通過逆向分析手段對保護(hù)框架進(jìn)行理解的行為,但保護(hù)方案設(shè)計的出發(fā)點(diǎn)就是要盡可能地增加攻擊者的理解難度。

      三位一體保護(hù)方案的有效性度量標(biāo)準(zhǔn)和實(shí)驗(yàn)設(shè)計的角度問題,保護(hù)代碼和數(shù)據(jù)量級與時空開銷平衡問題,以及進(jìn)一步基于復(fù)雜網(wǎng)絡(luò)理論設(shè)計保護(hù)方案的問題,將是下一步研究的方向。

      參考文獻(xiàn):

      [1]YOU G, KIM G, CHO S J, et al. A comparative study on optimization, obfuscation, and deobfuscation tools in Android[J]. Journal of Internet Services and Information Security, 2021, 11(1): 2-15.

      [2] KANG, SEOYEON, SUJEONG L, et al. OBFUS: an obfuscation tool for software copyright and vulnerability protection[C]//Proceedings of the Eleventh ACM Conference on Data and Application Security and Privacy, New York: ACM, 2021: 309-311.

      [3] 段鋼. 加密與解密[M]. 第4版. 北京: 電子工業(yè)出版社, 2018: 739-757.

      [4] 張曉寒, 張源, 池信堅, 等. 基于指令虛擬化的安卓本地代碼加固方法[J]. 電子與信息學(xué)報, 2020, 42(9): 2108-2116.

      [5] 潘雁, 祝躍飛, 林偉. 基于指令交換的代碼混淆方法[J]. 軟件學(xué)報, 2019, 30(6): 1778-1792.

      [6] 謝鑫, 劉粉林, 蘆斌, 等. Handler混淆增強(qiáng)的虛擬機(jī)保護(hù)方法[J]. 計算機(jī)工程與應(yīng)用, 2016, 52(15): 146-152.

      [7] 房鼎益, 趙媛, 王懷軍, 等. 一種具有時間多樣性的虛擬機(jī)軟件保護(hù)方法[J]. 軟件學(xué)報, 2015, 26(6): 1322-1339.

      [8] 吳偉民, 許文鋒, 林志毅, 等. 基于增強(qiáng)型虛擬機(jī)的軟件保護(hù)技術(shù)[J]. 計算機(jī)工程與科學(xué), 2014, 36(4): 655-661.

      [9] 潘雁, 林偉. 增強(qiáng)型虛擬寄存器輪轉(zhuǎn)算法[J]. 網(wǎng)絡(luò)與信息安全學(xué)報, 2018, 4(5): 47-54.

      [10]侯留洋, 羅森林, 焦龍龍, 等. 一種結(jié)合混淆思想的代碼虛擬化保護(hù)方法[J]. 科學(xué)技術(shù)與工程, 2019, 19(14): 235-242.

      [11]SKUANG K Y, TANG Z Y, GONG X Q, et al. Enhance virtual-machine-based code obfuscation security through dynamic bytecode scheduling[J]. Computers & Security, 2018, 74: 202-220.

      [12]湯戰(zhàn)勇, 李光輝, 房鼎益, 等. 一種具有指令集隨機(jī)化的代碼虛擬化保護(hù)系統(tǒng)[J]. 華中科技大學(xué)學(xué)報(自然科學(xué)版), 2016, 44(3): 28-33.

      [13]WANG W, LI M, TANG Z Y, et al. Invalidating analysis knowledge for code virtualization protection through partition diversity[J]. IEEE Access, 2019, 7: 169160-169173.

      [14]楊明, 黃劉生. 一種采用嵌套虛擬機(jī)的軟件保護(hù)方案[J]. 小型微型計算機(jī)系統(tǒng), 2011, 32(2): 237-241.

      [15]謝鑫, 劉粉林, 蘆斌, 等. 一種基于代碼并行化和虛擬機(jī)多樣化的軟件保護(hù)方法[J]. 小型微型計算機(jī)系統(tǒng), 2015, 36(11): 2588-2593.

      [16]謝鑫, 羅莉霞, 陳敏, 等. 基于圖變換的虛擬機(jī)保護(hù)增強(qiáng)方法[J]. 計算機(jī)測量與控制, 2021, 29(11): 171-175.

      [17]謝鑫, 馬凌, 陳亮. 一種基于虛擬機(jī)Handler動態(tài)加解密的軟件保護(hù)方法及實(shí)現(xiàn)[J]. 計算機(jī)應(yīng)用與軟件, 2017, 34(12): 321-325, 333.

      [18]WANG H J, FANG D Y, LI G H, et al. NISLVMP: improved virtual machine-based software protection[C]// 2013 Ninth International Conference on Computational Intelligence and Security, NJ: IEEE, 2013: 479-483.

      [19]湯戰(zhàn)勇, 郝朝輝, 房鼎益, 等. 基于進(jìn)程級虛擬機(jī)的軟件防篡改方法[J]. 華中科技大學(xué)學(xué)報(自然科學(xué)版), 2016, 44(3): 65-70.

      [20]房鼎益, 張恒, 湯戰(zhàn)勇, 等. 一種抗語義攻擊的虛擬化軟件保護(hù)方法[J]. 工程科學(xué)與技術(shù), 2017, 49(1): 159-168.

      [21]謝鑫, 向飛. 一種基于增強(qiáng)型調(diào)度器的虛擬機(jī)軟件保護(hù)方法[J]. 計算機(jī)應(yīng)用與軟件, 2018, 35(11): 8-15, 48.

      [22]SUK J H, LEE D H. VCF: virtual code folding to enhance virtualization obfuscation[J]. IEEE Access, 2020, 8: 139161-139175.

      [23]余祥, 周元璞, 李強(qiáng). 基于虛擬機(jī)代碼隔離的軟件保護(hù)技術(shù)研究[J]. 指揮與控制學(xué)報, 2018, 4(1): 83-88.

      (責(zé)任編輯:周曉南)

      Virtual Machine Isolation Protection Scheme Based

      on Trinity Collaboration

      XIE Xin, LIANG Weifang, ZHANG Yusha*

      (School of Computer Science and Engineering, Hunan Institute of Information Technology, Changsha 410151, China)

      Abstract:

      To address the security problem of single isolated environment in code isolation technology based on virtual machine (VM) protection framework, a trinity collaborative VM protection scheme was proposed. Firstly, the core code and critical data were obfuscated and transformed based on Mealy automata, and the virtual machine framework was used for protection. After that, the key data and core code were migrated to the third-party environment, and the tamper recovery and self-destruction techniques were combined to build the three-in-one collaborative protection scheme based on local hardware, software and remote cloud. Finally a simulation system was built to verify the effectiveness and feasibility of the protection scheme based on the test programs.

      Key words:

      virtual machine protection; code isolation; trinity collaboration; mealy machine obfuscation

      收稿日期:2021-10-29

      基金項目:湖南省教育廳科學(xué)研究重點(diǎn)資助項目(18A512);湖南省自然科學(xué)基金資助項目(2019JJ50413,2020JJ5397)

      作者簡介:謝 鑫(1986—),男,副教授,博士,研究方向:軟件安全、智能醫(yī)療影像,E-mail:83488544@qq.com.

      通訊作者:張鈺莎,E-mail:40944392@qq.com.

      乐陵市| 永定县| 正蓝旗| 阳城县| 苏尼特左旗| 盐津县| 彩票| 甘南县| 朝阳市| 灵丘县| 天镇县| 莎车县| 黄平县| 乐东| 外汇| 新沂市| 黑水县| 得荣县| 长白| 平山县| 本溪市| 茌平县| 绥化市| 仙游县| 遂川县| 浏阳市| 桂林市| 满洲里市| 曲沃县| 商都县| 前郭尔| 自治县| 辰溪县| 崇义县| 会泽县| 西峡县| 富民县| 菏泽市| 晋宁县| 房产| 福清市|