亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Linux內(nèi)核漏洞異步觸發(fā)模型的安全分析

        2017-11-20 11:07:17秦曉軍
        關(guān)鍵詞:內(nèi)核寄存器漏洞

        劉 松,秦曉軍

        (江南計(jì)算技術(shù)研究所,江蘇 無錫 214083)

        Linux內(nèi)核漏洞異步觸發(fā)模型的安全分析

        劉 松,秦曉軍

        (江南計(jì)算技術(shù)研究所,江蘇 無錫 214083)

        近年來,由于Linux系統(tǒng)中越來越多防御機(jī)制(例如NX,ASLR,Canary)的出現(xiàn),用戶態(tài)漏洞的利用已經(jīng)十分困難,而Linux內(nèi)核漏洞逐漸受到關(guān)注。內(nèi)核內(nèi)存破壞是一種典型的內(nèi)核攻擊技術(shù),攻擊者通過特定的函數(shù)調(diào)用控制內(nèi)核內(nèi)存,進(jìn)而達(dá)到權(quán)限提升的目的。SMEP是一種有效抑制內(nèi)核內(nèi)存破壞攻擊的安全機(jī)制,使傳統(tǒng)的ret2usr內(nèi)核攻擊方法失效?,F(xiàn)有兩種繞過SMEP機(jī)制的技術(shù)途徑,分別為ret2dir技術(shù)和清除SMEP標(biāo)志技術(shù),均具有各自的局限性。文中發(fā)現(xiàn)了一種繞過SMEP安全機(jī)制的異步觸發(fā)內(nèi)核漏洞新模型,該模型利用函數(shù)的間接尋址原理異步觸發(fā)漏洞,對(duì)于內(nèi)存破壞的內(nèi)核漏洞更具有普遍適用性。應(yīng)用VMware虛擬機(jī)測(cè)試Ubuntu 16上的netfilter漏洞,并利用內(nèi)核崩潰分析工具和VMware遠(yuǎn)程調(diào)試工具分析崩潰現(xiàn)場(chǎng)和調(diào)試內(nèi)核,以驗(yàn)證異步觸發(fā)模型的有效性。實(shí)驗(yàn)結(jié)果表明,所發(fā)現(xiàn)的新模型是一種危害嚴(yán)重的漏洞利用模型。

        Linux內(nèi)核漏洞;SMEP;間接尋址;異步觸發(fā)模型

        1 背 景

        針對(duì)緩沖區(qū)溢出普遍存在的、威脅巨大的網(wǎng)絡(luò)安全漏洞,誕生了多種安全緩解機(jī)制。用戶態(tài)緩沖區(qū)溢出漏洞的利用需要繞過NX,ASLR,PIE,RELRO與Canary等多種安全機(jī)制[1-2],因此變得非常困難。與之相比,內(nèi)核漏洞的安全機(jī)制發(fā)展還不健全,因此更容易被攻擊者利用[3-4]。在Linux系統(tǒng)中,內(nèi)核擁有大量的代碼,并且隨著版本不斷變化,從2005年發(fā)布的2.6.12版本到2015年發(fā)布的4.2版本,十年間經(jīng)歷了51個(gè)大版本。此外,內(nèi)核擁有多個(gè)子系統(tǒng),因此存在更大的攻擊面。如圖1所示,近年來的內(nèi)核漏洞受到關(guān)注度越來越高[5]。

        內(nèi)核漏洞分為多種類型,包括內(nèi)核棧溢出、內(nèi)核堆溢出、空指針引用、信息泄露、條件競(jìng)爭(zhēng)、數(shù)組越界(OOB)、整數(shù)溢出等[6]。傳統(tǒng)的內(nèi)核漏洞都是通過ret2usr被利用的,此技術(shù)通過修改內(nèi)核函數(shù)指針,將程序執(zhí)行流轉(zhuǎn)交給方便控制的用戶態(tài),進(jìn)而實(shí)現(xiàn)權(quán)限提升的目的。針對(duì)這些內(nèi)核漏洞和ret2usr的利用方式,誕生了相應(yīng)的安全緩解機(jī)制。其中,mmap_min_addr機(jī)制禁止mmap函數(shù)在低地址的映射,使得空指針攻擊無效[7];針對(duì)內(nèi)核棧溢出攻擊,提出棧保護(hù)機(jī)制;內(nèi)核代碼段和數(shù)據(jù)段分別設(shè)置為只讀和不可執(zhí)行;限制kallsyms、dmesg、slabinfo等關(guān)鍵信息的訪問權(quán)限,降低了內(nèi)核信息泄露的風(fēng)險(xiǎn);SMEP(Supervisor Mode Execute Prevention)機(jī)制阻止代碼由內(nèi)核進(jìn)入用戶態(tài)空間;SMAP(Supervisor Mode Access Prevention)機(jī)制阻止高權(quán)限進(jìn)程對(duì)用戶態(tài)數(shù)據(jù)的訪問;針對(duì)內(nèi)核ROP攻擊,Pax開發(fā)了內(nèi)核地址隨機(jī)化(Kernel Address Space Layout Randomization,KASLR)的防御機(jī)制[8]。

        圖1 Linux內(nèi)核漏洞數(shù)量變化趨勢(shì)

        雖然上述安全機(jī)制極大提高了內(nèi)核漏洞被成功利用的難度,但也研究發(fā)現(xiàn)了一種通過異步觸發(fā)內(nèi)核漏洞的利用模型,根據(jù)內(nèi)核函數(shù)間接尋址的原理,其能夠繞過除SMAP和KASLR的多種安全機(jī)制,相比傳統(tǒng)內(nèi)核漏洞的利用方式更具有普遍性和適用性。

        2 內(nèi)核漏洞利用技術(shù)

        2.1ret2usr攻擊與防御

        Linux內(nèi)核漏洞往往會(huì)導(dǎo)致某些內(nèi)核內(nèi)存被修改,甚至?xí)斐赡撤N范圍的任意地址寫,例如OOB、UAF等[9-10]。根據(jù)修改形式,任意地址寫可以分為三種:任意地址內(nèi)容加,如CVE-2013-2094漏洞;任意地址內(nèi)容減,如Ubuntu 16.04中netfilter組件的OOB漏洞可以導(dǎo)致某些地址(起始地址為0的32位地址)內(nèi)容減一;結(jié)構(gòu)體中的內(nèi)容被任意替換,如CVE-2016-0728的use-after-free漏洞。

        在任意地址寫的情況下,返回用戶攻擊(return to user,ret2usr)成為一種常用的內(nèi)核漏洞利用技術(shù)。在這種攻擊中,攻擊者修改某個(gè)內(nèi)核函數(shù)(或者數(shù)據(jù)指針)為某個(gè)用戶態(tài)空間地址,并在此用戶空間填充權(quán)限提升載荷。當(dāng)觸發(fā)此內(nèi)核函數(shù)時(shí),執(zhí)行流將會(huì)重定位到用戶態(tài)空間,并且執(zhí)行權(quán)限提升載荷,一般是通過commit_creds(prepare_kernel_cred(0))來實(shí)現(xiàn)的。由于程序是在內(nèi)核態(tài)下執(zhí)行的,因此可以成功將普通用戶權(quán)限提升為超級(jí)用戶。

        事實(shí)上,ret2usr攻擊利用了內(nèi)核空間與用戶空間沒有絕對(duì)隔離的特點(diǎn),而且內(nèi)核對(duì)整個(gè)地址空間有絕對(duì)的訪問和執(zhí)行權(quán)限。為了抵御這種攻擊,誕生了一種被稱為SMEP的安全機(jī)制。SMEP是一種內(nèi)核隔離機(jī)制,阻止代碼從高權(quán)限狀態(tài)進(jìn)入用戶態(tài)空間。在現(xiàn)代Intel處理器上,CR4寄存器包含SMEP安全機(jī)制開關(guān)的標(biāo)志,并且內(nèi)存區(qū)域包含supervisor標(biāo)志內(nèi)存是否可被特權(quán)進(jìn)程執(zhí)行。當(dāng)SMEP標(biāo)志位被設(shè)置時(shí),會(huì)阻止在內(nèi)核態(tài)執(zhí)行的程序在不含supervisor標(biāo)志的內(nèi)存區(qū)域執(zhí)行代碼,這種機(jī)制使得ret2usr的攻擊無效。

        2.2ret2dir技術(shù)

        為了繞過SMEP安全機(jī)制的防御,產(chǎn)生了兩種不同的繞過手段,ret2dir就是其中一種利用技術(shù),該技術(shù)利用了physmap的內(nèi)存管理機(jī)制[11]。

        physmap是一塊連續(xù)的虛擬內(nèi)核內(nèi)存空間,為了提高效率,該空間地址和RAM地址直接映射。當(dāng)physmap空間小于RAM空間時(shí),physmap到RAM空間的映射關(guān)系為滿射,即對(duì)于任何RAM地址都存在physmap虛擬地址與之對(duì)應(yīng)。另一方面,用戶空間的虛擬地址也會(huì)映射到RAM。因此存在兩個(gè)虛擬內(nèi)存地址映射到同一個(gè)RAM地址的情況,即式(1)。

        (1)

        基于此,如果存在映射到相同物理地址的內(nèi)核-用戶虛擬地址對(duì),只需將執(zhí)行流跳轉(zhuǎn)到內(nèi)核空間,即可執(zhí)行對(duì)應(yīng)的用戶態(tài)空間代碼,而且不會(huì)觸發(fā)SMEP保護(hù)機(jī)制。如圖2所示,攻擊者首先利用physmap機(jī)制尋找可執(zhí)行的內(nèi)核-用戶地址對(duì)(X1,X2),并將內(nèi)核函數(shù)地址X覆蓋為X1,同時(shí)在相對(duì)應(yīng)的用戶態(tài)空間X2裝載權(quán)限提升載荷。當(dāng)觸發(fā)內(nèi)核函數(shù)X時(shí),程序首先跳轉(zhuǎn)到內(nèi)核地址,由于此內(nèi)核地址與用戶態(tài)地址共享同一塊物理內(nèi)存,因此實(shí)際上執(zhí)行實(shí)現(xiàn)權(quán)限提升載荷。

        圖2 ret2dir利用

        ret2dir技術(shù)巧妙地利用physmap的數(shù)據(jù)共享原理,可以完全欺騙軟硬件層面的內(nèi)核隔離策略,如SMEP安全機(jī)制。在文獻(xiàn)[12-13]中,ret2dir技術(shù)應(yīng)用于基于碰撞技術(shù)控制內(nèi)核對(duì)象的內(nèi)核use-after-free漏洞的利用上。然而,該技術(shù)也存在很大的局限。對(duì)于32位系統(tǒng),由于physmap空間與RAM大小相近,因此很可能無法滿足式1;而對(duì)于內(nèi)存較大的系統(tǒng),尋找內(nèi)核-用戶對(duì)會(huì)浪費(fèi)大量時(shí)間。

        2.3清除SMEP標(biāo)志

        通過內(nèi)核ROP清除CR4寄存器中的SMEP標(biāo)志位,然后通過正常的ret2usr技術(shù)提升權(quán)限,是另外一種繞過SMEP的方式。與用戶態(tài)空間的ROP技術(shù)類似,內(nèi)核ROP通過尋找內(nèi)核中可執(zhí)行的gadget指令構(gòu)成ROP鏈,實(shí)現(xiàn)清除SMEP標(biāo)志位的目的。

        為了控制ROP鏈,內(nèi)核ROP技術(shù)需要修改rsp寄存器到用戶態(tài)空間,并構(gòu)造一個(gè)合適的偽棧來串聯(lián)所有g(shù)adget指令,一般通過以下三種方式更改棧頂rsp,此類指令為xchg_gadget。其中reg為修改rsp所需的寄存器,且此寄存器的值必須為用戶態(tài)地址。

        (1)mov rsp, reg; ret

        (2)addrsp, xxx; ret

        (3)xchg rsp, reg; ret

        假設(shè)被修改的內(nèi)核地址X為某個(gè)函數(shù)func的指針,例如漏洞CVE-2013-1763由于越界訪問,修改函數(shù)dump的指針為用戶態(tài)地址,假設(shè)為addr_usr,即滿足式(2)。

        &func=addr_usr

        (2)

        如果將addr_user地址裝載xchg_gadget地址,并在用戶態(tài)空間構(gòu)造偽棧,則可通過addr_usr作為跳板實(shí)現(xiàn)漏洞利用。

        而如果被修改的內(nèi)核地址X為某個(gè)函數(shù)地址,例如最新的Ubuntu 16系統(tǒng)上netfilter子系統(tǒng)中的OOB內(nèi)核漏洞,如果直接將函數(shù)地址修改為用戶態(tài)地址,則訪問該函數(shù)會(huì)觸發(fā)SMEP機(jī)制;而直接將X修改為xchg_gadget,又不存在合適的轉(zhuǎn)換條件。因此,傳統(tǒng)的通過清除SMEP標(biāo)志的技術(shù),只能繞過一部分內(nèi)核漏洞。發(fā)現(xiàn)了一種通過間接尋址,異步觸發(fā)內(nèi)核漏洞的利用方式,對(duì)于修改函數(shù)地址的漏洞也有效,且更具普遍性。

        3 異步觸發(fā)模型

        提出了一種異步觸發(fā)內(nèi)核漏洞的模型,該模型基于Linux內(nèi)核函數(shù)的間接尋址結(jié)構(gòu),通過該模型能夠繞過SMEP機(jī)制,并實(shí)現(xiàn)權(quán)限提升。

        3.1間接尋址結(jié)構(gòu)

        無論是任意地址寫漏洞還是UAF對(duì)象替換漏洞,攻擊者往往選擇修改一個(gè)內(nèi)核函數(shù)。而且關(guān)于某個(gè)設(shè)備或者對(duì)象的操作函數(shù),往往全部存儲(chǔ)在某個(gè)函數(shù)結(jié)構(gòu)體中。例如ptmx設(shè)備的函數(shù)全部保存在ops結(jié)構(gòu)體中;內(nèi)核對(duì)象keyring的操作函數(shù)全部保存在結(jié)構(gòu)體key_type中。

        以ptmx設(shè)備為例,當(dāng)攻擊者能夠做到任意地址寫時(shí),通過修改ptmx_fops中某些函數(shù)的值為用戶態(tài),例如release函數(shù),則可以通過調(diào)用關(guān)閉ptmx設(shè)備的函數(shù),將執(zhí)行流轉(zhuǎn)換到用戶態(tài)空間,實(shí)現(xiàn)ret2usr的利用,見圖3。

        圖3 ptmx間接尋址結(jié)構(gòu)

        而對(duì)于添加了SMEP機(jī)制的操作系統(tǒng),直接修改ptmx_fops中的函數(shù),會(huì)觸發(fā)SMEP保護(hù)機(jī)制。類似于CVE-2013-0176漏洞,需要通過修改某個(gè)函數(shù)的指針,如release函數(shù)的指針地址。提出了一種更為通用的方法,通過修改ptmx_fops地址間接更改ptmx_fops結(jié)構(gòu)體中所有函數(shù)的地址,如式(3)。

        release=ptmx_ops+offset

        (3)

        此時(shí)調(diào)用設(shè)備的第一個(gè)函數(shù),就會(huì)觸發(fā)內(nèi)核漏洞,對(duì)于設(shè)備ptmx的操作首先會(huì)調(diào)用open函數(shù)。由于通過漏洞修改的地址與觸發(fā)漏洞的地址不是同一地址,而是存在包含關(guān)系,因此稱這種基于間接尋址關(guān)系的漏洞觸發(fā)模式為異步觸發(fā)。

        3.2控制寄存器

        為了通過ROP實(shí)現(xiàn)漏洞利用,需要將內(nèi)核態(tài)地址的寄存器rsp修改到用戶態(tài)地址,只有這樣在gadget返回后才能夠繼續(xù)控制程序。因此首先需要尋找與rsp交換的寄存器reg,此寄存器必須滿足以下兩個(gè)條件:

        (1)存在關(guān)于reg的xchg_gadget;

        (2)reg存儲(chǔ)的地址可以被mmap,即不能違反mmap_min_addr的防御限制。

        以設(shè)備ptmx為例,通過分析內(nèi)核代碼可知相關(guān)函數(shù)全部保存在結(jié)構(gòu)體ptmx_fops中,而后者又保存在ptmx_cdev中。通過在ptmx_cdev中修改ptmx_fops的地址為用戶態(tài),在調(diào)用設(shè)備ptmx的任意地址時(shí),則會(huì)導(dǎo)致崩潰。通過分析崩潰現(xiàn)場(chǎng),獲取漏洞函數(shù)間接尋址的匯編代碼細(xì)節(jié),并根據(jù)上述兩個(gè)約束條件找到合適的寄存器組織xchg_gadget。通過內(nèi)核文件解壓并提取類似于rsp和上述寄存器的gadget地址,即可完成rsp寄存器由內(nèi)核態(tài)陷入用戶態(tài)的過程。

        3.3構(gòu)造偽棧

        通過在用戶態(tài)構(gòu)造偽棧,依次實(shí)現(xiàn)清除SMEP標(biāo)志位和權(quán)限提升兩個(gè)功能。清除SMEP通過如圖4所示的gadget鏈來實(shí)現(xiàn),由于SMEP標(biāo)志位保存在第20位,因此通過cr4^0xfffff值覆蓋原寄存器即可清除SMEP標(biāo)志位。之后,則可以將控制流轉(zhuǎn)移到權(quán)限提升代碼中,通過傳統(tǒng)的ret2usr方式利用。

        gadget地址尋找通過內(nèi)核解壓與gadget發(fā)現(xiàn)兩種工具實(shí)現(xiàn)。ROPgadget是一個(gè)gadget收集與快速查找的工具,不僅能夠發(fā)現(xiàn)正常模式的gadget,還能夠發(fā)現(xiàn)非ret結(jié)尾的gadget。

        圖4 清除SMEP

        3.4提權(quán)與狀態(tài)恢復(fù)

        在關(guān)閉SMEP標(biāo)志位后,權(quán)限提升則通過經(jīng)典的兩個(gè)函數(shù)實(shí)現(xiàn),可以成功修改為超級(jí)用戶,如下所示:

        void_attribute_((regparm(3)))payload();{

        commit_creds(prepare_kernel_cred(0);

        }

        狀態(tài)恢復(fù)是為了提高漏洞利用的穩(wěn)定性,因?yàn)樵诼┒蠢眠^程中寄存器經(jīng)歷了內(nèi)核態(tài)和用戶態(tài)的相互轉(zhuǎn)換,因此需要保證段寄存器的穩(wěn)定。

        4 實(shí)驗(yàn)驗(yàn)證

        通過Ubuntu 16上的netfilter漏洞驗(yàn)證異步觸發(fā)模型的有效性,實(shí)驗(yàn)需要多種工具的支持[14],包括Linux本地調(diào)試內(nèi)核崩潰的工具crashdump,Linux特定版本的內(nèi)核符號(hào)表dbgsym,解壓內(nèi)核的腳本extract-vmlinux,通過正則表達(dá)式尋找合適的內(nèi)核gadget的工具ROPgadget。

        實(shí)驗(yàn)選定版本為Ubuntu 16-4.4.0-21-generic系統(tǒng),通過內(nèi)核崩潰分析和VMware遠(yuǎn)程調(diào)試兩種方法分析漏洞,前者能夠最高效地分析崩潰現(xiàn)場(chǎng),后者能夠動(dòng)態(tài)調(diào)試內(nèi)核。

        4.1無SMEP分析

        首先分析在關(guān)閉SMEP機(jī)制時(shí)的利用,在開機(jī)選項(xiàng)手動(dòng)添加nosmep指令,即可關(guān)閉SMEP。此漏洞在compat_release_entry函數(shù)存在漏洞,如果參數(shù)滿足一定條件,即可對(duì)參數(shù)地址的內(nèi)容進(jìn)行連續(xù)的兩次減一操作。

        將參數(shù)設(shè)為ptmx_fops中的release函數(shù)地址(0xffffffff821de448)附近,通過0xffffff/2次操作即可將其修改為用戶態(tài)地址(0xff821de448)。同時(shí)在用戶態(tài)地址裝載權(quán)限提升載荷,即可實(shí)現(xiàn)權(quán)限提升,成功利用漏洞。

        4.2間接尋址結(jié)構(gòu)

        開啟SMEP安全機(jī)制后,執(zhí)行原POC會(huì)觸發(fā)SMEP機(jī)制,導(dǎo)致系統(tǒng)崩潰。根據(jù)異步觸發(fā)模型,需要確定tty_release的間接尋址結(jié)構(gòu)。通過VMware遠(yuǎn)程調(diào)試和內(nèi)核源碼分析可以得到圖3所示的數(shù)據(jù)結(jié)構(gòu),并通過內(nèi)核崩潰文件分析ptmx_fops的地址。

        通過分析可知,ptmx_cdev中保存的ptmx_fops的地址為0xffffffff821de508,將此地址修改為用戶態(tài)地址即可實(shí)現(xiàn)漏洞異步觸發(fā)模式。

        4.3寄存器確定

        當(dāng)修改ptmx_fops地址為用戶態(tài)地址時(shí),第一個(gè)被調(diào)用的地址即會(huì)觸發(fā)漏洞,在本漏洞中為open。將open的地址(用戶態(tài)地址)內(nèi)容設(shè)為某個(gè)不可執(zhí)行的內(nèi)核態(tài)地址,這時(shí)不會(huì)觸發(fā)SMEP保護(hù)機(jī)制,但是會(huì)導(dǎo)致系統(tǒng)崩潰。

        通過crashdump工具分析崩潰文件,可以得到崩潰時(shí)的函數(shù)調(diào)用鏈和崩潰前的寄存器狀態(tài),如圖5所示。

        圖5 漏洞崩潰現(xiàn)場(chǎng)

        由于open地址無效,因此觸發(fā)page_fault函數(shù)可能導(dǎo)致系統(tǒng)崩潰,此時(shí)寄存器rbx的值為用戶態(tài)(0xff821de3e0),且通過上層函數(shù)匯編代碼分析,rbx寄存器存儲(chǔ)著結(jié)構(gòu)體ptmx_fops的地址。因此,可以選取rbx寄存器作為交換寄存器,修改rsp為用戶態(tài)的值,并通過ROPgadget尋找xchg_gadget。

        4.4構(gòu)造偽棧

        通過選定寄存器可以將棧頂寄存器rsp轉(zhuǎn)為用戶態(tài),之后通過精心布置偽棧即可實(shí)現(xiàn)清除SMEP標(biāo)志、權(quán)限提升的過程。

        圖6展示了偽棧的分布,其中數(shù)字編號(hào)代表執(zhí)行流程。

        當(dāng)調(diào)用ptmx_ops->open函數(shù)時(shí),由于此函數(shù)被更改到用戶態(tài)空間,因此執(zhí)行偽棧偏移為0x58的指令,此地址保存了xchg_gadget指令,交換寄存器rbx和rsp的內(nèi)容,并返回到棧幀首地址,此為過程(1);過程(2)為了擁有足夠空間,通過gadget1將執(zhí)行流跳轉(zhuǎn)到偏移為0x98的地方;過程(3)首先維護(hù)棧平衡,然后通過gadget3和gadget4修改寄存器CR4為0x406f0,此時(shí)SMEP標(biāo)志被清除,最后將執(zhí)行流轉(zhuǎn)到提權(quán)函數(shù)上。

        圖6 偽棧構(gòu)造

        通過漏洞對(duì)ptmx_ops地址的修改以及偽棧的構(gòu)造,成功繞過了SMEP安全機(jī)制的保護(hù),并且權(quán)限提升成功,證明了異步觸發(fā)模型的有效性。

        5 防 御

        這種威脅非常危險(xiǎn),且更具普遍適用性,可以通過SMAP和KASLR機(jī)制進(jìn)行防御。SMAP機(jī)制防止進(jìn)程由內(nèi)核態(tài)訪問用戶態(tài)數(shù)據(jù),因此阻止了用戶態(tài)偽棧的訪問;KASLR機(jī)制隨機(jī)化內(nèi)核函數(shù)地址和gadget地址,增加異步觸發(fā)漏洞的利用難度。然而,基于性能考慮,目前主流的Linux系統(tǒng)默認(rèn)都沒有開啟這兩項(xiàng)內(nèi)核安全機(jī)制。

        6 結(jié)束語

        內(nèi)核內(nèi)存破壞是廣泛存在的內(nèi)核漏洞,而目前的SMEP機(jī)制很好地抑制了傳統(tǒng)內(nèi)核利用方式。文中發(fā)現(xiàn)了一種適用性更強(qiáng)、危害更大的異步觸發(fā)漏洞模型,能夠通過異步觸發(fā)繞過SMEP機(jī)制的防御,在Ubuntu 16虛擬機(jī)上的最新漏洞也驗(yàn)證了該模型的有效性。盡管SMAP和KASLR機(jī)制能夠抵御這種利用手段,但是大部分機(jī)器并沒有默認(rèn)開啟,因此需要得到更多的關(guān)注。

        [1] 吳 詠,汪曉茵,劉鳳霞.Linux系統(tǒng)緩沖區(qū)溢出防護(hù)技術(shù)[J].保密科學(xué)技術(shù),2012(5):21-25.

        [2] 楊少鵬,唐小虎.基于Linux的棧溢出攻擊防護(hù)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2005,22(12):127-130.

        [3] 左玉丹,丁 滟,魏立峰.Linux內(nèi)核提權(quán)攻擊研究[J].計(jì)算機(jī)工程與科學(xué),2016,38(11):2234-2239.

        [4] 李曉琦,劉奇旭,張玉清.Linux內(nèi)核提權(quán)漏洞自動(dòng)利用系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[C]//信息安全漏洞分析與風(fēng)險(xiǎn)評(píng)估大會(huì).北京:出版者不詳,2013.

        [5] Chen H,Mao Y,Wang X,et al.Linux kernel vulnerabilities:state-of-the-art defenses and open problems[C]//Proceedings of the second Asia-Pacific workshop on systems.New York:ACM,2011.

        [6] 范文良.Linux內(nèi)核驅(qū)動(dòng)中整數(shù)溢出漏洞檢測(cè)的研究[D].北京:清華大學(xué),2014.

        [7] Argyroudis P,Glynos D.Protecting the core:kernel exploitation mitigations[C]//Black hat Europe.[s.l.]:[s.n.],2011.

        [8] Kemerlis V P,Portokalidis G,Keromytis A D.kGuard:lightweight kernel protection against return-to-user attacks[C]//USENIX conference on security symposium.[s.l.]:USENIX Association,2012:459-474.

        [9] 傅建明,劉秀文,湯 毅,等.內(nèi)存地址泄漏分析與防御[J].計(jì)算機(jī)研究與發(fā)展,2016,53(8):1829-1849.

        [10] 李曉琦,劉奇旭,張玉清.基于模擬攻擊的內(nèi)核提權(quán)漏洞自動(dòng)利用系統(tǒng)[J].中國(guó)科學(xué)院大學(xué)學(xué)報(bào),2015,32(3):384-390.

        [11] Kemerlis V P,Polychronakis M,Keromytis A D.ret2dir:rethinking kernel isolation[C]//USENIX conference on security symposium.[s.l.]:USENIX Association,2014:957-972.

        [12] Xu W,Li J,Shu J,et al.From collision to exploitation:unleashing use-after-free vulnerabilities in Linux kernel[C]//ACM conference on computer and communications security.[s.l.]:ACM,2015:414-425.

        [13] Xu W,Fu Y.Own your android! yet another universal root[C]//USENIX conference on offensive technologies.[s.l.]:USENIX Association,2015.

        [14] 張 磊,王學(xué)慧.Linux內(nèi)核調(diào)試技術(shù)[J].計(jì)算機(jī)工程,2003,29(10):81-83.

        SecurityAnalysisonAsynchronousTriggeringModelofLinuxKernelVulnerability

        LIU Song,QIN Xiao-jun

        (Jiangnan Institute of Computing Technology,Wuxi 214083,China)

        In recent years,more and more defense mechanisms like NX,ASLR,Canary make it difficult to exploit user vulnerabilities in Linux system.On the contrary,Linux kernel vulnerabilities have been getting attention.Kernel memory corruption is a typical kernel attack technique.Attackers can control kernel memory by calling special functions,even privilege escalation.SMEP security is an effective mechanism to suppress kernel memory corruption attacks,making the traditional ret2usr attack useless.Ret2dir and clear SMEP flag are two kinds of technologies to bypass SMEP,however,they both have their limitation.A new model is found to bypass SMEP,which can exploit the kernel vulnerability asynchronously with the principle of indirect addressing,and it is more effective to the kernel vulnerabilities of memory corruption.To verify its effectiveness,the netfilter vulnerability of Ubuntu 16 on VMware is tested,then the crash snapshot and debug kernel are analyze with kernel crash and VMware remote debug tools.The experimental results show that it is a serious exploit model.

        Linux kernel vulnerability;SMEP;indirect addressing;asynchronous triggering model

        2016-11-15

        2017-03-03 < class="emphasis_bold">網(wǎng)絡(luò)出版時(shí)間

        時(shí)間:2017-07-19

        國(guó)家自然科學(xué)基金資助項(xiàng)目(91430214)

        劉 松(1992-),男,碩士生,CCF會(huì)員,研究方向?yàn)榫W(wǎng)絡(luò)安全;秦曉軍,博士,高級(jí)工程師,CCF會(huì)員,研究方向?yàn)榫W(wǎng)絡(luò)安全。

        http://kns.cnki.net/kcms/detail/61.1450.TP.20170719.1111.062.html

        TN915.08

        A

        1673-629X(2017)11-0123-05

        10.3969/j.issn.1673-629X.2017.11.027

        猜你喜歡
        內(nèi)核寄存器漏洞
        漏洞
        萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        三明:“兩票制”堵住加價(jià)漏洞
        漏洞在哪兒
        高鐵急救應(yīng)補(bǔ)齊三漏洞
        在厨房被c到高潮a毛片奶水| 中文字幕第一页亚洲观看| 亚洲中文字幕av一区二区三区人 | 在线播放中文字幕一区二区三区| 毛片在线播放亚洲免费中文网| 精品国品一二三产品区别在线观看| 人妻少妇精品专区性色av| 中文字幕在线观看国产双飞高清| 亚洲av乱码一区二区三区观影| 亚洲av区,一区二区三区色婷婷| 国产乱了真实在线观看| 久操视频新免费伊人| 国产精品亚洲av网站| 中文字幕一二三四五六七区| 黑人巨大精品欧美一区二区免费 | 精品亚洲一区二区三区四区五区| 久久精品免费一区二区三区| 婷婷丁香91| 成人一区二区三区蜜桃| 免费久久99精品国产| 亚洲av无码av制服另类专区| 国产精品大屁股1区二区三区| 国产午夜在线观看视频| 亚洲一区精品无码| 中文字幕日韩精品无码内射| 国产精品高潮av有码久久| 丝袜美腿在线播放一区二区| 奶头又大又白喷奶水av| 国内精品久久久久久久影视麻豆| 杨幂国产精品一区二区| 97超碰国产成人在线| 亚洲精品午夜无码专区| 无码成人片一区二区三区| 亚洲成av人片在久久性色av| 亚洲国产精品久久精品 | 亚洲av永久无码精品古装片| 小sao货水好多真紧h视频| 婷婷激情五月综合在线观看| 亚洲无精品一区二区在线观看| 亚洲中文字幕久久无码精品| 啪啪无码人妻丰满熟妇|