Intel Software Guard Extensions(SGX)是現代Intel CPU中存在的一項技術,它允許用戶設置所謂的安全區,其中CPU會對部分內存進行加密,並且除安全區內運行的程序外,其他程序均無法訪問該程序。 。

像大多數受信任的執行環境一樣,英特爾SGX是一種解決方案,旨在保護程序內存中使用的數據,即使攻擊者獲得了對操作系統的特權訪問權,或者對於虛擬化環境也獲得了管理程序的特權。這對於保護公共雲基礎結構上的密碼操作和密鑰特別有用。例如,它是支持Microsoft Azure的機密計算產品的核心組件之一。

來自英國伯明翰大學,奧地利格拉茨科技大學和比利時KU魯汶大學的一組學術研究人員開發了一種名為Plundervolt的新故障注入攻擊,該攻擊可以破壞英特爾SGX機密,並有可能觸發內存安全錯誤在代碼中沒有此類錯誤的程序中。

通過CPU電壓縮放進行故障注入

故障注入攻擊並不新鮮。它們涉及操縱系統的正常操作條件以發現意外的錯誤。在密碼分析領域,此類攻擊已被用作輔助渠道,以推斷有關密碼系統內部狀態的信息,並通過操縱CPU的電源電壓,內部時鐘和其他環境條件來恢復密碼密鑰。該技術稱為差分故障分析。

在這方面,Plundervolt是類似的,但是它沒有使用物理操縱,而是利用了Intel CPU已經具備的動態電壓縮放功能,該功能可以通過特殊的Model Specific Register(MSR)從軟件觸發。存在此未記錄的軟件界面是因為現代CPU會根據工作量自動調整其工作頻率,並因此調整電源電壓,以限制功耗和熱量。

研究人員在論文中寫道:“在受害的SGX安全區進行計算期間,使用該接口非常短暫地降低CPU電壓,我們表明,特權對手可以將故障注入受保護的安全區計算中,”研究人員在論文中寫道,與CSO共享。“至關重要的是,由於故障是在處理器封裝內發生的,即在將結果提交給內存之前,英特爾SGX的內存完整性保護無法防禦我們的攻擊。據我們所知,我們是第一個實際展示直接違反SGX完整性保證的攻擊的人。”

從Skylake一代開始,Plundervolt會影響所有啟用SGX的Intel Core處理器。前幾代Intel Core處理器也具有欠壓接口,但不會在SGX上下文之外構成威脅。

遠程攻擊

要訪問電壓縮放MSR,攻擊者需要在操作系統上具有root用戶特權。但是,SGX專為確保安全區代碼執行和存儲的機密性和完整性而構建,即使在這種妥協的情況下也是如此。由於不需要物理訪問來操縱電壓,因此如果攻擊者獲得了系統上特權代碼的執行,則可以遠程執行攻擊。

研究人員說:“基於軟件的故障攻擊將威脅模型從本地攻擊者(具有對目標設備的物理訪問權)轉移到僅本地執行代碼的潛在遠程攻擊者。” “最初,這些攻擊在攻擊者沒有特權甚至沒有沙盒的情況下很有趣。但是,對於安全執行技術,例如英特爾SGX,ARM TrustZone和AMD SEV,還必須考慮特權攻擊者,因為它們是相應威脅模型的一部分。”

研究人員證明,當它們在SGX飛地中運行時,他們可以利用這種攻擊從英特爾的RSA-CRT和AES-NI(硬件加速的AES)實現中提取完整密鑰。而且,這是在幾分鐘內以可忽略的計算量實現的。

內存安全錯誤

例如,通過Foreshadow CPU側通道漏洞,已經可以從Intel SGX提取加密密鑰。但是,Plundervolt也可以通過在看似沒有錯誤的代碼中人為地引入內存安全漏洞來違反SGX飛地的內存完整性保證。換句話說,即使開發人員做的一切正確,並確保其代碼沒有任何漏洞,攻擊者仍可以使用此技術在安全區域內執行代碼時將此類錯誤注入代碼中。

研究人員說:“就我們所知,我們是第一個探索編譯器生成的代碼中錯誤乘法的存儲器安全含義的人。” “與以前的工作相比,該工作展示了針對ARM TrustZone加密實現的頻率縮放故障注入攻擊,我們證明欠壓並非僅是加密算法的問題。”

緩解和應對

研究人員在論文中提出了幾種可能的對策,包括在硬件和微碼級別以及在軟件級別上通過使用抗故障密碼原語以及應用程序和編譯器強化。但是,它們中的許多缺點都有很多,包括潛在的性能影響。

該漏洞於6月首次報告給英特爾,但也由其他學術研究團隊在8月進行了獨立發現。該公司將該問題評為嚴重程度 -CVSS等級為7.9-並將其跟踪為CVE-2019-11157。它與合作夥伴合作發布了BIOS更新來解決該問題。

據研究人員稱,英特爾的補丁包括禁止訪問論文中確定的特定電壓縮放接口(MSR)。但是,他們指出,通過尚未確定的其他電源或時鐘管理功能,可能會存在其他的故障注入途徑。

產品安全計劃經理克里斯托弗·羅賓遜(Christopher Robinson)表示:“今天公開宣布的所有問題均已通過最新版本的英特爾微碼解決,可以通過今天發布的Red Hat安全諮詢(RHSA)或直接從英特爾獲得。 Red Hat的保證告訴CSO:“ Red Hat當前未實施SGX,因此我們的客戶不受任何與SGX相關的攻擊的影響。與任何漏洞一樣,Red Hat Product Security建議系統管理員評估其中的特定風險和風險他們自己的環境,強烈建議他們部署最新的安全更新,以盡快糾正已知漏洞。”

Microsoft並沒有回應置評請求。