百度安全MesaTEE項目最新研究:軟件架構缺陷成爲Intel SGX新型攻擊面

近日,受疫情緣由,轉移到線上舉辦的ASPLOS 2020公佈了計算機領域最新研究成果,其中就包括了百度安全提交的論文《COIN Attacks: On Insecurity of Enclave Untrusted Interfaces in SGX》,論文闡述了存在一種Intel SGX Enclave的軟件接口風險,並提出了一組針對Intel SGX軟件的新型攻擊 – COIN Attacks。 儘管Intel SGX 提供了強大的硬件安全容器,可是百度安全的研究團隊發現,不少基於SGX的應用軟件及框架設計有衆多缺陷。這些軟件架構設計上的疏忽使得攻擊者無須權限,便可可以繞過SGX Enclave的嚴密封鎖,獲取存儲在SGX Enclave的核心敏感數據。html

ASPLOS是計算機系統結構領域的頂級國際會議,涉及體系結構、硬件、編程語言、編譯器、操做系統和網絡等多個方向,尤爲重視不一樣方向之間的化、RAID、RISC、深度學習處理器等計算機系統結構領域的核心創新,具備巨大的學術和工業影響力。ASPLOS也是中國計算機學會(CCF)推薦的A類國際會議。git

Intel SGX —— 給數據上鎖github

手機打車留下了家庭住址,線上支付留下了銀行卡密碼···衣食住行愈來愈多的功能被移植到了互聯網當中,讓一切都化做一個個被標記的數據,「萬能」的大數據,讓咱們變得「無所不知」,卻也讓咱們全部的機密信息「無處隱私」。apache

咱們在使用任一款程序時,總會產生一些不想被他人知曉的隱私信息,爲了保護這些隱私,操做系統一般會對相關的數據進行加密處理,阻止沒有權限的第三者(包括用戶、應用等等)去訪問這些核心數據。然而即使是這樣,仍然存在許多種可能,繞過這些加密處理獲取更高權限,拿到咱們的隱私信息。編程

不只程序使用者存在隱私泄露的風險,程序開發者也會擔憂使用者盜用了本身的關鍵代碼,轉手賣掉、盜版開發甚至發起攻擊,這都會給開發者帶來不可預估的損失。安全

爲了解決這個問題,Intel就提出了SGX技術。SGX 的思路是直接在芯片上提供一個可信的空間Enclave,用於封裝程序上的關鍵代碼和核心數據,保護它們不被外部程序所訪問,不受惡意軟件的攻擊。換言之,能夠理解爲SGX就像一個由第三方設計保管的數據保險箱,不論是用戶仍是程序開發者,均可以將本身的核心數據放到這個保險箱裏,而且容許在兩方互不接觸的狀況下,經過身份認證的方式,完成數據的傳輸。如此一來,用戶不會擔憂隱私被程序泄露,程序開發者也不用在懼怕成果被盜用或被白盒攻擊,peace & love····網絡

同時,SGX可以提供基於處理器的安全防禦(只信任CPU和enclave自身)。這意味着一旦程序和數據位於Enclave中,即使操做系統管理員也沒法影響Enclave裏面的代碼和數據,也就是說可以對Enclave發號施令的只有CPU和它本身。具體來看,數據在enclave「小黑盒」中的運行狀態:架構

  1. 把應用程序分爲兩部分:安全應用程序和非安全應用程序;
  2. 將合法程序的安全操做封裝在一個enclave中;
  3. 當調用 enclave 函數時,只有 enclave 內部的代碼才能查看其數據,並始終拒絕外部訪問;當調用結束時,enclave 的數據會留在受保護的內存中

保險箱再也不安全,軟件架構缺陷成爲Intel SGX硬件的「豬隊友」框架

這時候問題就來了,因爲這些機密數據被保存在可信的第三方,那麼程序開發者如何實如今安全的前提下,「無接觸調用」保險箱裏的數據呢?對此,爲了與來自非Enclave的數據進行交互,Intel SGX提供了兩種類型的接口函數 —— ECALL和OCALL,以創建起橋接可信與不可信環境的通訊通道。編程語言

  • ECALL:Enclave call,非安全區的應用程序進入安全區的入口
  • OCALL:Out call,容許安全區功能調出不受信任的應用程序,而後返回安全區

不難看出,這一接口函數的設置將對Enclave的通訊通道,設置爲了一條「單行線」,只要產生訪問,就要經過ECALL\OCALL兩扇大門。然而即使是在這一嚴密的傳輸機制下,也仍是會產生數據的泄露。就在近日線上舉行的ASPLOS 2020大會上,來自百度安全的研究員Yueqiang Cheng和來自FSU的實習生Mustakimur發表的《COIN Attacks: On Insecurity of Enclave Untrusted Interfaces in SGX》議題中,詳細介紹了一種新型SGX相關攻擊 —— COIN Attack。利用該漏洞,攻擊者無須特殊權限,便可可以繞過SGX enclave的嚴密封鎖,獲取存儲在SGX Enclave中的核心敏感數據。COIN Attack的出現,從另一個維度(接口安全),再一次驗證了SGX Enclave模型的弱點 – SGX Enclave的安全,不只依賴於SGX的強隔離保證,還須要有對軟件架構的細心設計,確保健壯安全的接口調用方式。開發者若是忽視軟件中的接口安全,整個SGX Encalve的安全保障都會喪失。

COIN Attack主要發現了四類安全接口問題:

  1. 輸入控制:攻擊者能夠任意控制輸入參數來測試SGX是否檢測了全部的狀況;

  2. 調用序列:攻擊者能夠以任意的次序調用SGX接口。這可能會打破SGX對於某些API調用次序的隱式假設;

  3. 並行調用:攻擊者能夠任意並行調用SGX接口,從而致使concurrency問題;

  4. 嵌套調用:攻擊者能夠發起nested調用,從而致使系統狀態混亂和行爲異常。

經過COIN Attack,攻擊者能夠進而破壞SGX Enclave的完整性或者偷取數據,甚至是泄露全部Enclave裏面的內容。爲此,百度安全實驗室開發了一個COIN Attack的檢測框架,經過符號執行的方法,能夠捕獲各類各樣的漏洞。據介紹,該框架支持當前最多見的幾種類型的檢測,詳細列表見下圖。

利用COIN Attack框架,百度安全還檢測了目前Github上面最流行的SGX應用(見下圖),合計發現了52個漏洞。

其中,檢測出漏洞最多的是一款開源安全加密通信方案mbedtls-SGX,居然有高達11個的安全漏洞。而由Intel推出的Intel-SGX-SSL(用於安全通信的開源SSL實現),也居然有高達5個嚴重漏洞。

試想,若是企業應用裏面使用了這些被你們普遍承認的開源庫,他們的安全通信將面臨重大安全隱患,甚至整個安全服務的數據都將面臨泄露的風險。

聚焦數據安全,百度安全構建開放生態

長期以來,雖然SGX硬件受到側信道攻擊等威脅, 可是Enclave 的強安全假設和工做模型仍然使Intel SGX成爲基於硬件隱私防禦技術的最強表明。

COIN Attack的出現提醒你們,儘管有強大的硬件隔離機制,系統軟件的設計仍然是安全的一個關注點。SGX軟件框架和應用開發者若是忽視接口安全,將會致使整個SGX Encalve的安全保障喪失。

對此,由百度安全實驗室開發的COIN Attack的自動化檢測工具,已經在GitHub上開源(https://github.com/mustakcsecuet/COIN-Attacks),包括堆Heap memory leak、Stack memory leak、Ineffectual condition、Use-after-free、Double free、Stack overflow、Heap overflow、Null pointer dereference等8項安全策略。

在當前以雲計算、人工智能、區塊鏈等新技術爲驅動的智能時代,數據成爲企業的核心資產,如何在公有云和數據離岸等場景保護數據不泄漏、不被濫用成爲業界共同關心的急迫問題。基於芯片加密技術廣闊的應用前景,百度安全還與英特爾早在2018 ABC SUMMIT百度雲智峯會,就聯合發佈了全球首個內存安全的可信安全計算服務框架—— MesaTEE。

 

MesaTEE提供內存安全和接口安全的SGX Enclave。基於自研的混合內存安全技術(Hybrid Memory Safety與Non-bypassable Security Paradigm構建了完整的FaaS通用計算框架,提供了嚴密而實用的隱私和安全保障能力。從新定義了將來的大數據商業模式,即便客戶端和服務/平臺提供商不徹底相互信任,也能夠有效地保護數據或模型的機密性和完整性。同時,MesaTEE增長了全面的接口安全保證,從而自身能夠抵禦COIN Attack。

目前,MesaTEE已全票經過投票,正式成爲Apache基金會的孵化器項目(Apache Teaclave),團結社區力量進一步豐富內存安全SGX技術生態,讓更多的客戶能夠享受下一代數據隱私和安全解決方案,實現普惠安全。

 

【MesaTEE開源項目地址】https://github.com/apache/incubator-teaclave

【論文在線視頻】https://v.qq.com/x/page/u0956a18nbr.html

相關文章
相關標籤/搜索