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

多變體執(zhí)行誤報(bào)問(wèn)題分析與解決方法綜述

2022-12-31 00:00:00席睿成張錚朱鵬喆劉子敬
計(jì)算機(jī)應(yīng)用研究 2022年10期

摘要:從安全角度出發(fā),多變體執(zhí)行(multi-variant execution,MVX)被廣泛應(yīng)用于網(wǎng)絡(luò)安全防御,但多變體執(zhí)行存在一個(gè)共性問(wèn)題:即各路執(zhí)行體向裁決器返回內(nèi)容時(shí),合路產(chǎn)生的誤報(bào)難以解決。排除機(jī)器環(huán)境等客觀因素,產(chǎn)生誤報(bào)是因?yàn)楸頉Q器收到合路信息后開(kāi)始對(duì)非一致變量作安全判斷,除真實(shí)攻擊造成的非一致變量外,還夾雜著正常系統(tǒng)運(yùn)行產(chǎn)生的非一致變量(如內(nèi)存描述符、端口號(hào)、隨機(jī)數(shù)、代碼及進(jìn)程內(nèi)的線程調(diào)用順序),從而造成表決器誤判,影響多變體系統(tǒng)正常運(yùn)行。如果能降低多變體執(zhí)行的誤報(bào)率,則可以有效地提高系統(tǒng)效率及防御能力。對(duì)近年來(lái)多變體執(zhí)行的類(lèi)型進(jìn)行歸類(lèi),并對(duì)多變體執(zhí)行產(chǎn)生的誤報(bào)問(wèn)題及解決策略進(jìn)行歸納總結(jié),分析多變體執(zhí)行產(chǎn)生表決誤報(bào)的原因,選擇Pina算法進(jìn)行同步的策略、編譯器模塊插樁的策略、縮小表決邊界的策略,對(duì)三種方案在特定應(yīng)用場(chǎng)景下進(jìn)行實(shí)驗(yàn)分析,分析每個(gè)方法的功能及性能,指出各自策略的優(yōu)點(diǎn)及缺點(diǎn)。最后討論現(xiàn)有多變體執(zhí)行現(xiàn)有技術(shù)未解決的難點(diǎn)和未來(lái)的研究方向。

關(guān)鍵詞:多變體執(zhí)行;安全判斷;非一致變量;系統(tǒng)誤報(bào)

中圖分類(lèi)號(hào):TP309.2文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1001-3695(2022)10-003-2907-09

doi:10.19734/j.issn.1001-3695.2022.02.0093

Summary of analysis and solution of multi-variate execution 1 alarm

Xi Ruicheng1,2,Zhang Zheng1,2,Zhu Pengzhe1,2,Liu Zijing1,2

(1.School of Cyber amp; Space Security,

Information Engineering University,Zhengzhou 450001,China;2.Purple Mountain Laboratories,Nanjing 211100,China)

Abstract:From a security view,MVX is widely used in network security defense,but there is a common problem in multi-variant execution:when each executive body returns content to the arbiter,it is difficult to solve the 1 alarm caused by the combination.Excluding objective factors such as the machine environment,1 alarms are generated because the voter starts to make security judgments on non-consistent variables after receiving the combined information.In addition to non-consistent va-riables caused by real attacks,there are also non-consistent variables generated by normal system operation(such as memory descriptors,port numbers,random numbers,codes,and the calling sequence of threads in the process),which would cause the wrong judgement of the voter and affect the normal operation of the multi-variant system.If the 1 alarm rate of multi-variant execution can be reduced,the system efficiency and defense capability would be improved effectively.This paper classified the types of multi-variant execution in recent years,summarized the 1 alarms caused by multi-variant execution and the solutions.It analyzed the causes of 1 alarms caused by multi-variant execution,selected the Pina algorithm for synchronization,the compiler module instrumentation strategy,and the strategy for narrowing the voting boundary,analyzed the three schemes in specific application scenarios,and analyzed each method.Then it pointed the functions and performance of each strategy,pointed the advantages and disadvantages of each stra-tegy.Finally,it discussed the unsolved difficulties and future research directions of the existing multi-variant implementation.

Key words:multi-variant execution;security judgment;inconsistent variables;systematic 1 alarm

1研究背景及意義

1.1軟件開(kāi)發(fā)中存在安全隱患

在系統(tǒng)級(jí)開(kāi)發(fā)過(guò)程中,由于編程語(yǔ)言的局限性與軟件開(kāi)發(fā)者缺乏安全知識(shí),應(yīng)用程序會(huì)存在例如整型溢出、懸空指針、緩沖區(qū)溢出等漏洞,在開(kāi)發(fā)過(guò)程中,由于大量使用第三方庫(kù)、借鑒開(kāi)源的項(xiàng)目源代碼,雖然提高了效率,但也帶來(lái)了安全隱患。如軟件漏洞中最常見(jiàn)的進(jìn)程控制劫持流攻擊,是攻擊者利用內(nèi)存信息泄露繞過(guò)保護(hù)機(jī)制,獲得重要信息地址,向程序注入payload,竊取敏感數(shù)據(jù)。多變體執(zhí)行是有效抵御進(jìn)程控制劫持流攻擊的方法之一。

1.2多變體執(zhí)行的介紹

多變體執(zhí)行的架構(gòu)由執(zhí)行體和監(jiān)控模塊兩部分組成,多變體可以表現(xiàn)為多個(gè)進(jìn)程或者多個(gè)線程。多變體執(zhí)行技術(shù)[1,2],既可以保護(hù)系統(tǒng)免受內(nèi)存破壞攻擊,也可以提高系統(tǒng)的運(yùn)行效能,其關(guān)鍵思想是同步運(yùn)行多個(gè)不同的執(zhí)行體,為它們提供相同的輸入,并監(jiān)控其輸出結(jié)果以發(fā)現(xiàn)分歧。多變體執(zhí)行框架如圖1所示。從安全防御的角度[3~6]考慮,如果正在運(yùn)行的執(zhí)行體之間的內(nèi)部差異導(dǎo)致對(duì)惡意輸入的響應(yīng)出現(xiàn)明顯的差異,監(jiān)視器可以在執(zhí)行中檢測(cè)這種差異,然后發(fā)出警報(bào)或終止執(zhí)行,從而達(dá)到防御的效果。該技術(shù)通過(guò)強(qiáng)制或監(jiān)視變體系統(tǒng)調(diào)用的鎖步執(zhí)行,透明地執(zhí)行相同輸入,接收各執(zhí)行體執(zhí)行后的結(jié)果,監(jiān)視器可以檢測(cè)到執(zhí)行中的差異,然后發(fā)出警報(bào)。

1.3動(dòng)態(tài)異構(gòu)冗余概念

隨著多變體執(zhí)行的發(fā)展,動(dòng)態(tài)異構(gòu)冗余[7,8](dynamic he-terogeneous redundancy,DHR)思想應(yīng)運(yùn)而生,該思想在多變體執(zhí)行的基礎(chǔ)上增加動(dòng)態(tài)和反饋的特征,文獻(xiàn)[9,10]對(duì)動(dòng)態(tài)冗余異構(gòu)進(jìn)行了論述。DHR主要由輸入模塊、處理模塊、輸出模塊、構(gòu)建模塊、調(diào)度模塊[11~13]五部分組成。輸入模塊負(fù)責(zé)將用戶輸入分成多份,分發(fā)給各執(zhí)行體;處理模塊負(fù)責(zé)將各執(zhí)行體執(zhí)行后的多份輸出發(fā)送至表決器;輸出模塊負(fù)責(zé)表決收到的多份輸出,判定若存在n個(gè)或n個(gè)以上的結(jié)果一致,則輸出結(jié)果,否則,截?cái)噍敵鲞^(guò)程;構(gòu)建模塊負(fù)責(zé)構(gòu)建執(zhí)行體集;調(diào)度模塊負(fù)責(zé)動(dòng)態(tài)選擇算法,從執(zhí)行體集中選擇執(zhí)行體進(jìn)行調(diào)度,在執(zhí)行體調(diào)度完成后,將服務(wù)體下線,清洗回滾至原始狀態(tài)。動(dòng)態(tài)異構(gòu)冗余框架如圖2所示。

每個(gè)執(zhí)行體結(jié)構(gòu)不一樣但功能等價(jià),表決器通過(guò)對(duì)比各執(zhí)行體之間的信息差異來(lái)判斷是否被攻擊。一旦表決器判定當(dāng)前受到攻擊,則調(diào)用動(dòng)態(tài)選擇算法,從備份的異構(gòu)組件中挑選合適的執(zhí)行體對(duì)異常的執(zhí)行體進(jìn)行替換,通過(guò)表決并進(jìn)行負(fù)反饋至調(diào)度模塊。DHR具有隨機(jī)性、動(dòng)態(tài)性、多樣性,從外界看,這些內(nèi)生的特性使信息系統(tǒng)能夠以黑盒[14~16]的角度存在,應(yīng)對(duì)不確定的攻擊,這極大地提高了攻擊者的難度。理論上,當(dāng)多變體系統(tǒng)各執(zhí)行體不存在共同漏洞時(shí),該系統(tǒng)是足夠安全的。

1.4多變體執(zhí)行的發(fā)展

在多變體提出之前,基于操作系統(tǒng)的多樣化思想,設(shè)計(jì)了多樣化機(jī)器和系統(tǒng)調(diào)用層級(jí)的映射隨機(jī)化,還存著基于軟件的多樣化代碼,比如程序級(jí)別的指令集隨機(jī)化[17~20]。隨著N-variant的出現(xiàn),越來(lái)越多的團(tuán)隊(duì)開(kāi)始研究多變體執(zhí)行,經(jīng)過(guò)十幾年的發(fā)展,多變體執(zhí)行蓬勃發(fā)展。本文選取的相關(guān)文獻(xiàn)以多變體執(zhí)行架構(gòu)的研究機(jī)構(gòu)和團(tuán)隊(duì)為主線,下面簡(jiǎn)要介紹十幾種主要類(lèi)型的多變體執(zhí)行系統(tǒng)發(fā)展。

在2006年,Cox等人[21]首次針對(duì)軟件安全問(wèn)題提出了 N-variant 執(zhí)行架構(gòu),它定義理想MVX系統(tǒng)安全特性[22~25] 的等效項(xiàng)和檢測(cè)機(jī)制。該架構(gòu)使用內(nèi)存空間的異構(gòu)和指令集標(biāo)簽化技術(shù)來(lái)生成執(zhí)行體,每個(gè)執(zhí)行體都相當(dāng)于獨(dú)立的進(jìn)程,缺點(diǎn)是,該系統(tǒng)無(wú)法支持多線程冗余程序執(zhí)行,且因功能不完善,限制系統(tǒng)調(diào)用的使用。同年,Berger等人[26]提出DieHard多變體執(zhí)行架構(gòu),在該架構(gòu)里,通過(guò)改造每個(gè)執(zhí)行體的堆對(duì)象,使其異構(gòu)。每個(gè)執(zhí)行體接收輸入后,將結(jié)果輸出到一個(gè)共享的內(nèi)存區(qū)域,該區(qū)域中每個(gè)執(zhí)行體有自己的專(zhuān)屬緩沖區(qū),表決進(jìn)程在提前規(guī)劃好的同步點(diǎn)上對(duì)共享內(nèi)存區(qū)域的輸出進(jìn)行比較,進(jìn)而輸出正確的結(jié)果。缺點(diǎn)是,該系統(tǒng)不能防御基于堆棧損壞的攻擊行為[27,28]。

2007年,Cavallaro[29]根據(jù)多變體架構(gòu)基于地址空間分區(qū)(address space partitioning,ASP)的原理將框架中一個(gè)執(zhí)行體的地址空間移位k Byte,使得兩個(gè)執(zhí)行體的地址空間的相對(duì)距離發(fā)生改變,從而實(shí)現(xiàn)多樣化的目的,進(jìn)而阻止部分地址覆蓋攻擊。缺點(diǎn)是,該系統(tǒng)的局限性在于不能抵抗類(lèi)如相對(duì)尋址這類(lèi)攻擊。

2009年,Salamat等人[30]提出Orchestra、多變體架構(gòu),基于堆棧結(jié)構(gòu)的特點(diǎn),設(shè)計(jì)出兩個(gè)堆棧反向生長(zhǎng)的執(zhí)行體,該框架中的監(jiān)視模塊作為單獨(dú)進(jìn)程運(yùn)行,使用 ptrace API 來(lái)對(duì)執(zhí)行體的系統(tǒng)調(diào)用進(jìn)行攔截和比對(duì),無(wú)須對(duì)操作系統(tǒng)進(jìn)行任何改動(dòng)。缺點(diǎn)是,攔截比對(duì)系統(tǒng)調(diào)用消耗性能巨大,需要頻繁地對(duì)上下文進(jìn)行切換。

2003年,哥特大學(xué)Volckaert團(tuán)隊(duì)[31]設(shè)計(jì)出GHUMVEE監(jiān)視器。GHUMVEE和其他面向安全的多變體框架的監(jiān)控組件都是依賴(lài)于ptrace API來(lái)監(jiān)視執(zhí)行體[32,33],在用戶空間作為一個(gè)單獨(dú)的進(jìn)程運(yùn)行,監(jiān)控需要同步系統(tǒng)調(diào)用,能正確處理多線程復(fù)制和異步信號(hào)傳遞,缺點(diǎn)是頻繁切換上下文。

2015年,Hosek 團(tuán)隊(duì)[34]設(shè)計(jì)出Varan多變體執(zhí)行框架,首次引入異步共享機(jī)制,類(lèi)似于內(nèi)存中的記錄重放框架,其中一個(gè)執(zhí)行體充當(dāng)領(lǐng)導(dǎo)者,直接執(zhí)行系統(tǒng)調(diào)用,將結(jié)果寫(xiě)入共享的環(huán)形緩沖區(qū)。其他版本執(zhí)行體為追隨者,只是從環(huán)形緩沖區(qū)中讀取結(jié)果。監(jiān)控器放在每個(gè)執(zhí)行體內(nèi)部,能夠極大地減少跨進(jìn)程的上下文切換,加載內(nèi)核模塊攔截系統(tǒng)調(diào)用以檢測(cè)執(zhí)行體的行為,并統(tǒng)一執(zhí)行體的輸出。監(jiān)視器充當(dāng)中間組件,向內(nèi)核報(bào)告執(zhí)行體的狀態(tài),并在執(zhí)行體崩潰或檢測(cè)到執(zhí)行體行為差異時(shí)執(zhí)行恢復(fù)異常處理。Varan將選擇性二進(jìn)制重寫(xiě)[35]與高性能事件流相結(jié)合,提供一種靈活高效的用戶空間解決方案,但沒(méi)有解決執(zhí)行體間系統(tǒng)調(diào)用產(chǎn)生的誤報(bào)問(wèn)題。

2016年,Volckaert團(tuán)隊(duì)[36,37]引入監(jiān)控模塊IP-Mon。Remon結(jié)合了跨進(jìn)程監(jiān)控器和進(jìn)程內(nèi)監(jiān)控器的優(yōu)點(diǎn),Remon的進(jìn)程內(nèi)監(jiān)視器在程序內(nèi)輸入,而跨進(jìn)程監(jiān)視器強(qiáng)制執(zhí)行對(duì)有潛在危險(xiǎn)的系統(tǒng)調(diào)用的鎖步執(zhí)行;另一方面,安全的系統(tǒng)調(diào)用在沒(méi)有外部監(jiān)控的情況下進(jìn)行,從而提高系統(tǒng)效率。該系統(tǒng)將監(jiān)控模塊放入應(yīng)用程序進(jìn)程里,使用記錄+重放方法提供對(duì)多線程的支持。記錄+重放方法,也稱(chēng)為領(lǐng)導(dǎo)者/追隨者方法,該方法通過(guò)初始化,設(shè)立主執(zhí)行體從執(zhí)行體、監(jiān)控器捕獲主執(zhí)行體中執(zhí)行同步操作的順序,并在其他執(zhí)行體中強(qiáng)制執(zhí)行相同的順序。

2016年,Belay等人[38]基于虛擬化技術(shù)和硬件虛擬化的系統(tǒng)模式 Dune,提出 MvArmor的多變體架構(gòu),改善多變體架構(gòu)的性能瓶頸,并通過(guò)自定義的安全策略[39]來(lái)把握性能和安全之間的平衡,該架構(gòu)能夠通過(guò)環(huán)境感知來(lái)動(dòng)態(tài)生成執(zhí)行體。遺憾的是Dune這一虛擬化框架并不是線程安全的,而且并未得到持續(xù)更新。

2018年,Lu等人[40]基于安全防御的角度提出BUDDY的多變體執(zhí)行架構(gòu),在I/O操作設(shè)置同步點(diǎn),監(jiān)控輸出口,當(dāng)攻擊者向外發(fā)送數(shù)據(jù)時(shí)對(duì)端口進(jìn)行監(jiān)控,能很大效率地提升架構(gòu)安全防御能力,減少監(jiān)控同步比較的次數(shù)。監(jiān)控器攔截系統(tǒng)調(diào)用后,將結(jié)果從同步緩沖區(qū)返回給各執(zhí)行體,盡可能使整個(gè)系統(tǒng)損耗性能達(dá)到最小,能抵御信息泄露,該系統(tǒng)缺陷是不能有效地解決執(zhí)行體之間的誤報(bào)問(wèn)題。

2019年,文獻(xiàn)[41]基于操作系統(tǒng)內(nèi)核提出了把監(jiān)控器放在內(nèi)核里的kMVX架構(gòu),在內(nèi)核空間里生成兩個(gè)執(zhí)行體,具體實(shí)現(xiàn)方式是在同一機(jī)器上運(yùn)行兩個(gè)多樣化編譯后的內(nèi)核執(zhí)行體,并構(gòu)造兩個(gè)完全不相交的虛擬內(nèi)存映射,在執(zhí)行系統(tǒng)調(diào)用時(shí),兩個(gè)內(nèi)核同時(shí)處理,對(duì)執(zhí)行結(jié)果進(jìn)行同步檢查以判斷是否存在內(nèi)核內(nèi)存泄漏。該架構(gòu)可以防止內(nèi)核中的信息泄露問(wèn)題,不過(guò)仍然具有較大的性能開(kāi)銷(xiāo),部分功能還有待探究。

2019年同年,Voulimeneas等人[42]設(shè)計(jì)DMON框架,DMON將一組執(zhí)行體分布在一組異構(gòu)的物理機(jī)器上,執(zhí)行體異構(gòu)體現(xiàn)包括不同的指令集、字符順序、調(diào)用規(guī)則、系統(tǒng)調(diào)用接口,以及潛在的硬件安全特性差異。DMON設(shè)計(jì)兩種監(jiān)視器,L-MON監(jiān)視器監(jiān)控主執(zhí)行體,而從執(zhí)行體由自帶的F-MON監(jiān)視器監(jiān)督。只要變體執(zhí)行系統(tǒng)調(diào)用,這些組件就會(huì)交互,每當(dāng)主執(zhí)行體或從執(zhí)行體試圖進(jìn)入或退出系統(tǒng)調(diào)用時(shí),相應(yīng)的L-MON或F-MON中斷并掛起變體的狀態(tài),讀取被中斷的系統(tǒng)調(diào)用的調(diào)用號(hào),并調(diào)用監(jiān)控進(jìn)程中的專(zhuān)用處理程序例程,該例程的作用是為各變體的系統(tǒng)調(diào)用實(shí)現(xiàn)檢查邏輯和復(fù)制邏輯。監(jiān)視器在進(jìn)入系統(tǒng)調(diào)用時(shí)中斷,檢查處理程序。在F-MON中,收集關(guān)于變體狀態(tài)的信息,將該信息發(fā)送給L-MON,并等待L-MON確認(rèn)從執(zhí)行體處于等同于主執(zhí)行體的狀態(tài)。在L-MON中,檢查處理程序等待來(lái)自F-MON的傳入狀態(tài)信息,將該狀態(tài)信息與主執(zhí)行體的狀態(tài)進(jìn)行比較,并將比較結(jié)果通知F-MON。

2020年,Wang等人[43]設(shè)計(jì)MonGuard系統(tǒng),MonGuard是一個(gè)保護(hù)進(jìn)程內(nèi)監(jiān)視器和庫(kù)的系統(tǒng)。MonGuard利用Intel MPK高效更新內(nèi)存訪問(wèn)權(quán)限。MonGuard實(shí)現(xiàn)只執(zhí)行內(nèi)存和代碼隨機(jī)化來(lái)隱藏監(jiān)控代碼,使用它來(lái)實(shí)現(xiàn)一個(gè)受保護(hù)的進(jìn)程內(nèi)MVX監(jiān)視器。其實(shí)驗(yàn)結(jié)果表明,MonGuard通過(guò)合理的組件內(nèi)隔離可以大大提高監(jiān)控性能。

2020年,潘傳幸等人[46]在擬態(tài)防御原理[1,2,44,45]的基礎(chǔ)之上實(shí)現(xiàn)系統(tǒng)MimicBox; 當(dāng)發(fā)現(xiàn)冗余執(zhí)行的進(jìn)程有數(shù)據(jù)流出虛擬內(nèi)存空間時(shí),表決器主動(dòng)進(jìn)行表決。MimicBox使用ptrace系統(tǒng)調(diào)用實(shí)現(xiàn)系統(tǒng)調(diào)用的攔截、替換、表決內(nèi)容提取、返回值覆蓋等功能,通過(guò)第三屆擬態(tài)強(qiáng)網(wǎng)杯精英挑戰(zhàn)賽的擬態(tài)pwn題驗(yàn)證擬態(tài)執(zhí)行的防御有效性,但存在表決器誤報(bào)的情況,主要原因是MimicBox中冗余的執(zhí)行體之間存在如進(jìn)程號(hào)、隨機(jī)數(shù)、文件描述符等參數(shù)不一致的情況,影響表決器裁決。

多變體執(zhí)行總結(jié)如表1所示。

2多變體執(zhí)行誤報(bào)的產(chǎn)生原因

多變體執(zhí)行系統(tǒng)產(chǎn)生誤報(bào)的本質(zhì)原因是:在多執(zhí)行體冗余執(zhí)行過(guò)程中,本身會(huì)提供一些存在不確定性的參數(shù),此類(lèi)參數(shù)的在執(zhí)行過(guò)程中,其屬性不可預(yù)測(cè),如隨機(jī)數(shù)、時(shí)間戳等。由于被多變體執(zhí)行改造的系統(tǒng)擁有異構(gòu)冗余性,所以當(dāng)用戶發(fā)起請(qǐng)求時(shí),多個(gè)變體可能產(chǎn)生響應(yīng)不一致的情況,從而造成監(jiān)控模塊表決誤判。

多變體框架的誤報(bào)問(wèn)題不可避免,是多變體系統(tǒng)自身冗余異構(gòu)后帶來(lái)的潛在問(wèn)題,誤報(bào)問(wèn)題根據(jù)粒度不同,表現(xiàn)方式則不同,下面舉幾個(gè)常見(jiàn)的例子來(lái)闡述誤報(bào)問(wèn)題及其危害。

2.1情況1文件讀寫(xiě)引起的誤報(bào)

文件讀寫(xiě)引起的誤報(bào)案例如圖3所示。

Linux操作系統(tǒng)的本質(zhì)是用文件去定義一切,因此文件描述符在系統(tǒng)中的作用至關(guān)重要,多數(shù)的系統(tǒng)調(diào)用都需要利用文件描述符去執(zhí)行。由于進(jìn)程描述符是進(jìn)程獨(dú)有的資源,在不同進(jìn)程之間不共享。

假設(shè)系統(tǒng)里有兩個(gè)進(jìn)程,把它們看成兩個(gè)執(zhí)行體,每個(gè)進(jìn)程里又有兩個(gè)線程,現(xiàn)在系統(tǒng)里要進(jìn)行打開(kāi)文件操作,由于進(jìn)程是擁有資源的最小單位,線程是調(diào)度的最小單位,線程是進(jìn)程中的一個(gè)執(zhí)行實(shí)體,實(shí)際操作是由線程完成的,即打開(kāi)文件進(jìn)行sysc open的原語(yǔ)指令是由進(jìn)程中的某一個(gè)線程去操作,但具體由哪個(gè)線程去操作,執(zhí)行順序是不確定的。當(dāng)進(jìn)程進(jìn)行打開(kāi)文件操作時(shí),如果沒(méi)有指定某個(gè)線程進(jìn)行打開(kāi)文件,進(jìn)程的兩個(gè)線程會(huì)進(jìn)行爭(zhēng)搶系統(tǒng)調(diào)用sysc open操作,在多變體執(zhí)行的框架里,為保證表決時(shí)的正確性,需要維持主從執(zhí)行體的輸入一致。在普通的操作下打開(kāi)單個(gè)文件,不需要考慮多線程的問(wèn)題,但如果要打開(kāi)兩個(gè)文件時(shí),需要進(jìn)程內(nèi)的兩個(gè)線程進(jìn)行爭(zhēng)搶?zhuān)苋菀装l(fā)生混亂。如果兩個(gè)執(zhí)行體之間的線程調(diào)度不同,那么它們傳到表決器的行為也會(huì)有差異,進(jìn)程的PID在整個(gè)系統(tǒng)中是唯一的,但線程的PID不同。

該誤報(bào)屬于表決器裁決引起的誤報(bào),是由于在擬態(tài)化改造改造的過(guò)程中對(duì)不需要進(jìn)行異構(gòu)的部分進(jìn)行異構(gòu)處理,導(dǎo)致多個(gè)執(zhí)行體正常執(zhí)行的結(jié)果也存在不一致,最終被表決器錯(cuò)誤地裁決為攻擊,嚴(yán)重影響多變體執(zhí)行系統(tǒng)的可用性。多變體執(zhí)行系統(tǒng)依賴(lài)于通過(guò)軟件多樣化技術(shù)生成的多個(gè)功能等價(jià)但存在異構(gòu)性的多個(gè)進(jìn)程執(zhí)行體,雖然通過(guò)地址空間配置隨機(jī)加載ASLR[47]等隨機(jī)化技術(shù)處理后,同一個(gè)程序多次運(yùn)行時(shí)功能能夠保持一致,但在操作系統(tǒng)層面仍可能存在不一致的信息,這種不一致主要體現(xiàn)在程序打開(kāi)的文件描述符對(duì)應(yīng)的文件信息和進(jìn)程 ID 等方面。

2.2情況2多線程產(chǎn)生的誤報(bào)

情況2為日常的生產(chǎn)者消費(fèi)者案例(圖4)。如:假設(shè)多線程冗余執(zhí)行的環(huán)境里,主執(zhí)行體和從執(zhí)行體分別都有一個(gè)緩沖區(qū),只有在生產(chǎn)者生產(chǎn)資源并將資源放到緩沖區(qū)后消費(fèi)者才能去消費(fèi)資源,當(dāng)緩沖區(qū)沒(méi)有資源時(shí),消費(fèi)者不能消費(fèi)。生產(chǎn)者生產(chǎn)一次資源,記錄為+1,消費(fèi)者消費(fèi)一次資源,記錄為-1。在執(zhí)行程序時(shí),主執(zhí)行體緩沖區(qū)資源發(fā)生+1,-1,+1,-1。而從執(zhí)行體緩沖區(qū)資源發(fā)生+1,+1,-1,-1的操作,在顯示結(jié)果的時(shí)候,兩者達(dá)到一樣的功能,但是在實(shí)現(xiàn)過(guò)程中進(jìn)行不同的修改。在監(jiān)控組件的表決器中,如果監(jiān)控粒度達(dá)到系統(tǒng)調(diào)用級(jí)別時(shí),則可能在表決器表決時(shí)會(huì)產(chǎn)生不一致的結(jié)果。

2.3情況3隨機(jī)數(shù)誤報(bào)

以O(shè)penSSL中的隨機(jī)模塊為例,OpenSSL[48,49]是一個(gè)加密解密的安全通信協(xié)議模塊,能夠生成隨機(jī)性很強(qiáng)的口令,發(fā)送數(shù)據(jù)的兩端通過(guò)一對(duì)密鑰來(lái)進(jìn)行加密解密,對(duì)會(huì)話進(jìn)行安全保護(hù)[50]。如使用公鑰來(lái)加密用戶發(fā)給服務(wù)端的會(huì)話密鑰,然后使用私鑰來(lái)解密會(huì)話密鑰。在SSL交互過(guò)程中需要生成隨機(jī)數(shù),OpenSSL會(huì)通過(guò)對(duì)系統(tǒng)內(nèi)部數(shù)據(jù)計(jì)算摘要來(lái)生成隨機(jī)數(shù),在多變體執(zhí)行框架下,每個(gè)執(zhí)行體的OpenSSL模塊都會(huì)產(chǎn)生獨(dú)立的隨機(jī)數(shù),而在表決器裁決的時(shí)候,如果表決粒度過(guò)大,會(huì)發(fā)生誤判,把執(zhí)行體分發(fā)過(guò)來(lái)的隨機(jī)數(shù)當(dāng)成不一致的參數(shù),從而會(huì)導(dǎo)致誤報(bào)。隨機(jī)數(shù)誤報(bào)如圖5所示。

2.4情況4代碼異構(gòu)的誤報(bào)

在代碼函數(shù)里,為實(shí)現(xiàn)某一特定功能,不同的編程人員會(huì)因?yàn)椴煌木帉?xiě)習(xí)慣及不同的函數(shù)特性寫(xiě)出不同內(nèi)容,但結(jié)果輸出一樣的代碼[51],如圖6所示。

在早前的多變體執(zhí)行架構(gòu)中大多采用粗粒度,比較最后各執(zhí)行體輸出結(jié)果進(jìn)行表決判斷,這一現(xiàn)象并沒(méi)有得到人們的重視。但隨著工程的發(fā)展,引入多線程等概念,多變體執(zhí)行架構(gòu)的監(jiān)視器監(jiān)控點(diǎn)變得更多,監(jiān)控粒度變得更細(xì),表決不只是比對(duì)各執(zhí)行體結(jié)果,還需要比對(duì)更細(xì)的粒度,如各執(zhí)形體各自的系統(tǒng)調(diào)用。若某個(gè)多變體執(zhí)行架構(gòu)采用更細(xì)的粒度,監(jiān)控執(zhí)行體的系統(tǒng)調(diào)用層,在系統(tǒng)調(diào)用層級(jí)就開(kāi)始作同步表決,則會(huì)出現(xiàn)誤報(bào)問(wèn)題,如圖中的兩塊代碼,左邊代碼輸出hello world只需要一行,調(diào)用一次sys_write()操作,右邊代碼輸出hello world需要調(diào)用兩次sys_write()操作,在監(jiān)控器上,表決的判斷規(guī)則如果是比對(duì)系統(tǒng)調(diào)用的信息,很容易出現(xiàn)誤報(bào)。

3多變體執(zhí)行誤報(bào)的解決策略

3.1Pina同步算法

Pina等人[52]基于軟件多樣性提出一種規(guī)則語(yǔ)言domain-specific language用于解決執(zhí)行體之間因系統(tǒng)調(diào)用號(hào)執(zhí)行順序不同導(dǎo)致產(chǎn)生良性誤報(bào)的問(wèn)題。在初始化多變體執(zhí)行環(huán)境時(shí),該架構(gòu)使用一個(gè)監(jiān)視進(jìn)程來(lái)攔截所有執(zhí)行體發(fā)出的系統(tǒng)調(diào)用。兩個(gè)不同版本的執(zhí)行體規(guī)則匹配如圖7所示。

DSL解決執(zhí)行體之間因系統(tǒng)調(diào)用執(zhí)行順序的不同產(chǎn)生的誤報(bào)問(wèn)題,從系統(tǒng)調(diào)用跟蹤日志開(kāi)始手動(dòng)編寫(xiě)所需的規(guī)則,這些日志分別從每個(gè)版本獲得。具體比較方法:令其中一個(gè)版本擔(dān)任領(lǐng)導(dǎo)者,稱(chēng)為記錄端,直接執(zhí)行系統(tǒng)調(diào)用,并將它的結(jié)果寫(xiě)入共享環(huán)緩沖區(qū)。其他版本稱(chēng)之為追隨端,追隨端從環(huán)緩沖區(qū)讀取記錄端的系統(tǒng)調(diào)用順序,從而完成自己的系統(tǒng)調(diào)用。主從執(zhí)行體兩端在每一次執(zhí)行系統(tǒng)調(diào)用時(shí),算法進(jìn)行match比對(duì),看看兩端的語(yǔ)句是否等效,第一句的stat兩邊等效,匹配成功,進(jìn)入下一步,左邊是open,右邊是dup+lseek,此時(shí)并沒(méi)有match成功,這時(shí)候需要用事先寫(xiě)好的規(guī)則來(lái)進(jìn)行判斷,open是否等效于dup+lseek,當(dāng)判斷出兩者等效,則開(kāi)始skip操作,跳入下一步系統(tǒng)調(diào)用比較,下一步發(fā)現(xiàn)左右兩端都是close,匹配成功。

2.4節(jié)案例中提到的代碼異構(gòu)的案例就是典型的open操作和dup+lseek操作,Pina等人還提出一種從系統(tǒng)調(diào)用跟蹤[53]對(duì)中自動(dòng)提取DSL規(guī)則的算法。DSL語(yǔ)言判斷文中的LSR為記錄端,RSR為追隨端,DSL表述在兩個(gè)系統(tǒng)調(diào)用序列之間操作記錄和重放的規(guī)則。在每個(gè)步驟中,對(duì)于每一個(gè)序列,DSL將下一個(gè)系統(tǒng)調(diào)用作為輸入,將要采取的操作作為輸出。對(duì)于記錄序列和重放序列之間的每次系統(tǒng)調(diào)用(圖7中的步驟1和4),DSL通過(guò)match匹配雙方,從而將兩個(gè)序列向前推進(jìn)一個(gè)位置。圖8為匹配過(guò)程中的順序流程,空?qǐng)A圈表示NOP(no operation),NOP是空操作指令,用于控制時(shí)間周期,執(zhí)行NOP指令只使程序計(jì)數(shù)器PC加1,所以占用一個(gè)機(jī)器周期。exec系統(tǒng)調(diào)用并沒(méi)有創(chuàng)建新的進(jìn)程,只是替換原來(lái)進(jìn)程上下文的內(nèi)容、代碼段、數(shù)據(jù)段、堆棧段被新的進(jìn)程所替代。

3.2編譯器模塊插樁的策略

微觀到線程概念里,即便使幾個(gè)執(zhí)行體有同樣的輸入,但如果執(zhí)行體之間進(jìn)行線程調(diào)度的順序不同,那么它們外部可見(jiàn)的行為也可能會(huì)不同,導(dǎo)致表決時(shí)產(chǎn)生不必要的差異。這類(lèi)良性誤報(bào)問(wèn)題對(duì)多變體多線程執(zhí)行產(chǎn)生影響,畢竟多變體執(zhí)行環(huán)境本身是依靠檢測(cè)差異來(lái)檢測(cè)攻擊行為的。下面介紹一種針對(duì)多變體執(zhí)行的進(jìn)程中的多線程亂序執(zhí)行導(dǎo)致誤報(bào)的解決方案。

Volckaert團(tuán)隊(duì)[54]采取的是設(shè)計(jì)編譯器插樁方法,最容易實(shí)現(xiàn)的是在系統(tǒng)調(diào)用級(jí)別上執(zhí)行同步,在sync操作前后,插樁自己設(shè)計(jì)的同步庫(kù),以保證線程交錯(cuò)執(zhí)行的序列一致,從而高效解決多變體執(zhí)行的誤報(bào)問(wèn)題。具體是在編譯階段對(duì)產(chǎn)生誤報(bào)的不確定性因素和關(guān)鍵代碼地址進(jìn)行分析,插樁到前驅(qū)函數(shù)與后驅(qū)函數(shù),在運(yùn)行時(shí)監(jiān)視信號(hào)的傳遞,再結(jié)合主從變體同步機(jī)制,由主執(zhí)行體將執(zhí)行結(jié)果或順序復(fù)制給從執(zhí)行體。

通過(guò)動(dòng)態(tài)鏈接[55]的方式在sync ops 的指令前后插樁[56]before_sync_op 、after_sync_op 函數(shù),如算法1所示,黑色代碼為源代碼,灰色部分為插樁后的。插樁的同步代理為動(dòng)態(tài)鏈接庫(kù),由LD_PRELOAD 環(huán)境變量指示在運(yùn)行時(shí)加載鏈接到程序中。在加載過(guò)程中,不同執(zhí)行體的同步代理通過(guò)進(jìn)程間的通信接口掛載到同步緩沖區(qū),即sync buffer。主執(zhí)行體的同步代理在sync buffer中記錄執(zhí)行sync op的順序,從執(zhí)行體查詢(xún)sync op的序列并控制sync ops的執(zhí)行序列。

算法1代碼插樁

void spinlock_lock(int*ptr){

bool result=1;

while(!result){

before_sync_op(ptr);

result=compare_and_swap(ptr,0,1);

after_sync_op(ptc);

if(result)break;

sched_yield0;

}

}

void spinlock_unlock(int*ptr){

before_sync_op(ptr);

*ptr=0;

after_sync_op(ptr)

}

在插樁模塊上,通過(guò)多樣化編譯技術(shù)來(lái)對(duì)軟件程序內(nèi)部進(jìn)行精細(xì)化處理。

在用戶空間內(nèi)申請(qǐng)一個(gè)緩沖區(qū),該緩沖區(qū)串行運(yùn)行互斥鎖,當(dāng)鎖占用緩沖區(qū)資源時(shí),需要等鎖結(jié)束使用,當(dāng)鎖用信號(hào)量A、B來(lái)標(biāo)志同步的兩個(gè)線程占用資源的狀態(tài)[57],如t1時(shí)刻至t2時(shí)刻,線程m1執(zhí)行系統(tǒng)調(diào)用且線程s1用信號(hào)量A來(lái)標(biāo)志,一次執(zhí)行過(guò)程開(kāi)始A為0,結(jié)束A為1,m1與s1對(duì)A進(jìn)行互斥,一次執(zhí)行結(jié)束后,線程s1開(kāi)始讀取緩沖區(qū)m1的調(diào)用順序。同理,m2與s2對(duì)B進(jìn)行互斥,在同步階段每個(gè)執(zhí)行體同時(shí)只能執(zhí)行一個(gè)系統(tǒng)調(diào)用,及達(dá)到多線程冗余執(zhí)行的目的。全序同步圖如圖9所示。

3.3縮小表決邊界的策略

多變體執(zhí)行技術(shù)所帶來(lái)的誤報(bào)問(wèn)題對(duì)該技術(shù)的可用性造成較為嚴(yán)重的影響,阻礙多變體發(fā)展,以往的多變體執(zhí)行將普通系統(tǒng)改造成多變體系統(tǒng)后,先對(duì)該系統(tǒng)進(jìn)行功能測(cè)試,接著查看表決器日志,分析測(cè)試中產(chǎn)生的報(bào)錯(cuò),挑選出誤報(bào),對(duì)系統(tǒng)進(jìn)行二次開(kāi)發(fā),填補(bǔ)誤報(bào)缺口。但是多變體系統(tǒng)中包含多個(gè)異構(gòu)冗余的執(zhí)行體,填補(bǔ)一個(gè)缺口需要改造多個(gè)執(zhí)行體,耗費(fèi)大量資源,并不能長(zhǎng)時(shí)間有效地解決誤報(bào)問(wèn)題。

姚遠(yuǎn)等人[58]提出冗余異構(gòu)邊界的概念,通常過(guò)大的冗余異構(gòu)邊界會(huì)使得改造者對(duì)一些非必要的組件進(jìn)行異構(gòu)冗余處理,這會(huì)造成表決誤報(bào)。Shao等人[59] 提出選擇完全冗余異構(gòu)組件和最佳冗余異構(gòu)集合的方法,以異構(gòu)冗余為基礎(chǔ)縮小表決邊界,對(duì)一些非必要的冗余異構(gòu)組件進(jìn)行刪減,直至刪減為誤報(bào)最少的系統(tǒng),則該系統(tǒng)所表示的集合為最佳冗余異構(gòu)組件集。有些組件可以不進(jìn)行異構(gòu)冗余,而是兼容性改造,這樣就可以避免一些冗余異構(gòu)改造時(shí)帶來(lái)的誤報(bào)問(wèn)題。

邵昱文等人基于張錚等人[60]提出的面向非相似余度信息系統(tǒng)的攻擊面模型,利用攻擊效費(fèi)比[61]來(lái)度量系統(tǒng)的安全性,將多變體系統(tǒng)的輸入與輸出集合、通道傳輸集合、不可信數(shù)據(jù)項(xiàng)組成的三元組定義成攻擊面,形式化表示為

surf〈M,C,I〉(1)

對(duì)于該攻擊面surf,其度量結(jié)果可以表示為

〈∑m∈Mder(m),∑c∈Cder(c),∑d∈Ider(d)〉(2)

其中:der(m)、der(c)、der(d)分別表示系統(tǒng)入口點(diǎn)和出口點(diǎn)組件、系統(tǒng)通道組件、不可信數(shù)據(jù)項(xiàng)組件的攻擊效費(fèi)比。

系統(tǒng)的脆弱性可以表示為

vul=∑m∈Mder(m)+∑c∈Cder(c)+∑d∈Ider(d)(3)

系統(tǒng)的安全性與系統(tǒng)的脆弱性[62]成負(fù)相關(guān),系統(tǒng)的脆弱性越大,則系統(tǒng)的安全性越小。

systemA表示沒(méi)有繼續(xù)進(jìn)行多變體改造的系統(tǒng),systemB表示多變體改造后的系統(tǒng)。E表示systemA中的所有組件的集合。E0表示最佳冗余異構(gòu)組件集,EH表示完全冗余異構(gòu)組件集。surfA表示多變體執(zhí)行改造前系統(tǒng)的攻擊面,surfB表示擬態(tài)化改造后系統(tǒng)的攻擊面。

a)先求出改造后系統(tǒng)的安全增益[58]。

secmax =vulA-vulB=(∑m∈MAder(m)+∑c∈CAder(c)+∑d∈IAder(d)-(∑m∈MBder(m)+∑c∈CBder(c) +∑d∈IBder(d)))(4)

b)將E0賦值為EH。

E0=EH(5)

c)從E0中任意取出一個(gè)組件p,surf0表示取出組件以后系統(tǒng)的攻擊面。

此時(shí)的安全增益為

seco=vulA-vulo=(∑m∈MAder(m)+∑c∈CAder(c)+∑d∈IAder(d))-(∑m∈Moder(m)+∑c∈Coder(c)+∑d∈Ioder(d))(6)

判斷sec0與secmax大小,若sec0小于secmax,則將p組件放回到E0,反之,則舍去p組件。

d)不斷重復(fù)步驟c),直至將E0內(nèi)的所有組件都取一遍,此時(shí)E0中的組件即為最佳冗余異構(gòu)組件集。

代理服務(wù)器與執(zhí)行體的具體配置如表2所示。

該方法以改造商用網(wǎng)站為例,選用PHP腳本組件、數(shù)據(jù)庫(kù)服務(wù)組件、操作系統(tǒng)組件、網(wǎng)頁(yè)服務(wù)器組件為組件集E0,不斷執(zhí)行步驟d),選出最佳冗余異構(gòu)組件集。首先選擇需要改造的組件,然后再對(duì)商用網(wǎng)站系統(tǒng)進(jìn)行冗余異構(gòu)改造。通過(guò)訪問(wèn)日志分析,將用戶正常請(qǐng)求(5 000次任意請(qǐng)求)中的誤報(bào)率作為參考依據(jù)。由圖10可看出,在不影響安全性的前提下合理縮小擬態(tài)界,可以有效降低甚至消除誤報(bào)率。

3.4對(duì)比實(shí)驗(yàn)

本實(shí)驗(yàn)選取CentOS 7.3系統(tǒng)為環(huán)境,建立三套同樣硬件配置的虛擬機(jī)進(jìn)行測(cè)試,其中環(huán)境1采取DSL策略,環(huán)境2采取編譯器模塊插樁的策略,環(huán)境3采取縮小表決邊界的策略,三種環(huán)境均采用三路執(zhí)行體和一路表決器。性能測(cè)試環(huán)境如表3所示。

對(duì)第2章提到的四種產(chǎn)生誤報(bào)的應(yīng)用場(chǎng)景分別進(jìn)行測(cè)試,分析執(zhí)行過(guò)程中表決器的表決日志,在每種對(duì)應(yīng)的應(yīng)用場(chǎng)景下,人工分析報(bào)錯(cuò)條目,挑選出符合類(lèi)型的誤報(bào)條目。如選擇多線程程序執(zhí)行的場(chǎng)景進(jìn)行誤報(bào)對(duì)比,在每個(gè)環(huán)境的表決器裁決日志里選取1 000個(gè)報(bào)錯(cuò)條目,排除死鎖等真實(shí)錯(cuò)誤的條目,在剩下的條目里面,若沒(méi)有影響系統(tǒng)功能正常執(zhí)行,則認(rèn)為這些條目是誤報(bào)。誤報(bào)統(tǒng)計(jì)如表4所示。

由圖11可以看到,在多線程亂序執(zhí)行的場(chǎng)景下,編譯器插樁的方法有效地減少多線程執(zhí)行過(guò)程中產(chǎn)生的誤報(bào),能夠同步執(zhí)行體之間的線程調(diào)用順序;DSL的方法顯然沒(méi)有考慮到多線程執(zhí)行情況產(chǎn)生誤報(bào),線程一旦亂序執(zhí)行,就不能語(yǔ)法匹配;同樣縮小表決邊界的方法也可以規(guī)避部分多線程程序亂序誤報(bào)。

在操作系統(tǒng)文件讀寫(xiě)的場(chǎng)景下,讓三個(gè)測(cè)試環(huán)境分別1 000次打開(kāi)文件、寫(xiě)入文件、刪除文件,雖然能產(chǎn)生進(jìn)程號(hào)pid不一致等情況,但多路執(zhí)行體通過(guò)接口端口轉(zhuǎn)發(fā)給表決器,進(jìn)程號(hào)本身就不會(huì)產(chǎn)生太多誤報(bào),因此三種方法都沒(méi)有很好地解決此類(lèi)誤報(bào),體現(xiàn)不出來(lái)各自的優(yōu)勢(shì)。

在驗(yàn)證隨機(jī)數(shù)的應(yīng)用場(chǎng)景下,OpenSSL模塊產(chǎn)生的隨機(jī)數(shù)也是高頻發(fā)生誤報(bào)的場(chǎng)景,縮小擬態(tài)界的方法找出最佳冗余異構(gòu)集合可以明顯縮小產(chǎn)生隨機(jī)數(shù)種子的邊界,有效減少隨機(jī)數(shù)的誤報(bào),相比之下,DSL方法和編譯器插樁方法效果一般。

在代碼等價(jià)異構(gòu)的應(yīng)用場(chǎng)景下,DSL可以有效地判斷出代碼等效,減少來(lái)自該場(chǎng)景的誤報(bào),而編譯器插樁與縮小表決邊界沒(méi)有考慮到代碼異構(gòu)產(chǎn)生的誤報(bào)。

4誤報(bào)解決策略的分析

在多變體執(zhí)行架構(gòu)中,表決器裁決誤報(bào)問(wèn)題一直是工程實(shí)現(xiàn)中的重大問(wèn)題,三種解決誤報(bào)問(wèn)題方案從不同粒度、不同應(yīng)用場(chǎng)景各自解決部分誤報(bào)問(wèn)題,但自身還存在一定的缺陷。比如DSL策略是2014年提出的,當(dāng)時(shí)沒(méi)有考慮到多線程程序的執(zhí)行可能產(chǎn)生誤報(bào),不適用于多線程程序的應(yīng)用場(chǎng)景。

4.1功能性分析

本節(jié)對(duì)能否有效解決產(chǎn)生的誤報(bào)問(wèn)題作為功能性的主要評(píng)價(jià),評(píng)測(cè)三種解決方案是否達(dá)到功能性目的,主要依據(jù)為是否實(shí)現(xiàn)多變體執(zhí)行系統(tǒng)完整功能,同時(shí)減少誤報(bào)率,且該方法是否能推廣應(yīng)用于改造創(chuàng)新其他多變體架構(gòu)。

首先,DSL策略在軟件層面實(shí)現(xiàn)多變體執(zhí)行同步問(wèn)題,設(shè)計(jì)算法對(duì)操作指令進(jìn)行語(yǔ)義判斷,提出一種從成體系的系統(tǒng)調(diào)用中自動(dòng)提取相應(yīng)規(guī)則的算法,提供冗余執(zhí)行所需的操作,且實(shí)驗(yàn)證明該方法可以解決不同版本間的執(zhí)行體,代碼等價(jià)異構(gòu)的問(wèn)題,當(dāng)兩個(gè)版本執(zhí)行體出現(xiàn)分歧,可能發(fā)出不同的系統(tǒng)調(diào)用或者某些不同的非確定性的參數(shù),監(jiān)視器會(huì)發(fā)出警告并停止執(zhí)行或終止分歧版本,該方法可以用于同一程序的不同版本;并且與用于動(dòng)態(tài)分析的版本并行運(yùn)行原生版本,此方法能在語(yǔ)義判斷上對(duì)執(zhí)行體歧義語(yǔ)句作處理,有效地避免誤報(bào)。

編譯器模塊插樁的方法中,傳統(tǒng)的系統(tǒng)調(diào)用監(jiān)控器[63,64]依賴(lài)特定的系統(tǒng)調(diào)用序列進(jìn)行檢查,且沒(méi)有對(duì)系統(tǒng)調(diào)用的參數(shù)進(jìn)行比對(duì),容易遭受偽裝攻擊[65],模仿攻擊可能會(huì)執(zhí)行一系列數(shù)十個(gè)系統(tǒng)調(diào)用,以逃避檢測(cè),找到這樣的序列是很困難的。通常采用靜態(tài)分析技術(shù),禁用的安全關(guān)鍵型系統(tǒng)調(diào)用[66],但方法成本巨大,會(huì)禁用一些功能函數(shù)。而編譯器插樁同步方法是在應(yīng)用程序中內(nèi)嵌監(jiān)視器和在獨(dú)立進(jìn)程中設(shè)置額外監(jiān)視器,在系統(tǒng)調(diào)用級(jí)別執(zhí)行監(jiān)控和輸入/輸出復(fù)制操作。監(jiān)控系統(tǒng)調(diào)用接口,默認(rèn)實(shí)現(xiàn)所有的輸入/輸出操作都可以被監(jiān)控和復(fù)制,所有潛在的危險(xiǎn)操作都可以在該接口上停止,即可以提供必要的安全保證。可加載的內(nèi)核模塊實(shí)現(xiàn)的監(jiān)控器攔截系統(tǒng)調(diào)用是最有效的,因?yàn)樗恍枰~外的上下文切換,本質(zhì)是對(duì)線程共享資源進(jìn)行加鎖,阻塞線程的執(zhí)行。

縮小表決邊界的方法,通過(guò)建立攻擊面集合。具體方法是用排列組合的方法構(gòu)造合適的冗余異構(gòu)組件集,通過(guò)控制一個(gè)組件變化,其余組件不變,用攻擊效費(fèi)比的公式來(lái)度量系統(tǒng)的安全及解決誤報(bào)的能力。多變體執(zhí)行的根本目標(biāo)是提供可靠可信可用的功能。該方法的優(yōu)勢(shì)是能夠解決各執(zhí)行體中產(chǎn)生隨機(jī)數(shù)誤報(bào)的場(chǎng)景效果明顯,能夠有效規(guī)避隨機(jī)數(shù)給系統(tǒng)帶來(lái)的影響,且該策略適用面廣,適用于大部分應(yīng)用場(chǎng)景。

4.2性能損耗分析

阻礙多變體執(zhí)行系統(tǒng)應(yīng)用于實(shí)踐的另一個(gè)障礙是性能方面的考慮。首先,從性能的平衡上考慮,影響系統(tǒng)性能的關(guān)鍵是取決于執(zhí)行體同步和攔截的粒度以及執(zhí)行體與監(jiān)控器之間的通信成本,監(jiān)控對(duì)象的數(shù)量越多,監(jiān)控同步點(diǎn)粒度越細(xì),性能越高,但工作量也會(huì)隨著變大。有的團(tuán)隊(duì)為更好地提升監(jiān)控能力和安全性能,采用分布式多變體執(zhí)行架構(gòu),如Dmon分布式多變體架構(gòu)。Dmon利用跨平臺(tái)天然存在的多樣性實(shí)現(xiàn)指令集機(jī)構(gòu)執(zhí)行,并利用ARM和x86不同的硬件安全機(jī)制,進(jìn)一步提升多變體執(zhí)行安全性,但運(yùn)行Dmon的復(fù)制邏輯需要昂貴的網(wǎng)絡(luò)通信,還可能有被信道攻擊的風(fēng)險(xiǎn),除政府單位或少數(shù)機(jī)構(gòu),很少有企業(yè)公司會(huì)消耗兩倍以至于兩倍以上的成本去實(shí)現(xiàn)分布式多變體執(zhí)行架構(gòu)。所以,在考慮性能時(shí)需要對(duì)多變體執(zhí)行架構(gòu)及系統(tǒng)安全進(jìn)行度量,對(duì)系統(tǒng)自帶的特征進(jìn)行形象化描述,從中刪除一些冗余屬性,減小成本;其次一些團(tuán)隊(duì)在基于內(nèi)核的多變體架構(gòu)中,通過(guò)在執(zhí)行體初始化時(shí)刪除冗余的屬性參數(shù),或者把監(jiān)視器嵌入到內(nèi)核中等方式也可以很大程度提升整個(gè)架構(gòu)性能。

在軟件層面實(shí)現(xiàn)改造,DSL策略本身不需要改變物理硬件,實(shí)現(xiàn)成本是三個(gè)方法里成本最小的,但設(shè)置程序同步斷點(diǎn)難度很大,通過(guò)語(yǔ)言處理形成一套語(yǔ)言處理規(guī)則,DSL能夠很容易對(duì)兩次執(zhí)行發(fā)出的系統(tǒng)調(diào)用序列的差異進(jìn)行比對(duì),它將大幅度改善代碼異構(gòu)及單線程系統(tǒng)調(diào)用,但此方法也有局限性。該方法的提出是為解決誤報(bào)問(wèn)題,在語(yǔ)義判斷上添加自己的一套算法,但在復(fù)雜的多變體執(zhí)行架構(gòu)的執(zhí)行過(guò)程中如發(fā)生未添加的語(yǔ)義等價(jià)漏洞,則需要改變整個(gè)系統(tǒng)。

對(duì)于編譯器插樁的同步方法,本質(zhì)是對(duì)線程共享資源進(jìn)行加鎖,阻塞線程的執(zhí)行必然會(huì)導(dǎo)致性能的降低,但該方法能有效解決執(zhí)行體間系統(tǒng)調(diào)用順序不同導(dǎo)致的誤報(bào)問(wèn)題,局限在于對(duì)于動(dòng)態(tài)申請(qǐng)的內(nèi)存空間無(wú)法跟蹤。因?yàn)樗械淖兞亢偷刂沸畔⒍际庆o態(tài)分析和插樁的,雖然解決執(zhí)行體之間系統(tǒng)調(diào)用順序問(wèn)題能有效地避免誤報(bào),但加入大量的鎖機(jī)制必然會(huì)導(dǎo)致性能的降低。

在縮小表決邊界的方法里,實(shí)現(xiàn)成本體現(xiàn)在選取最佳冗余異構(gòu)組件集上,攻擊效費(fèi)比度量是一種篩選策略,并不消耗硬件成本,甚至可以對(duì)需要改造的組件進(jìn)行精簡(jiǎn),減少系統(tǒng)開(kāi)發(fā)的損耗。在軟件層面,該策略通過(guò)增補(bǔ)或刪減擬態(tài)組件,無(wú)須對(duì)各執(zhí)行體的系統(tǒng)調(diào)用級(jí)粒度行為或者線程級(jí)粒度行為進(jìn)行同步,無(wú)須改變整個(gè)系統(tǒng),比DSL和編譯器插樁實(shí)現(xiàn)要容易。缺點(diǎn)在于在選取組件時(shí)沒(méi)法進(jìn)行很好的安全度量,計(jì)算安全增益很困難。

5結(jié)束語(yǔ)

關(guān)于多變體執(zhí)行誤報(bào)問(wèn)題,自2006年多變體架構(gòu)問(wèn)世以來(lái)一直都是一個(gè)難題,執(zhí)行體中的不確定性及不一致的參數(shù)或狀態(tài)會(huì)影響表決器表決。這類(lèi)問(wèn)題一方面來(lái)自于多線程程序以及子進(jìn)程和線程的調(diào)度問(wèn)題,另一方面來(lái)自異步信號(hào)、文件描述符、進(jìn)程 ID、時(shí)間和隨機(jī)數(shù)不一致,這些都會(huì)引起表決器裁決時(shí)的誤報(bào)。本文針對(duì)這些情況,對(duì)一些實(shí)際應(yīng)用中產(chǎn)生的誤報(bào)問(wèn)題進(jìn)行舉例,并總結(jié)了三種不同類(lèi)型的解決誤報(bào)的方法,橫向?qū)Ρ冗@三種方法,給出了各自的優(yōu)點(diǎn)及缺點(diǎn)。三種方法對(duì)減少多變體執(zhí)行誤報(bào)的研究有極大的啟發(fā)意義。本文詳細(xì)列舉出了多變體執(zhí)行產(chǎn)生誤報(bào)問(wèn)題的產(chǎn)生案例及原因,對(duì)比近年來(lái)國(guó)內(nèi)外團(tuán)隊(duì)研究設(shè)計(jì)解決誤報(bào)問(wèn)題的策略?xún)?yōu)缺點(diǎn),指出在工程實(shí)現(xiàn)時(shí)需要注意的功能性及性能考慮。

多變體執(zhí)行引入多線程冗余執(zhí)行的場(chǎng)景一直是研究的重點(diǎn),對(duì)于解決多線程冗余執(zhí)行通常有兩種思路:

a)確定性多線程的系統(tǒng),該系統(tǒng)通過(guò)為每個(gè)給定的程序輸入建立一個(gè)固定的時(shí)間表來(lái)對(duì)線程間的通信指令施加一個(gè)確定的順序,確定性多線程模式,將程序分為并行和串行階段。線程共享操作的執(zhí)行階段被歸類(lèi)為串行階段,任何時(shí)刻只有一個(gè)線程在執(zhí)行;在并行階段,無(wú)共享操作的階段線程并行執(zhí)行,由硬件計(jì)數(shù)器來(lái)確定程序執(zhí)行的原子起點(diǎn)和終點(diǎn)。

b)記錄+重放模式的系統(tǒng)[67],在運(yùn)行時(shí)執(zhí)行記錄+重放的操作,分為一個(gè)主執(zhí)行體和多個(gè)從執(zhí)行體。從變體通過(guò)捕獲主執(zhí)行體中執(zhí)行同步操作的順序,并在其他執(zhí)行體中強(qiáng)制執(zhí)行相同的順序。在近幾年的研究中,圍繞記錄+重放的研究成為多變體執(zhí)行技術(shù)的重點(diǎn)研究之一,因?yàn)檫@樣監(jiān)控?cái)r截粒度更細(xì)、效率更高,能夠提升系統(tǒng)整體效能。

雖然三種策略可以有效消除執(zhí)行體之間部分誤報(bào)的問(wèn)題,但仍有部分情況會(huì)導(dǎo)致誤報(bào)。實(shí)際的系統(tǒng)調(diào)用通常不會(huì)在同一時(shí)間執(zhí)行,例如執(zhí)行體請(qǐng)求以只讀方式打開(kāi)文件。如果這些文件中的任何一個(gè)文件在某個(gè)執(zhí)行體讀取它之后被其他執(zhí)行體讀取它之前被第三方應(yīng)用程序更改,則存在競(jìng)爭(zhēng)關(guān)系,并且執(zhí)行體將接收到不同的數(shù)據(jù),這將導(dǎo)致它們之間出現(xiàn)差異。如果執(zhí)行體嘗試直接用處理器時(shí)間戳計(jì)數(shù),例如使用x86處理器可用的 RDTSC[68] 指令,則會(huì)觸發(fā)誤報(bào)。因?yàn)樽x取時(shí)間戳的計(jì)數(shù)器是在沒(méi)有任何系統(tǒng)調(diào)用的情況下執(zhí)行的,所以不會(huì)通知監(jiān)視器并且無(wú)法替換執(zhí)行體收到的結(jié)果。

未來(lái)的多變體執(zhí)行產(chǎn)生的誤報(bào)問(wèn)題的研究應(yīng)多考慮避免引入多余的安全問(wèn)題,結(jié)合近年來(lái)新興的攻擊手段,如Linux等常用的操作系統(tǒng)漏洞、信道攻擊漏洞[69,70]、OpenSSL模塊漏洞等,從安全性的角度去設(shè)計(jì)。在效率層面,可以從編譯支持的多變體執(zhí)行思路入手,通過(guò)提前對(duì)產(chǎn)生誤報(bào)的非一致性參數(shù)及地址進(jìn)行分析提取,設(shè)計(jì)同步庫(kù),插樁到前驅(qū)函數(shù)及后驅(qū)函數(shù),再根據(jù)主從同步機(jī)制將主執(zhí)行體的執(zhí)行結(jié)果或調(diào)用順序等關(guān)鍵操作復(fù)制給從執(zhí)行體。還可以從容器的角度入手,容器本質(zhì)上是資源隔離的進(jìn)程,其通過(guò)內(nèi)核機(jī)制Namespace和Cgroup[71,72]進(jìn)行進(jìn)程資源的隔離和限制,等價(jià)的容器[72]進(jìn)程各自擁有獨(dú)立的文件系統(tǒng)視圖,不會(huì)因?yàn)槲募枋龇赶虻哪繕?biāo)點(diǎn)文件不同而發(fā)生誤報(bào),且容器與宿主機(jī)共享操作系統(tǒng)內(nèi)核,在使用的資源和速度方面遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)的虛擬機(jī)。但容器也存在缺點(diǎn),雖然可以解決文件描述符等系統(tǒng)共享資源的誤報(bào),但遇到使用隨機(jī)數(shù)的情況以及多線程程序的線程隨機(jī)調(diào)度的情況時(shí)暫時(shí)無(wú)法解決,還需要進(jìn)一步研究。

參考文獻(xiàn):

[1]姚東,張錚,張高斐,等.多變體執(zhí)行安全防御技術(shù)研究綜述[J].信息安全學(xué)報(bào),2020,5(5):77-94.(Yao Dong,Zhang Zheng,Zhang Gaofei,et al.Summary of research on multi-variant execution security defense technology[J].Journal of Cyber Security,2020,5(5):77-94.)

[2]Salamat B.Multivariant program execution:using multi-core systems to defuse buffer-overflow vulnerabilities[C]//Proc of International Conference on Complex,Intelligent and Software Intensive Systems.Pisca-taway,NJ:IEEE Press,2008:843-848.

[3]Salamat B.Reverse stack execution in a multi-variant execution environment[EB/OL].(2008-06).https://www.babaks.com/files/catars08.pdf.

[4]陳平.代碼復(fù)用攻擊與防御技術(shù)研究[D].南京:南京大學(xué),2012.(Chen Ping.Research on the attack and defense techniques of code reuse[D].Nanjing:Nanjing University,2012.)

[5]柳童,史崗,孟丹.代碼重用攻擊與防御機(jī)制綜述[J].信息安全學(xué)報(bào),2016,1(2):15-27.( Liu Tong,Shi Gang,Meng Dan.A survey of code reuse attack and defense mechanisms[J].Journal of Cyber Security,2016,1(2):15-27.)

[6]Tran M,Etheridge M,Bletsch T,et al.On the expressiveness of return-into-libc attacks[C]//Proc of International Workshop on Recent Advances in Intrusion Detection.Berlin:Springer,2011:121-141.

[7]鄔江興.網(wǎng)絡(luò)空間擬態(tài)防御研究[J].信息安全學(xué)報(bào),2016,1(4):1-10.(Wu Jiangxin.Research on cyber mimic defense[J].Journal of Cyber Security,2016,1(4):1-10.)

[8]姚東,張錚,張高斐,等.MVX-CFI:一種實(shí)用的軟件安全主動(dòng)防御架構(gòu)[J].信息安全學(xué)報(bào),2020,5(4):44-54.(Yao Dong,Zhang Zheng,Zhang Gaofei,et al.MVX-CFI:a practical active defense framework for software security[J].Journal of Cyber Security,2020,5(4):44-54.)

[9]鄔江興.網(wǎng)絡(luò)空間擬態(tài)防御原理:廣義魯棒控制與內(nèi)生安全(上冊(cè))[M].北京:科學(xué)出版社,2018.(Wu Jiangxin.Principles of mimic defense in cyberspace:generalized robust control and endogenous security (volume 1)[M].Beijing:Science Press,2018.)

[10]鄔江興.網(wǎng)絡(luò)空間擬態(tài)防御原理:廣義魯棒控制與內(nèi)生安全 (下 冊(cè))[M].北京:科學(xué)出版社,2018.(Wu Jiangxin.Principles of mimic defense in cyberspace:generalized robust control and endogenous security (volume 2)[M].Beijing:Science Press,2018.)

[11]馬海龍,伊鵬,江逸茗.基于動(dòng)態(tài)異構(gòu)冗余機(jī)制的路由器擬態(tài)防御體系結(jié)構(gòu)[J].信息安全學(xué)報(bào),2017,2(1):29-42.(Ma Hailong,Yi Peng,Jiang Yimin.Router mimic defense architecture based on dynamic heterogeneous redundancy mechanism[J].Journal of Cyber Security,2017,2(1):29-42.

[12]吳鋌.基于執(zhí)行體劃分的防御增強(qiáng)型動(dòng)態(tài)異構(gòu)冗余架構(gòu)[J].通信學(xué)報(bào),2021,42(3):122-134.(Wu Ting.Defense enhanced dynamic heterogeneous redundant architecture based on executive body division[J].Journal of Communications,2021,42(3):122-134.)

[13]仝青,張錚,張為華,等.擬態(tài)防御Web服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)[J].軟件學(xué)報(bào),2017,28(4):883-897 .(Tong Qing,Zhang Zheng,Zhang Weihua,et al.Design and implementation of mimic defense Web ser-ver[J].Journal of Software,2017,28(4):883-897.)

[14]張明武,沈華,穆怡.虛擬黑盒安全的程序混淆:模型,進(jìn)展與挑 戰(zhàn)[J].計(jì)算機(jī)學(xué)報(bào),2017,40(12):2700-2718.(Zhang Mingwu,Shen Hua,Mu Yi.Program confusion for virtual black box security:models,progress and challenges[J].Journal of Computers,2017,40(12):2700-2718.)

[15]Kuppa A,Le-Khac N A.Black box attacks on explainable artificial intelligence (XAI) methods in cyber security[C]//Proc of Internatio-nal Joint Conference on Neural Networks.Piscataway,NJ:IEEE Press,2020:1-8.

[16]Kalin J,Ciolino M,Noever D,et al.Black box to white box:discover model characteristics based on strategic probing[C]//Proc of the 3rd International Conference on Artificial Intelligence for Industries.Piscataway,NJ:IEEE Press,2020:60-63.

[17]Shacham H.The geometry of innocent flesh on the bone:return-into-libc without function calls (on the x86)[C]//Proc of the 14th ACM Conference on Computer and Communications Security.New York:ACM Press,2007:552-561.

[18]Barrantes E G,Ackley D H,F(xiàn)orrest S,et al.Randomized instruction set emulation to disrupt binary code injection attacks[C]//Proc of the 10th ACM conference on Computer and communications security.New York:ACM Press,2003:281-289.

[19]Sinha K,Kemerlis V P,Sethumadhavan S.Reviving instruction set randomization[C]//Proc of IEEE International Symposium on Hardware Oriented Security and Trust.Piscataway,NJ:IEEE Press,2017:21-28.

[20]Guanciale R.Protecting instruction set randomization from code reuse attacks[C]//Proc of Nordic Conference on Secure IT Systems.Cham:Springer,2018:421-436.

[21]Cox B,Evans D,F(xiàn)ilipi A,et al.N-variant systems:a secretless framework for security through diversity[C]//Proc of the 15th Conference on USENIX Security Symposium.2006:105-120.

[22]Bala V,Duesterwald E,Banerjia S.Dynamo:a transparent dynamic optimization system[C]//Proc of ACM SIGPLAN Conference on Programming Language Design and Implementation.New York:ACM Press,2000:1-12.

[23]Salamat B.Multi-variant execution:run-time defense against malicious code injection attacks dissertation[D].Irvine:University of California,2009.

[24]Holland D A,Lim A T,Seltzer M I.An architecture a day keeps the hacker away[J].ACM SIGARCH Computer Architecture News,2005,33(1):34-41.

[25]Bruschi D,Cavallaro L,Lanzi A.Diversified process replic for defeating memory error exploits[C]//Proc of IEEE International Perfor-mance,Computing,and Communications Conference.Piscataway,NJ:IEEE Press,2007:434-441.

[26]Berger E D,Zorn B G.DieHard:probabilistic memory safety for unsafe languages[J].ACM SIGPLAN Notices,2006,41(6):158-168.

[27]Saito T,Watanabe R,Kondo S,et al.A survey of prevention/mitigation against memory corruption attacks[C]//Proc of the 19th International Conference on Network-Based Information Systems.Piscataway,NJ:IEEE Press,2016:500-505.

[28]Conti M,Crane S,Davi L,et al.Losing control:on the effectiveness of control-flow integrity under stack attacks[C]//Proc of the 22nd ACM SIGSAC Conference on Computer and Communications Security.New York:ACM Press,2015:952-963.

[29]Cavallaro L.Comprehensive memory error protection via diversity and taint-tracking[D].Di Milano:Universita Degli Studi Di Milano,2007.

[30]Salamat B,Jackson T,Gal A,et al.Orchestra:intrusion detection using parallel execution and monitoring of program variants in user-space[C]//Proc of the 4th ACM European Conference on Computer Systems.New York:ACM Press,2009:33-46.

[31]Volckaert S,De Sutter B,De Baets T,et al.GHUMVEE:efficient,effective,and flexible replication[C]//Proc of International Symposium on Foundations and Practice of Security.Berlin:Springer,2012:261-277.

[32]Maurer M,Brumley D.TACHYON:tandem execution for efficient live patch testing[C]//Proc of the 21st USENIX Conference on Security Symposium.United States:USENIX Association,2012:617-630.

[33]Hosek P,Cadar C.Safe software updates via multi-version execution[C]//Proc of the 35th International Conference on Software Engineering.Piscataway,NJ:IEEE Press,2013:612-621.

[34]Hosek P,Cadar C.Varan the unbelievable:an efficient n-version execution framework[J].ACM SIGARCH Computer Architecture News,2015,43(1):339-353.

[35]Hu Hong,Shinde S,Adrian S,et al.Data-oriented programming:on the expressiveness of non-control data attacks[C]//Proc of IEEE Symposium on Security and Privacy.Piscataway,NJ:IEEE Press,2016:969-986.

[36]Volckaert S,Coppens B,Voulimeneas A,et al.Secure and efficient application monitoring and replication[C]//Proc of USENIX Confe-rence on Usenix Annual Technical Conference.United States:USENIX Association ,2016:167-179.

[37]Volckaert S,Coppens B,De Sutter B.Cloning your gadgets:complete ROP attack immunity with multi-variant execution[J].IEEE Trans on Dependable and Secure Computing,2015,13(4):437-450.

[38]Belay A,Bittau A,Mashtizadeh A,et al.Dune:safe user-level access to privileged CPU features[C]//Proc of the 10th USENIX Symposium on Operating Systems Design and Implementation.United States :USENIX Association,2012:335-348.

[39]Koning K,Bos H,Giuffrida C.Secure and efficient multi-variant execution using hardware-assisted process virtualization[C]//Proc of the 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.Piscataway,NJ:IEEE Press,2016:431-442.

[40]Lu Kangjie,Xu Meng,Song Chengyu,et al.Stopping memory disclosures via diversification and replicated execution[J].IEEE Trans on Dependable and Secure Computing,2021,18(1):160-173.

[41]sterlund S,Koning K,Olivier P,et al.kMVX:detecting kernel information leaks with multi-variant execution[C]//Proc of the 24th International Conference on Architectural Support for Programming Languages and Operating Systems.New York:ACM Press,2019:559-572.

[42]Voulimeneas A,Song D,Parzefall F,et al.DMON:a distributed hete-rogeneous N-variant system[EB/OL].(2019-03-08).http://doi.org/10.48550/arxiv.1903.03643.

[43]Wang Xiaoguang,Yeoh S M,Olivier P,et al.Secure and efficient in-process monitor (and library) protection with Intel Mpk[C]//Proc of the 13th European Workshop on Systems Security.New York:ACM Press,2020:7-12.

[44]張宇嘉,龐建民,張錚,等.基于軟件多樣化的擬態(tài)安全防御策略[J].計(jì)算機(jī)科學(xué),2018,45(2):215-221.(Zhang Yujia,Pang Jianming,Zhang Zheng,et al.A mimic security de fence strategy based on software diversity[J].Computer Science,2018,45(2):215-221.)

[45]龐建民,張宇嘉,鄔江興,等.擬態(tài)防御技術(shù)結(jié)合軟件多樣化在軟件安全產(chǎn)業(yè)中的應(yīng)用[J].中國(guó)工程科學(xué),2016,18(6):74-78.(Pang Jianming,Zhang Yujia,Wu Jiangxing,et al.Applying a combination of mimic defense and software diversity in the software security industry[J].Strategic Study of Chinese Academy of Enginee-ring,2016,18(6):74-78.)

[46]潘傳幸,張錚,馬博林,等.面向進(jìn)程控制流劫持攻擊的擬態(tài)防御方法[J].通信學(xué)報(bào),2021,42(1):37-47.(Pan Chuanxing,Zheng Zhang,Ma Bolin,et al.Method against process control-flow hijacking based on mimic defense[J].Journal on Communications,2021,42(1):37-47.)

[47]Gras B,Razavi K,Bosman E,et al.ASLR on the line:practical cache attacks on the MMU[EB/OL].(2017-03-01).http://dx.doi.org/10.14722.ndss.2017.23271.

[48]Viega J,Messier M,Chandra P.Network security with OpenSSL:cryptography for secure communications[M].[S.l.]:O’Reilly Media Inc.,2002.

[49]Jimenez M,Papadakis M,Le Traon Y.An empirical analysis of vulne-rabilities in OpenSSL and the Linux kernel[C]//Proc of the 23rd Asia-Pacific Software Engineering Conference.Piscataway,NJ:IEEE Press,2016:105-112.

[50]曹志波.OpenSSL 的心臟出血漏洞[J].電子技術(shù)與軟件工程,2017(13):263-263.(Cao Zhibo.Heartbleed vulnerability in Open-SSL[J].Electronic Technology and Software Engineering,2017(13):262-263.)

[51]張宇嘉,張嘯川,龐建民.代碼混淆技術(shù)研究綜述[J].信息工程大學(xué)學(xué)報(bào),2017,18(5):635-640.(Zhang Yujia,Zhang Xiaochuan,Pang Jianming.Survey on code obfuscation research[J].Journal of Information Engineering University,2017,18(5):635-640.)

[52]Pina L,Grumberg D,Andronidis A,et al.A DSL approach to reconcile equivalent divergent program executions[C]//Proc of USENIX Conference on USENIX Annual Technical.United States:USENIX Association ,2017:417-429.

[53]Harvan M,Pretschner A.State-based usage control enforcement with data flow tracking using system call interposition[C]//Proc of the 3rd International Conference on Network and System Security.Piscataway,NJ:IEEE Press,2009:373-380.

[54]Volckaert S,Coppens B,De Sutter B,et al.Taming parallelism in a multi-variant execution environment[C]//Proc of the 12th European Confe-rence on Computer Systems.New York:ACM Press,2017:270-285.

[55]Ho W W,Olsson R A.An approach to genuine dynamic linking[J].Software:Practice and Experience,1991,21(4):375-390.

[56]Roemer R,Buchanan E,Shacham H,et al.Return-oriented programming:systems,languages,and applications[J].ACM Trans on Information and System Security,2012,15(1):1-34.

[57]Lamport L.Time,clocks,and the ordering of events in a distributed system[M]// Malkhi D.Concurrency:the Works of Leslie Lamport.[S.l.]:ACM Books,2019:179-196.

[58]姚遠(yuǎn),潘傳幸,張錚,等.多樣化軟件系統(tǒng)量化評(píng)估方法[J].通信學(xué)報(bào),2020,41(3):120-125.(Yao Yuan,Pan Chuanxing,Zhang Zheng,et al.Quantitative evaluation method of diversified software systems[J].Acta Telecom Sinica,2020,41(3):120-125.)

[59]Shao Yuwen,Zhang Zheng,Li Bingzheng,et al.A multi-variant voting algorithm based on dynamic feedback[C]//Proc of the 2nd International Conference on Computer Communication and Network Security .Piscataway,NJ:IEEE Press,2021:134-140.

[60]張錚,王立群,李衛(wèi)超.面向非相似余度信息系統(tǒng)的攻擊面模型[J].通信學(xué)報(bào),2018,39(S2):227-234.(Zhang Zheng,Wang Liqun,Li Weichao.Research on formal model for an information system’s attack surface with dissimilar redundant architecture[J].Journal on Communications,2018,39(S2):227-234.)

[61]鄔江興.內(nèi)生安全:重新定義新基建的安全屬性[J].中國(guó)科技產(chǎn)業(yè),2020(5):7-9.(Wu Jiangxing.Endogenous security:redefining the security attribute of new infrastructure[J].China Science and Technology Industry,2020(5):7-9.)

[62]李衛(wèi)超,張錚,王立群.基于擬態(tài)防御架構(gòu)的多余度裁決建模與風(fēng)險(xiǎn)分析[J].信息安全學(xué)報(bào),2018,3(5):64-74.(Li Weichao,Zheng Zheng,Wang Liqun.Redundancy adjudication modeling and risk analysis based on mimic defense architecture[J].Journal of Cyber Security,2018,3(5):64-74.)

[63]Sato M,Taniguchi H,Yamauchi T.Design and implementation of hi-ding method for file manipulation of essential services by system call proxy using virtual machine monitor[J].International Journal of Space-Based and Situated Computing,2019,9(1):1-10.

[64]Garfinkel T,Pfaff B,Rosenblum M.Ostia:a delegating architecture for secure system call interposition[C]//Proc of NDSS.2004.

[65]Parampalli C,Sekar R,Johnson R.A practical mimicry attack against powerful system-call monitors[C]//Proc of ACM Symposium on Information,Computer and Communications Security.New York:ACM Press,2008:156-167.

[66]Ghavamnia S,Palit T,Mishra S,et al.Temporal system call specialization for attack surface reduction[C]//Proc of the 29th USENIX Conference on Security Symposium.United States:USENIX Association,2020:1749-1766.

[67]Ronsse M,De Bosschere K.RecPlay:a fully integrated practical record/replay system[J].ACM Trans on Computer Systems,1999,17(2):133-152.

[68]Chen Song,Wang Yongqing.Detection and research of RTX timer actual computing workload for ONC system based on RDTSC[J].The International Journal of Advanced Manufacturing Technology,2011,57(1):257-264.

[69]Evtyushkin D,Riley R,Abu-Ghazaleh N B,et al.BranchScope:a new side-channel attack on directional branch predictor[J].ACM SIGPLAN Notices,2018,53(2):693-707.

[70]Yarom Y,Benger N.Recovering OpenSSL ECDSA nonces using the FLUSH+RELOAD cache side-channel attack[EB/OL].(2014-02-27).https://eprint.iacr.org/2014/140.

[71]Rosen R.Resource management:Linux kernel namespaces and cgroups[EB/OL].(2013-05).http://www.haifux.org/lectures/299/netLec7.pdf.

[72]Xing Fukang,Zhang Zheng,Ma Bolin,et al.Design and implementation of endogenous security container based on union file system[C]//Proc of the 3rd International Conference on Artificial Intelligence Technologies and Applications.[S.l.]:IOP Publishing,2021.

收稿日期:2022-02-22;修回日期:2022-04-20基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目

作者簡(jiǎn)介:席睿成(1997-),男,寧夏石嘴山人,碩士研究生,主要研究方向?yàn)槎嘧凅w執(zhí)行技術(shù)、主動(dòng)防御等;張錚(1975-),男(通信作者),湖北黃岡人,副教授,碩導(dǎo),主要研究方向?yàn)楦咝阅苡?jì)算、擬態(tài)防御等(ponyzhang@126.com);朱鵬喆(2000-),男,河南駐馬店人,碩士研究生,主要研究方向?yàn)橹鲃?dòng)防御、編譯器技術(shù)等;劉子敬(1998-),男,山東臨朐人,碩士研究生,主要研究方向?yàn)閮?nèi)生安全、多變體執(zhí)行技術(shù)等.

主站蜘蛛池模板: a级毛片一区二区免费视频| 男女性午夜福利网站| 成人毛片免费在线观看| 国模私拍一区二区三区| 午夜啪啪福利| 亚洲黄网在线| 亚洲美女操| 日韩av手机在线| 伊大人香蕉久久网欧美| 国产91久久久久久| 欧美成人精品一区二区| 国产专区综合另类日韩一区| 天天躁日日躁狠狠躁中文字幕| 天堂网亚洲综合在线| 中文字幕伦视频| 国产另类视频| 97无码免费人妻超级碰碰碰| 亚洲欧美另类日本| 欧美色视频在线| 四虎成人精品在永久免费| 久久久黄色片| 国产成人精品一区二区| 久久久黄色片| 男女男精品视频| 精品国产欧美精品v| 国产91蝌蚪窝| 四虎成人精品| 国产美女91视频| 99热最新在线| 在线观看亚洲精品福利片| 黄色网站不卡无码| 毛片基地视频| 国产一区在线视频观看| 精品夜恋影院亚洲欧洲| 亚洲综合日韩精品| 亚洲资源站av无码网址| 韩日无码在线不卡| 国产亚洲精品无码专| 波多野结衣二区| 久久久久久尹人网香蕉| 亚洲一本大道在线| 激情爆乳一区二区| 91小视频在线| 亚洲综合色婷婷中文字幕| 亚洲性色永久网址| 国产成人午夜福利免费无码r| 欧美日韩精品综合在线一区| 91久久精品国产| 日韩国产一区二区三区无码| 91免费观看视频| 91网在线| 久久夜色精品| 欧洲亚洲一区| 亚洲不卡av中文在线| 国产精品永久在线| 欧美三级不卡在线观看视频| 国产精品尹人在线观看| 国产综合精品日本亚洲777| 无码有码中文字幕| 五月天综合网亚洲综合天堂网| 久久综合伊人77777| 国外欧美一区另类中文字幕| 特级aaaaaaaaa毛片免费视频| yjizz视频最新网站在线| 日本一区二区三区精品视频| 久久国产精品嫖妓| 四虎永久在线视频| 全免费a级毛片免费看不卡| 国产白浆一区二区三区视频在线| 亚洲精品免费网站| 国产小视频a在线观看| 伊人久久大香线蕉影院| 97影院午夜在线观看视频| 亚洲aaa视频| 在线国产欧美| 在线观看视频一区二区| 国产精品欧美亚洲韩国日本不卡| 欧美午夜一区| 韩日免费小视频| 青青草综合网| 中文字幕亚洲无线码一区女同| 国产麻豆91网在线看|