核心模式威脅的最新技術與防禦方式(第一部分)
概述
近期以來,Windows的作業系統不斷增加其安全機制,包括PatchGuard、Driver Signature Enforcement和SecureBoot。這些機制,已經有效阻止了一些常見的核心模式惡意軟體,包括TDL4和ZeroAccess。然而,一些高階攻擊者已經找到了逃避這些防護機制的方法,並繼續利用核心模式的惡意軟體實施攻擊行為。以核心模式執行的威脅通常可以完全控制被感染的計算機,可以重寫作業系統的規則,並且可以輕鬆篡改安全軟體。
APT小組意識到了核心模式威脅的優勢所在,並且正在持續利用它們來對抗防禦機制。最近, ofollow,noindex" target="_blank">我們在Black Hat中發表了一場關於核心模式威脅的演講 ,其中深入研究了核心模式威脅的演變以及這些攻擊的當前態勢。通過對現有技術的整合,再加之高強度的攻擊,攻擊者可以訪問一系列功能,從而實現更加複雜、更加難以檢測的核心模式攻擊。我們的下一篇文章將會重點討論如何防禦這些攻擊,但在此之前,必須首先了解核心模式威脅所使用的最新技術。通過這兩篇文章,我們希望能夠讓大家更加了解這些威脅,最終改善整個行業的防禦態勢。
核心模式威脅與平臺防護的演變
早期的核心惡意軟體
在十多年前,第一個真正意義上廣泛傳播的核心惡意軟體問世,當時還沒有針對這些威脅的系統級防禦機制,因此這些惡意軟體迅速爆發。包括 Rustock 、 TDSS 和 ZeroAccess 在內的這些惡意軟體,在其巔峰時有高達數百萬的感染。這些惡意軟體採用了相似的技術,都是通過感染磁碟上的現有驅動程式,來獲取ring0執行。這些惡意軟體通常還包含Rootkit功能,用於隱藏或阻斷使用者和安全軟體的檔案、程序和網路連線。
為了應對21世紀後期廣泛存在的惡意軟體,Microsoft開發了兩種技術,用於減輕這些惡意軟體的威脅。第一個是 PatchGuard ,PatchGuard用於檢測rootkit型別的技術(例如掛鉤),然後將會造成系統發生崩潰。PatchGuard並不完美,並且可以被繞過,但這一機制不斷髮展,目前已經成為了攻擊者的一大障礙。
此外,Microsoft還新增了另一種保護機制:驅動程式強制簽名( DSE )。驅動程式強制簽名要求所有驅動程式在載入之前,都要使用有效的簽名。這一機制可防止在系統上載入惡意軟體(在程序中破壞數字簽名)的驅動程式。
隨著64位系統市場份額的增加,這兩種防禦方式顯得至關重要。
Bootkit惡意軟體
為了逃避PatchGuard和驅動程式強制簽名機制,一些惡意軟體的作者開始利用Bootkits,將他們的惡意軟體載入到核心模式。Bootkits會對與前期作業系統引導過程相關的程式碼進行篡改,例如MBR、VBR或其他特定作業系統的引導載入程式程式碼。
這類惡意軟體,比較典型的是 eEye BootRoot 的原始PoC、 Sinowal 、 TDL4 和 XPaj 等。其中,XPaj的一個重要特點在於,它在啟動過程的早期,以掛鉤的方式來繞過PatchGuard,這一過程甚至發生在PatchGuard自身被初始化之前。這也就意味著,PatchGuard預設將會把鉤子視為合法程式碼中的一部分。
目前,安全防護領域通過Secure Boot( 安全引導 )機制來防範Bootkit惡意軟體。這一技術已經加入到UEFI(統一可擴充套件韌體介面)規範之中,並且在Microsoft Windows 8系統中首先實現。加入Secure Boot機制後,UEFI Runtime(替代原來的BIOS)在作業系統引導載入程式執行之前,會驗證其數字簽名是否正確。
因此,惡意軟體對引導載入程式做出的任何修改,都會導致計算機無法正常啟動。Microsoft使用了Trusted Boot( 可信引導 ),繼續對這種方法進行擴充套件。Trusted Boot與Secure Boot的工作方式類似,但Trusted Boot會在整個啟動過程中持續驗證簽名。Secure Boot存在一個缺點,就在於它不能防範韌體被篡改,因為韌體被允許在Secure Boot檢查之前執行。然而,例如Intel的 Boot Guard 計數器韌體攻擊技術,會將信任根(Root of Trust)移動到CPU的Immutable Section中。
與其他漏洞捆綁的威脅
雖然DSE、PatchGuard和Secure Boot能夠防範常規的核心模式威脅,但是一些大規模的惡意組織仍然在尋找新方法來規避這些平臺的保護。APT級核心模式惡意軟體通常會安裝一個合法的、經過簽名的、存在漏洞的驅動程式,然後利用該應用程式獲取核心程式碼,從而繞過DSE的防護。 Uroburou 、 Derusbi 和 Slingshot 等威脅都採用這這種方法。其中,Derusbi還竊取了合法的證書,並使用這些證書來對惡意軟體驅動程式進行簽名。
此外,還有更高級別的威脅(例如 Duqu ),它們不再安裝存在漏洞的驅動程式,而是直接利用0 Day核心。為了進一步規避檢測,Duqu會掛鉤到Kaspersky驅動程式的匯入地址表,並使得驅動程式認為惡意的使用者程序是受信任的Kaspersky程序。隨後,卡巴斯基驅動程式將該程序加入白名單,同時會防止該程序被本地使用者或其他惡意軟體終止。考慮到永續性,Duqu還會將驅動程式植入到網路DMZ中的磁碟上,該驅動程式經過一份竊取的富士康證書籤名。該植入程式能夠將網路流量重定向可以作為整個網路的入口
還有一個需要重點關注的惡意程式,是 sar-initial-smb-backdoor-ring.html" rel="nofollow,noindex" target="_blank">DOUBLEPULSAR 。這是一種非常輕量級的核心模式植入程式,僅存在於記憶體中。這一惡意程式重啟後不會具有永續性。它通常藉助遠端ring0漏洞載入到系統上,例如 永恆之藍 。DOUBLEPULSAR允許攻擊者通過在SMBv1驅動程式(srv.sys)中掛鉤函式指標來對系統進行遠端訪問。在這時,PatchGuard沒有監視這一功能指標。通過這樣,攻擊者可以載入更多的核心模式程式碼,或者注入一個更為完整的威脅,例如在WannaCry和NotPetya攻擊中所進行的那樣。
為了緩解對核心模式的漏洞利用,Microsoft釋出了基於虛擬化的安全性( Virtualization Based Security,VBS )。在該機制中,核心由管理程式進行沙箱化,不再完全地控制系統。
管理程式程式碼完整性( Hypervisor Code Integrity,HCVI )機制則是對VBS的擴充套件,並要求對所有的核心程式碼進行簽名。此外,不再允許核心記憶體可寫可執行(W^X)。HVCI阻止了許多核心模式威脅,例如Turla Driver Loader(將在下篇文章討論)和DOUBLEPULSAR。 Credential Guard還會利用HVCI來保護mimikatz 等工具的憑據。
展望
到目前為止,我們所討論的緩解措施只是Microsoft在過去10年中實施的核心緩解措施中的一些重要機制,他們在最近的作業系統版本(特別是Win 10)中顯著加大力度對這些威脅進行防範。然而,作業系統的市場份額仍然是一個主要問題,目前的絕大多數使用者群體仍在使用Win 7系統,而許多已經升級到Win 10的組織中沒有啟用最先進的核心保護。由於這些保護措施還沒有得到廣泛的實施,因此攻擊者仍然會發動地恆本的核心攻擊。
那麼,我們可以採取哪些措施,來防範核心模式威脅呢?在我們的下一篇文章中,我們將會介紹對攻擊方式的最新研究成果,並直接分析如何防範這些威脅。在這些防範方式中,也包括紅藍對抗、漏洞挖掘和實時防護。儘管核心模式威脅仍會繼續發展,但惡意軟體檢測技術也在同步進行發展,並且不斷防禦新的核心模式威脅。在下篇文章中,我們也會提出最新的檢測方式,從而在核心模式威脅不斷髮展的背景下始終搶先一步。