任昭緒
【摘要】本文設(shè)計一種內(nèi)核完整性保護方法TWPos,同時具備探測和防護能力,即便內(nèi)核受到攻擊也能進行恢復(fù)。實驗表明TWPos系統(tǒng)既能全面有效的防護,而且又不犧牲系統(tǒng)性能為代價,并且兼容多種OS系統(tǒng)、同時防零日攻擊。
【關(guān)鍵字】rootkits,VMM,TWPos,SAPW,DRW,GOS,HOS
1 介紹
rootkits是攻擊者向計算機系統(tǒng)植入的,能夠隱藏自身蹤跡并保留超級用戶訪問權(quán)限的惡意程序。僅僅采用探測方式是無法保護內(nèi)核完整性,即便阻止rootkits注入保證內(nèi)核完整性這種方式,也存在諸多弊端,因而無法有效的保護內(nèi)核完整性。鑒于此,本文采用了一種將安全防護及探測安全漏洞并進行恢復(fù)結(jié)合起來確保內(nèi)核完整性的方案,稱為TWPos(Two-Way Protection OS),TWPos基于VMM管理,將TWPos保護的內(nèi)核劃分為兩種保護措施:一部分內(nèi)核采用安全認證保護方式(Safe Authentication Protection Way縮寫SAPW);另一部分內(nèi)核采用探測恢復(fù)方式(先探測內(nèi)核完整性如果被攻擊則進行恢復(fù),Detection Recovery Way縮寫DRW)。TWPos將保護的內(nèi)核邏輯上劃分為兩個部分,采用SAPW方式保護的內(nèi)核部分稱為SAPW-K,采用DRW方式探測保護的內(nèi)核部分稱為DRW-K。對于內(nèi)核完整性保護,用戶既可以同時選擇這兩種方式,也可以選擇兩者之一。
2 TWPos設(shè)計
2.1 設(shè)計原則
TWPos設(shè)計不僅需要內(nèi)核全面安全防護措施,而且在滿足安全防護的同時,考慮系統(tǒng)性能、多操作系統(tǒng)的兼容,開發(fā)成本等。本篇論文從多個角度防護展開,并且設(shè)計時兼顧性能因素。
保護角度:內(nèi)存及DMA完整性,擴展模塊完整性,系統(tǒng)調(diào)用完整性等,也就是除CPU、內(nèi)存控制器、系統(tǒng)內(nèi)存芯片之外內(nèi)核所有其他部分。
性能:內(nèi)核作為一個載體,它運行的效率直接決定了這個系統(tǒng)的性能,因此在確保OS不被攻擊的同時盡量降低對系統(tǒng)性能的影響。
兼容性:TWPos支持多系統(tǒng),這些系統(tǒng)無論是開源OS系統(tǒng)還是商用OS系統(tǒng),都不需要對GOS系統(tǒng)進行修改或者插入TWPos模塊,就能進行防護。
我們引入VMM(Virtual Machine Monitoring)技術(shù)來實現(xiàn)完整性保護,將TWPos開發(fā)成為一個輕量級模塊或者任務(wù)嵌入VMM系統(tǒng)中,也就是TWPos作為VMM中的一個安全部件,充分利用VMM一些功能特性,這樣大大降低了開發(fā)成本。
2.2 設(shè)計原理
GOS訪存: GOS任務(wù)訪問物理內(nèi)存的過程:GOS虛擬地址→GOS物理地址→VMM→物理內(nèi)存,這過程需要通過VMM進行內(nèi)存隱射至真正的物理內(nèi)存?;谶@種機制將TWPos作為VMM針對GOS的一個安全部件,被保護的GOS運行在VMM之上,那么GOS任務(wù)訪問物理內(nèi)存的過程:GOS虛擬地址→GOS物理地址→TWPos→VMM→物理內(nèi)存。GOS任務(wù)訪問物理內(nèi)存時,必須通過TWPos,才能訪問真正物理內(nèi)存,TWPos作為安全保護的重要部件,通過保護GOS物理內(nèi)存達到保護GOS內(nèi)核的完整性。
內(nèi)存管理:將TWPos加載VMM中,TWPos從HOS(Host OS)分配大塊內(nèi)存,并將分配的內(nèi)存劃分為三大部分:第一部分內(nèi)存用作安全映射表(Safety Mapping Table縮寫SMT);第二部分內(nèi)存用作映射內(nèi)存塊(Mapping Memory Block縮寫MMB);第三部分用作備份內(nèi)存塊(Backing Memory Block縮寫B(tài)MB)。這三部分內(nèi)存分別作為三種不同功能的用途:SMT安全映射表建立原始內(nèi)存塊(Original Memory Block縮寫OMB)和MMB之間映射關(guān)系,當GOS任務(wù)訪問OMB內(nèi)存時,通過SMT映射至MMB內(nèi)存,進行訪問;MMB存放的內(nèi)存都是從OMB通過安全認證之后的內(nèi)存,確保內(nèi)核完整性,任務(wù)可以安全的訪問。BMB保存?zhèn)浞輧?nèi)存,當內(nèi)核完整性受到破壞時,通過BMB對內(nèi)核進行恢復(fù),確保內(nèi)核代碼及數(shù)據(jù)的完整性。
加載、卸載模塊:根據(jù)內(nèi)核模塊選擇保護機制不同,加載和卸載內(nèi)核模塊操作方式也不同。如果加載模塊選擇SAPW方式:內(nèi)核運行過程中需要插入或卸載認證的內(nèi)核模塊, TWPos對內(nèi)核模塊進行加載和卸載分別建立映射和解除映射關(guān)系。如果采用DRW方式:加載內(nèi)核模塊,TWPos將加載的內(nèi)核模塊備份至BMB內(nèi)存,并將加載模塊的內(nèi)存塊HASH,同時將HASH值存入BMB中;卸載內(nèi)核模塊,TWPos首先清除內(nèi)核模塊存入BMB內(nèi)存的HASH值,再次將內(nèi)核模塊備份至BMB部分的內(nèi)存清除。
保護機制:被保護內(nèi)核加載至內(nèi)存之后,但還未執(zhí)行任務(wù)之前,TWPos根據(jù)用戶不同需求,采用不同策略。
SAPW機制:根據(jù)用戶認證將GOS的SAPW-K內(nèi)核塊映射至MMB內(nèi)存中,同時在SMT映射表中建立它們之間的映射關(guān)系,并且將MMB訪問置為只讀模式(只允許讀操作,不允許寫操作)。當GOS任務(wù)訪問SAPW-K內(nèi)核物理內(nèi)存時,查找SMT映射表關(guān)系,如果找到映射關(guān)系,則訪問MMB對應(yīng)的內(nèi)存,如果找不到對應(yīng)的映射關(guān)系則訪問OMB內(nèi)存。
DRW機制:如果用戶采用DRW機制,將GOS的DRW-K內(nèi)核塊備份至BMB內(nèi)存中,并將DRW-K內(nèi)核塊的每塊進行HASH,同時HASH值存入BMB內(nèi)存中。DRW啟動ChkPrecess內(nèi)核線程周期檢查OMB是否被篡改或注入,如果被篡改或注入則通過BMB進行恢復(fù)。
4 TWPos實現(xiàn)
TWPos實現(xiàn)我們從三個方面著手:一方面內(nèi)核啟動過程中,根據(jù)用戶保護策略,如果選擇SAPW保護機制,將需要保護的SAPW-K內(nèi)核建立安全保護的映射關(guān)系,并且兼容SAPW保護機制的內(nèi)核模塊的加載和卸載,加載過程需要建立安全保護的映射關(guān)系,卸載過程需要解除安全保護的映射關(guān)系;如果選擇DRW機制,將DRW-K內(nèi)核進行備份和HASH,加載和卸載內(nèi)核模塊如果采用DRW機制也需要進行同樣處理。另一方面在建立SAPW保護之后,我們需要實現(xiàn)SAPW保護方法,對安全認證內(nèi)核的訪問首先訪問SMT,獲取對應(yīng)的映射地址,然后再訪問映射地址內(nèi)存。最后,DRW-K內(nèi)核,不安全因素的存在可能被利用(被篡改或注入或修改控制流程等)給系統(tǒng)帶來無法估量的后果,因此DRW機制對DRW-K進行備份和HASH,一旦出現(xiàn)惡意攻擊,通過備份進行恢復(fù)確保內(nèi)核完整性。
5 評估
對TWPos評估分為兩種方式:1)防護能力;2)性能影響。
實驗環(huán)境:Dell PowerEdge T310、2.4G主頻、Intel Xeon X3430、4GB內(nèi)存,Xen hypervisor基于3.4.2版本,dom0系統(tǒng)為Fedora 12,使用64位Ubuntu、內(nèi)核為2.6.24作為客戶機OS。
防護能力:我們建立了保護評估模型,采用現(xiàn)有針對內(nèi)核的rootkits攻擊工具,攻擊分為如下幾種,攻擊主要通過插入模塊修改控制流程、通過修改物理內(nèi)存及其調(diào)用表或者中斷表進入注入或者修改。從而達到隱藏或者篡改操作系統(tǒng)目的。
性能評估:使用Lmbench作為測試性能工具,可以測試TWPos對應(yīng)用的影響,這些影響主要由于應(yīng)用訪問內(nèi)核內(nèi)存導(dǎo)致性能有所下降,當然這些變化只對系統(tǒng)性能產(chǎn)生輕微的影響,不會導(dǎo)致系統(tǒng)性能嚴重下降。那充分說明TWPos這種方式不僅能夠內(nèi)核系統(tǒng)進行有效防護、而且對系統(tǒng)性能也不構(gòu)成影響。因此這種對內(nèi)核rootkits的防護及其防護過程中出現(xiàn)的遺留進行有效恢復(fù)都是非常有效的。
6 結(jié)論
通過上述評估TWPos能夠避免rootkits攻擊,并且對內(nèi)核性能也未構(gòu)成大的影響,是一種比較完善高效的保護機制,并且兼容多種OS系統(tǒng)。但是MPOS也存在不足,體現(xiàn)如下一些缺陷:
VM啟動過程中,還未構(gòu)建或者還未構(gòu)建完TWPos時,系統(tǒng)已經(jīng)受到了rootkits攻擊,導(dǎo)致TWPos備份內(nèi)存也被篡改或者注入了rootkits就算后期探測到rootkits攻擊,利用備份內(nèi)存進行恢復(fù)系統(tǒng),系統(tǒng)還是存在rootkits無法被清除。
TWPos基于VMM系統(tǒng)的支撐,如果CPU不具有或者不支持VMM功能,那么TWPos不僅無法對系統(tǒng)形成保護,并且反而減低了系統(tǒng)性能。
盡管TWPos有上述一些缺陷,但是不影響TWPos對內(nèi)核安全防護。既能保護內(nèi)核代碼、數(shù)據(jù)等完整性,又對系統(tǒng)性能不帶來大的影響。
參考文獻
[1] A. Seshadri, M. Luk, N. Qu, and A. Perrig. Secvisor: A tiny hypervisor to provide lifetime kernel code integrity for commodity oses. In SOSP 07: Proceedings of twenty-first ACM SIGOPS Symposium on Operating Systems Principles,pages 335–350, New York, NY, USA, 2007. ACM.
[2] R. Riley, X. Jiang, and D. Xu. Guest-transparent prevention of kernel rootkits with vmm-based memory shadowing. In RAID 08: Proceedings of the 11th International Symposium on Recent Advances in Intrusion Detection, pages 1–20, Berlin, Heidelberg, 2008. Springer-Verlag.
[3] A. Baliga, V. Ganapathy, and L. Iftode. Automatic inference and enforcement of kernel data structure invariants. In ACSAC 08: Proceedings of the 2008 Annual Computer Security Applications Conference, pages 77–86, Washington,DC, USA, 2008. IEEE Computer Society.
[4] A. Srivastava, I. Erete, and J. Giffin. Kernel data integrity protection via memory access control. Technical Report GTCS-09-04, Georgia Institute of Technology, 2009.