999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于多維防御混合策略的虛擬機保護安全性增強方法

2022-10-06 04:13:50梁衛芳
計算技術與自動化 2022年3期
關鍵詞:指令程序

謝 鑫,梁衛芳,陳 敏

(湖南信息學院 計算機科學與工程學院,湖南 長沙 410151)

現代社會是建立在軟件之上的,過去幾年,人工智能、大數據、5G和云計算等新興產業的迅猛發展,推動了軟件產業快速迭代和變革。從傳統電腦和手機終端等個人應用軟件,到城市管理、物聯網、區塊鏈、智能制造和工業控制等新興系統軟件,覆蓋了人們生活和工作的眾多場景,產生了巨大的經濟和社會效益。軟件內部的架構、邏輯和算法是重要的數字資產,在不斷變化和擴大的網絡安全環境中,常常面臨惡意逆向分析和篡改、盜版分發和傳播等威脅。研發人員對軟件的安全性進行需求分析和設計,開展安全編碼和測試,進行安全保護和運營維護,而在整個軟件生命周期內,對核心代碼和數據進行保護,成為眾多研究者應對和解決日益提升的軟件安全性需求的重要方向。

代碼混淆技術是一種典型的保護方法,一般基于混淆策略對于軟件代碼和數據進行等價變換以保證軟件機密性,出現了基于指令、函數、控制流和代碼遷移等多種代碼層面的混淆方法,也出現了基于數據值、數據結構和數據流圖等多種數據層面的混淆方法。隨著混淆技術研究的深入,采用虛擬機(Virtual Machine,VM)框架對軟件進行保護成了研究者的聚焦方向,如下:

虛擬機結合傳統代碼混淆保護:基于隨機和模擬退火的指令亂序混淆算法改進虛擬指令解釋函數(Handler);基于等價替換和亂序切分的指令序列多樣化算法改進虛擬機Handlers模塊;基于語義等價變換和控制流混淆的具有時間多樣性的虛擬機執行路徑混淆;基于代碼隔離的虛擬機保護技術;采用花指令和指令模糊變換技術對虛擬機指令模塊強度進行改進;基于基本塊混淆和多樣化虛擬環境的虛擬機保護框架改進;基于多樣化技術對虛擬指令解釋函數、虛擬指令調度器和虛擬指令集進行處理,實現多虛擬機框架混淆從虛擬機操作碼到本地機器指令的映射;采用隨機化技術實現虛擬指令到字節碼指令的編碼和隨機化;基于多分區和隨機化映射實現虛擬指令到字節碼映射的混淆;基于多重虛擬機嵌套的保護框架改進;基于多套虛擬機對并行代碼進行保護。

虛擬機結合加密、防篡改、防調試技術保護:基于動態加解密技術對虛擬機框架中的虛擬指令解釋函數(Handler)模塊安全性進行提升;基于字節碼的加解密技術對基本指令集保護力度進行提升;基于寄存器值檢查的虛擬機防調試指令設計;基于軟件哨兵和哨兵環技術的虛擬機安全指令和防篡改保護設計。

虛擬機結合多技術混合保護:融合數據流混淆引擎、異常處理機制和雙進程技術實現虛擬機保護的數據流和執行流復雜化;融合控制流迭代變形、指令序列隨機切分和動態加解密技術實現虛擬指令調度器(Dispatcher)模塊安全性改進;融合隨機秘鑰還原和多樣化調度器解碼的虛擬代碼折疊技術實現降低虛擬機代碼靜態呈現的數目。

上述研究工作從虛擬機框架模塊內部、模塊間映射和框架整體角度出發,并結合傳統混淆技術、防調試技術、防篡改技術和加密技術對虛擬機框架不斷進行改進,在提升虛擬機保護技術的安全性方面取得了一定的成果,并呈現出虛擬機+混合技術的保護發展趨勢。不過大部分的工作依然聚焦于虛擬機保護的復雜性、隱蔽性或防篡改性單一維度性能的提升,而虛擬機保護的安全性體現又是多維度的,由于虛擬機整體框架的固定性,當虛擬機框架內模塊連接部分的復雜性、防篡改性或隱秘性不高的時候,容易被攻擊者定位、分析和理解,從而實現虛擬機整體保護框架的破解。本文針對虛擬機模塊連接復雜性、隱蔽性和防篡改性較弱的問題,提出一種多維防御混合的虛擬機保護安全性增強方法:首先融合ROP、指令自修改技術和指令重疊技術實現虛擬機框架模塊連接指令序列的隱蔽混淆,并采用多樣化和隨機化思想進一步提升指令序列復雜性,最后采用檢測和修復雙哨兵集和三線程實現模塊連接的防篡改。

1 虛擬機及相關防御技術

1.1 虛擬機保護原理

采用虛擬機保護框架對程序進行保護的基本流程為:先抽取程序中的核心代碼和數據,用虛擬機框架對其進行保護,然后用保護后的程序替換原始程序的核心代碼和數據,并嵌入完成虛擬指令序列解釋執行的虛擬機各個模塊。原始程序執行時為本地代碼的順序執行,而受虛擬機保護后的代碼,執行流首先會被虛擬機解釋執行框架接管,通過解釋執行框架對于虛擬指令集進行解釋執行,完成所有虛擬指令執行后,執行流再回到原始程序中執行。這種保護方式本質上是在原始程序的基礎上構建了一層抽象層,用抽象層的復雜性、難以理解性來對抗逆向攻擊者對于核心代碼和數據的分析和理解。而這一抽象層為基于解釋執行邏輯的虛擬機,實現解釋執行的虛擬機框架由眾多模塊構成,一般包括:字節碼集,虛擬指令解釋函數集,虛擬指令調度器,跳轉表,虛擬機上下文和虛擬機入口和出口代碼。這些模塊之間的連接一般具有穩定的基本結構,如圖1所示。

基于虛擬機的代碼保護技術是將需要保護的可執行代碼進行虛擬化,運用許多虛擬指令執行序列來模擬被保護代碼,完成與被保護代碼相同執行結果,從而達到目標代碼不被輕易逆向分析和惡意篡改,典型的應用是將基于x86匯編系統的可執行代碼轉化為字節碼指令系統的代碼。

在使用虛擬機對目標代碼進行保護時,先定位需要保護的關鍵代碼,然后對其進行虛擬化,完成后去除原始代碼,并將虛擬機代碼模塊嵌入受保護程序內部,如圖1(a)所示。受保護代碼需要執行時,首先從目標代碼指令流切換到虛擬機保護代碼入口,完成對目標代碼當前執行CPU上下文環境的保存后,運用虛擬機調度器,跳轉表和解釋函數等虛擬機保護核心模塊,對虛擬指令序列進行解釋執行,執行完所有虛擬指令序列后,先對目標代碼指令執行環境進行恢復,然后退出虛擬機解釋執行框架,并進行之后指令的執行,如圖1(b)所示。

圖1 虛擬機保護基本框架和原理

1.2 ROP技術原理

ROP全稱為Return Oriented Programming,基本思想源于提取報刊上英文單詞中的若干字母,連接組成一句具有語義的話,后來延伸到軟件安全領域,是一種基于代碼復用的攻擊技術。在程序中通過對指令序列進行ROP形式的代碼插裝,將原始指令序列轉換為以ret指令結尾的gadget形式,在程序執行過程中,所有的gadget指令通過ret返回指令相連,最后執行一段完成特殊功能的指令序列,如圖2所示。

圖2 ROP攻擊原理示例

1.3 指令自修改技術原理

指令自修改技術(Self-Modifying Code,SMC),在真正執行程序中的某一段指令序列時,程序本身存在的指令序列會對部分代碼或數據進行修改,修改后的代碼或數據是可匯編和可執行的。

在原始程序指令序列(,,…,)中插入指令序列(,,…,),并將原始程序指令序列中要偽裝的目標指令序列(,,…,),用指令序列(,,…,)進行替換,在程序實際運行過程中,指令序列(,,…,)對指令序列(,,…,)進行修改,將(,,…,) 恢復為目標指令序列(,,…,)。

1.4 指令重疊技術原理

反匯編算法的假設前提為指令之間不重疊,因此指令重疊技術作為一種重要的反反匯編技術,廣泛應用于與惡意代碼混淆變形之中,用于對抗程序靜態分析。一般分為三種類型:向后重疊,向前重疊和自身中間重疊。如:設有兩條連續指令=(,,…,)和=(,,…,),緊跟隨在后執行,且<,其中表示或指令中的一位十六進制字節。若指令之間不重疊,則指令最后一字節一定緊跟指令第一字節,連續指令和的十六進制字節數據為(,,…,)。若-+1=,…,=,<,則說明指令末尾字節和指令的起始字節重疊,記為(,…,-,…,);若=,則表明指令末尾字節為整條指令。

1.5 軟件哨兵技術原理

軟件哨兵技術是一種用于軟件防篡改的動態保護技術,通過在軟件內部嵌入檢測哨兵代碼和恢復哨兵代碼,形成哨兵保護網絡,在軟件執行過程中,檢測哨兵代碼可以對自身所負責的區域進行完整性檢測,如果檢測到異常,恢復哨兵代碼對其進行動態恢復。

2 多維防御混合增強保護

基于基本虛擬機保護框架,結合上述軟件防御技術基本原理,提出一種基于多維防御混合策略的虛擬機保護安全性增強方法,用于提升虛擬模塊連接指令序列的安全性,基本流程如下:

1)構建基本虛擬機保護框架。

2)定位需要保護增強的虛擬機模塊連接指令序列。

3)混合ROP技術、SMC技術和指令重疊技術對其進行混淆,具體步驟如下:

3.1)通過搜索和構造結合方式獲取與需保護指令序列等價的內存空間gadget。

3.2)生成不透明謂詞集合={,,,…,},其中為不透明謂詞。

3.3)運用指令重疊方法對單條gadget指令序列=(,,,…-1,RET)進行混淆,生成混淆后指令序列′=(,,,…,-1,,,,…,-1,,),其中(,,,…,-1)為新增實現不透明謂詞組合算式的指令序列,完成跳轉指令偏移數據的生成,可表示為二進制序列(…),其公式如式(1)所示。跳轉指令的形式為jmp base+,base為重疊指令的基地址,其中=(…1),其中RET指令序列的二進制,表示為(…)。

(1)

3.4)通過指令自修改方法對指令序列′再次進行混淆,生成混淆后的指令序列″=(,,,…,,,,,…,-1,,-1,…,-1,,,,…,-1,,),其中(,,,…,-1)為實現不透明謂詞組合算式的指令序列,完成跳轉指令偏移數據的生成,可表示為二進制序列(…),其公式如式(2)所示。數據移動指令形式為mov [base+],Data,Data為自修改指令數據,base為數據移動指令的基地址,其中可以修改非控制轉移指令成為控制轉移指令。

(2)

3.5)構造自修改指令集合={,,,…,},對不透明謂詞組合算式指令序列(,,,…,-1)和(,,,…,-1)中包含的所有跳轉指令進行混淆,將所有跳轉指令修改為非控制轉移指令。

4)采用指令多樣化和隨機化技術對3)結束所產生的指令序列進行混淆處理。

4.1)基于等價指令替換和代碼數據互相轉換雙重策略進行指令多樣化,如圖3(a)和(b)為基于指令替換技術的指令多樣化示意,圖3(c)為基于代碼和數據轉換的指令多樣化示意。

圖3 指令多樣化策略示例

4.2)基于多樣化指令序列和路徑隨機選擇指令構建指令混淆網絡如圖4所示,其中指令序列(,,,…,1),(,,,…,2),…,(1,2,3,…,)為等價指令序列,集合{,,,…,1},{,,3,…,2},…,{123,…,}單個集合內的每一個指令片段等價。

圖4 指令混淆網絡構建

5)基于檢測和修復軟件哨兵和三線程,對虛擬機模塊連接結構的混淆指令序列進行保護。

5.1)基于最小覆蓋的哨兵的防篡改保護。

5.2)基于三線程的防篡改增強。

6)生成安全增強虛擬機保護框架。

3 實驗分析

3.1 實驗環境和測試用例

Windows10家庭中文版64位操作系統,CPU為Intel(R) Core(TM)i7-8700 CPU,內存為16 GB,主頻為3.2 GHz。采用IDA7.2對6款測試程序進行分析,獲取程序的大小和所包含的函數個數,并采用Local Windows Debugger調試器,對各測試程序關鍵代碼段進行分析,獲取的基本信息如表1所示。

表1 測試用例描述

3.2 性能分析

首先基于虛擬機設計原則,構建虛擬機代碼保護原型系統M-VM,然后運用基于多維防御混合策略的虛擬機增強方法對原型系統M-VM進行混淆增強變換,加入ROP, SMC和指令重疊技術,生成M-VM,在此基礎上再加入多樣化和隨機化指令混淆網絡,生成M-VM,最后加入軟件哨兵和三線程防篡改保護,生成M-VM。

然后基于表 1中的測試程序,分別采用M-VM,M-VM,M-VM,M-VM以及商用軟件Code Virtualizer(CV),VMProtect(VMP)對其進行保護,其中CV版本號為3.0.8.0,使用的虛擬機類型為Tiger32 White;VMP版本號為3.5,采用默認設置策略進行虛擬機保護。表2為保護前后軟件大小的變化,表3為保護前后關鍵代碼指令執行時間的變化,為了降低測試的誤差,執行時間為20次結果的平均值。

表2 虛擬機保護前后程序大小

表3 虛擬機保護前后關鍵代碼執行時間

兩款商用軟件具有很強的保護功能,測試程序經過商業虛擬機保護軟件CV和VMP處理后,往程序中嵌入了實現保護功能的虛擬機保護框架,程序大小有較大幅度的增長。虛擬機原型保護系統M-VM由于是輕量級的功能實現,經過其保護的程序大小,只有小幅度的增長。在M-VM上通過增加ROP、指令折疊和自修改技術而實現的M-VM,其中所添加的不透明謂詞,都是代碼量小的不透明謂詞,可以發現其程序增長開銷不大。在M-VM基礎上通過引入多樣化和隨機化技術而實現的M-VM的每一條指令序列生成三條功能等價的指令序列,而每一條指令序列被切分為三段指令片段,進行隨機化連接,可以發現M-VM相比M-VM空間有較大的增長。在M-VM基礎上通過引入哨兵和三線程實現的M-VM,添加了響應、恢復和監控哨兵指令序列,在嵌入哨兵的時候,盡可能嵌入PE頭的冗余空間之中,并控制了不同功能的哨兵數目,程序增長空間較小。因此從表2可得,在實際使用多維防御混合策略生成虛擬機保護框架對程序進行保護的時候,如需控制程序的增長,需要對不透明謂詞類型和復雜程度進行選擇,并要不斷調整多樣化和隨機化實現過程中的參數選擇,以平衡保護強度和增長程序體積。

除了空間開銷外,經過不同虛擬機保護框架處理后程序關鍵代碼執行時間如表3所示,經過CV和VMP處理后,核心代碼指令序列的執行時間有了不同程度的增長,CV整體時間開銷遠大于VMP,M-VM是輕量級實現,增長的時間開銷符合虛擬機保護框架指令膨脹的基本特點。在實際實驗中,選擇了運算速度快的不透明謂詞,M-VM相比較與M-VM增長的大部分時間為實現指令折疊和自修改時,不透明謂詞執行的增長時間,另外,一部分時間為實現ROP的執行時間。M-VM相比M-VM增長的時間在混淆指令網絡中的隨機選擇指令序列,每一條指令序列生成三條功能等價的指令序列,而每一條指令序列被切分為三段指令片段,每次執行一次混淆指令網絡,隨機選擇指令序列執行兩次。M-VM相比M-VM的大部分時間增長,由于測試過程中,并沒有引發篡改響應和恢復功能,三線程保護引入了指令執行時間的增長。因此可得,在實際使用多維防御混合策略生成虛擬機保護框架對程序進行保護的時候,如需要控制程序時間開銷的增長,需要對不透明謂詞類型和復雜程度進行選擇,并需要對多樣化和隨機化的參數選擇進行擇優選擇,以平衡保護強度和程序執行時間開銷。

從表2和3可得,經多維防御混合虛擬機保護后,程序無論在程序大小還是在運行時間上都會有較大增長。M-VM,M-VM和M-VM保護強度呈階梯增強,如果要提高其安全強度,可以構造安全性更高的不透明謂詞進行嵌入,迭代生成和構造更多類型的ROP指令序列,等價指令序列和多樣化指令片段,運用更復雜的方式在代碼和數據之間進行等價轉換混淆,嵌入更多的哨兵,對線程保護進行增強,但這樣會使得程序的空間和時間有大幅度的增長。實際使用多維防御虛擬機框架對程序進行保護時,需要平衡安全性、可用性和所保護的核心代碼范圍。

4 結 論

基于多維防御混合策略的虛擬機框架增強方法,在現有虛擬機保護框架的基礎上,通過ROP、指令重疊和指令自修改技術組合混淆策略,增強了虛擬機模塊間連接代碼的隱蔽性;通過多樣化和隨機化混淆指令網絡,增強了虛擬機模塊連接代碼的復雜性;通過多功能哨兵和三線程保護,實現模塊連接的防篡改。從模塊連接的復雜性、隱蔽性和防篡改三方面進行了安全性增強,提升了整體框架在面對惡意攻擊者定位、分析和篡改方面的安全性能。

基于-原型虛擬機實現了增強型-,-,-虛擬機原型系統,實驗驗證了方法的可行性,基于多維防御混合方法改進的虛擬機框架,對于核心代碼和數據的保護具有更高的保護強度。不過,在實際應用方法的時候,需考慮安全強度和保護后程序的時空開銷平衡問題,這也是下一步的工作方向。

猜你喜歡
指令程序
聽我指令:大催眠術
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 亚洲国语自产一区第二页| 亚洲第一视频免费在线| 人妻一本久道久久综合久久鬼色| 亚欧乱色视频网站大全| 国产成年女人特黄特色大片免费| 久久久噜噜噜| 视频一区视频二区日韩专区| 欧美午夜理伦三级在线观看| 国产欧美日本在线观看| 高清不卡一区二区三区香蕉| 成年人视频一区二区| 国产精品一区二区久久精品无码| 国产成人毛片| 国产99精品久久| 一级毛片网| 久久国产毛片| 国产精品va免费视频| 国产综合另类小说色区色噜噜| 久久男人视频| 国产国产人在线成免费视频狼人色| 亚洲一区二区在线无码| 蜜桃视频一区| 亚洲国产精品一区二区第一页免 | 制服丝袜一区| 免费毛片在线| 美女国内精品自产拍在线播放| 国产精品久久久精品三级| 青青国产在线| 日韩精品成人网页视频在线 | 久久久亚洲色| 亚洲免费成人网| 男人天堂亚洲天堂| 超级碰免费视频91| 四虎亚洲精品| 在线中文字幕日韩| 精品一区二区三区四区五区| 亚洲国产综合精品中文第一| 青青久久91| 91精品国产91久无码网站| 亚洲精品片911| 中文字幕av一区二区三区欲色| 永久免费AⅤ无码网站在线观看| 午夜福利网址| 国产欧美日韩综合在线第一| 色综合激情网| 国产精品国产三级国产专业不| 伊人久久大香线蕉综合影视| 日韩经典精品无码一区二区| 日本成人福利视频| 欧美午夜精品| 欧美成人综合在线| 青青操视频免费观看| 亚洲中字无码AV电影在线观看| 丰满的少妇人妻无码区| 影音先锋亚洲无码| 成人福利在线视频免费观看| 高潮爽到爆的喷水女主播视频 | 无码专区国产精品第一页| 国产午夜无码专区喷水| 制服丝袜亚洲| 亚洲精品在线91| 亚洲一欧洲中文字幕在线| 亚洲精品欧美日本中文字幕| 亚洲Aⅴ无码专区在线观看q| 在线观看的黄网| 亚洲乱码在线播放| 国产精品第页| 国产第八页| 国产成人1024精品| 久久网欧美| 国产一区自拍视频| 亚洲高清在线天堂精品| 国产成人一区| 国产亚洲精品自在线| 国产精品第一区在线观看| 亚洲国产成熟视频在线多多 | 国产丝袜丝视频在线观看| 2020国产在线视精品在| 久久久久九九精品影院| 日韩在线视频网| 亚洲精品国产精品乱码不卞| 色婷婷成人网|