?

Rootkit攻擊與檢測防范技術研究

2020-12-08 02:12王宇
數碼設計 2020年16期

王宇

摘要:Rootkit幾乎具備了所有惡意代碼的優勢,具有靈活性更大、潛伏性更強、破壞范圍更廣等特點,能夠對Linux、Windows等計算機操作系統和Android等移動終端操作系統實施攻擊。隨著Rootkit的快速發展和廣泛使用,如何檢測防范Rootkit攻擊也成為了熱點研究問題。

關鍵詞:Rootkit;掛鉤;Rootkit檢測;

中圖分類號:TP393.08?? 文獻標識碼:A?? 文章編號:1672-9129(2020)16-0040-01

1 Rootkit概述

Rootkit,直譯即特權用戶工具集,從其名稱定義不難看出,Rootkit實質是一類能夠獲取特殊控制權限,訪問敏感數據或進行風險操作的軟件集[1]。Rootkit早在1994年就已經出現,它本身并不是一項新型攻擊技術,但卻是發展最快、威脅最大的惡意代碼之一,這是因為Rootkit同時兼備了木馬、后門、計算機病毒的特征,能通過替換、修改硬件代碼或計算機程序將自己進行偽裝隱藏,繞過安全檢測機制的監測,對系統實施訪問或控制。由于Rootkit的隱藏性更深、潛伏期更長,一般系統的檢測機制及一些檢測軟件很難對其進行有效檢測,這使Rootkit相較其他類惡意代碼,能造成更大的危害。

2 Rootkit攻擊技術

2.1攻擊模式。主流計算機操作系統多采用自下向上的分層模型,層間接口提供統一標準或協議將下層進行封裝,為上層提供服務,但分層模型在簡化層間連接的同時也存在被攻擊的風險。

用戶模式的Rootkit攻擊通過接入開發接口、關閉保護機制和使用掛鉤技術等將指定代碼加載到系統進程中,在未授權的情況下進行如替換系統庫文件、更改系統進程等敏感操作。內核模式的Rootkit攻擊針對操作系統的內核對象(如文件、進程等)進行攻擊,修改或替換內核代碼,通過訪問底層信息控制系統,再利用獲得的權限對抗安全機制,欺騙上層調用,實施深度隱藏。實現Rootkit內核模式攻擊的方式有很多,例如通過修改系統硬件的驅動程序改變原有的服務調用。

2.2掛鉤技術。掛鉤是將攻擊者事先寫好的代碼以外掛程序的形式插入到目標程序中,當外掛程序被執行時,進程將執行攻擊代碼,在用戶不知情的情況下完成攻擊。較為常見的掛鉤技術有API函數掛鉤和描述符表掛鉤。API函數掛鉤主要有兩種實現方式,一種是修改輸入地址表(IAT),另一種是修改函數地址中的機器碼。IAT中是程序運行要調用的不同函數的地址信息,Rootkit使用掛鉤技術攻擊時,首先會分析目標程序的結構,然后根據API函數地址和IAT確定目標函數地址,再使用攻擊代碼所在地址進行替換,這樣當程序運行至目標函數時,攻擊函數就能取而代之得到運行,完成攻擊。另一種方式是直接修改函數入口的機器碼,使程序轉到攻擊函數。

描述符表掛鉤的攻擊對象是系統服務描述符表(SSDT)、中斷描述符表(IDT)、全局描述符表(GDT)等。SSDT掛鉤是將SSDT中某個系統服務對應的接口地址修改為掛鉤子函數的地址,進而改變系統服務的執行路徑[2]。IDT掛鉤是用新的表項替換IDT中原有的表項,改變系統服務的執行流程。GDT掛鉤是通過改變內在段的執行特權隱藏攻擊進程。

2.3虛擬化技術。虛擬化技術使軟件與硬件不再僅具有一對一的映射關系,同一硬件設施可以被多種軟件共享?;谔摂M化技術的Rootkit正是利用這一特點繞開系統的安全檢測,實現深度潛伏。

虛擬化技術的基本組成要素有虛擬機(VM)和虛擬機管理器(VMM),VMM使用宿主、監控、混合三種模型對物理主機的資源進行管理。VMM Rootkit在宿主模型下構建包含攻擊代碼的VM,再利用VMM控制宿主系統,監控、截獲任意信息,由于構建的VM與宿主系統是隔離的,因此安全檢測無法檢測到攻擊代碼的存在[3]。在監控模型下,VMM Rootkit 更改系統驅動程序,改變執行流程、建立后門等,監視、記錄系統信息,也可以更改指令實現自身隱藏?;旌夏P褪乔皟煞N模型的集成,因此VMM Rootkit的攻擊方法與前述相同。

3 Rootkit 檢測與防范

3.1檢測方法。根據Rootkit作用主體對象的不同將檢測方法分為硬件和軟件兩種檢測。硬件檢測目前尚處于理論研究階段,雖然取得了一些成果,如利用直接內存訪問技術和實時掃描技術等,對硬件設備的物理內存進行監控、分析、判斷,及時發現異常情況,但具體實踐經驗較少,有待進一步發展。

軟件檢測方法類型較多,常用的有行為檢測、完整性檢測、執行時間/路徑檢測和差異檢測。行為檢測根據Rootkit攻擊行為特征庫的數據,分析比對當前系統是否有符合特征的行為信息,由比對結果可知Rootkit攻擊是否發生。完整性檢測依據內核文件特征庫,檢驗系統文件特征值是否發生改變,若特征值與存儲值不同,證明存在Rootkit攻擊。執行時間/路徑檢測統計分析系統服務的執行時間和指令數差異檢測Rootkit攻擊,但此種檢測方法可能會產生誤報或影響系統性能。差異檢測對不同層次反饋的文件、進程等信息進行全面比較,再根據檢測出的差異分析該差異是否來源于Rootkit攻擊。

3.2防范方法。對Rootkit攻擊的防御要從用戶、固件、內核三個方向開展,由于用戶級Rootkit攻擊是針對系統權限較低的文件或程序,潛伏性不強,因此現有檢測技術就能完成有效防御。固件級Rootkit防御的核心是使防御代碼獲得優先控制權,即在系統啟動運行之前就完成防御代碼的部署與配置,再利用防御代碼阻止攻擊代碼加載。內核級Rootkit攻擊危害性最高,檢測防御難度也最大,目前有效的防御方法是將操作系統內核部分與外部程序進行隔離,當攻擊代碼試圖通過驅動或其他方式加載時,安全保護層可以識別這種非授權行為并進行清除。

4 結論

Rootkit攻擊是一類特殊的惡意攻擊,檢測難度高,發展速度快;隨著智能固件與硬件的應用越來越廣泛,Rootkit防御也獲得了更多關注。本文從Rootkit特點著手,對Rootkit攻擊的攻擊模式、掛鉤技術、虛擬化技術進行了詳細介紹,并從不同角度概述了現行的檢測、防范方法。

參考文獻:

[1]張瑜,劉慶中,李濤, 等.Rootkit研究綜述[J].電子科技大學學報,2015,(4):563-578

[2]劉邦明,鄔浙艷,孫黌杰.SSDT掛鉤:基于Windows內核的RootKit技術樣本[J].網絡安全技術與應用,2009,(3):62-64.

[3]施江勇,王會梅,鮮明, 等.硬件虛擬化rootkit檢測方法研究綜述[J].計算機應用研究,2014,31(1):1-5,12.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合