基于用戶模式回調(diào)函數(shù)的內(nèi)核漏洞分析、利用與防范_第1頁(yè)
基于用戶模式回調(diào)函數(shù)的內(nèi)核漏洞分析、利用與防范_第2頁(yè)
基于用戶模式回調(diào)函數(shù)的內(nèi)核漏洞分析、利用與防范_第3頁(yè)
基于用戶模式回調(diào)函數(shù)的內(nèi)核漏洞分析、利用與防范_第4頁(yè)
基于用戶模式回調(diào)函數(shù)的內(nèi)核漏洞分析、利用與防范_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

. 緩和在這一節(jié)我們?cè)u(píng)估用來(lái)緩和在第 4 節(jié)中討論的幾種漏洞類型的方法。5.1. 釋放后重用漏洞正如在前面的小節(jié)里提到的那樣,釋放后重用漏洞依賴于攻擊者具有重新分配并控制之前釋放的內(nèi)存的能力。不幸地是,因?yàn)?CPU 沒(méi)有辦法區(qū)分內(nèi)存是否屬于某個(gè)特定的對(duì)象或者數(shù)據(jù)結(jié)構(gòu)(這是操作系統(tǒng)做出的抽象),嘗試緩和釋放后重用漏洞是非常困難的。如果我們更進(jìn)一步的看這個(gè)問(wèn)題,這些問(wèn)題本質(zhì)上是因?yàn)樵谔幚碛脩裟J交卣{(diào)函數(shù)的時(shí)候,攻擊者能夠釋放對(duì)象或者緩沖區(qū),并且在它被 Win32k 再次使用之前重新分配內(nèi)存。因此降低內(nèi)核池或者堆分配的可預(yù)測(cè)性或者隔離特定的分配使得容易被控制的原始語(yǔ)比如字符串不會(huì)從同樣的資源,也就是用戶對(duì)象,中分配。由于操作系統(tǒng)能在回調(diào)函數(shù)活動(dòng)(比如通過(guò) KTHREAD.CallbackDepth)的時(shí)候感知到,在處理回調(diào)的時(shí)候可以采用延遲釋放的方法。這將阻止攻擊者立即重用釋放掉的內(nèi)存。但是這樣子的機(jī)制不能阻止在釋放后重用條件觸發(fā)之前,多次連續(xù)調(diào)用用戶模式回調(diào)函數(shù)的情況。另外,因?yàn)橛脩裟J交卣{(diào)機(jī)制不是在 Win32k.sys 里實(shí)現(xiàn),所以需要在回調(diào)函數(shù)返回的時(shí)候?qū)崿F(xiàn)額外的邏輯來(lái)完成必要的延遲釋放列表處理。不是以專注分配可預(yù)測(cè)性來(lái)應(yīng)對(duì)釋放后重用問(wèn)題,我們可以查看典型的利用是如何執(zhí)行的。正如在第 4 節(jié)中討論的那樣,Unicode 字符串與一大部分?jǐn)?shù)據(jù)可以被控制的分配(像定義了 cbWndExtra 的窗口對(duì)象)對(duì)攻擊者是非常有利的。因此,隔離這樣子的分配可以用來(lái)阻止攻擊者采用靈活的攻擊原始語(yǔ)輕松地實(shí)現(xiàn)已經(jīng)釋放對(duì)象的內(nèi)存的重新分配(比如字符串)。5.2. 零指針解引用漏洞為了應(yīng)對(duì) Windows 上的零指針解引用漏洞利用,我們需要拒絕用戶模式應(yīng)用程序映射與控制 NULL 頁(yè)面的能力。盡管有多種方式可以解決這個(gè)問(wèn)題,比如通過(guò)系統(tǒng)調(diào)用掛鉤【注 7】或者頁(yè)面表項(xiàng)(PTE)修改,但是采用虛擬地址描述符(VAD)似乎更合適。因?yàn)?VAD 描述進(jìn)程內(nèi)存空間并提供 Windows 正確設(shè)置好頁(yè)面表項(xiàng)所需要的信息,它們可以用來(lái)以一種統(tǒng)一與通用的方式阻止 NULL 頁(yè)面映射。然而,因?yàn)?32 位 Windows 里的 NTVDM 依賴這樣的能力來(lái)正確的設(shè)置 16 位可執(zhí)行程序,阻止 NULL 頁(yè)面映射也犧牲了后向兼容性。注 7:微軟不鼓勵(lì)使用系統(tǒng)調(diào)用掛鉤并且在 64 位系統(tǒng)上由于內(nèi)核補(bǔ)丁保護(hù)強(qiáng)制的完整性檢查不容易實(shí)現(xiàn)。5. 緩和6. 評(píng)論正如我們已經(jīng)在本文中展示的那樣,用戶模式回調(diào)函數(shù)似乎在 Win32k 子系統(tǒng)中造成了許多問(wèn)題并且引入了許多漏洞。一部分是因?yàn)?Win32k,或者更確切的說(shuō),窗口管理器,的設(shè)計(jì)使用了全局鎖機(jī)制(用戶臨界區(qū))來(lái)實(shí)現(xiàn)線程安全。盡管以發(fā)現(xiàn)一個(gè)解決一個(gè)的方式處理這些漏洞作為短期的解決方案是夠用的,但是為了更好的支持多核架構(gòu)與提供更好的窗口管理性能,Win32k 在將來(lái)的某個(gè)時(shí)候會(huì)需要一個(gè)跨越性的飛躍。在現(xiàn)在的設(shè)計(jì)里,處于同一會(huì)話的兩個(gè)線程不能夠同時(shí)處理它們的消息隊(duì)列,哪怕它們屬于兩個(gè)獨(dú)立的應(yīng)用程序并且在不同的桌面。理想地,Win32k 應(yīng)該遵循更加具有一致性的 NT 執(zhí)行體的設(shè)計(jì),并且在每個(gè)對(duì)象或者每個(gè)結(jié)構(gòu)地基礎(chǔ)上實(shí)行互斥。在緩和 Win32k 與更為一般的 Windwos 內(nèi)核漏洞利用上,重要的一步就是,擺脫在用戶模式與內(nèi)核模式之間的共享內(nèi)存區(qū)段。以前,這些區(qū)段被認(rèn)為是優(yōu)化,因?yàn)?Win32 子系統(tǒng)就不需要借助系統(tǒng)調(diào)用,因而避免了相關(guān)聯(lián)的額外消耗。自從這種設(shè)計(jì)的決定作出,系統(tǒng)調(diào)用現(xiàn)在不再使用緩慢的基于中斷的方式,因而性能的提升也可能微乎其微。盡管共享區(qū)段在有些情況下可能會(huì)更好,共享的信息也應(yīng)該控制到最少?,F(xiàn)在,Win32k 子系統(tǒng)提供給攻擊者大量的內(nèi)核地址空間信息,而且還打開(kāi)了額外地的擊向量,這在最近的一個(gè) CSRSS 漏洞的利用中可以看到(參見(jiàn)參考文獻(xiàn) 4)。這是因?yàn)樵谶@個(gè)子系統(tǒng)里,內(nèi)存在進(jìn)程間是共享的,無(wú)論它們的特權(quán),攻擊者有能力從沒(méi)有特權(quán)的進(jìn)程操縱有特權(quán)進(jìn)程的地址空間。6. 評(píng)論7. 結(jié)論在這篇文章中,我們討論了許多與 Win32k 的用戶模式回調(diào)函數(shù)有關(guān)的問(wèn)題與挑戰(zhàn)。特別地,我們展示了窗口管理器的全局鎖設(shè)計(jì)并沒(méi)有很好與用戶模式回調(diào)的概念融合。盡管大量與檢查不充分的用戶模式回調(diào)函數(shù)相關(guān)的漏洞已經(jīng)修復(fù)了,其中一些問(wèn)題的特性本質(zhì)表明 Win32k 很可能還存在更為細(xì)微的漏洞。因此,為了緩和其中的一些普遍的漏洞類型,我們結(jié)論性的討論了一些關(guān)于微軟與終端用戶該如何做才可能降低將來(lái)在 Win32k 子系統(tǒng)中的攻擊的風(fēng)險(xiǎn)。7. 結(jié)論參考文獻(xiàn)Edgar Barbosa: \hWindows Vista UIPIAlex Ionescu: \hInside Session 0 Isolation and the UI Detection Serviceivanlef0u: \hYou Failed!Matthew ’j00ru’ Jurczyk: \hCVE-2011-1281: A story of a Windows CSRSS Privilege Escalation vulnerabilityTarjei Mandt: Locking Down the Windows Kernel: \hMitigating Null Pointer ExploitationJohn McDonald, Chris Valasek: \hPractical Windows XP/2003 Heap Exploitation. Black Hat Briefing USA 2009\hMicrosoft Security Bulletin MS11-034. Vulnerabilities in Windows Kernel-Mode Drivers Could Allow Elevation ofPrivilege\hMicrosoft Security Bulletin MS11-054. Vulnerabilities in Windows Kernel-Mode Drivers Could Allow Elevation of\hPrivilegeBrett Moore: \hHeaps About Heaps\hMS Windows NT Kernel-mode User and GDI White Papermxatone: \hAnalyzing Local Privilege Escalations in Win32k. Uninformed Journal vol. 10Chris Paget: \hClick Next

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論