• 
    

    
    

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

      軟件動(dòng)態(tài)防御技術(shù)研究綜述

      2017-09-30 23:55:08田楠蒲江
      網(wǎng)絡(luò)空間安全 2017年9期
      關(guān)鍵詞:技術(shù)原理

      田楠++蒲江

      摘 要:軟件動(dòng)態(tài)防御技術(shù)是指通過動(dòng)態(tài)更改軟件自身及其執(zhí)行環(huán)境,改變軟件同質(zhì)化現(xiàn)象,減少攻擊者利用軟件漏洞造成大規(guī)模攻擊的一種技術(shù)手段。論文綜述了目前常見的軟件動(dòng)態(tài)防御技術(shù),包括地址空間隨機(jī)化技術(shù)、指令集隨機(jī)化技術(shù)和多變體執(zhí)行技術(shù)等,介紹了各技術(shù)手段的研究現(xiàn)狀和技術(shù)原理,分析了針對(duì)各類攻擊的效能和存在的不足,最后對(duì)各種技術(shù)手段進(jìn)行總結(jié),并對(duì)軟件動(dòng)態(tài)防御技術(shù)的發(fā)展提出展望。

      關(guān)鍵詞:軟件漏洞;軟件動(dòng)態(tài)防御;技術(shù)原理

      中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A

      1 引言

      在信息安全攻防對(duì)抗中,軟件始終處于重要位置。由于軟件漏洞不可避免,導(dǎo)致軟件防御相對(duì)于攻擊存在嚴(yán)重的不對(duì)等性,而軟件的同質(zhì)化現(xiàn)象更加劇了這一不利局面?,F(xiàn)有的主流防護(hù)技術(shù)仍以靜態(tài)的、被動(dòng)的防護(hù)為主,難以應(yīng)對(duì)日新月異、快速變化的攻擊技術(shù)。

      軟件動(dòng)態(tài)防御作為一種新興的安全理念,其主要思想是以密碼技術(shù)、編譯技術(shù)、動(dòng)態(tài)運(yùn)行時(shí)技術(shù)等為基礎(chǔ),對(duì)程序代碼在控制結(jié)構(gòu)、代碼布局、執(zhí)行時(shí)內(nèi)存布局以及執(zhí)行文件的組織結(jié)構(gòu)等多層面進(jìn)行隨機(jī)性、多樣性和動(dòng)態(tài)性的處理,增加攻擊者發(fā)現(xiàn)漏洞、利用漏洞的成本,有效抵御針對(duì)代碼缺陷的外部代碼攻擊。

      軟件動(dòng)態(tài)防御技術(shù)可以應(yīng)用于軟件生命周期的各個(gè)階段。在編譯與鏈接階段,主要通過修改編譯器實(shí)現(xiàn)動(dòng)態(tài)化,通過添加、變換和去除現(xiàn)有指令,產(chǎn)生具有相同運(yùn)行效果的程序變體。在載入階段,可以通過動(dòng)態(tài)加載機(jī)制實(shí)現(xiàn)軟件動(dòng)態(tài)化,目前主要有地址空間隨機(jī)化、指令集隨機(jī)化等技術(shù)。在運(yùn)行階段,主要通過構(gòu)建二進(jìn)制動(dòng)態(tài)執(zhí)行環(huán)境實(shí)現(xiàn)軟件動(dòng)態(tài)化。本文將分別對(duì)地址空間隨機(jī)化技術(shù),指令集隨機(jī)化技術(shù)和多變體執(zhí)行技術(shù)進(jìn)行介紹,最后做了總結(jié)和展望。

      2 地址空間隨機(jī)化技術(shù)

      2.1 基本原理

      地址空間隨機(jī)化技術(shù)是為了解決緩沖區(qū)溢出攻擊而提出的,也是目前最成功且使用最廣泛的軟件動(dòng)態(tài)化技術(shù)[1,2]。緩沖區(qū)溢出攻擊時(shí),攻擊者需獲知進(jìn)程的地址空間,然后通過計(jì)算,利用溢出操作將程序的執(zhí)行流程跳轉(zhuǎn)到攻擊代碼處[3,4]。地址空間隨機(jī)化技術(shù)的基本思想是對(duì)進(jìn)程組件和對(duì)象的內(nèi)存地址空間分布進(jìn)行隨機(jī)化,使進(jìn)程空間不可預(yù)測,導(dǎo)致攻擊者無法計(jì)算出準(zhǔn)確的跳轉(zhuǎn)位置,從而阻斷攻擊。

      如圖1所示是地址空間隨機(jī)化技術(shù)的示意(以棧溢出攻擊為例),若緩沖區(qū)地址固定,攻擊者可以預(yù)先得出攻擊代碼的地址,將其覆蓋到某函數(shù)返回地址的位置,使函數(shù)返回時(shí)跳轉(zhuǎn)到攻擊代碼的位置執(zhí)行,采用地址空間隨機(jī)化技術(shù),使攻擊代碼的地址偏移隨機(jī)長度,攻擊者無法準(zhǔn)確跳轉(zhuǎn)到攻擊代碼的位置發(fā)起攻擊。

      2.2 技術(shù)手段

      棧、堆、字符串等空間常作為緩沖區(qū)溢出攻擊的對(duì)象,對(duì)這些緩沖區(qū)進(jìn)行隨機(jī)化,發(fā)展出多種地址空間隨機(jī)化技術(shù)。

      ??臻g隨機(jī)化主要是隨機(jī)改變程序中每個(gè)函數(shù)棧幀的大小和位置。改變棧幀的大小是通過在編譯時(shí)定位出函數(shù),并在函數(shù)頭部增加一段隨機(jī)填充棧幀的代碼實(shí)現(xiàn)。改變變量位置則是通過在編譯或加載時(shí)隨機(jī)調(diào)整函數(shù)中變量的順序,使變量地址隨機(jī)改變。棧空間隨機(jī)化效果如圖2所示。

      2.3 研究現(xiàn)狀

      2000年,地址空間隨機(jī)化率先在Linux內(nèi)核PaX補(bǔ)丁中得到成功應(yīng)用[5],通過為Linux內(nèi)核打補(bǔ)丁,實(shí)現(xiàn)了對(duì)?;刂?、主程序基地址以及共享庫加載地址隨機(jī)化。此后,在大部分主要操作系統(tǒng)中都有所使用,包括Windows(2007年首先使用于Windows Vista,后來用于Windows Server 2008和Windows 7)、Linux(2005年以后在Linux內(nèi)核中包含了一部分,在后來的Linux加強(qiáng)版中有更完整的實(shí)現(xiàn))及MacOS(OSX 10.5之后版本)。

      2.4 效能與不足

      地址空間隨機(jī)化技術(shù)可以有效增加緩沖區(qū)溢出攻擊的難度,是阻止內(nèi)存攻擊一種實(shí)用、有效的防御技術(shù),但其自身仍存在一些局限。

      地址猜測。隨機(jī)化的范圍受CPU數(shù)據(jù)總線寬度、對(duì)象組件特點(diǎn)等因素制約,一些組件的位置變化有限,隨機(jī)化范圍不大,攻擊者可以采用暴力猜測的方法猜測跳轉(zhuǎn)地址。

      隨機(jī)化粒度。隨機(jī)化的粒度應(yīng)該盡可能細(xì),以抵御基于相對(duì)地址的攻擊。僅隨機(jī)化進(jìn)程各模塊加載的基地址遠(yuǎn)遠(yuǎn)不夠,還需對(duì)各個(gè)模塊內(nèi)部元素間的間隔進(jìn)行進(jìn)一步隨機(jī)化。

      3 指令集隨機(jī)化技術(shù)

      3.1 基本原理

      指令集隨機(jī)化技術(shù)主要應(yīng)用于防御代碼注入攻擊[6]。指令集隨機(jī)化的思想最早由Thimbleby于1991年提出[7];哥倫比亞大學(xué)的Stephen等人對(duì)Bochs模擬器進(jìn)行了修改[8],構(gòu)建了指令集隨機(jī)化驗(yàn)證系統(tǒng),并證明了指令集隨機(jī)化對(duì)Perl、SQL等解釋性語言的可行性;David H.Ackley等人基于開源的二進(jìn)制翻譯工具Valgrind開發(fā)了隨機(jī)指令集模擬器[9];Wei Hu、Jason Hiser等人基于Strata虛擬機(jī)開發(fā)了能夠?qū)嵱玫闹噶罴S機(jī)化原型系統(tǒng)[10];哥倫比亞大學(xué)的Georgios等人基于二進(jìn)制插裝工具PIN[11]為運(yùn)行于Linux上的x86軟件實(shí)現(xiàn)了指令隨機(jī)化運(yùn)行環(huán)境

      3.2 編譯型語言隨機(jī)化

      編譯型語言指令集隨機(jī)化的對(duì)象是二進(jìn)制可執(zhí)行文件。如圖3所示,描述了編譯型語言程序指令集隨機(jī)化的基本流程。編譯型語言指令隨機(jī)化一般是通過引入加密、解密機(jī)制,對(duì)二進(jìn)制代碼指令進(jìn)行加密操作,生成隨機(jī)化指令集,在指令執(zhí)行前進(jìn)行譯碼操作。指令集隨機(jī)化系統(tǒng)一般包括兩個(gè)部分:一是對(duì)應(yīng)用二進(jìn)制文件進(jìn)行加密操作,生成隨機(jī)化指令集;二是構(gòu)建執(zhí)行環(huán)境,一般是在系統(tǒng)取指令后,執(zhí)行前利用密鑰對(duì)隨機(jī)化指令進(jìn)行譯碼,然后由處理器執(zhí)行。

      3.3 解釋型語言隨機(jī)化

      解釋型語言隨機(jī)化的對(duì)象可以是腳本中的關(guān)鍵字、操作數(shù)、功能調(diào)用等。如圖3所示,描述的是SQL指令隨機(jī)化系統(tǒng)。SQL指令在數(shù)據(jù)庫中間件被隨機(jī)化處理,由數(shù)據(jù)庫服務(wù)器中代理對(duì)收到的經(jīng)隨機(jī)化處理的SQL語句進(jìn)行譯碼,然后把它送給數(shù)據(jù)庫,從而阻止非法表達(dá)式的攻擊。endprint

      3.4 效能與不足

      理論上,指令集代碼隨機(jī)化能夠防范各種代碼注入攻擊,但其自身也存在缺陷。

      為了實(shí)現(xiàn)指令集隨機(jī)化,需要構(gòu)建基于硬件或者軟件的隨機(jī)指令執(zhí)行環(huán)境。對(duì)于硬件環(huán)境需要修改處理器,對(duì)于軟件的環(huán)境則對(duì)性能影響較大;

      指令集隨機(jī)化重點(diǎn)防范代碼注入攻擊,但如果攻擊者能夠訪問本地磁盤,得到二進(jìn)制文件和對(duì)應(yīng)的隨機(jī)化文件,指令集隨機(jī)化系統(tǒng)很容易被破解。

      4 多變體執(zhí)行技術(shù)

      4.1 基本原理

      多變體執(zhí)行技術(shù)是一種能夠在運(yùn)行時(shí)防止惡意代碼執(zhí)行的技術(shù)[12],其原理是通過同時(shí)運(yùn)行多個(gè)語義上等價(jià)的變體,并在同步點(diǎn)比較其行為,在同樣輸入的前提下一旦發(fā)現(xiàn)有不一樣的行為,則可以通過監(jiān)控程序來判斷是否存在攻擊行為。

      4.2 多變體執(zhí)行環(huán)境

      多變體執(zhí)行分為變體生成和監(jiān)控執(zhí)行兩個(gè)部分。變體生成基于編譯器實(shí)現(xiàn),在源代碼中為需要重點(diǎn)保護(hù)的程序核心算法或關(guān)鍵控制過程添加多變體生成編譯指令,編譯生成多樣化代碼的變體;多變體執(zhí)行環(huán)境運(yùn)行多個(gè)變體,在系統(tǒng)調(diào)用上同步并監(jiān)控各個(gè)變體行為,通過比較行為的一致性,發(fā)現(xiàn)潛在的惡意代碼攻擊。

      多變體執(zhí)行環(huán)境由動(dòng)態(tài)運(yùn)行支撐環(huán)境和多變體監(jiān)視器組成,其架構(gòu)如圖5所示。

      多變體監(jiān)視器用于控制變體的執(zhí)行狀態(tài),同時(shí)驗(yàn)證它們是否符合預(yù)先定義的規(guī)則。在用戶啟動(dòng)程序時(shí),執(zhí)行環(huán)境運(yùn)行程序的多個(gè)變體,只要變體不訪問其進(jìn)程空間之外的數(shù)據(jù)或者資源,監(jiān)視器就不會(huì)中斷變體的執(zhí)行;當(dāng)變體請求系統(tǒng)調(diào)用時(shí),監(jiān)視器會(huì)攔截請求并暫停變體執(zhí)行,嘗試同步其它變體的系統(tǒng)調(diào)用,所有變體需要在短時(shí)間內(nèi)執(zhí)行功能相同且參數(shù)等價(jià)的系統(tǒng)調(diào)用;當(dāng)某個(gè)變體因攻擊導(dǎo)致執(zhí)行結(jié)果不同或執(zhí)行超時(shí),監(jiān)視器根據(jù)所配置的策略采取相應(yīng)動(dòng)作,默認(rèn)將終止并重啟所有變體,也可以根據(jù)多數(shù)原則剔除不一致變體。

      4.3 效能與不足

      多變體執(zhí)行中,同一程序必須同時(shí)執(zhí)行多個(gè)變體,監(jiān)控程序要實(shí)時(shí)監(jiān)控每個(gè)變體的運(yùn)行結(jié)果,對(duì)系統(tǒng)性能要求較高,特別是對(duì)于細(xì)粒度的監(jiān)控,性能影響更大。

      5 結(jié)束語

      本文總結(jié)了目前主流的軟件動(dòng)態(tài)防御技術(shù)。目前,軟件動(dòng)態(tài)防御技術(shù)針對(duì)特定攻擊都有很好的防御效果,如何將各項(xiàng)技術(shù)進(jìn)行有機(jī)整合,建立完整的軟件動(dòng)態(tài)防御系統(tǒng)是下一步的研究方向。

      參考文獻(xiàn)

      [1] SHACHAM H, PAGE M, PFAFF B. On the effectiveness of address space randomization [A]. ACM Conference on Computer and Communications Security (CCS), Washington D.C.[C].2004.298-307.

      [2] BHATKAR S, SEKAR R, DUVAMEY D C. Efficient techniques for eomprehensive protection from memory error exploits [A].Proceedings of the 14th USENIX Security Symposium, Baltimore, MD[C].2005.

      [3] 王清.0day 安全:軟件漏洞分析技術(shù)(第二版)[M].北京:電子工業(yè)出版社,2013.

      [4] MARCO-GISBERT H, RIPOLL I. On the effectiveness of NX, SSP, Renew SSP and ALSR against stack buffer overflows [A]. Proceedings of the 13th International Symposium on Network Computing and Applications[C].2014.

      [5] PaXTeam.PaX[EB/OL].http://pax.gmecurity.net, 2001.

      [6] RAY D, LIGATTI J. Defining code-injection attacks [C]. ACM SIGPLAN Notices. ACM, 2012,47(1):179-190.

      [7] THIMBLEBY H. Can viruses ever be useful. [J].Computer Security,1991,10(2):111-114.

      [8] KC G S, KEROMYTIS A D, PREVELAKIS V. Countering code-injection attacks with instruction-set-randomization [A].ACM Computer & Communications Security onference[C].2003.272-280.

      [9] BARRANTES E G, ACKLEY D H, FORREST S. Randomized instruction set emulation[J]. ACM Transactions on Information System Security,2005,8:3-40.

      [10] HU W, HISER J, WILLIAMS D. Secure and practical defense against code injection attacks using software dynamic translation [A]. Proceedings of the 2nd International Conference on Virtual Execution Environment (VEE)[C]. 2006. 2-12.

      [11] LUK C K, COHN R, MUTH R. Building customized program analysis tools with dynamic instrumentation [A]. Proceedings of Programming Language Design and Implementation (PLDI)[C]. 2005:190-200.

      [12] BARRANTES E G, ACKLEY D H, FORREST S. Randomized instruction set emulation to disrupt binary code injection attacks [A]. Conference on Computer and Communications Security [C].2003.281-289.endprint

      猜你喜歡
      技術(shù)原理
      中波廣播發(fā)射天線的原理及維護(hù)技術(shù)探討
      市級(jí)人工影響天氣地面業(yè)務(wù)流程研究
      芻議廣播發(fā)射天線技術(shù)及應(yīng)用
      無人駕駛汽車未來展望
      新能源汽車技術(shù)的技術(shù)原理和優(yōu)缺點(diǎn)探究
      淺談智能化除草機(jī)器人技術(shù)發(fā)展現(xiàn)狀及趨勢展望
      COFDM在現(xiàn)代數(shù)字廣播DRM中的應(yīng)用
      科技視界(2016年11期)2016-05-23 10:05:17
      基于VPN的計(jì)算機(jī)虛擬網(wǎng)絡(luò)技術(shù)及應(yīng)用
      電氣自動(dòng)化測量設(shè)備的技術(shù)原理與應(yīng)用
      科技傳播(2015年24期)2016-03-09 23:55:50
      典型多模型估計(jì)方案的分析與比較
      名山县| 灵宝市| 芜湖县| 德保县| 改则县| 鄂托克旗| 灌阳县| 奇台县| 平昌县| 五河县| 黄大仙区| 聂荣县| 衡山县| 枝江市| 叙永县| 临清市| 大洼县| 余庆县| 宾川县| 永兴县| 牙克石市| 林芝县| 梁河县| 长葛市| 比如县| 宿松县| 信丰县| 行唐县| 综艺| 菏泽市| 乐昌市| 南安市| 柳江县| 安乡县| 寻甸| 巍山| 武胜县| 华宁县| 岐山县| 三原县| 德格县|