Cyber Ark研究人員開發了一種被稱作GhostHook攻擊的技術,該技術能夠繞過微軟Windows 64位操作系統上的PatchGuard防護來安裝rootkit。那么,究竟GhostHook攻擊是如何工作的?
Michael Cobb:PatchGuard于2005年在Microsoft Windows64位操作系統中首次推出。它通過定期檢查以確保內核中受保護的系統結構沒有被修改,從而防止對Windows操作系統的中央組件或內核進行任何非授權修改。事實證明,這是防止在Windows系統中安裝rootkit的一種非常有效的方法。
然而,Cyber Ark的研究人員利用英特爾處理器中被稱為“英特爾處理器追蹤”(Intel Processor Trace,IPT)的功能,找到了繞過PatchGuard防護的方法。
與類似的現有技術相比,IPT通常可以更快,更靈活地記錄跟蹤信息的類型和數量,例如Last Branch Recording和Branch Trace Messages。它提供了一個API,內核代碼可以調用這個API來從CPU接收和讀取設備上運行的軟件和進程的信息,以提供性能監視、代碼診斷、調試、模糊、惡意軟件分析以及漏洞檢測。
Cyber Ark發現,微軟實現這個API的方式讓他們能夠在指令指針跟蹤期間利用緩沖區正在進行的通知機制以使CPU分支到自己的代碼。通過為IPT中的代碼包分配極小的緩沖區,CPU最終被迫打開一個性能監視中斷(PMI)處理程序。
由于PatchGuard并不是用來監視PMI處理程序的,所以GhostHook攻擊可以在系統修補時使用PMI處理程序來注入rootkit。這種掛鉤技術可以使攻擊一直不被察覺,因為它在內核級別運行,許多安全產品(例如防病毒和入侵防護系統)都無法將其查出。
對GhostHook攻擊的嚴重性業界持有不同的看法。微軟已經表示其不會修補這個漏洞,不過公司可能會在未來的Windows版本中解決這個問題。之所以沒有特別急迫是因為要實施攻擊,攻擊者必須已經控制了一臺被攻破的機器,并且已經在系統上運行內核代碼,這是一種后開發技術,而非一種提升或開發技術。處于該位置的攻擊者可以運行自己選擇的任何代碼而不被各種安全技術檢測出,因此這種攻擊并不能真正擴大Windows操作系統的攻擊面。
然而,一些安全專家認為PatchGuard應能夠防止這種類型的攻擊,因為任何形式的隱形技術都可以幫助攻擊者長期潛伏。