• 
    

    
    

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

      進(jìn)程控制流劫持攻擊與防御技術(shù)綜述

      2019-12-13 00:57:38王豐峰張濤徐偉光孫蒙
      關(guān)鍵詞:控制流細(xì)粒度攻擊者

      王豐峰,張濤,徐偉光,孫蒙

      進(jìn)程控制流劫持攻擊與防御技術(shù)綜述

      王豐峰,張濤,徐偉光,孫蒙

      (陸軍工程大學(xué),江蘇 南京 210001)

      控制流劫持攻擊是一種常見(jiàn)的針對(duì)計(jì)算機(jī)軟件的攻擊,給計(jì)算機(jī)軟件安全帶來(lái)了巨大的危害,是信息安全領(lǐng)域的研究熱點(diǎn)。首先,從攻擊代碼的來(lái)源角度出發(fā),闡述了進(jìn)程控制流劫持攻擊的相關(guān)研究;其次,根據(jù)控制流劫持攻擊技術(shù)的發(fā)展現(xiàn)狀,基于不同防御思想介紹了近年來(lái)國(guó)內(nèi)外的相關(guān)防御技術(shù);最后對(duì)控制流劫持攻防技術(shù)發(fā)展趨勢(shì)進(jìn)行總結(jié)和展望。

      軟件安全;控制流劫持攻擊;控制流完整性;隨機(jī)化

      1 引言

      隨著信息技術(shù)的不斷發(fā)展,計(jì)算機(jī)軟件在人們的日常生活中扮演著越來(lái)越重要的角色。然而,由于軟件開(kāi)發(fā)者的疏忽以及編程語(yǔ)言固有的局限性,安全漏洞在計(jì)算機(jī)軟件中普遍存在。自1988年Morries利用緩沖區(qū)溢出漏洞編寫(xiě)蠕蟲(chóng)病毒癱瘓了大量網(wǎng)絡(luò)計(jì)算機(jī)以來(lái)[1],網(wǎng)絡(luò)攻擊,尤其是控制流劫持攻擊給國(guó)家和社會(huì)帶來(lái)了巨大的經(jīng)濟(jì)損失??刂屏鹘俪止羰且环N常見(jiàn)的針對(duì)計(jì)算機(jī)軟件的攻擊,通??梢酝ㄟ^(guò)緩沖區(qū)溢出等漏洞改變進(jìn)程的控制流從而進(jìn)行惡意操作。針對(duì)控制流劫持攻擊,研究人員提出并實(shí)現(xiàn)了許多防護(hù)技術(shù),攻防雙方相互依賴,不斷發(fā)展演進(jìn),形成了如圖1所示的攻防對(duì)抗演進(jìn)過(guò)程。本文總結(jié)了控制流劫持攻擊的基本原理和最新進(jìn)展,同時(shí)依據(jù)防御思想重點(diǎn)介紹了相關(guān)防御技術(shù),并進(jìn)行了分析比較。因?yàn)楝F(xiàn)階段的防御技術(shù)還存在性能開(kāi)銷大、兼容性差等方面的問(wèn)題,不少技術(shù)尚未進(jìn)行廣泛部署。因此,本文總結(jié)分析控制流劫持攻擊與防御的相關(guān)技術(shù),這對(duì)研究人員設(shè)計(jì)更加合理實(shí)用的防御技術(shù)具有一定的理論價(jià)值和實(shí)際意義。

      2 進(jìn)程控制流劫持攻擊技術(shù)研究現(xiàn)狀

      控制流劫持攻擊通過(guò)構(gòu)造特定攻擊載體,利用緩沖區(qū)溢出等軟件漏洞,非法篡改進(jìn)程中的控制數(shù)據(jù),從而改變進(jìn)程的控制流程并執(zhí)行特定惡意代碼,達(dá)到攻擊目的[2]。根據(jù)攻擊代碼的來(lái)源,可以將控制流劫持攻擊劃分為代碼注入類攻擊和代碼重用類攻擊。

      圖1 劫持控制流攻防對(duì)抗演進(jìn)過(guò)程

      2.1 代碼注入類攻擊

      在代碼注入攻擊中,攻擊者通常利用進(jìn)程的輸入操作向被攻擊進(jìn)程的地址空間注入惡意代碼,并且通過(guò)覆蓋函數(shù)返回地址等手段,使進(jìn)程非法執(zhí)行注入的惡意代碼,從而劫持進(jìn)程控制流達(dá)到攻擊目的。代碼注入類攻擊成功的根本原因在是馮·諾依曼體系中,指令和數(shù)據(jù)不加區(qū)別混合存儲(chǔ)在同一個(gè)存儲(chǔ)器中,導(dǎo)致計(jì)算機(jī)可能將數(shù)據(jù)誤當(dāng)作指令執(zhí)行。為了抵御代碼注入攻擊,研究人員提出了數(shù)據(jù)執(zhí)行保護(hù)(DEP,data execution protection)的防御措施,通過(guò)將進(jìn)程地址空間中的可寫(xiě)部分設(shè)置為不可執(zhí)行,在很大限度上抵御了代碼注入類攻擊。

      2.2 代碼重用類攻擊

      與代碼注入類攻擊不同,代碼重用攻擊不需要攻擊者向進(jìn)程地址空間中注入惡意代碼,它僅利用程序或共享庫(kù)中已有的指令來(lái)完成攻擊,因此能夠順利繞開(kāi)DEP保護(hù)機(jī)制。這種攻擊模式被證實(shí)具有圖靈完備性,但危害大、易擴(kuò)展。其中,最為常見(jiàn)的是面向返回的編程(ROP)攻擊[3]。ROP攻擊可以利用進(jìn)程已有的代碼片段(稱為gadget),通過(guò)棧溢出等漏洞將各個(gè)gadget的地址和其他相關(guān)數(shù)據(jù)相結(jié)合,精心構(gòu)造payload,使進(jìn)程在執(zhí)行函數(shù)返回時(shí),劫持控制流跳轉(zhuǎn)到指定gadget,從而進(jìn)行惡意操作[4]。ROP攻擊的基本過(guò)程[5]如圖2所示,步驟2和步驟3就是構(gòu)造惡意gadget的過(guò)程,當(dāng)進(jìn)程在步驟6進(jìn)行函數(shù)返回時(shí),則執(zhí)行攻擊者指定的步驟7~步驟9。由于ROP攻擊使用了以ret指令結(jié)尾的gadget鏈導(dǎo)致其容易被檢測(cè)出來(lái)。Bletsch等[6]提出了JOP攻擊,以jmp或者call指令來(lái)串聯(lián)gadget;Checkoway等[7]提出利用pop-jmp指令來(lái)代替ret指令,完成重用攻擊。這些ROP攻擊的變種使ROP攻擊更加靈活隱蔽,加大了檢測(cè)難度。

      2.3 代碼重用類攻擊的改進(jìn)

      盡管傳統(tǒng)的代碼重用攻擊主要針對(duì)x86平臺(tái),但是近年來(lái),研究人員在ARM、SPARC等平臺(tái)下也實(shí)現(xiàn)了對(duì)計(jì)算機(jī)軟件的代碼重用攻擊,證實(shí)了代碼重用攻擊在多個(gè)平臺(tái)上的廣泛存在性[8-11]。Dullien等[12-13]甚至提出了利用中間語(yǔ)義REIL實(shí)現(xiàn)一個(gè)平臺(tái)無(wú)關(guān)的gadget搜索框架,使跨平臺(tái)的ROP攻擊更加容易,進(jìn)一步增加了計(jì)算機(jī)應(yīng)用軟件防御代碼重用類控制流劫持攻擊的難度。

      由于ROP攻擊需要攻擊者知道gadget的地址,因此地址空間布局隨機(jī)化(ASLR,address space layout randomization)[14]等在進(jìn)程運(yùn)行前提供防御措施的靜態(tài)防御技術(shù),可以有效抵御傳統(tǒng)的ROP攻擊。為了克服傳統(tǒng)ROP攻擊的缺陷,Snow等[15]提出了JIT-ROP(just-in-time ROP)的攻擊技術(shù),它通過(guò)即時(shí)代碼重用恢復(fù)內(nèi)存布局,擊敗了細(xì)粒度運(yùn)行前隨機(jī)化技術(shù)。相比于傳統(tǒng)的ROP技術(shù),JIT-ROP攻擊可以反復(fù)使用內(nèi)存泄露的方法動(dòng)態(tài)映射應(yīng)用程序的內(nèi)存布局,同時(shí)發(fā)現(xiàn)gadget以及API函數(shù),并利用這些gadget進(jìn)行攻擊。實(shí)驗(yàn)證明,JIT-ROP可以繞開(kāi)任意粒度的隨機(jī)化。JIT-ROP攻擊方法的誕生揭示了運(yùn)行前隨機(jī)化無(wú)法在進(jìn)程運(yùn)行時(shí)動(dòng)態(tài)引入隨機(jī)性的致命缺陷。JIT-ROP技術(shù)最大的特點(diǎn)是尋找并利用gadget的過(guò)程都在程序運(yùn)行時(shí)動(dòng)態(tài)進(jìn)行的,其攻擊形式多樣,能夠擊敗ASLR技術(shù)。

      圖2 ROP攻擊流程

      此外,Linux系統(tǒng)中父進(jìn)程fork()中的子進(jìn)程總是享有和父進(jìn)程同樣的地址空間布局,本文將這種模式稱為fork-oriented模式。而許多C/S架構(gòu)的網(wǎng)絡(luò)模型都在使用這樣的運(yùn)行模式,這會(huì)導(dǎo)致BROP(blind ROP)攻擊。BROP攻擊由Bittau等提出,是JIT-ROP攻擊的擴(kuò)展模式[16]。BROP攻擊可以在不獲得被攻擊進(jìn)程二進(jìn)制文件的前提下進(jìn)行遠(yuǎn)程攻擊,給網(wǎng)絡(luò)中的計(jì)算機(jī)系統(tǒng)造成巨大危害。攻擊者可以通過(guò)不斷向子進(jìn)程進(jìn)行嗅探和猜測(cè)來(lái)獲取關(guān)于地址空間布局的知識(shí)并找到足夠的gadget進(jìn)行惡意攻擊。Bittau等[16]設(shè)計(jì)了一個(gè)完全自動(dòng)化的BROP攻擊工具,成功繞過(guò)了64 bit的ASLR技術(shù),實(shí)現(xiàn)了對(duì)nginx的BROP攻擊。

      3 進(jìn)程控制流劫持防御技術(shù)研究現(xiàn)狀

      隨著控制流劫持攻擊技術(shù)的不斷發(fā)展,其對(duì)軟件安全造成的威脅也日趨嚴(yán)重。因此研究人員提出許多相應(yīng)的防御技術(shù)??傮w上講,根據(jù)防御技術(shù)引入的時(shí)間將控制流劫持防御技術(shù)分為運(yùn)行前靜態(tài)防御和運(yùn)行時(shí)動(dòng)態(tài)防御兩大類。

      3.1 運(yùn)行前靜態(tài)防御技術(shù)

      運(yùn)行前靜態(tài)防御技術(shù)一般是通過(guò)修改編譯器或加載器在進(jìn)程運(yùn)行前進(jìn)行緩沖區(qū)邊界檢查、棧保護(hù)、替換鏈接庫(kù)、隨機(jī)化等保護(hù)措施,來(lái)確保運(yùn)行時(shí)控制流不被篡改。數(shù)據(jù)執(zhí)行保護(hù)通過(guò)區(qū)分?jǐn)?shù)據(jù)和代碼的不同權(quán)限可以有效阻礙代碼注入類攻擊。StackGuard[17]是GCC編譯器的一個(gè)補(bǔ)丁,編譯時(shí)它通過(guò)在緩沖區(qū)和返回地址間加入隨機(jī)canary值保護(hù)用戶棧。Libsafe[18]是在進(jìn)程運(yùn)行前替換易受攻擊的庫(kù)函數(shù),從而保護(hù)strcpy、printf等存在危險(xiǎn)的函數(shù)。FormatGuard[19]通過(guò)比較提供給printf函數(shù)實(shí)際參數(shù)的數(shù)量與格式字符串調(diào)用參數(shù)的數(shù)量來(lái)抵御基于格式錯(cuò)誤的控制流劫持攻擊。此外還有很多類似的技術(shù),在進(jìn)程運(yùn)行前加入防御機(jī)制以提高軟件安全性。然而,這些防御方式留給攻擊者充足的時(shí)間進(jìn)行探索和攻擊。

      JIT-ROP和BROP等攻擊通過(guò)不斷嗅探和猜測(cè),利用進(jìn)程運(yùn)行時(shí)產(chǎn)生的動(dòng)態(tài)信息,繞開(kāi)了靜態(tài)防御的保護(hù),從而篡改進(jìn)程控制流。這些運(yùn)行時(shí)動(dòng)態(tài)攻擊方式甚至可以在沒(méi)有二進(jìn)制文件的情況下進(jìn)行遠(yuǎn)程攻擊,所以運(yùn)行前防御技術(shù)已經(jīng)無(wú)法抵御這種攻擊技術(shù)。運(yùn)行時(shí)動(dòng)態(tài)攻擊的出現(xiàn),再次打破了攻守雙方的平衡,使軟件防御技術(shù)研究人員將目光轉(zhuǎn)向了運(yùn)行時(shí)動(dòng)態(tài)防御技術(shù)上。

      3.2 運(yùn)行時(shí)動(dòng)態(tài)防御技術(shù)

      運(yùn)行時(shí)動(dòng)態(tài)防御技術(shù)則在進(jìn)程運(yùn)行過(guò)程中即時(shí)地進(jìn)行安全保護(hù),防止控制流被非法篡改。根據(jù)進(jìn)程運(yùn)行時(shí)動(dòng)態(tài)防御思想的不同,本文可以將進(jìn)程運(yùn)行時(shí)動(dòng)態(tài)防御技術(shù)分為兩大類:基于可信計(jì)算的運(yùn)行時(shí)防御技術(shù)和基于主動(dòng)變換防御思想的防御技術(shù)。

      3.2.1 基于可信計(jì)算的運(yùn)行時(shí)防御技術(shù)

      可信計(jì)算通過(guò)確保系統(tǒng)始終在可信狀態(tài)下遷移來(lái)確保系統(tǒng)安全,基于可信計(jì)算的動(dòng)態(tài)防御技術(shù)則通過(guò)將進(jìn)程控制流與預(yù)期的正??刂屏鬟M(jìn)行對(duì)比,從而保證進(jìn)程運(yùn)行過(guò)程始終可信。

      基于可信計(jì)算的運(yùn)行時(shí)防御技術(shù)的代表是控制流完整性(CFI,control flow integrity)。CFI最早由Martín等[20]提出。CFI基于動(dòng)態(tài)可信度量,分析程序正??刂屏?,并依此構(gòu)造出針對(duì)進(jìn)程的控制流圖(CFG,control flow graph)。CFI技術(shù)的關(guān)鍵是限制進(jìn)程運(yùn)行過(guò)程中的控制流轉(zhuǎn)移,從而使進(jìn)程的控制流只在其原有CFG所限定的范圍內(nèi),保證進(jìn)程運(yùn)行過(guò)程可信[21]。具體做法是通過(guò)分析程序的控制流圖,獲得間接轉(zhuǎn)移指令目標(biāo)的地址,形成一個(gè)白名單,然后在進(jìn)程運(yùn)行過(guò)程中,核對(duì)轉(zhuǎn)移目標(biāo)指令是否在正常控制流的白名單中。由于JIT-ROP等針對(duì)Linux進(jìn)程的控制流劫持攻擊會(huì)改變程序的正常行為,從而違背原有的控制流圖。因此CFI能夠抵御運(yùn)行時(shí)動(dòng)態(tài)控制流劫持攻擊。

      在CFI提出后,該技術(shù)得到了研究人員的廣泛研究,各種CFI防御技術(shù)層出不窮。CFI可以根據(jù)劃分目標(biāo)指令的精細(xì)程度分為細(xì)粒度CFI和粗粒度CFI。嚴(yán)格意義上講,最早Martín提出的CFI技術(shù)是細(xì)粒度CFI。細(xì)粒度CFI仔細(xì)檢查每個(gè)間接轉(zhuǎn)移指令的目標(biāo)地址,并與正??刂屏鲌D進(jìn)行比對(duì),確保每條轉(zhuǎn)移指令只能轉(zhuǎn)到其限定的范圍內(nèi),來(lái)保證程序控制流的完整性。Mashtizadeh等[22]提出的CCFI會(huì)識(shí)別所有影響程序控制流的對(duì)象,并且計(jì)算這些對(duì)象的消息認(rèn)證碼,從而進(jìn)行指針加密。通過(guò)在使用每個(gè)控制流元素之前檢查消息認(rèn)證碼,系統(tǒng)可以保證運(yùn)行時(shí)控制流不被非法篡改。Criswell等[23]提出了KCoFI,這是一種在操作系統(tǒng)內(nèi)核上的CFI,KCoFI在驗(yàn)證進(jìn)程控制流完整性的基礎(chǔ)上,加入一個(gè)對(duì)進(jìn)程進(jìn)行動(dòng)態(tài)監(jiān)視的中間軟件層,以進(jìn)一步保護(hù)一些關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。然而,對(duì)進(jìn)程指令進(jìn)行精細(xì)的檢查會(huì)造成巨大的性能開(kāi)銷。為了降低系統(tǒng)性能開(kāi)銷,粗粒度的CFI選擇放寬檢查條件,將同一類轉(zhuǎn)移指令整理到一起進(jìn)行驗(yàn)證。例如,CCFIR[24]利用一個(gè)專用的“Springborad section”來(lái)實(shí)現(xiàn)間接分支轉(zhuǎn)移,沒(méi)有實(shí)現(xiàn)對(duì)每一條指令進(jìn)行精細(xì)檢查;binCFI[25]將間接轉(zhuǎn)移指令進(jìn)行分類,同一類轉(zhuǎn)移指令歸納到同一目標(biāo)集合中,粗化檢查粒度,提高進(jìn)程運(yùn)行效率。由于沒(méi)有對(duì)每一條轉(zhuǎn)移指令進(jìn)行檢查,粗粒度CFI會(huì)導(dǎo)致系統(tǒng)抵御攻擊的能力下降,攻擊者依舊可以針對(duì)粗粒度CFI進(jìn)行代碼重用攻擊。G?ktas等[26]利用entry point(EP)gadget和call site(CS)gadget成功實(shí)現(xiàn)了對(duì)粗粒度CFI的攻擊;Conti等[27]提出了名為StackDefiler的系列攻擊,分別利用堆上的漏洞、用戶空間和內(nèi)核空間切換時(shí)存在的漏洞以及泄露影子堆棧的地址,完成了在有CFI保護(hù)的前提下針對(duì)堆棧的攻擊,同時(shí)也擊敗了DEP和ASLR保護(hù)技術(shù);Carlini等[28]利用對(duì)非控制數(shù)據(jù)的攻擊,提出了名為CFB的攻擊技術(shù),并且證明CFB能夠?qū)?xì)的CFI進(jìn)行有效攻擊。2015年,Otgonbaatar指出[29],即便獲得了細(xì)粒度的控制流完整性,也存在被攻擊的風(fēng)險(xiǎn),這使CFI技術(shù)的防御有效性受到了質(zhì)疑。

      為了減少CFI的性能開(kāi)銷,目前有研究人員開(kāi)始利用硬件來(lái)輔助實(shí)現(xiàn)CFI。Pappas等[30]設(shè)計(jì)了名為kBouncer 的基于硬件的CFI,該技術(shù)利用Last Brach Register監(jiān)視進(jìn)程中的跳轉(zhuǎn)指令,以防止進(jìn)程的異??刂屏鳌iu等[31]提出了利用一種基于輕量級(jí)加密的體系結(jié)構(gòu)(LEA-AES)對(duì)間接跳轉(zhuǎn)指令和返回地址進(jìn)行加解密,從而保證了進(jìn)程控制流的完整可信。Zhang等[32]設(shè)計(jì)了HCIC技術(shù),該技術(shù)利用海明距離匹配和線性加解密機(jī)制,通過(guò)特定硬件的輔助,在不對(duì)編譯器進(jìn)行修改、不增加新的指令集的條件下,實(shí)現(xiàn)了低開(kāi)銷的CFI。

      CFI是建立在對(duì)被保護(hù)程序深入理解基礎(chǔ)上的防御技術(shù),因此往往需要源代碼或調(diào)試信息。在運(yùn)行動(dòng)態(tài)監(jiān)測(cè)時(shí),CFI無(wú)法完美刻畫(huà)進(jìn)程的CFG,因此可能導(dǎo)致限制程序正常運(yùn)行或允許程序執(zhí)行非法操作。在運(yùn)行時(shí)CFI需要比對(duì)跳轉(zhuǎn)指令的目標(biāo)地址,導(dǎo)致巨大性能開(kāi)銷。由于存在以上種種問(wèn)題,雖然CFI已提出十多年時(shí)間,仍然沒(méi)有在實(shí)際系統(tǒng)中得到廣泛部署應(yīng)用。

      表1給出上述控制流完整性防御技術(shù)的對(duì)比。

      3.2.2 基于主動(dòng)變換防御思想的運(yùn)行時(shí)防御技術(shù)

      主動(dòng)變換防御通過(guò)持續(xù)地、動(dòng)態(tài)地變化來(lái)迷惑攻擊者,從而增加其攻擊成本,降低其攻擊成功概率[33]?;谥鲃?dòng)變換防御的運(yùn)行時(shí)防御技術(shù)則是在進(jìn)程運(yùn)行過(guò)程中不斷引入隨機(jī)性和多樣性,打破攻擊者構(gòu)造傳統(tǒng)攻擊鏈所依賴的各種有利條件,加大攻擊者攻擊成功的概率。

      表1 控制流完整性防御技術(shù)對(duì)比

      圖3 Pax ASLR基本原理

      基于主動(dòng)變換防御思想的運(yùn)行時(shí)防御技術(shù)的代表是內(nèi)存布局隨機(jī)化。隨機(jī)化思想最早是在1997年由Forrest等[34]提出的,通過(guò)引入多樣性和隨機(jī)性來(lái)提高計(jì)算機(jī)系統(tǒng)的穩(wěn)健性。內(nèi)存布局隨機(jī)化通過(guò)不斷改變進(jìn)程內(nèi)存布局,實(shí)現(xiàn)進(jìn)程攻擊面的隨機(jī)性變換,從而消除了攻擊者的不對(duì)稱優(yōu)勢(shì),增加了攻擊者的攻擊難度。此外,由于每一計(jì)算機(jī)進(jìn)程在系統(tǒng)中的內(nèi)存布局不同,運(yùn)行時(shí)內(nèi)存布局隨機(jī)化還能阻礙攻擊在網(wǎng)絡(luò)中的擴(kuò)散。

      Pax ASLR[14]是早期隨機(jī)化技術(shù)的代表,其基本原理如圖3所示。它會(huì)對(duì)ELF可執(zhí)行文件地址空間中運(yùn)行時(shí)才映射的動(dòng)態(tài)共享庫(kù)位置等映射區(qū)域進(jìn)行隨機(jī)化操作。當(dāng)攻擊者需要知道進(jìn)程中的gadget地址時(shí),由于內(nèi)存布局被隨機(jī)打亂,因此加大了攻擊者的攻擊難度。同時(shí)當(dāng)進(jìn)程被編譯為位置無(wú)關(guān)代碼時(shí),Pax ASLR還能隨機(jī)化代碼段的基地址,進(jìn)一步增加了攻擊者攻擊成功的難度。

      目前,在許多流行的操作系統(tǒng)中部署了Pax ASLR技術(shù),以提高操作系統(tǒng)的安全性。然而,Pax ASLR是一種粗粒度的隨機(jī)化技術(shù),隨機(jī)化熵值低并且只隨機(jī)化段基地址,因此容易遭受暴力攻擊和信息泄露攻擊[35]。細(xì)粒度隨機(jī)化技術(shù)[36-42]不僅隨機(jī)化了段基地址,而且打亂進(jìn)程段內(nèi)對(duì)象的相對(duì)偏移,增大隨機(jī)化引入的熵值,從而有效抵御暴力攻擊和信息泄露攻擊。作為一種解決傳統(tǒng)粗粒度隨機(jī)化缺陷的技術(shù),細(xì)粒度隨機(jī)化技術(shù)被研究者廣泛采用,并被認(rèn)為可以進(jìn)一步提高進(jìn)程的安全性。

      然而,JIT-ROP和BROP攻擊的提出,使運(yùn)行前的細(xì)粒度隨機(jī)化技術(shù)在面對(duì)運(yùn)行動(dòng)態(tài)攻擊時(shí)沒(méi)有了用武之地。針對(duì)JIT-ROP和BROP攻擊的一種有效保護(hù)方法是在運(yùn)行時(shí)對(duì)地址空間進(jìn)行再隨機(jī)化操作。運(yùn)行時(shí)再隨機(jī)化技術(shù)通過(guò)在進(jìn)程運(yùn)行過(guò)程中不斷對(duì)進(jìn)程地址空間進(jìn)行再隨機(jī)化布局,減小了單一地址空間布局的存在時(shí)間,縮短攻擊者的攻擊周期,使攻擊者無(wú)法掌握足夠的知識(shí)來(lái)完成一次完整的攻擊,運(yùn)行時(shí)隨機(jī)化示意如圖4所示。

      圖4 運(yùn)行時(shí)隨機(jī)化示意

      Giuffrida等[42]提出了操作系統(tǒng)中細(xì)粒度隨機(jī)化技術(shù)的設(shè)計(jì)和運(yùn)行時(shí)再隨機(jī)化的思想,并在Minix3微內(nèi)核中成功部署了運(yùn)行時(shí)內(nèi)核級(jí)地址空間布局隨機(jī)化技術(shù)。Chen等[43]提出了JIT-ASR技術(shù),該技術(shù)使用虛擬內(nèi)存管理,可以在運(yùn)行時(shí)通過(guò)修改代碼地址的虛擬頁(yè)碼和頁(yè)表來(lái)不斷改變程序的地址空間。侯宇[44]分析了ROP攻擊的原理,并在此基礎(chǔ)上設(shè)計(jì)了一種稱為Chameleon的防御機(jī)制,Chameleon在虛擬地址轉(zhuǎn)換為物理地址中間加了一個(gè)中間層,從而將取指異或訪存和進(jìn)程地址空間隨機(jī)化有機(jī)結(jié)合起來(lái)。Chen等[45]提出了Remix技術(shù),通過(guò)LLVM編譯器框架將代碼函數(shù)分割成許多基本塊,并對(duì)進(jìn)程地址空間中的函數(shù)基本塊進(jìn)行基于時(shí)間模型的運(yùn)行時(shí)再隨機(jī)化。這些運(yùn)行時(shí)隨機(jī)化技術(shù)大都需要修改內(nèi)核模塊來(lái)支持進(jìn)程再隨機(jī)化操作,實(shí)現(xiàn)難度大,兼容性有限,并且都選擇基于時(shí)間的再隨機(jī)化,會(huì)造成一些不必要的性能開(kāi)銷。Hawkins等[46]提出的Mixr運(yùn)行時(shí)再隨機(jī)化系統(tǒng)可以在不依賴源代碼以及不修改系統(tǒng)內(nèi)核和加載器等組件的基礎(chǔ)上進(jìn)行,然而該技術(shù)由于在運(yùn)行時(shí)需要反復(fù)進(jìn)行動(dòng)態(tài)鏈接導(dǎo)致性能開(kāi)銷過(guò)大。

      上述運(yùn)行時(shí)隨機(jī)化技術(shù)都是基于時(shí)間的再隨機(jī)化模型,即每隔一段時(shí)間進(jìn)行一次隨機(jī)化操作[46]。由于運(yùn)行時(shí)地址空間再隨機(jī)化操作會(huì)給程序性能帶來(lái)影響。在沒(méi)有受到危險(xiǎn)操作時(shí),過(guò)于頻繁的隨機(jī)化會(huì)帶來(lái)巨大的性能開(kāi)銷,而隨機(jī)化頻率過(guò)低則給攻擊者留下攻擊的機(jī)會(huì)?;跁r(shí)間的再隨機(jī)化模型無(wú)法消除這一矛盾。Bigelow等[47]提出了實(shí)時(shí)再隨機(jī)化(TASR)技術(shù),在輸入/輸出系統(tǒng)調(diào)用之間引入隨機(jī)性,從而使攻擊者獲得的內(nèi)存信息無(wú)效。TASR提出了一種將隨機(jī)化與潛在的運(yùn)行時(shí)信息泄露相結(jié)合的方法,視成對(duì)的輸入/輸出操作為危險(xiǎn)操作,當(dāng)有成對(duì)輸入/輸出操作時(shí),則觸發(fā)隨機(jī)化。由于只在面臨危險(xiǎn)操作時(shí)進(jìn)行隨機(jī)化,TASR減少了不必要的隨機(jī)化開(kāi)銷。雷嘯[48]改進(jìn)了TASR技術(shù)過(guò)于寬泛的危險(xiǎn)操作的判斷,提出了安全敏感區(qū)的概念,只有當(dāng)進(jìn)程write操作訪問(wèn)安全敏感區(qū)時(shí)才在后續(xù)read操作前觸發(fā)隨機(jī)化,進(jìn)一步減少了性能開(kāi)銷。Morton等[49]提出了當(dāng)攻擊者在內(nèi)存中公開(kāi)了可能有用的可執(zhí)行g(shù)adget時(shí),才觸發(fā)防御機(jī)制,以確保攻擊者不能利用這些字節(jié)來(lái)劫持運(yùn)行時(shí)進(jìn)程的控制流。這些基于潛在風(fēng)險(xiǎn)的隨機(jī)化方案,減少了不必要的再隨機(jī)化操作,對(duì)于大部分進(jìn)程而言,該方案要優(yōu)于基于時(shí)間的再隨機(jī)化方案。

      針對(duì)BROP攻擊,Lu等[50]提出的RuntimeASLR技術(shù)對(duì)父進(jìn)程fork出的子進(jìn)程進(jìn)行地址空間布局進(jìn)行再隨機(jī)化,從而抵御復(fù)制探測(cè)攻擊。RuntimeASLR的技術(shù)核心是一個(gè)自動(dòng)的、整體的指針跟蹤機(jī)制,Lu認(rèn)為這是未來(lái)進(jìn)行指針識(shí)別和運(yùn)行時(shí)動(dòng)態(tài)保護(hù)的有用工具。然而,RuntimeASLR技術(shù)只適合nginx這類fork-oriented程序,并且只支持x86體系架構(gòu)。

      除了在運(yùn)行時(shí)對(duì)內(nèi)存布局進(jìn)行隨機(jī)置換外,還有研究人員提出加載多個(gè)進(jìn)程映像并在運(yùn)行時(shí)進(jìn)行隨機(jī)切換,從而使攻擊者獲取的運(yùn)行時(shí)內(nèi)存信息無(wú)效。Davi等[51]提出了Isomeron技術(shù),在一個(gè)虛擬地址空間中,Isomeron同時(shí)加載了兩份不同的進(jìn)程映像。在程序運(yùn)行時(shí),一旦發(fā)生了函數(shù)調(diào)用,就隨機(jī)決定接下來(lái)執(zhí)行哪個(gè)程序副本。Williams-King等[52]提出了稱為Shuffler的防御機(jī)制。Shuffler在幾毫秒內(nèi)對(duì)進(jìn)程地址空間進(jìn)行運(yùn)行時(shí)再隨機(jī)化,并“原子地”從一個(gè)隨機(jī)化的代碼副本切換到另一個(gè)隨機(jī)化的代碼副本。Williams-King等還考慮了Shuffler本身可能存在的攻擊面,通過(guò)對(duì)自身的地址空間進(jìn)行再隨機(jī)化,可以減小防御工具本身攻擊面對(duì)安全性帶來(lái)的影響。由于gadget的地址在每個(gè)副本中不一樣,且攻擊者也無(wú)法預(yù)測(cè)接下來(lái)運(yùn)行哪個(gè)副本。因此這樣的方法能有效抵御JIT-ROP和BROP攻擊。

      表2 進(jìn)程運(yùn)行時(shí)再隨機(jī)化技術(shù)對(duì)比

      表3 進(jìn)程運(yùn)行時(shí)動(dòng)態(tài)防御技術(shù)對(duì)比

      表2給出進(jìn)程運(yùn)行時(shí)再隨機(jī)化技術(shù)的對(duì)比。表3給出進(jìn)程控制流劫持運(yùn)行時(shí)動(dòng)態(tài)防御技術(shù)的總體對(duì)比。

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

      在信息安全領(lǐng)域中,如何抵御控制流劫持攻擊一直是一個(gè)熱點(diǎn)問(wèn)題,尤其Snow提出JIT-ROP攻擊之后,以這種新型控制流劫持攻擊為基礎(chǔ)的攻擊模式不斷被提出,對(duì)計(jì)算機(jī)進(jìn)程構(gòu)成巨大威脅。BROP攻擊的提出更是突破了傳統(tǒng)控制流劫持攻擊對(duì)目標(biāo)二進(jìn)制的依賴,實(shí)現(xiàn)了“盲的”控制流劫持攻擊,使傳統(tǒng)的軟件靜態(tài)被動(dòng)防御機(jī)制變得形同虛設(shè)。

      控制流劫持攻擊是計(jì)算機(jī)軟件面臨的巨大威脅,隨著新型代碼重用類攻擊的誕生和演化,控制流劫持攻防對(duì)抗不斷升級(jí)??刂屏鹘俪止艏夹g(shù)的發(fā)展也面臨著許多挑戰(zhàn)和新的發(fā)展方向。首先, JIT-ROP和BROP攻擊所采用的方法并不高效,需要多次嘗試和足夠時(shí)間來(lái)“積累知識(shí)”。然而,攻擊時(shí)間越長(zhǎng),防御者越可能對(duì)攻擊做出反應(yīng)。因此快速獲取成功完成攻擊所需要的信息是未來(lái)控制流劫持攻擊的研究重點(diǎn)。其次,在二進(jìn)制文件不可得的情況下進(jìn)行控制流劫持攻擊是一個(gè)難點(diǎn)。而B(niǎo)ROP攻擊則揭示了fork-oriented應(yīng)用進(jìn)程所存在的安全漏洞,為今后攻擊二進(jìn)制信息不可得的應(yīng)用進(jìn)程拓寬了思路。最后,隨著ARM等其他平臺(tái)的廣泛應(yīng)用,針對(duì)這些平臺(tái)的防御技術(shù)不斷升級(jí)。借鑒現(xiàn)有控制流劫持攻擊的研究成果,實(shí)現(xiàn)對(duì)其他平臺(tái)的控制流劫持攻擊也值得研究人員關(guān)注。目前,運(yùn)行時(shí)動(dòng)態(tài)防御技術(shù)是抵御JIT-ROP和BROP攻擊的有效手段,筆者依據(jù)其背后防御思想的不同分成了基于可信計(jì)算和基于主動(dòng)變換防御思想的運(yùn)行時(shí)防御技術(shù)。

      基于可信計(jì)算的CFI技術(shù)通過(guò)限制程序的控制流來(lái)保證程序被正確地執(zhí)行。然而,細(xì)粒度的CFI也被研究人員證實(shí)存在防御缺陷;進(jìn)程動(dòng)態(tài)控制流圖難以精確刻畫(huà);同時(shí)CFI還存在性能開(kāi)銷大、依賴調(diào)試信息等問(wèn)題。如何在低性能開(kāi)銷的基礎(chǔ)上,構(gòu)造正確合理的CFG是制約CFI技術(shù)進(jìn)一步發(fā)展的瓶頸,也是CFI未來(lái)主要的一個(gè)研究方向。與此同時(shí),結(jié)合硬件來(lái)降低CFI開(kāi)銷,并提高CFG覆蓋率和準(zhǔn)確率也是一個(gè)值得探索的方向。

      基于主動(dòng)變換防御的運(yùn)行時(shí)動(dòng)態(tài)隨機(jī)化技術(shù),通過(guò)在進(jìn)程內(nèi)部引入隨機(jī)性來(lái)抵御運(yùn)行時(shí)動(dòng)態(tài)代碼重用攻擊。運(yùn)行時(shí)再隨機(jī)化通過(guò)不斷對(duì)進(jìn)程地址空間進(jìn)行再隨機(jī)化布局,改變程序自身的屬性,打斷了攻擊者對(duì)進(jìn)程地址空間的原始認(rèn)知,使攻擊者先前積累的有關(guān)進(jìn)程地址空間的知識(shí)無(wú)效化,從而抵御代碼重用攻擊。相比CFI,運(yùn)行時(shí)隨機(jī)化能夠有效阻礙攻擊的擴(kuò)散,同樣也值得深入研究。內(nèi)存布局隨機(jī)化技術(shù)會(huì)使進(jìn)程出現(xiàn)“帶傷運(yùn)行”的情況,存在造成進(jìn)程非正常運(yùn)行的可能性,如何降低隨機(jī)化操作對(duì)進(jìn)程帶來(lái)的“傷害”,具有重要的現(xiàn)實(shí)意義。此外,運(yùn)行時(shí)內(nèi)存隨機(jī)化對(duì)進(jìn)程的保護(hù)能力與其隨機(jī)化粒度之間的關(guān)系,隨機(jī)化最合理的觸發(fā)時(shí)間等問(wèn)題仍然缺乏相應(yīng)的研究,這使運(yùn)行時(shí)隨機(jī)化的發(fā)展陷入無(wú)法在保護(hù)力度和性能損耗之間取得一個(gè)最為合理平衡的困境,因此對(duì)運(yùn)行時(shí)內(nèi)存隨機(jī)化進(jìn)行費(fèi)效評(píng)估也是一個(gè)值得研究的方向。

      最后,現(xiàn)階段的控制流完整性和地址空間隨機(jī)化技術(shù)大多是針對(duì)x86平臺(tái),在ARM等其他平臺(tái)上鮮有類似研究。然而,如第2節(jié)所述,控制流劫持攻擊在許多平臺(tái)中都可以實(shí)現(xiàn),并且同樣可以達(dá)到執(zhí)行任意惡意代碼的目的。因此在ARM等其他平臺(tái)上的或者跨平臺(tái)的運(yùn)行時(shí)動(dòng)態(tài)保護(hù)技術(shù)同樣亟待研究和解決。

      [1] 邵思豪, 高慶, 馬森, 等. 緩沖區(qū)溢出漏洞分析技術(shù)研究進(jìn)展[J]. 軟件學(xué)報(bào), 2018, 29(5): 1179-1198.

      SHAO S H, GAO Q, MA S, et al. Progress in research on buffer overflow vulnerability analysis technologies[J]. Journal of Software, 2018, 29(5): 1179-1198

      [2] 張超. 針對(duì)控制流劫持攻擊的軟件安全防護(hù)技術(shù)研究[D]. 北京:北京大學(xué), 2013.

      ZHANG C. Research on software security defense against control-flow hijacking attacks[D]. Beijing: Beijing University, 2013.

      [3] ROEMER R, BUCHANAN E, SHACHAM H, et al. Return-oriented programming: systems, languages, and applications[J]. ACM Transactions on Information & System Security, 2012, 15(1): 1-34.

      [4] 喬向東, 郭戎瀟, 趙勇. 代碼復(fù)用對(duì)抗技術(shù)研究進(jìn)展[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2018, 4(3): 1-12.

      QIAO X D, GUO R X, ZHAO Y. Research progress in code reuse attacking and defending[J]. Chinese Journal of Network and Information Security, 2018, 4 (3): 1-12.

      [5] DAVI L, SADEGHI A R, WINANDY M. ROPdefender: a detection tool to defend against return-oriented programming attacks[C]// The 6th ACM Symposium on Information, Computer and Communications Security. 2011: 40-51.

      [6] BLETSCH T, JIANG X, FREEH V W, et al. Jump-oriented programming: a new class of code-reuse attack[C]//The 6th ACM Symposium on Information, Computer and Communications Security. 2011: 30-40.

      [7] CHECKOWAY S, DAVI L, DMITRIENKO A, et al. Return-oriented programming without returns[C]//ACM Conference on Computer & Communications Security. 2010: 559-572.

      [8] 錢(qián)逸. 基于ARM架構(gòu)的ROP攻擊與防御技術(shù)研究[D]. 上海: 上海交通大學(xué), 2012.

      QIAN Y. ROP attack and defense technology based on ARM[D]. Shanghai: Shanghai Jiaotong University, 2012.

      [9] BUCHANAN E, ROEMER R, SHACHAM H, et al. When good instructions go bad: Generalizing return-oriented programming to RISC[C]//The 15th ACM Conference on Computer and Communications Security. 2008: 27-38.

      [10] DAVI L, DMITRIENKO A, SADEGHI A, et al. Return-oriented programming without returns on ARM[R]. Ruhr-University Bochum, 2010.

      [11] KORNAU T. Return oriented programming for the ARM architecture[D]. Ruhr: Ruhr-Universit?t Bochum. 2010.

      [12] DULLIEN T, PORST S. REIL: a platform-independent intermediate representation of disassembled code for static code analysis[J]. Cansecwest, 2009.

      [13] DULLIEN T, KORNAU T, WEINMANN R. A framework for automated architecture independent gadget search[C]//Usenix Conference on Offensive Technologies. 2010: 1.

      [14] PaX team: PaX address space layout randomization (ASLR)[EB].

      [15] SNOW K Z, MONROSE F, DAVI L, et al. Just-in-time code reuse: on the effectiveness of fine-grained address space layout randomization[C]//2013 IEEE Symposium on Security and Privacy. 2013: 574-588.

      [16] BITTAU A, BELAY A, MASHTIZADEH A, et al. Hacking blind[C]//2014 IEEE Symposium on Security and Privacy. 2014: 227-242.

      [17] COWAN C, PU C, MAIER D, et al. StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks[C]// USENIX Security Symposium. 1998, 98: 63-78.

      [18] TSAI T, SINGH N. Libsafe: transparent system-wide protection against buffer overflow attacks[C]//International Conference on Dependable Systems and Networks. IEEE, 2002: 541.

      [19] COWAN C, BARRINGER M, BEATTIE S, et al. FormatGuard: automatic protection from printf format string vulnerabilities[C]//USENIX Security Symposium. 2001, 91.

      [20] MARTíN A, BUDIU M, ERLINGSSON, úLFAR, et al. Control-flow integrity[C]//ACM Conference on Computer & Communications Security. 2005: 340.

      [21] 武成崗, 李建軍. 控制流完整性的發(fā)展歷程[J]. 中國(guó)教育網(wǎng)絡(luò), 2016 (4): 52-55.

      WU C G, LI J J. The evolution of control flow integrity[J]. China Education Network. 2016(4): 52-55.

      [22] MASHTIZADEH A J, BITTAU A, MAZIERES D, et al. Cryptographically enforced control flow integrity[J]. arXiv preprint arXiv:1408.1451, 2014.

      [23] CRISWELL J, DAUTENHAHN N, ADVE V. KCoFI: complete control-flow integrity for commodity operating system kernels[C]//2014 IEEE Symposium on Security and Privacy. 2014: 292-307.

      [24] ZHANG C, WEI T, CHEN Z, et al. Practical control flow integrity and randomization for binary executables[J]. IEEE Symposium on Security & Privacy, 2013: 559-573.

      [25] ZHANG M, SEKAR R. Control Flow Integrity for {COTS} Binaries[C]//Presented as part of the 22nd Security Symposium. 2013: 337-352.

      [26] G?KTAS E, ATHANASOPOULOS E, BOS H, et al. Out of control: overcoming control-flow integrity[J]. Security & Privacy, 2014: 575-589.

      [27] CONTI M, CRANE S, DAVI L, et al. Losing control: on the effectiveness of control-flow integrity under stack attacks[C]//The 22nd ACM SIGSAC Conference on Computer and Communications Security. 2015: 952-963.

      [28] CARLINI N, BARRESI N, MATHIAS P, et al. Control-flow bending: on the effectiveness of control-flow integrity[C]//Usenix Conference on Security Symposium. 2015: 161-176.

      [29] OTGONBAATAR U. Evaluating modern defenses against control flow hijacking[D]. Massachusetts: Massachusetts Institute of Technology. 2015.

      [30] PAPPAS V, POLYCHRONAKIS M, KEROMYTIS A D. Transparent {ROP} exploit mitigation using indirect branch tracing[C]//Presented as Part of the 22nd {USENIX} Security Symposium ({USENIX} Security 13). 2013: 447-462.

      [31] QIU P, LYU Y, ZHANG J, et al. Control flow integrity based on lightweight encryption architecture[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018, 37(7): 1358-1369.

      [32] ZHANG J, QI B, QIN Z, et al. HCIC: Hardware-assisted control-flow integrity checking[J]. IEEE Internet of Things Journal, 2018, 6(1): 458-471.

      [33] 蔡桂林, 王寶生, 王天佐, 等. 移動(dòng)目標(biāo)防御技術(shù)研究進(jìn)展[J]. 計(jì)算機(jī)研究與發(fā)展, 2016 , 53 (5): 968-987.

      CAI G L, WANG B S, WANG T Z, et al. Research and development of moving target defense technology[J]. Journal of Computer Research and Development, 2016, 53 (5): 968-987.

      [34] FORREST S, SOMAYAJI A, ACKLEY D H. Building diverse computer systems[C]//The Sixth Workshop on Hot Topics in Operating Systems (Cat. No. 97TB100133). 1997: 67-72.

      [35] SHACHAM H, PAGE M, PFAFF B, et al. On the effectiveness of address-space randomization[C]//The 11th ACM Conference on Computer and Communications Security. 2004: 298-307.

      [36] KIL C, JUN J, BOOKHOLT C, et al. Address space layout permutation (ASLP): towards fine-grained randomization of commodity software[C]//2006 22nd Annual Computer Security Applications Conference (ACSAC'06). 2006: 339-348.

      [37] HISER J, NGUYEN-TUONG A, Co M, et al. ILR: Where'd my gadgets go[C]//2012 IEEE Symposium on Security and Privacy. 2012: 571-585.

      [38] IYER V, KANITKAR A, DASGUPTA P, et al. Preventing overflow attacks by memory randomization[C]//2010 IEEE 21st International Symposium on Software Reliability Engineering. 2010: 339-347.

      [39] BHATKAR S, DUVARNEY D C, SEKAR R. Address obfuscation: an efficient approach to combat a broad range of memory error exploits[C]//USENIX Security Symposium. 2003, 12(2): 291-301.

      [40] BHATKAR S, DUVARNEY D C, SEKAR R. efficient techniques for comprehensive protection from memory error exploits[C]// USENIX Security Symposium. 2005: 17.

      [41] BACKES M AND NURNBERGER S. Oxymoron: making fine-grained memory randomization practical by allowing code sharing[C]//Usenix Conference on Security Symposium. 2014: 433-447.

      [42] GIUFFRIDA C, KUIJSTEN A, TANENBAUM A S. Enhanced operating system security through efficient and fine-grained address space randomization[C]//Presented as Part of the 21st {USENIX} Security Symposium ({USENIX} Security 12). 2012: 475-490.

      [43] CHEN X, XUE R, Wu C. Timely address space rerandomization for resisting code reuse attacks[J]. Concurrency and Computation: Practice and Experience, 2017, 29(16): e3965.

      [44] 侯宇. 基于動(dòng)態(tài)隨機(jī)化和只可執(zhí)行內(nèi)存的JIT-ROP防御研究[D]. 南京: 南京大學(xué), 2016.

      HOU Y. Defence against JIT-ROP based on dynamic randomization and executable only memory[D]. Nanjing: Nanjing University, 2016

      [45] CHEN Y, WANG Z, WHALLEY D, et al. Remix: on-demand live randomization[C]//The sixth ACM Conference on Data and Application Security and Privacy. 2016: 50-61.

      [46] HAWKINS W, NGUYEN-TUONG A, HISER J D, et al. Mixr: flexible runtime rerandomization for binaries[C]//The 2017 Workshop on Moving Target Defense. 2017: 27-37.

      [47] BIGELOW D, HOBSON T,RUDD R, et al. Timely rerandomization for mitigating memory disclosures[C]//ACM Sigsac Conference on Computer & Communications Security, 2015: 268-279.

      [48] 雷嘯. 內(nèi)存信息泄露的運(yùn)行中隨機(jī)化防御方法的研究與改進(jìn)[D]. 南京: 南京大學(xué), 2017.

      LEI X. Research and improvement of runtime randomization de fense method against memory information leakage[D]. Nanjing: Nanjing University. 2017.

      [49] MORTON M, KOO H, LI F, et al. Defeating zombie gadgets by re-randomizing code upon disclosure[C]//International Symposium on Engineering Secure Software and Systems. 2017: 143-160.

      [50] LU K, NURNBERGER S, BACKES M, et al. How to make ASLR win the clone wars: runtime re-randomization[C]//Network & Distributed System Security Symposium. 2016.

      [51] DAVI L, LIEBCHEN C, SADEGHI A R, et al. Isomeron: code randomization resilient to (just-in-time) return-oriented programming[C]//Network & Distributed System Security Symposium. 2015.

      [52] WILLIAMS-KING D, GOBIESKI G, WILLIAMS-KING K, et al. Shuffler: fast and deployable continuous code re-randomization[C]// 12th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 16). 2016: 367-382.

      Overviewofcontrol-flow hijacking attack and defense techniquesfor process

      WANG Fengfeng, ZHANG Tao, XU Weiguang, SUN Meng

      Army Engineering University, Nanjing 210001, China

      Control flow hijacking attack is a common attack against computer software, which brings great harm to computer software security and is a research hotspot in the field of information security. Firstly, from the perspective of the source of attack code, the related research was expounded on process’s control flow hijacking attack. Secondly, according to the newest development status of control flow hijacking attack technology, the related defense technologies at home and abroad were introduced based on different defense ideas. Finally, the development trend of control flow hijacking offensive and defensive technology were summarized.

      software security, control flow hijacking attacks, control flow integrity, randomization

      s: The Natural Science Foundation of Jiangsu Province for Excellent Yong Scholars (No.BK20180080)

      TP309.2

      A

      10.11959/j.issn.2096?109x.2019058

      王豐峰(1994? ),男,江蘇昆山人,陸軍工程大學(xué)碩士生,主要研究方向?yàn)橄到y(tǒng)安全。

      張濤(1973? ),男,甘肅涇川人,博士,陸軍工程大學(xué)教授,主要研究方向?yàn)椴僮飨到y(tǒng)安全、數(shù)據(jù)庫(kù)安全、智能終端軟件安全等。

      徐偉光(1984? ),男,安徽宿州人,博士,陸軍工程大學(xué)講師,主要研究方向?yàn)橐苿?dòng)目標(biāo)防御、密碼學(xué)、區(qū)塊鏈等。

      孫蒙(1984? ),男,山東齊河人,博士,陸軍工程大學(xué)副教授,主要研究方向?yàn)榫W(wǎng)絡(luò)安全與機(jī)器學(xué)習(xí)、智能語(yǔ)音處理等。

      2019?01?23;

      2019?03?19

      王豐峰,princewff@163.com

      江蘇省優(yōu)秀青年基金資助項(xiàng)目(No.BK20180080)

      論文引用格式:王豐峰, 張濤, 徐偉光, 等. 進(jìn)程控制流劫持攻擊與防御技術(shù)綜述[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2019, 5(6): 10-20.

      WANG F F, ZHANG T, XU W G, et al. Overview of control-flow hijacking attack and defense techniques for process[J]. Chinese Journal of Network and Information Security, 2019, 5(6): 10-20.

      猜你喜歡
      控制流細(xì)粒度攻擊者
      融合判別性與細(xì)粒度特征的抗遮擋紅外目標(biāo)跟蹤算法
      基于微分博弈的追逃問(wèn)題最優(yōu)策略設(shè)計(jì)
      抵御控制流分析的Python 程序混淆算法
      細(xì)粒度的流計(jì)算執(zhí)行效率優(yōu)化方法
      工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
      電子科技(2021年2期)2021-01-08 02:25:58
      抵御控制流分析的程序混淆算法
      正面迎接批判
      愛(ài)你(2018年16期)2018-06-21 03:28:44
      基于雙線性卷積網(wǎng)絡(luò)的細(xì)粒度圖像定位
      支持細(xì)粒度權(quán)限控制且可搜索的PHR云服務(wù)系統(tǒng)
      有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
      容城县| 金坛市| 吕梁市| 阳东县| 饶阳县| 任丘市| 鞍山市| 于都县| 武鸣县| 德惠市| 磐安县| 威海市| 林州市| 廊坊市| 北安市| 勃利县| 运城市| 宜丰县| 禄丰县| 六盘水市| 岱山县| 田林县| 高碑店市| 普陀区| 临邑县| 二连浩特市| 方山县| 康保县| 阿荣旗| 台南县| 黔南| 法库县| 五台县| 镇坪县| 大埔区| 北辰区| 新源县| 个旧市| 沙坪坝区| 宣城市| 资讯 |