任昭緒
【摘要】本文設計一種內核完整性保護方法TWPos,同時具備探測和防護能力,即便內核受到攻擊也能進行恢復。實驗表明TWPos系統既能全面有效的防護,而且又不犧牲系統性能為代價,并且兼容多種OS系統、同時防零日攻擊。
【關鍵字】rootkits,VMM,TWPos,SAPW,DRW,GOS,HOS
1 介紹
rootkits是攻擊者向計算機系統植入的,能夠隱藏自身蹤跡并保留超級用戶訪問權限的惡意程序。僅僅采用探測方式是無法保護內核完整性,即便阻止rootkits注入保證內核完整性這種方式,也存在諸多弊端,因而無法有效的保護內核完整性。鑒于此,本文采用了一種將安全防護及探測安全漏洞并進行恢復結合起來確保內核完整性的方案,稱為TWPos(Two-Way Protection OS),TWPos基于VMM管理,將TWPos保護的內核劃分為兩種保護措施:一部分內核采用安全認證保護方式(Safe Authentication Protection Way縮寫SAPW);另一部分內核采用探測恢復方式(先探測內核完整性如果被攻擊則進行恢復,Detection Recovery Way縮寫DRW)。TWPos將保護的內核邏輯上劃分為兩個部分,采用SAPW方式保護的內核部分稱為SAPW-K,采用DRW方式探測保護的內核部分稱為DRW-K。對于內核完整性保護,用戶既可以同時選擇這兩種方式,也可以選擇兩者之一。
2 TWPos設計
2.1 設計原則
TWPos設計不僅需要內核全面安全防護措施,而且在滿足安全防護的同時,考慮系統性能、多操作系統的兼容,開發成本等。本篇論文從多個角度防護展開,并且設計時兼顧性能因素。
保護角度:內存及DMA完整性,擴展模塊完整性,系統調用完整性等,也就是除CPU、內存控制器、系統內存芯片之外內核所有其他部分。
性能:內核作為一個載體,它運行的效率直接決定了這個系統的性能,因此在確保OS不被攻擊的同時盡量降低對系統性能的影響。
兼容性:TWPos支持多系統,這些系統無論是開源OS系統還是商用OS系統,都不需要對GOS系統進行修改或者插入TWPos模塊,就能進行防護。
我們引入VMM(Virtual Machine Monitoring)技術來實現完整性保護,將TWPos開發成為一個輕量級模塊或者任務嵌入VMM系統中,也就是TWPos作為VMM中的一個安全部件,充分利用VMM一些功能特性,這樣大大降低了開發成本。
2.2 設計原理
GOS訪存: GOS任務訪問物理內存的過程:GOS虛擬地址→GOS物理地址→VMM→物理內存,這過程需要通過VMM進行內存隱射至真正的物理內存。基于這種機制將TWPos作為VMM針對GOS的一個安全部件,被保護的GOS運行在VMM之上,那么GOS任務訪問物理內存的過程:GOS虛擬地址→GOS物理地址→TWPos→VMM→物理內存。GOS任務訪問物理內存時,必須通過TWPos,才能訪問真正物理內存,TWPos作為安全保護的重要部件,通過保護GOS物理內存達到保護GOS內核的完整性。
內存管理:將TWPos加載VMM中,TWPos從HOS(Host OS)分配大塊內存,并將分配的內存劃分為三大部分:第一部分內存用作安全映射表(Safety Mapping Table縮寫SMT);第二部分內存用作映射內存塊(Mapping Memory Block縮寫MMB);第三部分用作備份內存塊(Backing Memory Block縮寫BMB)。這三部分內存分別作為三種不同功能的用途:SMT安全映射表建立原始內存塊(Original Memory Block縮寫OMB)和MMB之間映射關系,當GOS任務訪問OMB內存時,通過SMT映射至MMB內存,進行訪問;MMB存放的內存都是從OMB通過安全認證之后的內存,確保內核完整性,任務可以安全的訪問。BMB保存備份內存,當內核完整性受到破壞時,通過BMB對內核進行恢復,確保內核代碼及數據的完整性。
加載、卸載模塊:根據內核模塊選擇保護機制不同,加載和卸載內核模塊操作方式也不同。如果加載模塊選擇SAPW方式:內核運行過程中需要插入或卸載認證的內核模塊, TWPos對內核模塊進行加載和卸載分別建立映射和解除映射關系。如果采用DRW方式:加載內核模塊,TWPos將加載的內核模塊備份至BMB內存,并將加載模塊的內存塊HASH,同時將HASH值存入BMB中;卸載內核模塊,TWPos首先清除內核模塊存入BMB內存的HASH值,再次將內核模塊備份至BMB部分的內存清除。
保護機制:被保護內核加載至內存之后,但還未執行任務之前,TWPos根據用戶不同需求,采用不同策略。
SAPW機制:根據用戶認證將GOS的SAPW-K內核塊映射至MMB內存中,同時在SMT映射表中建立它們之間的映射關系,并且將MMB訪問置為只讀模式(只允許讀操作,不允許寫操作)。當GOS任務訪問SAPW-K內核物理內存時,查找SMT映射表關系,如果找到映射關系,則訪問MMB對應的內存,如果找不到對應的映射關系則訪問OMB內存。
DRW機制:如果用戶采用DRW機制,將GOS的DRW-K內核塊備份至BMB內存中,并將DRW-K內核塊的每塊進行HASH,同時HASH值存入BMB內存中。DRW啟動ChkPrecess內核線程周期檢查OMB是否被篡改或注入,如果被篡改或注入則通過BMB進行恢復。
4 TWPos實現
TWPos實現我們從三個方面著手:一方面內核啟動過程中,根據用戶保護策略,如果選擇SAPW保護機制,將需要保護的SAPW-K內核建立安全保護的映射關系,并且兼容SAPW保護機制的內核模塊的加載和卸載,加載過程需要建立安全保護的映射關系,卸載過程需要解除安全保護的映射關系;如果選擇DRW機制,將DRW-K內核進行備份和HASH,加載和卸載內核模塊如果采用DRW機制也需要進行同樣處理。另一方面在建立SAPW保護之后,我們需要實現SAPW保護方法,對安全認證內核的訪問首先訪問SMT,獲取對應的映射地址,然后再訪問映射地址內存。最后,DRW-K內核,不安全因素的存在可能被利用(被篡改或注入或修改控制流程等)給系統帶來無法估量的后果,因此DRW機制對DRW-K進行備份和HASH,一旦出現惡意攻擊,通過備份進行恢復確保內核完整性。
5 評估
對TWPos評估分為兩種方式:1)防護能力;2)性能影響。
實驗環境:Dell PowerEdge T310、2.4G主頻、Intel Xeon X3430、4GB內存,Xen hypervisor基于3.4.2版本,dom0系統為Fedora 12,使用64位Ubuntu、內核為2.6.24作為客戶機OS。
防護能力:我們建立了保護評估模型,采用現有針對內核的rootkits攻擊工具,攻擊分為如下幾種,攻擊主要通過插入模塊修改控制流程、通過修改物理內存及其調用表或者中斷表進入注入或者修改。從而達到隱藏或者篡改操作系統目的。
性能評估:使用Lmbench作為測試性能工具,可以測試TWPos對應用的影響,這些影響主要由于應用訪問內核內存導致性能有所下降,當然這些變化只對系統性能產生輕微的影響,不會導致系統性能嚴重下降。那充分說明TWPos這種方式不僅能夠內核系統進行有效防護、而且對系統性能也不構成影響。因此這種對內核rootkits的防護及其防護過程中出現的遺留進行有效恢復都是非常有效的。
6 結論
通過上述評估TWPos能夠避免rootkits攻擊,并且對內核性能也未構成大的影響,是一種比較完善高效的保護機制,并且兼容多種OS系統。但是MPOS也存在不足,體現如下一些缺陷:
VM啟動過程中,還未構建或者還未構建完TWPos時,系統已經受到了rootkits攻擊,導致TWPos備份內存也被篡改或者注入了rootkits就算后期探測到rootkits攻擊,利用備份內存進行恢復系統,系統還是存在rootkits無法被清除。
TWPos基于VMM系統的支撐,如果CPU不具有或者不支持VMM功能,那么TWPos不僅無法對系統形成保護,并且反而減低了系統性能。
盡管TWPos有上述一些缺陷,但是不影響TWPos對內核安全防護。既能保護內核代碼、數據等完整性,又對系統性能不帶來大的影響。
參考文獻
[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.