跳到主要內容區塊

2018/03/09

研究:Spectre新攻擊手法可突破Intel SGX防護機制竊取程式機密資訊

點閱人次:113

公佈單位:TANet VoIP維運團隊

俄亥俄州大學安全研究人員發現一項新式Spectre攻擊手法,可突破英特爾軟體防護擴充指令集(Software Guard Extension,SGX)機制而竊取用戶資訊。
 
名為SgxPectre的攻擊手法鎖定英特爾為新式Core處理器加入的安全功能SGX。SGX可讓應用程式跑在處理器記憶體內隔離的環境,稱為執行環境(enclave)中,確保應用執行極機密的程式碼或隱私資料,像是加密金鑰、密碼、使用者資訊等。
 
一月由Google Project Zero團隊發現的Meltdown及Spectre漏洞能讓攻擊者發動旁路攻擊(side-channel attack)突破作業系統和app,或app間的隔離,進而從作業系統及其他app取得機敏資訊,但無法突破SGX的執行環境防護。
 
SgxPectre就是為此而設計。它利用英特爾CPU兩項功能,一是執行環境程式模式使用的分支預測(branch prediction)單元未徹底清理的設計缺陷,可讓外部程式碼得以操控執行環境中的分支預測。第二是推測執行指令取消倒回(roll back)不當造成的隱含快取(implicit caching)的問題,使推測執行指令可造成快取狀態變更而被攻擊者獲知。兩項瑕疵使SGX執行環境的隱密性遭到破解。
 
研究人員發現大部份SGX runtime函式庫(Intel SGX SDK、Rust-SGX、Graphene-SGX)都存在有瑕疵的程式碼規則,而且難以去除,這使得攻擊者能對所有以執行環境保護的程式進行SgxPectre攻擊,進而存取執行環境中的重要程式碼及資訊。他們還指出,由於SDK runtime 函式庫內都存在有瑕疵的程式碼規則,因此以英特爾官方SGX SDK撰寫的程式碼都會受到影響,和程式如何實作無關。
 
所幸研究人員表示,更新CPU中微程式碼以支援間接分支限制推測(Indirect Branch Restricted Speculation,IBRS)可以防止SgxPectre攻擊。但系統管理員可以拒絕微程式碼的更新,因此呼籲執行環境應用程式的所有人,必須在遠端驗證(remote attestation)執行CPUSVN的驗證。
 
英特爾方面已經獲知這項攻擊研究,The Register引述英特爾代表指出,他們已經在準備中,預定在3月16日釋出更新修補Spectre、Meltdown的微程式碼,以及解決SgxPectre的軟體開發工具。