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

多變體執行誤報問題分析與解決方法綜述

2022-12-31 00:00:00席睿成張錚朱鵬喆劉子敬
計算機應用研究 2022年10期

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

關鍵詞:多變體執行;安全判斷;非一致變量;系統誤報

中圖分類號:TP309.2文獻標志碼:A

文章編號: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軟件開發中存在安全隱患

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

1.2多變體執行的介紹

多變體執行的架構由執行體和監控模塊兩部分組成,多變體可以表現為多個進程或者多個線程。多變體執行技術[1,2],既可以保護系統免受內存破壞攻擊,也可以提高系統的運行效能,其關鍵思想是同步運行多個不同的執行體,為它們提供相同的輸入,并監控其輸出結果以發現分歧。多變體執行框架如圖1所示。從安全防御的角度[3~6]考慮,如果正在運行的執行體之間的內部差異導致對惡意輸入的響應出現明顯的差異,監視器可以在執行中檢測這種差異,然后發出警報或終止執行,從而達到防御的效果。該技術通過強制或監視變體系統調用的鎖步執行,透明地執行相同輸入,接收各執行體執行后的結果,監視器可以檢測到執行中的差異,然后發出警報。

1.3動態異構冗余概念

隨著多變體執行的發展,動態異構冗余[7,8](dynamic he-terogeneous redundancy,DHR)思想應運而生,該思想在多變體執行的基礎上增加動態和反饋的特征,文獻[9,10]對動態冗余異構進行了論述。DHR主要由輸入模塊、處理模塊、輸出模塊、構建模塊、調度模塊[11~13]五部分組成。輸入模塊負責將用戶輸入分成多份,分發給各執行體;處理模塊負責將各執行體執行后的多份輸出發送至表決器;輸出模塊負責表決收到的多份輸出,判定若存在n個或n個以上的結果一致,則輸出結果,否則,截斷輸出過程;構建模塊負責構建執行體集;調度模塊負責動態選擇算法,從執行體集中選擇執行體進行調度,在執行體調度完成后,將服務體下線,清洗回滾至原始狀態。動態異構冗余框架如圖2所示。

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

1.4多變體執行的發展

在多變體提出之前,基于操作系統的多樣化思想,設計了多樣化機器和系統調用層級的映射隨機化,還存著基于軟件的多樣化代碼,比如程序級別的指令集隨機化[17~20]。隨著N-variant的出現,越來越多的團隊開始研究多變體執行,經過十幾年的發展,多變體執行蓬勃發展。本文選取的相關文獻以多變體執行架構的研究機構和團隊為主線,下面簡要介紹十幾種主要類型的多變體執行系統發展。

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

2007年,Cavallaro[29]根據多變體架構基于地址空間分區(address space partitioning,ASP)的原理將框架中一個執行體的地址空間移位k Byte,使得兩個執行體的地址空間的相對距離發生改變,從而實現多樣化的目的,進而阻止部分地址覆蓋攻擊。缺點是,該系統的局限性在于不能抵抗類如相對尋址這類攻擊。

2009年,Salamat等人[30]提出Orchestra、多變體架構,基于堆棧結構的特點,設計出兩個堆棧反向生長的執行體,該框架中的監視模塊作為單獨進程運行,使用 ptrace API 來對執行體的系統調用進行攔截和比對,無須對操作系統進行任何改動。缺點是,攔截比對系統調用消耗性能巨大,需要頻繁地對上下文進行切換。

2003年,哥特大學Volckaert團隊[31]設計出GHUMVEE監視器。GHUMVEE和其他面向安全的多變體框架的監控組件都是依賴于ptrace API來監視執行體[32,33],在用戶空間作為一個單獨的進程運行,監控需要同步系統調用,能正確處理多線程復制和異步信號傳遞,缺點是頻繁切換上下文。

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

2016年,Volckaert團隊[36,37]引入監控模塊IP-Mon。Remon結合了跨進程監控器和進程內監控器的優點,Remon的進程內監視器在程序內輸入,而跨進程監視器強制執行對有潛在危險的系統調用的鎖步執行;另一方面,安全的系統調用在沒有外部監控的情況下進行,從而提高系統效率。該系統將監控模塊放入應用程序進程里,使用記錄+重放方法提供對多線程的支持。記錄+重放方法,也稱為領導者/追隨者方法,該方法通過初始化,設立主執行體從執行體、監控器捕獲主執行體中執行同步操作的順序,并在其他執行體中強制執行相同的順序。

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

2018年,Lu等人[40]基于安全防御的角度提出BUDDY的多變體執行架構,在I/O操作設置同步點,監控輸出口,當攻擊者向外發送數據時對端口進行監控,能很大效率地提升架構安全防御能力,減少監控同步比較的次數。監控器攔截系統調用后,將結果從同步緩沖區返回給各執行體,盡可能使整個系統損耗性能達到最小,能抵御信息泄露,該系統缺陷是不能有效地解決執行體之間的誤報問題。

2019年,文獻[41]基于操作系統內核提出了把監控器放在內核里的kMVX架構,在內核空間里生成兩個執行體,具體實現方式是在同一機器上運行兩個多樣化編譯后的內核執行體,并構造兩個完全不相交的虛擬內存映射,在執行系統調用時,兩個內核同時處理,對執行結果進行同步檢查以判斷是否存在內核內存泄漏。該架構可以防止內核中的信息泄露問題,不過仍然具有較大的性能開銷,部分功能還有待探究。

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

2020年,Wang等人[43]設計MonGuard系統,MonGuard是一個保護進程內監視器和庫的系統。MonGuard利用Intel MPK高效更新內存訪問權限。MonGuard實現只執行內存和代碼隨機化來隱藏監控代碼,使用它來實現一個受保護的進程內MVX監視器。其實驗結果表明,MonGuard通過合理的組件內隔離可以大大提高監控性能。

2020年,潘傳幸等人[46]在擬態防御原理[1,2,44,45]的基礎之上實現系統MimicBox; 當發現冗余執行的進程有數據流出虛擬內存空間時,表決器主動進行表決。MimicBox使用ptrace系統調用實現系統調用的攔截、替換、表決內容提取、返回值覆蓋等功能,通過第三屆擬態強網杯精英挑戰賽的擬態pwn題驗證擬態執行的防御有效性,但存在表決器誤報的情況,主要原因是MimicBox中冗余的執行體之間存在如進程號、隨機數、文件描述符等參數不一致的情況,影響表決器裁決。

多變體執行總結如表1所示。

2多變體執行誤報的產生原因

多變體執行系統產生誤報的本質原因是:在多執行體冗余執行過程中,本身會提供一些存在不確定性的參數,此類參數的在執行過程中,其屬性不可預測,如隨機數、時間戳等。由于被多變體執行改造的系統擁有異構冗余性,所以當用戶發起請求時,多個變體可能產生響應不一致的情況,從而造成監控模塊表決誤判。

多變體框架的誤報問題不可避免,是多變體系統自身冗余異構后帶來的潛在問題,誤報問題根據粒度不同,表現方式則不同,下面舉幾個常見的例子來闡述誤報問題及其危害。

2.1情況1文件讀寫引起的誤報

文件讀寫引起的誤報案例如圖3所示。

Linux操作系統的本質是用文件去定義一切,因此文件描述符在系統中的作用至關重要,多數的系統調用都需要利用文件描述符去執行。由于進程描述符是進程獨有的資源,在不同進程之間不共享。

假設系統里有兩個進程,把它們看成兩個執行體,每個進程里又有兩個線程,現在系統里要進行打開文件操作,由于進程是擁有資源的最小單位,線程是調度的最小單位,線程是進程中的一個執行實體,實際操作是由線程完成的,即打開文件進行sysc open的原語指令是由進程中的某一個線程去操作,但具體由哪個線程去操作,執行順序是不確定的。當進程進行打開文件操作時,如果沒有指定某個線程進行打開文件,進程的兩個線程會進行爭搶系統調用sysc open操作,在多變體執行的框架里,為保證表決時的正確性,需要維持主從執行體的輸入一致。在普通的操作下打開單個文件,不需要考慮多線程的問題,但如果要打開兩個文件時,需要進程內的兩個線程進行爭搶,很容易發生混亂。如果兩個執行體之間的線程調度不同,那么它們傳到表決器的行為也會有差異,進程的PID在整個系統中是唯一的,但線程的PID不同。

該誤報屬于表決器裁決引起的誤報,是由于在擬態化改造改造的過程中對不需要進行異構的部分進行異構處理,導致多個執行體正常執行的結果也存在不一致,最終被表決器錯誤地裁決為攻擊,嚴重影響多變體執行系統的可用性。多變體執行系統依賴于通過軟件多樣化技術生成的多個功能等價但存在異構性的多個進程執行體,雖然通過地址空間配置隨機加載ASLR[47]等隨機化技術處理后,同一個程序多次運行時功能能夠保持一致,但在操作系統層面仍可能存在不一致的信息,這種不一致主要體現在程序打開的文件描述符對應的文件信息和進程 ID 等方面。

2.2情況2多線程產生的誤報

情況2為日常的生產者消費者案例(圖4)。如:假設多線程冗余執行的環境里,主執行體和從執行體分別都有一個緩沖區,只有在生產者生產資源并將資源放到緩沖區后消費者才能去消費資源,當緩沖區沒有資源時,消費者不能消費。生產者生產一次資源,記錄為+1,消費者消費一次資源,記錄為-1。在執行程序時,主執行體緩沖區資源發生+1,-1,+1,-1。而從執行體緩沖區資源發生+1,+1,-1,-1的操作,在顯示結果的時候,兩者達到一樣的功能,但是在實現過程中進行不同的修改。在監控組件的表決器中,如果監控粒度達到系統調用級別時,則可能在表決器表決時會產生不一致的結果。

2.3情況3隨機數誤報

以OpenSSL中的隨機模塊為例,OpenSSL[48,49]是一個加密解密的安全通信協議模塊,能夠生成隨機性很強的口令,發送數據的兩端通過一對密鑰來進行加密解密,對會話進行安全保護[50]。如使用公鑰來加密用戶發給服務端的會話密鑰,然后使用私鑰來解密會話密鑰。在SSL交互過程中需要生成隨機數,OpenSSL會通過對系統內部數據計算摘要來生成隨機數,在多變體執行框架下,每個執行體的OpenSSL模塊都會產生獨立的隨機數,而在表決器裁決的時候,如果表決粒度過大,會發生誤判,把執行體分發過來的隨機數當成不一致的參數,從而會導致誤報。隨機數誤報如圖5所示。

2.4情況4代碼異構的誤報

在代碼函數里,為實現某一特定功能,不同的編程人員會因為不同的編寫習慣及不同的函數特性寫出不同內容,但結果輸出一樣的代碼[51],如圖6所示。

在早前的多變體執行架構中大多采用粗粒度,比較最后各執行體輸出結果進行表決判斷,這一現象并沒有得到人們的重視。但隨著工程的發展,引入多線程等概念,多變體執行架構的監視器監控點變得更多,監控粒度變得更細,表決不只是比對各執行體結果,還需要比對更細的粒度,如各執形體各自的系統調用。若某個多變體執行架構采用更細的粒度,監控執行體的系統調用層,在系統調用層級就開始作同步表決,則會出現誤報問題,如圖中的兩塊代碼,左邊代碼輸出hello world只需要一行,調用一次sys_write()操作,右邊代碼輸出hello world需要調用兩次sys_write()操作,在監控器上,表決的判斷規則如果是比對系統調用的信息,很容易出現誤報。

3多變體執行誤報的解決策略

3.1Pina同步算法

Pina等人[52]基于軟件多樣性提出一種規則語言domain-specific language用于解決執行體之間因系統調用號執行順序不同導致產生良性誤報的問題。在初始化多變體執行環境時,該架構使用一個監視進程來攔截所有執行體發出的系統調用。兩個不同版本的執行體規則匹配如圖7所示。

DSL解決執行體之間因系統調用執行順序的不同產生的誤報問題,從系統調用跟蹤日志開始手動編寫所需的規則,這些日志分別從每個版本獲得。具體比較方法:令其中一個版本擔任領導者,稱為記錄端,直接執行系統調用,并將它的結果寫入共享環緩沖區。其他版本稱之為追隨端,追隨端從環緩沖區讀取記錄端的系統調用順序,從而完成自己的系統調用。主從執行體兩端在每一次執行系統調用時,算法進行match比對,看看兩端的語句是否等效,第一句的stat兩邊等效,匹配成功,進入下一步,左邊是open,右邊是dup+lseek,此時并沒有match成功,這時候需要用事先寫好的規則來進行判斷,open是否等效于dup+lseek,當判斷出兩者等效,則開始skip操作,跳入下一步系統調用比較,下一步發現左右兩端都是close,匹配成功。

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

3.2編譯器模塊插樁的策略

微觀到線程概念里,即便使幾個執行體有同樣的輸入,但如果執行體之間進行線程調度的順序不同,那么它們外部可見的行為也可能會不同,導致表決時產生不必要的差異。這類良性誤報問題對多變體多線程執行產生影響,畢竟多變體執行環境本身是依靠檢測差異來檢測攻擊行為的。下面介紹一種針對多變體執行的進程中的多線程亂序執行導致誤報的解決方案。

Volckaert團隊[54]采取的是設計編譯器插樁方法,最容易實現的是在系統調用級別上執行同步,在sync操作前后,插樁自己設計的同步庫,以保證線程交錯執行的序列一致,從而高效解決多變體執行的誤報問題。具體是在編譯階段對產生誤報的不確定性因素和關鍵代碼地址進行分析,插樁到前驅函數與后驅函數,在運行時監視信號的傳遞,再結合主從變體同步機制,由主執行體將執行結果或順序復制給從執行體。

通過動態鏈接[55]的方式在sync ops 的指令前后插樁[56]before_sync_op 、after_sync_op 函數,如算法1所示,黑色代碼為源代碼,灰色部分為插樁后的。插樁的同步代理為動態鏈接庫,由LD_PRELOAD 環境變量指示在運行時加載鏈接到程序中。在加載過程中,不同執行體的同步代理通過進程間的通信接口掛載到同步緩沖區,即sync buffer。主執行體的同步代理在sync buffer中記錄執行sync op的順序,從執行體查詢sync op的序列并控制sync ops的執行序列。

算法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)

}

在插樁模塊上,通過多樣化編譯技術來對軟件程序內部進行精細化處理。

在用戶空間內申請一個緩沖區,該緩沖區串行運行互斥鎖,當鎖占用緩沖區資源時,需要等鎖結束使用,當鎖用信號量A、B來標志同步的兩個線程占用資源的狀態[57],如t1時刻至t2時刻,線程m1執行系統調用且線程s1用信號量A來標志,一次執行過程開始A為0,結束A為1,m1與s1對A進行互斥,一次執行結束后,線程s1開始讀取緩沖區m1的調用順序。同理,m2與s2對B進行互斥,在同步階段每個執行體同時只能執行一個系統調用,及達到多線程冗余執行的目的。全序同步圖如圖9所示。

3.3縮小表決邊界的策略

多變體執行技術所帶來的誤報問題對該技術的可用性造成較為嚴重的影響,阻礙多變體發展,以往的多變體執行將普通系統改造成多變體系統后,先對該系統進行功能測試,接著查看表決器日志,分析測試中產生的報錯,挑選出誤報,對系統進行二次開發,填補誤報缺口。但是多變體系統中包含多個異構冗余的執行體,填補一個缺口需要改造多個執行體,耗費大量資源,并不能長時間有效地解決誤報問題。

姚遠等人[58]提出冗余異構邊界的概念,通常過大的冗余異構邊界會使得改造者對一些非必要的組件進行異構冗余處理,這會造成表決誤報。Shao等人[59] 提出選擇完全冗余異構組件和最佳冗余異構集合的方法,以異構冗余為基礎縮小表決邊界,對一些非必要的冗余異構組件進行刪減,直至刪減為誤報最少的系統,則該系統所表示的集合為最佳冗余異構組件集。有些組件可以不進行異構冗余,而是兼容性改造,這樣就可以避免一些冗余異構改造時帶來的誤報問題。

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

surf〈M,C,I〉(1)

對于該攻擊面surf,其度量結果可以表示為

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

其中:der(m)、der(c)、der(d)分別表示系統入口點和出口點組件、系統通道組件、不可信數據項組件的攻擊效費比。

系統的脆弱性可以表示為

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

系統的安全性與系統的脆弱性[62]成負相關,系統的脆弱性越大,則系統的安全性越小。

systemA表示沒有繼續進行多變體改造的系統,systemB表示多變體改造后的系統。E表示systemA中的所有組件的集合。E0表示最佳冗余異構組件集,EH表示完全冗余異構組件集。surfA表示多變體執行改造前系統的攻擊面,surfB表示擬態化改造后系統的攻擊面。

a)先求出改造后系統的安全增益[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中任意取出一個組件p,surf0表示取出組件以后系統的攻擊面。

此時的安全增益為

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)不斷重復步驟c),直至將E0內的所有組件都取一遍,此時E0中的組件即為最佳冗余異構組件集。

代理服務器與執行體的具體配置如表2所示。

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

3.4對比實驗

本實驗選取CentOS 7.3系統為環境,建立三套同樣硬件配置的虛擬機進行測試,其中環境1采取DSL策略,環境2采取編譯器模塊插樁的策略,環境3采取縮小表決邊界的策略,三種環境均采用三路執行體和一路表決器。性能測試環境如表3所示。

對第2章提到的四種產生誤報的應用場景分別進行測試,分析執行過程中表決器的表決日志,在每種對應的應用場景下,人工分析報錯條目,挑選出符合類型的誤報條目。如選擇多線程程序執行的場景進行誤報對比,在每個環境的表決器裁決日志里選取1 000個報錯條目,排除死鎖等真實錯誤的條目,在剩下的條目里面,若沒有影響系統功能正常執行,則認為這些條目是誤報。誤報統計如表4所示。

由圖11可以看到,在多線程亂序執行的場景下,編譯器插樁的方法有效地減少多線程執行過程中產生的誤報,能夠同步執行體之間的線程調用順序;DSL的方法顯然沒有考慮到多線程執行情況產生誤報,線程一旦亂序執行,就不能語法匹配;同樣縮小表決邊界的方法也可以規避部分多線程程序亂序誤報。

在操作系統文件讀寫的場景下,讓三個測試環境分別1 000次打開文件、寫入文件、刪除文件,雖然能產生進程號pid不一致等情況,但多路執行體通過接口端口轉發給表決器,進程號本身就不會產生太多誤報,因此三種方法都沒有很好地解決此類誤報,體現不出來各自的優勢。

在驗證隨機數的應用場景下,OpenSSL模塊產生的隨機數也是高頻發生誤報的場景,縮小擬態界的方法找出最佳冗余異構集合可以明顯縮小產生隨機數種子的邊界,有效減少隨機數的誤報,相比之下,DSL方法和編譯器插樁方法效果一般。

在代碼等價異構的應用場景下,DSL可以有效地判斷出代碼等效,減少來自該場景的誤報,而編譯器插樁與縮小表決邊界沒有考慮到代碼異構產生的誤報。

4誤報解決策略的分析

在多變體執行架構中,表決器裁決誤報問題一直是工程實現中的重大問題,三種解決誤報問題方案從不同粒度、不同應用場景各自解決部分誤報問題,但自身還存在一定的缺陷。比如DSL策略是2014年提出的,當時沒有考慮到多線程程序的執行可能產生誤報,不適用于多線程程序的應用場景。

4.1功能性分析

本節對能否有效解決產生的誤報問題作為功能性的主要評價,評測三種解決方案是否達到功能性目的,主要依據為是否實現多變體執行系統完整功能,同時減少誤報率,且該方法是否能推廣應用于改造創新其他多變體架構。

首先,DSL策略在軟件層面實現多變體執行同步問題,設計算法對操作指令進行語義判斷,提出一種從成體系的系統調用中自動提取相應規則的算法,提供冗余執行所需的操作,且實驗證明該方法可以解決不同版本間的執行體,代碼等價異構的問題,當兩個版本執行體出現分歧,可能發出不同的系統調用或者某些不同的非確定性的參數,監視器會發出警告并停止執行或終止分歧版本,該方法可以用于同一程序的不同版本;并且與用于動態分析的版本并行運行原生版本,此方法能在語義判斷上對執行體歧義語句作處理,有效地避免誤報。

編譯器模塊插樁的方法中,傳統的系統調用監控器[63,64]依賴特定的系統調用序列進行檢查,且沒有對系統調用的參數進行比對,容易遭受偽裝攻擊[65],模仿攻擊可能會執行一系列數十個系統調用,以逃避檢測,找到這樣的序列是很困難的。通常采用靜態分析技術,禁用的安全關鍵型系統調用[66],但方法成本巨大,會禁用一些功能函數。而編譯器插樁同步方法是在應用程序中內嵌監視器和在獨立進程中設置額外監視器,在系統調用級別執行監控和輸入/輸出復制操作。監控系統調用接口,默認實現所有的輸入/輸出操作都可以被監控和復制,所有潛在的危險操作都可以在該接口上停止,即可以提供必要的安全保證。可加載的內核模塊實現的監控器攔截系統調用是最有效的,因為它不需要額外的上下文切換,本質是對線程共享資源進行加鎖,阻塞線程的執行。

縮小表決邊界的方法,通過建立攻擊面集合。具體方法是用排列組合的方法構造合適的冗余異構組件集,通過控制一個組件變化,其余組件不變,用攻擊效費比的公式來度量系統的安全及解決誤報的能力。多變體執行的根本目標是提供可靠可信可用的功能。該方法的優勢是能夠解決各執行體中產生隨機數誤報的場景效果明顯,能夠有效規避隨機數給系統帶來的影響,且該策略適用面廣,適用于大部分應用場景。

4.2性能損耗分析

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

在軟件層面實現改造,DSL策略本身不需要改變物理硬件,實現成本是三個方法里成本最小的,但設置程序同步斷點難度很大,通過語言處理形成一套語言處理規則,DSL能夠很容易對兩次執行發出的系統調用序列的差異進行比對,它將大幅度改善代碼異構及單線程系統調用,但此方法也有局限性。該方法的提出是為解決誤報問題,在語義判斷上添加自己的一套算法,但在復雜的多變體執行架構的執行過程中如發生未添加的語義等價漏洞,則需要改變整個系統。

對于編譯器插樁的同步方法,本質是對線程共享資源進行加鎖,阻塞線程的執行必然會導致性能的降低,但該方法能有效解決執行體間系統調用順序不同導致的誤報問題,局限在于對于動態申請的內存空間無法跟蹤。因為所有的變量和地址信息都是靜態分析和插樁的,雖然解決執行體之間系統調用順序問題能有效地避免誤報,但加入大量的鎖機制必然會導致性能的降低。

在縮小表決邊界的方法里,實現成本體現在選取最佳冗余異構組件集上,攻擊效費比度量是一種篩選策略,并不消耗硬件成本,甚至可以對需要改造的組件進行精簡,減少系統開發的損耗。在軟件層面,該策略通過增補或刪減擬態組件,無須對各執行體的系統調用級粒度行為或者線程級粒度行為進行同步,無須改變整個系統,比DSL和編譯器插樁實現要容易。缺點在于在選取組件時沒法進行很好的安全度量,計算安全增益很困難。

5結束語

關于多變體執行誤報問題,自2006年多變體架構問世以來一直都是一個難題,執行體中的不確定性及不一致的參數或狀態會影響表決器表決。這類問題一方面來自于多線程程序以及子進程和線程的調度問題,另一方面來自異步信號、文件描述符、進程 ID、時間和隨機數不一致,這些都會引起表決器裁決時的誤報。本文針對這些情況,對一些實際應用中產生的誤報問題進行舉例,并總結了三種不同類型的解決誤報的方法,橫向對比這三種方法,給出了各自的優點及缺點。三種方法對減少多變體執行誤報的研究有極大的啟發意義。本文詳細列舉出了多變體執行產生誤報問題的產生案例及原因,對比近年來國內外團隊研究設計解決誤報問題的策略優缺點,指出在工程實現時需要注意的功能性及性能考慮。

多變體執行引入多線程冗余執行的場景一直是研究的重點,對于解決多線程冗余執行通常有兩種思路:

a)確定性多線程的系統,該系統通過為每個給定的程序輸入建立一個固定的時間表來對線程間的通信指令施加一個確定的順序,確定性多線程模式,將程序分為并行和串行階段。線程共享操作的執行階段被歸類為串行階段,任何時刻只有一個線程在執行;在并行階段,無共享操作的階段線程并行執行,由硬件計數器來確定程序執行的原子起點和終點。

b)記錄+重放模式的系統[67],在運行時執行記錄+重放的操作,分為一個主執行體和多個從執行體。從變體通過捕獲主執行體中執行同步操作的順序,并在其他執行體中強制執行相同的順序。在近幾年的研究中,圍繞記錄+重放的研究成為多變體執行技術的重點研究之一,因為這樣監控攔截粒度更細、效率更高,能夠提升系統整體效能。

雖然三種策略可以有效消除執行體之間部分誤報的問題,但仍有部分情況會導致誤報。實際的系統調用通常不會在同一時間執行,例如執行體請求以只讀方式打開文件。如果這些文件中的任何一個文件在某個執行體讀取它之后被其他執行體讀取它之前被第三方應用程序更改,則存在競爭關系,并且執行體將接收到不同的數據,這將導致它們之間出現差異。如果執行體嘗試直接用處理器時間戳計數,例如使用x86處理器可用的 RDTSC[68] 指令,則會觸發誤報。因為讀取時間戳的計數器是在沒有任何系統調用的情況下執行的,所以不會通知監視器并且無法替換執行體收到的結果。

未來的多變體執行產生的誤報問題的研究應多考慮避免引入多余的安全問題,結合近年來新興的攻擊手段,如Linux等常用的操作系統漏洞、信道攻擊漏洞[69,70]、OpenSSL模塊漏洞等,從安全性的角度去設計。在效率層面,可以從編譯支持的多變體執行思路入手,通過提前對產生誤報的非一致性參數及地址進行分析提取,設計同步庫,插樁到前驅函數及后驅函數,再根據主從同步機制將主執行體的執行結果或調用順序等關鍵操作復制給從執行體。還可以從容器的角度入手,容器本質上是資源隔離的進程,其通過內核機制Namespace和Cgroup[71,72]進行進程資源的隔離和限制,等價的容器[72]進程各自擁有獨立的文件系統視圖,不會因為文件描述符指向的目標點文件不同而發生誤報,且容器與宿主機共享操作系統內核,在使用的資源和速度方面遠遠優于傳統的虛擬機。但容器也存在缺點,雖然可以解決文件描述符等系統共享資源的誤報,但遇到使用隨機數的情況以及多線程程序的線程隨機調度的情況時暫時無法解決,還需要進一步研究。

參考文獻:

[1]姚東,張錚,張高斐,等.多變體執行安全防御技術研究綜述[J].信息安全學報,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]陳平.代碼復用攻擊與防御技術研究[D].南京:南京大學,2012.(Chen Ping.Research on the attack and defense techniques of code reuse[D].Nanjing:Nanjing University,2012.)

[5]柳童,史崗,孟丹.代碼重用攻擊與防御機制綜述[J].信息安全學報,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]鄔江興.網絡空間擬態防御研究[J].信息安全學報,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:一種實用的軟件安全主動防御架構[J].信息安全學報,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]鄔江興.網絡空間擬態防御原理:廣義魯棒控制與內生安全(上冊)[M].北京:科學出版社,2018.(Wu Jiangxin.Principles of mimic defense in cyberspace:generalized robust control and endogenous security (volume 1)[M].Beijing:Science Press,2018.)

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

[11]馬海龍,伊鵬,江逸茗.基于動態異構冗余機制的路由器擬態防御體系結構[J].信息安全學報,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]吳鋌.基于執行體劃分的防御增強型動態異構冗余架構[J].通信學報,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]仝青,張錚,張為華,等.擬態防御Web服務器設計與實現[J].軟件學報,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].計算機學報,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,Forrest 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,Filipi 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]張宇嘉,龐建民,張錚,等.基于軟件多樣化的擬態安全防御策略[J].計算機科學,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]龐建民,張宇嘉,鄔江興,等.擬態防御技術結合軟件多樣化在軟件安全產業中的應用[J].中國工程科學,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].通信學報,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].電子技術與軟件工程,2017(13):263-263.(Cao Zhibo.Heartbleed vulnerability in Open-SSL[J].Electronic Technology and Software Engineering,2017(13):262-263.)

[51]張宇嘉,張嘯川,龐建民.代碼混淆技術研究綜述[J].信息工程大學學報,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]姚遠,潘傳幸,張錚,等.多樣化軟件系統量化評估方法[J].通信學報,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]張錚,王立群,李衛超.面向非相似余度信息系統的攻擊面模型[J].通信學報,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]鄔江興.內生安全:重新定義新基建的安全屬性[J].中國科技產業,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]李衛超,張錚,王立群.基于擬態防御架構的多余度裁決建模與風險分析[J].信息安全學報,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基金項目:國家自然科學基金資助項目

作者簡介:席睿成(1997-),男,寧夏石嘴山人,碩士研究生,主要研究方向為多變體執行技術、主動防御等;張錚(1975-),男(通信作者),湖北黃岡人,副教授,碩導,主要研究方向為高性能計算、擬態防御等(ponyzhang@126.com);朱鵬喆(2000-),男,河南駐馬店人,碩士研究生,主要研究方向為主動防御、編譯器技術等;劉子敬(1998-),男,山東臨朐人,碩士研究生,主要研究方向為內生安全、多變體執行技術等.

主站蜘蛛池模板: 欧美综合一区二区三区| 免费国产高清精品一区在线| 91免费国产在线观看尤物| 98精品全国免费观看视频| 丁香综合在线| 国产99在线| 婷五月综合| 综合久久五月天| 亚洲第一区欧美国产综合| 亚洲福利一区二区三区| 国产手机在线观看| 国产白丝av| 黄色网页在线观看| 欧美国产日本高清不卡| 一本色道久久88综合日韩精品| 少妇露出福利视频| 又爽又大又黄a级毛片在线视频 | 在线观看热码亚洲av每日更新| 71pao成人国产永久免费视频 | 青青草原国产免费av观看| 日本不卡在线播放| 亚洲精品无码不卡在线播放| 制服丝袜 91视频| 97国产在线视频| 亚洲看片网| 四虎国产精品永久在线网址| 亚洲国产精品日韩av专区| 一区二区偷拍美女撒尿视频| 成人国产精品视频频| 日韩成人午夜| 欧美日韩久久综合| 福利视频99| 国产欧美精品午夜在线播放| 亚洲人成网站在线播放2019| 亚洲av综合网| 亚洲一区二区精品无码久久久| 在线色国产| 日韩精品专区免费无码aⅴ| 亚洲精品无码日韩国产不卡| 天天色天天操综合网| 精品91视频| 久视频免费精品6| 中文字幕无码制服中字| 在线精品自拍| 国产偷倩视频| 熟妇丰满人妻| 九九热在线视频| 日本国产精品一区久久久| 中文字幕有乳无码| 亚洲国产精品无码久久一线| 午夜日b视频| 在线观看免费黄色网址| 尤物成AV人片在线观看| 91蝌蚪视频在线观看| 丁香亚洲综合五月天婷婷| 日韩黄色大片免费看| 国产一区自拍视频| 四虎国产永久在线观看| 超碰91免费人妻| 国产精品v欧美| 看国产毛片| 亚洲91精品视频| 亚洲手机在线| 制服丝袜一区二区三区在线| 波多野结衣无码AV在线| 99激情网| 欧洲在线免费视频| 无码精油按摩潮喷在线播放| 亚洲热线99精品视频| 亚洲AV无码一区二区三区牲色| 国产成人免费观看在线视频| 伊人色综合久久天天| 亚洲色婷婷一区二区| 亚洲VA中文字幕| 亚洲日韩精品欧美中文字幕 | 国产一级毛片在线| 国内精品小视频福利网址| 日本www在线视频| 五月激情婷婷综合| A级全黄试看30分钟小视频| 亚洲美女久久| 美女内射视频WWW网站午夜 |