付費(fèi)下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于硬件虛擬化的內(nèi)核競態(tài)漏洞監(jiān)測方法
0監(jiān)控程序的實(shí)現(xiàn)近年來,利用內(nèi)核漏洞進(jìn)行本地或遠(yuǎn)程攻擊的情況日益嚴(yán)重。根據(jù)賽門鐵克2014年發(fā)布的互聯(lián)網(wǎng)安全報(bào)告對(duì)漏洞的動(dòng)態(tài)監(jiān)測技術(shù)主要有:(1)監(jiān)測程序運(yùn)行在用戶態(tài)。利用APIHook等技術(shù)對(duì)不安全函數(shù)掛鉤,實(shí)現(xiàn)對(duì)敏感數(shù)據(jù)的訪問、敏感函數(shù)的調(diào)用進(jìn)行監(jiān)控(2)監(jiān)控程序運(yùn)行在內(nèi)核態(tài)。利用內(nèi)核級(jí)APIHook等技術(shù)對(duì)不安全函數(shù)進(jìn)行掛鉤,以實(shí)現(xiàn)對(duì)內(nèi)核程序漏洞的監(jiān)控(3)監(jiān)測程序在內(nèi)核態(tài)利用內(nèi)核級(jí)Rootkit等技術(shù)對(duì)內(nèi)核程序進(jìn)行修改,通過對(duì)驅(qū)動(dòng)設(shè)備的各類IRP派遣函數(shù)參數(shù)進(jìn)行Fuzzing來觸發(fā)漏洞,以實(shí)現(xiàn)對(duì)內(nèi)核漏洞的監(jiān)測本文提出一種在硬件抽象層采用硬件輔助虛擬化技術(shù)對(duì)內(nèi)核競態(tài)漏洞進(jìn)行監(jiān)測的方法。該方法在保證內(nèi)核程序不被修改且獨(dú)立運(yùn)行的前提下,通過對(duì)操作系統(tǒng)所能觸控的最底層硬件接口———硬件抽象層虛擬化,構(gòu)建一個(gè)虛擬監(jiān)視器來實(shí)現(xiàn)對(duì)內(nèi)核程序的監(jiān)控;再利用底層硬件信息對(duì)上層數(shù)據(jù)進(jìn)行重構(gòu),利用內(nèi)核競態(tài)漏洞發(fā)生模型進(jìn)行匹配,實(shí)現(xiàn)對(duì)該類漏洞的準(zhǔn)確監(jiān)控和定位。1內(nèi)核競爭漏洞分析1.1函數(shù)調(diào)用的影響內(nèi)核競態(tài)漏洞是一種TOCTTOU(Time-of-checkTime-of-use)在x86或x64體系結(jié)構(gòu)中,正常情況下,用戶態(tài)程序傳遞參數(shù)后,會(huì)一直等待內(nèi)核程序返回后再繼續(xù)運(yùn)行。但是在惡意程序競爭時(shí),當(dāng)函數(shù)調(diào)用進(jìn)入內(nèi)核時(shí),惡意程序會(huì)通過多線程或多進(jìn)程并發(fā)對(duì)參數(shù)進(jìn)行修改。內(nèi)核程序優(yōu)先級(jí)最高且其運(yùn)行有最高權(quán)限,正常情況下惡意程序競爭很難成功,但是當(dāng)惡意程序利用對(duì)內(nèi)核程序訪問的中間參數(shù)進(jìn)行攻擊(例如利用系統(tǒng)分頁機(jī)制,導(dǎo)致中間內(nèi)存訪問發(fā)生缺頁等),操作系統(tǒng)調(diào)度程序會(huì)從內(nèi)核程序切換到其它運(yùn)行單位,惡意程序正好利用該段時(shí)間差進(jìn)行競態(tài)攻擊,如圖1所示。1.2時(shí)間窗口的控制如上分析,惡意程序要贏得競爭,必須確保內(nèi)核程序?qū)魅雰?nèi)核的指針指向的數(shù)據(jù)第一次訪問時(shí)正常,且其競爭程序必須在第一次和第二次之間能成功修改關(guān)鍵用戶數(shù)據(jù)。其中,內(nèi)核程序兩次對(duì)于傳入的指針訪問的時(shí)間差,即時(shí)間窗口,對(duì)惡意程序競爭成功具有關(guān)鍵作用。惡意程序只有控制好時(shí)間窗口的大小,才能夠競爭成功。時(shí)間窗口的大小受窗口內(nèi)程序、系統(tǒng)線程調(diào)度等影響。若時(shí)間窗口內(nèi)存在可控元素,惡意程序就利用窗口內(nèi)程序可控元素加大窗口長度;若窗口內(nèi)程序不存在可控變量,惡意程序則通過提升優(yōu)先級(jí)等方式來實(shí)現(xiàn)競爭。特別是現(xiàn)代多核、多CPU環(huán)境使得惡意程序的競態(tài)攻擊擁有硬件級(jí)支持,加上其對(duì)系統(tǒng)機(jī)制等的惡意利用以擴(kuò)大時(shí)間窗口,使競態(tài)成功概率提高,競態(tài)漏洞攻擊對(duì)內(nèi)核安全造成了致命威脅。1.3惡意程序攻擊機(jī)制若惡意程序競態(tài)成功,會(huì)改變內(nèi)核敏感數(shù)據(jù),利用內(nèi)核程序?qū)嵤┒ㄏ蚬?。一般來說,根據(jù)具體內(nèi)核形態(tài),惡意程序首先通過修改CR0寄存器等方法來修改內(nèi)核內(nèi)存保護(hù)機(jī)制,然后通過內(nèi)核內(nèi)存訪問形式來修改HalDispatchTable等系統(tǒng)函數(shù)表,植入并運(yùn)行Shellcode,進(jìn)而實(shí)現(xiàn)內(nèi)核攻擊。2監(jiān)控系統(tǒng)的配置2.1基于?;剞D(zhuǎn)技術(shù)的漏洞監(jiān)測系統(tǒng)內(nèi)核競態(tài)漏洞主要原因是系統(tǒng)函數(shù)調(diào)用ring3向ring0切換時(shí),傳遞的參數(shù)包含指向用戶態(tài)內(nèi)存指針,由于惡意程序感染,內(nèi)核程序利用該指針多次進(jìn)行數(shù)據(jù)不一致的訪問。因此,要實(shí)現(xiàn)監(jiān)控,在程序系統(tǒng)函數(shù)調(diào)用從ring3切換到ring0時(shí),通過對(duì)棧上數(shù)據(jù)分析,對(duì)切換時(shí)用戶態(tài)向內(nèi)核態(tài)傳遞的參數(shù)進(jìn)行檢測,當(dāng)存在指向用戶態(tài)內(nèi)存的指針時(shí),首先把當(dāng)前參數(shù)棧、將調(diào)用的系統(tǒng)函數(shù)號(hào)保存下來,再對(duì)該段內(nèi)存的讀、寫、執(zhí)行進(jìn)行監(jiān)控,當(dāng)發(fā)現(xiàn)存在兩次對(duì)該段內(nèi)存的訪問、且訪問存在一定時(shí)間差時(shí),判定可能存在競態(tài)漏洞;基于?;厮菁夹g(shù),結(jié)合符號(hào)分析技術(shù)對(duì)當(dāng)前函數(shù)調(diào)用棧進(jìn)行分析,恢復(fù)漏洞發(fā)生時(shí)內(nèi)核態(tài)函數(shù)調(diào)用情況,并繼續(xù)恢復(fù)到用戶態(tài)調(diào)用位置,實(shí)現(xiàn)對(duì)漏洞的定位。為了保證內(nèi)核程序不被修改,監(jiān)測系統(tǒng)將采用硬件輔助虛擬化技術(shù),在硬件抽象層進(jìn)行虛擬化,實(shí)現(xiàn)一個(gè)輕量級(jí)VMM(虛擬機(jī)監(jiān)視器),通過配置監(jiān)視器參數(shù),實(shí)現(xiàn)對(duì)內(nèi)核漏洞的監(jiān)控。目前用于x86體系結(jié)構(gòu)的硬件輔助虛擬化技術(shù)主要有IntelVT和AMD-V,本文以IntelVT作為研究對(duì)象。IntelVT技術(shù)是Intel于2006年推出的基于IA-32/IA-64處理器擴(kuò)展而來的虛擬技術(shù)。其中IntelVT-x對(duì)IA-32處理器提供硬件級(jí)支持,分為虛擬化監(jiān)控器(VMM)和客戶端軟件(GuestSoftware)兩個(gè)層次。VMM作為宿主控制系統(tǒng)所有硬件資源,每一個(gè)虛擬機(jī)作為客戶端軟件運(yùn)行在VMM上層。VMX的操作分為兩種:VMXnon-root模式和VMXroot模式,兩種模式都提供了ring0-ring3指令權(quán)限級(jí)別。VMM運(yùn)行在VMXroot模式,客戶端軟件運(yùn)行在VMXnon-root模式。從客戶端軟件到VMM,稱為VMX-Exit;從VMM返回到客戶端軟件,稱為VMX-Entry,轉(zhuǎn)換關(guān)系如圖2。兩種模式的轉(zhuǎn)換由VMCS控制,硬件為每個(gè)客戶端維護(hù)一個(gè)VMCS,VMCS保存了VMExit客戶端數(shù)據(jù)和虛擬機(jī)控制域等數(shù)據(jù)2.2事件分析模塊根據(jù)選擇的監(jiān)控方法和監(jiān)控技術(shù),監(jiān)測系統(tǒng)設(shè)計(jì)如圖3所示。監(jiān)測系統(tǒng)動(dòng)態(tài)虛擬化原有系統(tǒng),讓原有系統(tǒng)作為客戶機(jī),運(yùn)行在VMXnon-root模式;監(jiān)控模塊作為VMM,運(yùn)行在VMM-root模式,實(shí)現(xiàn)對(duì)系統(tǒng)的監(jiān)測。當(dāng)客戶機(jī)執(zhí)行了敏感操作,將觸發(fā)VMExit進(jìn)入VMM,檢測模塊處理具體事件,最后VMEntry恢復(fù)客戶機(jī)執(zhí)行。在VMM中,事件分析模塊最先接收到陷入原因后,根據(jù)底層信息對(duì)陷入原因分析,然后結(jié)合客戶機(jī)當(dāng)前CPU硬件狀態(tài)讀取客戶機(jī)內(nèi)核信息,重構(gòu)出上層具體事件信息,并傳給事件處理模塊。當(dāng)事件處理模塊發(fā)現(xiàn)上層事件是系統(tǒng)調(diào)用信息時(shí),通過策略判斷模塊對(duì)用戶態(tài)調(diào)用參數(shù)進(jìn)行分析,如果發(fā)現(xiàn)存在參數(shù)為用戶態(tài)內(nèi)存數(shù)據(jù)指針,則加入內(nèi)存監(jiān)測;如發(fā)現(xiàn)是事件對(duì)可疑內(nèi)存的訪問,則將其訪問方式、訪問長度、訪問時(shí)間記錄下來;若其訪問是第二次以上,且兩次符合判定規(guī)則,則可能存在內(nèi)核競態(tài)漏洞。當(dāng)判斷可能存在漏洞時(shí),信息收集模塊通過對(duì)當(dāng)前內(nèi)核棧進(jìn)行回溯,分析調(diào)用情況,然后將收集的信息通過通信模塊傳遞到分析程序,用戶態(tài)利用符號(hào)分析技術(shù)分析出調(diào)用具體信息,記錄到日志。2.2.1監(jiān)控系統(tǒng)的動(dòng)態(tài)遷移控制模塊初始化主要依靠監(jiān)測系統(tǒng)加載一個(gè)初始化內(nèi)核驅(qū)動(dòng)程序,該內(nèi)核驅(qū)動(dòng)模塊首先激活VMX模式,創(chuàng)建虛擬機(jī)監(jiān)控器,并配置VMX相關(guān)數(shù)據(jù),將當(dāng)前系統(tǒng)動(dòng)態(tài)遷移進(jìn)虛擬化環(huán)境。此外,還需要對(duì)每個(gè)CPU配置VMCS,當(dāng)監(jiān)控事件發(fā)生時(shí)客戶機(jī)能陷入VMroot模式。2.2.2異常調(diào)用的處理VMM通過監(jiān)控中斷來監(jiān)視系統(tǒng)調(diào)用,對(duì)于Sysenter等快速調(diào)用,將SYSENTER_EIP_MSR寄存器設(shè)為異常值,VMM通過監(jiān)控陷入異常即可調(diào)用。為了監(jiān)控對(duì)該段關(guān)鍵內(nèi)存的訪問,系統(tǒng)標(biāo)記該段內(nèi)存所在范圍的頁面為缺頁,當(dāng)對(duì)該段內(nèi)存進(jìn)行訪問時(shí),就會(huì)產(chǎn)生缺頁。2.2.3棧上保存父地址的傳遞當(dāng)判定存在漏洞后,系統(tǒng)需要調(diào)用函數(shù)進(jìn)行定位。調(diào)用函數(shù)時(shí),通過將參數(shù)和返回地址保存在棧上,傳遞給子函數(shù),子函數(shù)執(zhí)行完成后,會(huì)通過棧上保存的父地址返回父函數(shù)繼續(xù)執(zhí)行。因此,當(dāng)判斷到漏洞存在時(shí),利用?;厮菁夹g(shù),對(duì)棧進(jìn)行分析,結(jié)合當(dāng)前模塊符號(hào)文件的分析,定位函數(shù)名和代碼偏移,實(shí)現(xiàn)漏洞位置的定位。3算法的合法性判斷測試機(jī)器配備了支持IntelVT-x的處理器Intel(R)Core(TM)i7-3720QMCPU@2.60GHz,內(nèi)存為4GB,硬盤512GB。將CVE-2013-1254作為測試標(biāo)準(zhǔn),對(duì)用戶態(tài)傳來的CALLBACK_OUTPUT結(jié)構(gòu)參數(shù)pOutput先進(jìn)行合法性判斷,再對(duì)復(fù)制兩次操作存在時(shí)間差、可能導(dǎo)致競態(tài)漏洞進(jìn)行測試通過觀察可以發(fā)現(xiàn),監(jiān)控系統(tǒng)監(jiān)測到win32k!ClientGetMessageMP+0x84這個(gè)位置可能存在競態(tài)漏洞,如圖4所示。為了驗(yàn)證系統(tǒng)的準(zhǔn)確性,利用IDA對(duì)win32k.sys進(jìn)行反匯編,對(duì)應(yīng)到win32k!ClientGetMessageMPH函數(shù),在偏移為0x84附近發(fā)現(xiàn)了存在內(nèi)核競態(tài)漏洞代碼,見圖5。首先,程序在1處取得比較變量,在2處對(duì)用戶態(tài)傳來的結(jié)構(gòu)體中偏移為8的變量進(jìn)行了合法性判斷,判斷合法后,在3中對(duì)該變量進(jìn)行保存,可見2、3操作存在明顯競態(tài)漏洞。因此,監(jiān)測系統(tǒng)監(jiān)測正確,定位準(zhǔn)確。4硬件輔助輔
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年年終總結(jié)創(chuàng)意黑金風(fēng)的團(tuán)隊(duì)與文化
- 2026年碳中和目標(biāo)下的建筑市場應(yīng)對(duì)策略
- 2026年電子檔案加密存儲(chǔ)流程
- 2026江蘇蘇州市吳中區(qū)社會(huì)福利中心招聘護(hù)理員1人考試參考題庫及答案解析
- 2025年西安市曲江第三中學(xué)筆試及答案
- 2025年鹽城市水利事業(yè)單位考試及答案
- 2025年金英杰保定面授筆試及答案
- 2025年湖北省義教筆試及答案
- 2025年TCL技術(shù)類筆試題目及答案
- 2026年黃山市黟縣事業(yè)單位統(tǒng)一公開招聘工作人員14名筆試參考題庫及答案解析
- 環(huán)境多因素交互導(dǎo)致慢性病共病的機(jī)制研究
- 2026湖南衡陽耒陽市公安局招聘75名警務(wù)輔助人員考試參考題庫及答案解析
- 電力工程施工方案及規(guī)范
- 2026年中共佛山市順德區(qū)委組織部佛山市順德區(qū)國有資產(chǎn)監(jiān)督管理局招聘備考題庫及參考答案詳解
- 多重耐藥菌醫(yī)院感染預(yù)防與控制技術(shù)指南完整版
- 2026年1月浙江省高考(首考)英語試題(含答案詳解)+聽力音頻+聽力材料
- 河南新鄉(xiāng)鶴壁安陽焦作2026年1月高三一模物理試題+答案
- 2026年食品安全快速檢測儀器項(xiàng)目可行性研究報(bào)告
- 2025年新版八年級(jí)上冊(cè)歷史期末復(fù)習(xí)必背歷史小論文范例
- 2026年及未來5年市場數(shù)據(jù)中國電能計(jì)量裝置市場競爭格局及投資戰(zhàn)略規(guī)劃報(bào)告
- 智慧物流背景下多式聯(lián)運(yùn)的協(xié)同發(fā)展與運(yùn)輸效能提升研究畢業(yè)論文答辯匯報(bào)
評(píng)論
0/150
提交評(píng)論