• 
    

    
    

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

      基于地址隨機和段隔離的全局偏移表保護方法

      2016-07-19 19:39:43林鍵郭玉東周少皇
      計算機應(yīng)用 2016年7期
      關(guān)鍵詞:寄存器漏洞全局

      林鍵 郭玉東 周少皇

      摘要:在可執(zhí)行和可鏈接格式(ELF)的可執(zhí)行程序中,存在一個全局偏移表(GOT),用于存放引用庫函數(shù)的絕對地址,但是在Linux系統(tǒng)中,GOT解引用和GOT覆寫是兩種比較常用的漏洞利用方法。通過分析GOT的特性,提出并實現(xiàn)了基于地址隨機和段隔離的GOT保護方法。通過修改Linux的可執(zhí)行程序加載器,將與GOT有數(shù)據(jù)指向關(guān)系的節(jié)均加載到隨機內(nèi)存地址;同時使用段隔離技術(shù),對GOT的代碼引用的指令使用一個新的段寄存器進行間接引用。實驗結(jié)果證明,該方法不僅能夠有效地防御針對GOT的漏洞利用方法,而且性能損耗極低,只有平均2.9ms的額外開銷。

      關(guān)鍵詞:

      全局偏移表保護;地址隨機;段隔離;全局偏移表解引用;全局偏移表覆寫

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

      0引言

      Linux是一套免費使用和自由傳播的操作系統(tǒng),廣泛應(yīng)用于文件服務(wù)器、數(shù)據(jù)庫服務(wù)器、Web服務(wù)器、應(yīng)用程序服務(wù)器等服務(wù)器之中。服務(wù)器作為提供基本服務(wù)的設(shè)備,需要保證其提供服務(wù)的可靠性和安全性。形形色色的針對服務(wù)器上的攻擊,已經(jīng)導(dǎo)致諸多嚴重的后果:敏感數(shù)據(jù)丟失或損失、系統(tǒng)受損以及經(jīng)濟損失等。其中,通過挖掘軟件漏洞,利用漏洞進行攻擊是最為常見的攻擊方法。這些漏洞的成因主要是在軟件設(shè)計和實現(xiàn)方面對如何保護系統(tǒng)考慮不周,在開發(fā)實踐方面對消除會導(dǎo)致漏洞的實現(xiàn)瑕疵關(guān)注不夠。攻擊者在發(fā)現(xiàn)軟件產(chǎn)品中的漏洞后,可以迅速開發(fā)出漏洞利用的腳本,繼而使用這些腳本威脅計算機的安全。為了增加漏洞利用的難度,防御者在系統(tǒng)中部署了漏洞利用緩解技術(shù),如地址空間布局隨機化(Address Space Layout Randomization, ASLR)[1]和數(shù)據(jù)執(zhí)行保護(Data Execution Prevention, DEP)[2]等,但是即使在部署了以上緩解技術(shù)的系統(tǒng)中,通過利用全局偏移表(Global Offset Table, GOT),可以繞過這些緩解技術(shù)從而實現(xiàn)漏洞的完美利用。

      全局偏移表,是Linux下可執(zhí)行程序中一個專門的節(jié),用于存放依賴庫函數(shù)的目的地址。因為延遲解析機制,全局偏移表中的庫函數(shù)只有在第一次真正引用時才解析,并在解析后將目的地址寫入全局偏移表,為此,全局偏移表具有可寫權(quán)限。目前Linux雖然采用地址空間布局隨機化技術(shù),對棧、堆、共享庫進行了隨機化,但是可執(zhí)行程序仍然加載到固定內(nèi)存地址,因此全局偏移表仍然加載到固定內(nèi)存地址,因此,全局偏移表是固定內(nèi)存的可寫函數(shù)指針集合。正是由于全局偏移表的這種特性,存在兩種常見的使用全局偏移表的漏洞利用方法:全局偏移表解引用技術(shù)[3-4]和全局偏移表覆寫技術(shù)[5-6]。全局偏移表解引用技術(shù),通過信息泄露漏洞,讀取全局偏移表中已解析的庫函數(shù)地址,可以得到該函數(shù)的真實地址,為此可以計算得到相應(yīng)動態(tài)鏈接庫的基地址,從而繞過地址空間布局隨機化的防護;全局偏移表覆寫技術(shù),通過任意地址寫漏洞,修改全局偏移表中庫函數(shù)的地址,能夠劫持程序控制流。

      針對這些攻擊方式,有研究者提出了一些相應(yīng)的保護方法。完全地只讀重定位(Full Relocation ReadOnly, Full RELRO)[7-8],禁用延遲解析,在鏈接器初始化階段將所有全局偏移表中函數(shù)的值解析為真正函數(shù)的地址,然后將全局偏移表所在內(nèi)存頁標記為只讀權(quán)限,很好地防止了對全局偏移表的改寫。安全全局偏移表(Secure Global Offset Table, SecGOT)[9-10],通過重寫可執(zhí)行和可鏈接格式(Executable and Linkable Format, ELF)[11]文件,并用定制的鏈接器進行鏈接,在鏈接時將全局偏移表移動到隨機的內(nèi)存中;同時修改訪問全局偏移表的指令。

      Full RELRO方法中,全局偏移表仍然位于固定內(nèi)存地址,因此可以對全局偏移表內(nèi)容進行直接讀取,不能防止全局偏移表解引用。在啟動時需對可執(zhí)行程序使用的所有庫函數(shù)進行解析,而函數(shù)符號解析過程相對比較耗時,對程序啟動過程的性能影響較大。SecGOT方法隨機不夠徹底,雖然攻擊者不能立刻知道全局偏移表地址,但是指向全局偏移表的數(shù)據(jù)和代碼引用全局偏移表的指令仍位于固定地址,通過讀取這些固定地址,可以計算得到全局偏移表的地址。針對這兩種方法的不足,本文提出一種新的保護方法:基于地址隨機和段隔離的全局偏移表保護(Global Offset Table protection based Randomization, GOTRand)方法。在可執(zhí)行程序加載時,不僅將全局偏移表加載到隨機的內(nèi)存中,而且將所有對全局偏移表有數(shù)據(jù)指向關(guān)系的節(jié)也加載到隨機內(nèi)存中。同時,引用一個新的段寄存器,利用段的隔離特性,將所有對全局偏移表進行代碼引用的指令修改為使用該新段寄存器進行間接引用。

      1ELF結(jié)構(gòu)

      ELF又稱可執(zhí)行和可鏈接格式,是Linux系統(tǒng)的主要可執(zhí)行文件格式。ELF有詳細的格式規(guī)范[8],此處僅介紹ELF中與GOT有關(guān)聯(lián)的結(jié)構(gòu)。在ELF中,存在一個動態(tài)節(jié),用于提供動態(tài)鏈接所需的信息,其中包含了GOT節(jié)所在地址。GOT節(jié),用于存在全局函數(shù)的目的地址,也就是本文所要重點保護的GOT。

      為了實現(xiàn)對GOT中外部函數(shù)的調(diào)用,在ELF中還定義了一個過程鏈接表(Procedure Linkage Table, PLT)。GOT中的每一個函數(shù)在PLT中都有一個對應(yīng)的項,記GOT第n個函數(shù)在PLT中的對應(yīng)項為PLTn,如第1個函數(shù)在PLT中的對應(yīng)項為PLT1。特殊地,在PLT節(jié)的最開始,定義了一個特殊的表項,記為PLT0,不對應(yīng)任何函數(shù)。PLT對應(yīng)的結(jié)構(gòu)如圖1所示。除了PLT0之外,其余各項都是由三條指令構(gòu)成的程序片段。PLT項中第一條跳轉(zhuǎn)指令(jmp)完成對GOT的代碼引用。

      ELF中,對符號的動態(tài)解析采用了一種延遲加載的方式[9]。如圖2所示,動態(tài)鏈接器初始化后,GOT節(jié)中除了前3項用于特殊用途外,其余的各項均指向到相應(yīng)的PLT項的第2條指令。當首次調(diào)用某函數(shù)時,程序才通過符號解析函數(shù)_dl_runtime_resolve()解析獲取函數(shù)的真正地址,并填入到GOT對應(yīng)項中。

      2GOTRand的設(shè)計

      針對GOT的漏洞利用技術(shù)中,GOT解引用技術(shù)可通過一次任意地址信息泄露將位于固定地址的GOT中的內(nèi)容泄露出來,即得到函數(shù)的真正地址,根據(jù)這個函數(shù)在庫中的相對偏移,可以得到整個動態(tài)庫加載的基地址。GOT覆寫技術(shù),則是通過一次任意地址寫漏洞,將位于固定地址的GOT中的內(nèi)容改寫為惡意代碼的入口點,從而劫持程序的控制流程。

      通過分析兩種漏洞利用技術(shù),可以發(fā)現(xiàn)它們主要利用了GOT的兩個特點:1)GOT中存放的都是函數(shù)指針,且具有可寫權(quán)限,通過修改GOT即可獲取到程序執(zhí)行流程;2)GOT加載到內(nèi)存中的地址是固定的,通過對ELF程序的解析,可以獲取其GOT加載的內(nèi)存地址。第1個特點是由GOT和延遲解析的特性所決定的,對其改進將帶來較大性能損耗。故主要考慮從第2個特點進行改進,對GOT地址進行隨機化,使其地址不再固定。隨機化處理需要保證以下兩點:1)GOT地址改變之后程序依舊能正常運行;2)GOT隨機之后能夠有效防御針對GOT的攻擊方法:GOT解引用和GOT覆寫,保證在隨機后GOT的地址不能被攻擊者間接獲取得到。

      2.1程序的正常運行

      在ELF中,不同的節(jié)之間有一定的指向關(guān)系,通過某個節(jié)可以知道另一個節(jié)的地址。在對某個節(jié)內(nèi)存地址作改變之后,只要能保證節(jié)之間正確的指向關(guān)系,程序依舊能正常運行。

      在動態(tài)鏈接器初始化階段,鏈接器解析ELF文件的程序頭表,獲取程序的動態(tài)節(jié)所在地址,保存到自己的鏈接映射結(jié)構(gòu)link_map中。然后解析動態(tài)節(jié),得到GOT節(jié)所在地址,改寫GOT節(jié)的第1項為link_map的開始地址,第2項為符號解析函數(shù)_dl_runtime_resolve()的入口地址。在程序運行階段,當程序需要調(diào)用某庫函數(shù),通過對應(yīng)的PLT完成對GOT的代碼引用。ELF中各節(jié)的指向關(guān)系及使用時段如圖3所示。

      2.2防御方法的有效性

      GOT地址隨機化之后,需要保證新的GOT地址不能被攻擊者輕易獲取到。除了保證新的GOT地址是隨機的之外,還需要防止攻擊者能夠通過讀取固定地址內(nèi)存中的數(shù)據(jù)計算出GOT所在的地址。經(jīng)分析,主要存在以下兩種獲取途徑:讀取PLT中代碼或者通過讀取指向GOT的節(jié)。

      讀取PLT的代碼,即通過讀取PLT所在地址的數(shù)據(jù),通過反匯編,獲取GOT的地址。假設(shè)第n個外部函數(shù)fn在GOT中的地址0x0804a004,那么PLTn中第1條指令jmp *0x0804a004對應(yīng)的機器碼為FF 25 04 A0 04 08,因此攻擊者只需要讀取PLTn的前6個字節(jié),通過反匯編就可以獲取fn在GOT中的地址。如果想讓攻擊者無法通過反匯編代碼得到引用的地址,引用Intel處理器的段寄存器是最好的選擇。

      Intel處理器中一共有6個段寄存器:CS、DS、ES、SS、FS、GS,其中:CS為代碼段的基地址,DS和ES為數(shù)據(jù)段的基地址,SS為堆棧段的基地址,F(xiàn)S和GS用于特殊目的的基地址。假設(shè)引用的段寄存器為FS,對應(yīng)的段的基地址設(shè)置為0x08040000,那么PLTn中第1條指令將為jmp *fs:0xa004,對應(yīng)的機器碼為64 FF 25 04 A0 00 00,在不知道FS寄存器基地址的情況下,將不會知道GOT所在地址。而FS寄存器的基地址是在內(nèi)核中進行設(shè)置,在用戶態(tài)沒有直接方法可以得到。

      讀取指向GOT的節(jié)是通過ELF的程序頭表、動態(tài)節(jié)和GOT節(jié)的數(shù)據(jù)指向關(guān)系,只要其中任意一個在內(nèi)存中地址是固定的,就可以通過信息泄露,依次向下解析,直到獲取到GOT節(jié)的地址。因為僅僅在動態(tài)鏈接器初始化階段才會根據(jù)程序頭表得到動態(tài)節(jié)地址。故在動態(tài)鏈接器初始化完畢之后,修改程序頭表中的對應(yīng)項,清除程序頭表中的動態(tài)段信息。而動態(tài)節(jié)和GOT節(jié)可以同時加載到隨機內(nèi)存地址中。

      所以,為了保證GOT地址隨機化的有效性,GOT修改后ELF各節(jié)的隨機情況及指向關(guān)系如圖4所示,其中灰色部分的節(jié)都被加載到隨機內(nèi)存。PLT通過段寄存器實現(xiàn)對GOT的間接引用。在動態(tài)鏈接器初始化后,清除程序頭表中的相關(guān)項,而動態(tài)節(jié)和GOT節(jié)均加載到隨機的內(nèi)存地址中。這樣攻擊者就無法通過上述的兩種途徑計算出GOT所在內(nèi)存地址。

      3GOTRand的實現(xiàn)

      本文通過修改Linux內(nèi)核代碼實現(xiàn)GOTRand保護方法的原型系統(tǒng)。GOTRand的總體框架如圖5所示,其中在加載時,通過定制加載器將GOT加載到隨機內(nèi)存,并引入段寄存器;在動態(tài)鏈接器初始化完畢之后,清除程序頭表中關(guān)于動態(tài)段的信息。內(nèi)核對ELF程序的加載函數(shù)為load_elf_binary()。通過修改load_elf_binary()函數(shù)實現(xiàn)定制加載器,在定制加載器中主要增加ELF節(jié)信息的獲取、GOT內(nèi)存地址隨機和段寄存器的引入3個模塊。

      3.1GOT地址的隨機

      GOT地址隨機主要是將GOT節(jié)和動態(tài)節(jié)加載到隨機的內(nèi)存地址。動態(tài)節(jié)中的數(shù)據(jù)不需要進行修改,因此只需要給予只讀權(quán)限。GOT節(jié)中數(shù)據(jù)需要在符號解析完成之后將函數(shù)的真正地址寫入GOT中,因此需要有可讀可寫權(quán)限。根據(jù)兩個節(jié)的內(nèi)存屬性的不同,申請兩頁隨機的空閑頁:只讀頁和可讀可寫頁。動態(tài)節(jié)加載到只讀頁中,GOT節(jié)加載到可讀可寫中。

      進程虛擬地址空間預(yù)留了多個空洞。其中在32位程序中,程序的加載基地址通常為0x08048000,0x08048000地址之下的內(nèi)存空間通常都不會被使用到,但是0x08048000以下的內(nèi)存也不是全部都能夠使用的。Linux內(nèi)核為了防御空指針解引用漏洞,引入了mmap_min_addr機制[12],不允許小于mmap_min_addr值的地址映射內(nèi)存。mmap_min_addr的值可以由用戶配置,在默認的Linux發(fā)行版中,通常設(shè)置為65536,即低64MB內(nèi)存不能使用。所以選擇在mmap_min_addr到0x08048000地址隨機申請兩頁空間,如圖6所示。

      3.2段寄存器的引入

      通過分析當前Linux系統(tǒng)對段寄存器的使用情況,發(fā)現(xiàn)在32位程序中,CS、DS、ES、SS用作基本的段寄存器使用,其基地址均設(shè)置為0,GS用于指向線程局部存儲(Thread Local Storage, TLS)區(qū)域,而FS寄存器一般沒有。在64位程序中,CS、DS、ES、SS寄存器的基地址在硬件上被強制為0值,段基地址僅對FS和GS寄存器來說才有意義,F(xiàn)S被用于指向線程局部存儲(TLS)區(qū)域,而GS寄存器沒有被使用。所以,在當前Linux系統(tǒng)的實現(xiàn)中,無論是32位還是64位程序,都剛好有一個空閑未用的段寄存器,剛好可以被用于GOTRand中。在有了空閑段寄存器后,隨機地為其設(shè)置一個段寄存器基地址,然后對PLT節(jié)代碼進行補丁,對GOT使用新的段寄存器進行訪問。

      3.3動態(tài)段信息的清除

      在動態(tài)鏈接器初始化完畢之后,程序會默認跳轉(zhuǎn)到可執(zhí)行程序入口點開始執(zhí)行。這里需要對動態(tài)段信息進行清除,因此需要在鏈接器初始化完畢之后,需要內(nèi)核接管程序的控制權(quán)。通過對動態(tài)鏈接器初始化部分代碼的分析,發(fā)現(xiàn)程序?qū)OT的第一次寫操作為向GOT的第1項寫入自己的鏈接映射結(jié)構(gòu)link_map的地址。而link_map結(jié)構(gòu)建立好之后,鏈接器已經(jīng)不需要通過程序頭表中動態(tài)段的信息。根據(jù)鏈接器的這個特性,采用寫保護的方法來獲取程序的控制權(quán)。在內(nèi)核加載ELF程序時將GOT所在的內(nèi)存頁屬性標記為不可寫。當動態(tài)鏈接器初始化過程中向GOT進行寫操作的時候,將會導(dǎo)致處理器產(chǎn)生頁故障(Page Fault)異常,將會執(zhí)行內(nèi)核的頁故障處理函數(shù),從而內(nèi)核控制了程序的控制權(quán)。

      按照現(xiàn)有Linux內(nèi)核的頁故障處理流程,對GOT的寫入異常將會被判定為用戶態(tài)的非法訪問操作,從而進行非法訪問頁故障處理。在非法訪問頁故障處理中通過判斷CR2寄存器中保存的異常虛擬地址是否為該進程的GOT的第1項;同時根據(jù)異常錯誤代碼的W/R位判斷是否為寫異常,可以判定動態(tài)鏈接器初始化是否完畢。如果動態(tài)鏈接器初始化完畢,則清除程序頭表中的動態(tài)段信息;同時將GOT所在內(nèi)存標記為可讀可寫。

      4測試

      在Debian GNU/Linux 6 i686發(fā)行版上通過一個已知漏洞的攻擊實驗,驗證了GOTRand的防御效果,并從理論上比較了幾種已有保護方法的防御效果。另外,通過使用SPEC CPU2006測試機對GOTRand進行性能測試。結(jié)果顯示,GOTRand不僅能有效防御GOT解引用和GOT覆寫攻擊,而且性能損耗很低。

      4.1防御效果測試

      實驗選擇了一個公開了漏洞利用程序的漏洞程序進行測試。選擇的漏洞程序為Nginx HTTP服務(wù)器,對應(yīng)的漏洞號為CVE20132028[13]。在Nginx HTTP服務(wù)器1.3.91.4.0版本的程序中,在ngx_http_parse_chunked()函數(shù)中存在整型溢出漏洞。在metasploit的模塊中,有對該漏洞進行完美利用的利用程序[14]。

      經(jīng)過測試,metasploit的利用程序能夠在默認的debian發(fā)行版中成功地獲取shell,但是,在GOTRand系統(tǒng)中,不能成功獲取shell。

      分析該漏洞利用程序,發(fā)現(xiàn)該利用程序使用的Return Oriented Programming(ROP)[15]鏈中使用GOT解引用的方法繞過ASLR,其中假定了localtime_r函數(shù)在GOT中的地址默認為0x080b4128,如圖7所示,但是在GOTRand中GOT加載到隨機地址,所以讀取到的地址0x080B4128中的內(nèi)容并不是函數(shù)localtime_r的地址,整個漏洞利用也就失敗。

      本文還比較了SecGOT和Full RELRO對于GOT解引用的防御效果。SecGOT在動態(tài)鏈接器初始化時,對GOT地址進行了隨機;但是攻擊者可以先對PLT進行解引用,即可得到GOT所在地址,再對GOT進行解引用,因此只需要構(gòu)造一個更加復(fù)雜一點的ROP[12]鏈即可成功利用。GOT解引用只涉及到GOT的讀操作,因此Full RELRO完全沒有防御效果。

      對于GOT覆寫劫持程序控制流方法,需要知道GOT所在地址并且具有可寫權(quán)限。在SecGOT中,GOT所在地址可以間接得到,因此不能防御GOT覆寫攻擊。在Full RELRO中,GOT不可改寫,因此不能進行GOT覆寫。而在GOTRand中,因為段隔離機制,沒有方法能獲取GOT所在地址,因此也不能進行GOT覆寫。3種保護方法的防御效果及是否需要對程序進行重新編譯對比結(jié)果如表1所示。

      4.2性能測試

      實驗選用SPEC CPU2006測試集[16]進行測試。因為SecGOT未公布其相關(guān)代碼或者工具,沒法對其進行測試。所以這里只測試比較了Full RELRO和GOTRand運行的額外開銷,結(jié)果如表2所示。通過測試集中的12個測試程序測試發(fā)現(xiàn),GOTRand增加的運行開銷極小,平均只有0.0029s,遠小于Full RELRO的額外開銷。

      5結(jié)語

      在現(xiàn)有的Linux系統(tǒng)中,GOT解引用和GOT覆寫是兩種常用的漏洞利用方法。通過GOT解引用,可以獲取GOT中庫函數(shù)的真正地址,從而繞過地址空間布局隨機化的保護機制;通過GOT覆寫,可以劫持程序的控制流程。本文提出了一種基于地址隨機和段隔離的全局偏移表保護方法,通過將動態(tài)節(jié)和GOT節(jié)均加載到隨機內(nèi)存中,同時對全局偏移表的代碼引用使用段隔離保護,很好地保護了全局偏移表中的函數(shù)指針,能夠有效地緩解針對全局偏移表的漏洞利用。因為段寄存器是Intel處理器所特有的寄存器,所以該方法只適用于Intel架構(gòu)的ELF程序的全局偏移表保護。下一步將其他處理器的架構(gòu)進行研究,提出更加通用的保護方法。

      參考文獻:

      [1]

      TEAM PAX. PaX address space layout randomization [EB/OL]. [20030315]. https://pax.grsecurity.net/docs/aslr.txt.

      [2]

      Wikipedia. Data execution prevention [EB/OL]. [20150312]. https://en.wikipedia.org/wiki/Data_Execution_Prevention.

      [3]

      MARCOGISBERT H, RIPOLL I. On the effectiveness of fullASLR on 64bit Linux [EB/OL]. [20151120]. http://cybersecurity.upv.es/attacks/offset2lib/offset2libpaper.pdf.

      [4]

      ROGLIA G F, MARTIGNONI L, PALEARI R, et al. Surgically returning to randomized lib(c) [C]// ACSAC09: Proceedings of the 2009 Annual Computer Security Applications Conference. Piscataway, NJ: IEEE, 2009: 60-69.

      [5]

      Open Security Group. How to hijack the global offset table with pointers for root shells [EB/OL]. [20150404]. http://www.opensecurity.org/texts/6.

      [6]

      DAVI L, SADEGHI A R, LEHMANN D, et al. Stitching the gadgets: on the ineffectiveness of coarsegrained controlflow integrity protection [C]// SEC14: Proceedings of the 23rd USENIX Security Symposium. Berkeley, CA: USENIX Association, 2014: 401-416.

      [7]

      KLEIN T. A Bug Hunters Diary: a Guided Tour Through the Wilds of Software Security [M]. San Francisco: No Starch Press, 2011:183-185.

      [8]

      KLEIN T. RELROA (not so well known) memory corruption mitigation technique [EB/OL]. [20150221]. http://tkblog.blogspot.jp/2009/02/relronotsowellknownmemory.html.

      [9]

      ZHANG C, DUAN L, WEI T, et al. SecGOT: secure global offset tables in ELF executables [C]// Proceedings of the 2013 International Conference on Computer Science and Electronics Engineering. Amsterdam: Atlantis Press, 2013: 995-998.

      [10]

      XU J, KALBARCZYK Z, IYER R K. Transparent runtime randomization for security [C]// Proceedings of the 22nd International Symposium on Reliable Distributed Systems. Piscataway, NJ: IEEE, 2003: 260-269.

      [11]

      Tool Interface Standards Committee. Executable and Linkable Format (ELF) [EB/OL]. [20150401]. http://www.cs.cmu.edu/afs/cs/academic/class/15213f00/docs/elf.pdf.

      [12]

      ARGYROUDIS P, GLYNOS D. Protecting the core: kernel exploitation mitigations [EB/OL]. [20150517]. http://census.gr/media/bheu2011wp.pdf.

      [13]

      CVE Details. Vulnerability details: CVE20132028 [EB/OL]. [20130719]. http://www.cvedetails.com/cve/20132028.

      [14]

      MACMANUS G, HAL, SAELO. Nginx HTTP Server 1.3.91.4.0 chunked encoding stack buffer overflow [EB/OL]. [20151024]. http://www.rapid7.com/db/modules/exploit/linux/http/nginx_chunked_size.

      [15]

      ROEMER R, BUCHANAN E, SHACHAM H, et al. Returnoriented programming: systems, languages, and applications [J]. ACM Transactions on Information and System Security, 2012, 15(1): Article No. 2.

      [16]

      HENNING J L. SPEC CPU2006 benchmark descriptions [J]. ACM SIGARCH Computer Architecture News, 2006, 34(4): 1-17.

      猜你喜歡
      寄存器漏洞全局
      漏洞
      Cahn-Hilliard-Brinkman系統(tǒng)的全局吸引子
      量子Navier-Stokes方程弱解的全局存在性
      Lite寄存器模型的設(shè)計與實現(xiàn)
      落子山東,意在全局
      金橋(2018年4期)2018-09-26 02:24:54
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      三明:“兩票制”堵住加價漏洞
      漏洞在哪兒
      兒童時代(2016年6期)2016-09-14 04:54:43
      高鐵急救應(yīng)補齊三漏洞
      新思路:牽一發(fā)動全局
      利辛县| 河北区| 阳原县| 淄博市| 兰州市| 龙泉市| 阿瓦提县| 揭东县| 抚州市| 屏东县| 吉隆县| 贡嘎县| 定南县| 长治县| 石景山区| 甘泉县| 江油市| 浪卡子县| 永年县| 兖州市| 太湖县| 金山区| 灯塔市| 巴林左旗| 双辽市| 玛多县| 崇义县| 镇平县| 资阳市| 泗阳县| 成都市| 宜宾县| 阿合奇县| 蒙山县| 桑植县| 三亚市| 广汉市| 普兰店市| 资阳市| 德江县| 沙田区|