核心模式的威脅與防禦,Part 1
微軟近年來在作業系統的安全性上取得了許多進展,比如PatchGuard,Driver Signature Enforcement和SecureBoot,這些保障機制極大縮減了像TDL4和ZeroAccess等曾廣泛存在的核心惡意軟體的數量。但現如今,高超的攻擊者們又找到了避規這些保護措施的手段,並持續使用著那些領先於當前防禦機制的核心惡意軟體。核心模式威脅通常意味著可以完全控制受影響的計算機,重寫作業系統的規則,並且輕鬆篡改安全軟體。
APT組織自然能嗅到這當中所存在的巨大利益,所以才會費盡心機的想要破解層出不窮的防禦機制。這篇文章出自我們(ENDGAME)最近關於核心模式威脅的Black Hat演講的總結,分為兩個部分,在這一部分中,我們將深入研究核心模式威脅的演變以及這些攻擊當前的狀態。攻擊者們通過對現存的攻擊模式的整合,可能會實現更復雜、更難以檢測的核心攻擊模式。而下一篇文章的內容將集中在如何抵禦這些攻擊上,但首先我們得了解核心模式威脅的最新技術。通過這兩篇文章,我們希望以擴大這些威脅的曝光度的方式來獲得關注,並最終能夠改善整個行業的防禦態勢。
核心威脅和平臺保護的演變
早期的核心惡意軟體
十多年前,第一個真正意義上廣泛傳播的核心惡意軟體問世。由於在當時沒有針對這些威脅的系統防禦機制,這些核心惡意軟體得到了迅猛發展。像Rustock,TDSS和ZeroAccess等惡意軟體在其傳播峰值時都造成了數百萬的感染,它們採取的是類似的手段,通過感染磁碟上的現有驅動程式共享了來獲取ring0執行,而且它們通常還有rootkit功能,用於隱藏檔案、程序、網路連線,還有安全保障軟體。
到了21世紀後期,為了應對這些氾濫成災的惡意軟體,微軟採用了兩種技術手段。第一個是PatchGuard核心保護系統。PatchGuard旨在檢測rootkit之類的惡意軟體的行為,例如掛鉤,一旦檢測到就執行系統崩潰程式。PatchGuard並不完美,它可以被繞過,但它也在不斷髮展完善,就像是攻擊者的移動障礙。
微軟的另一種保護機制是驅動程式簽名強制(DSE)。DSE要求所有驅動程式在載入之前都使用有效簽名。DSE可防止在系統上載入惡意軟體(破壞過程中的數字簽名)的驅動程式,還可以防止直接載入未簽名的惡意驅動程式。隨著64位Windows系統的市場的增長,這兩種防禦機制都顯得更為重要。
BOOTKIT惡意軟體
為了逃避DSE(在某些情況下是PatchGuard),惡意軟體作者開始利用Bootkits將他們的惡意軟體載入到核心模式。Bootkits會篡改與早期作業系統引導過程相關的程式碼,例如MBR,VBR或其他OS特定的引導載入程式的程式碼。
這些惡意軟體包括eEye BootRoot,Sinowal,TDL4和XPaj等。XPaj的特點在於它能夠在啟動過程的前期,通過掛鉤來繞過PatchGuard,甚至在PatchGuard本身被初始化之前。這意味著PatchGuard將掛鉤預設為合法程式碼的一部分。
安全行業通過建立安全啟動(Secure Boot)來響應bootkit惡意軟體。此技術已融入統一可擴充套件韌體介面(UEFI)規範,並由微軟從Windows 8起開始實施。安全啟動的工作機制是在UEFI(UEFI是對舊版BIOS的替代)執行時,先驗證系統中引導裝載程式的數字簽名後再執行。
惡意軟體對計算機的一個很輕微改動都可能會導致計算機無法啟動。微軟使用可信引導(Trusted Boot)擴充套件了這個問題的解決途徑,可信引導與安全啟動的工作方式類似,但在整個啟動過程中都會有這個簽名驗證階段。安全啟動的缺點是如果韌體被破壞,那麼可能就無法保障安全,因為韌體允許在安全啟動檢查之前執行。但是,像英特爾的Boot Guard計數器韌體攻擊技術會將“信任的根源”一直移動到CPU的不可變部分。
威脅的多樣性
雖然DSE,PatchGuard和Secure Boot極大緩解了核心威脅的局面,但總有人想要尋找突破性的方法來規避這些系統保護。APT級別的核心惡意軟體通常會安裝一個合法的、已簽名的驅動程式,這個驅動程式容易受到攻擊,然後利用該驅動程式獲取核心程式碼,從而避開DSE。 Uroburos,Derusbi和Slingshot等威脅都採用了這種方法。另一種值得注意的攻擊方式是,像Derusbi和其他一些組織會竊取合法證書並使用它們簽署惡意軟體驅動程式。
像Duqu等一些更高級別的威脅,甚至不需要考慮安裝和利用易受攻擊的驅動程式的問題。它們會直接利用0 day核心。為了進一步規避檢測,Duqu會在已安裝的Kaspersky驅動程式上,掛住匯入地址表,並誘使驅動程式認為其惡意使用者程序是受信任的Kaspersky程序。然後卡巴斯基驅動程式將其放進白名單,防止它被本地使用者或其他惡意軟體終止。為了保證永續性,Duqu會將驅動程式植入到DMZ網路中的磁碟上,這個驅動程式上有一份盜取的富士康證書籤名。該驅動可作為整個網路的入口,它可以將網路流量重定向到內部任何地方。
DOUBLEPULSAR也值得一提。它是一種非常輕量級的核心模式植入物,僅存在於記憶體中; 它沒有重啟永續性。它通常使用諸如“永恆之藍”(ETERNALBLUE)的遠端ring0漏洞載入到系統上。DOUBLEPULSAR允許攻擊者通過在SMBv1驅動程式(srv.sys)中的掛鉤函式指標來隱藏遠端訪問系統,並且這個函式指標不會被PatchGuard監視到。它允許攻擊者載入更多核心模式程式碼,或者將全功能有效載荷注入使用者模式。DOUBLEPULSAR在洩露並被其他攻擊者利用之後會成為一種廣泛的威脅,例如應用在WannaCry和NotPetya中的攻擊。
為了抑制利用DOUBLEPULSAR進入核心模式的攻擊者,微軟釋出了基於虛擬化的安全性(VBS)。利用VBS,核心由管理程式進行沙箱化,不再享有對系統的完全控制權。
管理程式程式碼完整性(HVCI)擴充套件了VBS並要求對所有核心程式碼進行簽名。此外,核心記憶體將不再允許寫和執行(稱為W ^ X)。HVCI阻止了許多核心威脅,例如Turla Driver Loader(我們在下一篇文章中討論)和DOUBLEPULSAR。Credential Guard還利用虛擬機器管理程式來保護mimikatz等工具的憑據。
展望未來
到目前為止所討論的緩解措施是微軟過去十年工作中的一個重要組成,並且微軟在最近的系統版本(尤其是Win10)中顯著增加了對這些威脅的投資。然而,市場份額仍然是一個主要問題。大量使用者用的依然是Win7系統,許多已升級到Win10的計算機也沒有利用最先進的核心保護。由於這些保護措施仍未得到廣泛實施,攻擊者將繼續追求低成本的核心攻擊。
那麼可以採取哪些措施來防範核心模式威脅呢?在下一篇文章中,我們將介紹關於攻擊性間諜情報技術的最新研究,並講述如何防範這些威脅。包括紅藍隊演練,狩獵和實時保護。儘管核心威脅將繼續發展,但惡意軟體檢測的最新技術也在不斷推陳出新中。我們願意為您提供新的視野,讓您在不斷髮展的核心威脅上能領先一步。