《概念驗證》惡意軟體如何利用Intel的SGX Enclaves躲避防毒軟體偵測 ?

惡意軟體可以利用Intel 的軟體保護擴展(SGX)功能來躲避防毒(AV)軟體偵測。格拉茨科技大學的研究人員Michael Schwarz,Samuel Weiser和Daniel Gruss在最近證明了這一點。

SGX在2015年隨著第六代Intel Core處理器推出,存在於Intel的Core和Xeon處理器並支援各種硬體。它是中央處理器(CPU)指令集的架構擴展,用來保護資料不被洩露或修改。作法是讓應用程式能夠分區和分配記憶體區域,加密內容(如密碼、使用者資料)及限制對它們的存取。這是種非對稱保護,也就是說,作業系統或使用者應用程式不能存取安全區(enclave,Intel稱為指定位址空間)資料,但安全區(enclave)可以存取外部虛擬空間。

[相關新聞:SgxPectre可以從Intel SGX Enclaves取出資料]

根據研究人員的說法,駭客可以利用安全區(enclave)來隱藏惡意軟體。例如將勒索病毒的加密金鑰藏在記憶體內,讓系統更難修復。還可以用來執行未經授權的操作,如發送網路釣魚(Phishing)郵件和啟動分散式阻斷服務攻擊(DDoS)攻擊。駭客可以將惡意程式碼(如下載器)藏在受保護的安全區(enclave),讓惡意軟體解決方案無法觸及,同時可以下載並執行加密過的任意惡意程式碼。

概念證明(PoC)需要先誘騙使用者安裝在安全區(enclave)放有惡意程式碼的應用程式。SGX技術可以透過只允許Intel白名單內金鑰簽章的安全區(enclave)來解決這種風險,白名單通常會提供給應用程式開發人員。儘管如此,駭客可能會惡意使用從受信任開發人員竊取的金鑰或可能自己取得金鑰。研究人員指出,即將推出的SGX第二版在取得簽章金鑰的過程有更大的靈活度。

[相關新聞:下一代的Spectre:發現新的Intel CPU漏洞]

研究人員還展示如何透過返回導向程式設計(ROP)來繞過安全區(enclave)防護。這是種使用系統已存在程式碼執行關鍵功能的技術,將程式碼片段串接在一起讓惡意安全區(enclave)避開SGX的安全限制。安全區(enclave)內的程式碼不能使用特權指令或系統呼叫。為了完成目的,他們描述如何利用以前用來加速多執行緒應用程式交易執行的Intel Transactional Synchronization Extensions(TSX)建立讀寫primitive(程式碼片段)。

這些primitive讓攻擊者可以在i7-6700K CPU上以48.5 GBps的速度任意讀寫安全區(enclave)外的一整塊映射虛擬記憶體空間而不會引發任何CPU錯誤。研究人員將此技術命名為SGX-ROP。使用了SGX-ROP,他們可以繞過用來處理記憶體外洩和緩衝區溢位等安全風險的安全機制。正如研究人員所展示的,現在的Intel SGX SDK包含足夠的ROP工具來進行攻擊。這次攻擊可以做到完全地隱密。首先,沒有引發CPU錯誤。而且在安全區(enclave)內執行指令時,連CPU計數器也不會更新(被目前的微指令)。此外,進行惡意行為的ROP程式碼可以根據需要執行,且在結束執行後移除所有痕跡。

SGX-ROP是一種讓可部分被偵測的惡意程式碼及資料躲避傳統偵測的作法。因此,所以隱密地使用會比用來攻擊來得實用。當然,感染的初始階段還是可以被偵測;它會包含在SGX enclave程式碼中。但是下一階段(惡意程式碼和資料)可能就無法偵測。

[延伸閱讀:Intel管理引擎漏洞的技術分析]

該研究已經提交給了Intel,Intel建議要使用可信任的程式、檔案、應用程式和外掛程式。

隨著Meltdown、SpectreForeshadow等的出現,針對硬體安全性或設計缺陷的攻擊對使用者和企業來說都是項複雜的挑戰。比方說,更新有漏洞的組件可能需要一段相當長的時間。韌體或硬體更新也相當困難,特別是當可能會中斷業務運作的時候。關於硬體漏洞攻擊的威脅並沒有完美的解決方法,所以採用主動式的縱深防禦作法來加以偵測是相當重要的。這能夠讓資安或IT團隊對自己網路邊界活動有更大的能見度,讓他們可以更好地抵禦威脅。

Vít Šembera(趨勢科技威脅研究員)協助提供見解

@原文出處:Proof of Concept Shows How Malware Can Hide From AV Solutions via Intel’s SGX Enclaves