亮相 BlackHat USA 2021 兵工廠,百度安全展示自動化 SGX 應用安全驗證利器

美國當地時間7月31日-8月5日,國際安全工業界頂級會議 BlackHat USA 2021 在拉斯維加斯召開,百度安全研究人員在會議現場展示併發布了機密計算軟件棧自動化安全驗證利器 - SGXRay,進行了題爲《 SGXRay: Automated Vulnerability Finding in SGX Enclave Application》的工具展示,分別在線上與會議現場對工具背後設計的理念,面臨的主要技術挑戰進行了介紹,並結合多個主流雲廠商 SGX SDK 中發現的真實漏洞案例展示了工具使用方法。
圖1. 百度安全研究人員在 BlackHat USA 2021 會議期間 Arsenal Demo 議題
BlackHat聚焦於前瞻性安全研究,以其強技術型、權威性、客觀性引領未來安全思想和技術的走向。近年來,百度安全多次登上Blackhat的演講舞臺,分享在隱私計算、混合內存安全、漏洞挖掘修復、人工智能模型攻防及魯棒性驗證等領域的最新研究與實踐成果。作爲BlackHat 的重要議程之一,BlackHat Arsenal兵工廠的審查機制則與演講議題同樣嚴格,代表對安全研究人員實力的高度認可。
本次亮相BlackHat USA Arsenal的機密計算軟件棧自動化安全驗證利器SGXRay ,是面向 SGX 應用開發者的自動形式化驗證工具, 能夠自動捕捉到現有工具無法發現的內存安全問題。Intel SGX 是機密計算領域應用最廣泛的核心技術之一。通過在應用層提供基於硬件加密的可信計算環境 (Enclave),結合遠程認證等技術,爲敏感數據的處理計算環節提供安全保障。基於 Intel SGX 的機密計算解決方案已經在區塊鏈、祕鑰管理、金融、AI、多方計算、數據租賃、邊緣計算等諸多應用場景中得到應用,解決數據在非可信環境中的安全處理的難題。各大雲廠商,例如 Microsoft Azure 和 Google Cloud,均在雲端提供了可信計算運行環境, 同時對 SGX 開發者提供了 相應 SDK,方便 SGX 應用的開發與部署。
SGXRay 針對 SGX 編程模型、內存訪問特徵、典型漏洞特徵等維度進行建模,基於 SMACK 形式化驗證工具對特定前置條件下安全原語使用的正確性進行驗證,顯著提升隱私計算應用的安全性。除傳統內存安全漏洞外,SGXRay 重點對以下漏洞類型進行驗證:

類型 I :缺少針對內存訪問的檢查

由於 Enclave 中的可信邏輯和與外部非可信邏輯共享當前進程虛擬用戶態地址空間,因此傳統應用中的一個用戶態指針所指向的空間在 Enclave 的場景下可能存在多種狀態:完全指向 Enclave 內部,完全指向 Enclave 外部(共享內存),跨邊界甚至溢出整個地址空間。Enclave 中執行的可信邏輯必須對指針進行明確區分,否則會導致 Enclave 內存中的敏感信息被外部攻擊者修改或泄露。

類型 II :使用錯誤的 API 進行檢查

廠商提供的 SGX SDK 均包含對給定長度的指針範圍進行判斷,但相關判定 API (例如 sgx_is_inside_enclave, sgx_is_outside_enclave)只返回 0、1兩個值來表示前文提到的多種狀態。即便開發者意識到需要指針範圍進行判定,但極易誤用相關 API,導致 Enclave 內存中的敏感信息被外部攻擊者修改或泄露。

類型 III :共享內存解引用的安全風險

由於 Intel SGX 支持更強的威脅模型,假設 Enclave 外的所有軟件棧(包括 Kernel)均不可信,因此攻擊者可以發起特權操作(例如修改頁表、控制中斷等)來干擾 Enclave 的執行,使得在特定的指令位置中斷 Enclave 執行成爲可能。此時,如果 Enclave 內部可信邏輯對同一個共享內存指針解引用多次,將可能得到不同的結果。本地攻擊者有能力通過修改共享內存的方式,干擾 Enclave 內部的執行(控制流依賴)或影響關鍵變量(數據流依賴),盡然導致 Enclave 內存中的敏感信息修改或泄露,甚至劫持控制流。

類型 IV :缺少對複雜結構體內嵌字段的檢查

Enclave SDK 在與非可信部分交互時,部分 API 由於兼容性包袱和設計缺陷會涉及到複雜結構體的信息傳遞,例如內嵌指針、多級結構體、union 內嵌類型字段、甚至鏈表等。這種 API 設計將極大增加非可信數據的驗證難度,引入更多內存安全風險。
圖2. SGXRay 工具工作流程示意圖
SGXRay 自動化驗證工具提供了方便的調用接口,隱私計算應用開發者只需接入編譯流程(已支持 Intel SGX SDK 和 Open Enclave SDK 開發的應用),即可調用 SGXRay 的命令行工具進行驗證。除了輸出驗證結果,SGXRay 工具還會指出潛在的安全漏洞類型,相關代碼位置,以及漏洞觸發條件。
SGXRay 自動化安全驗證工具的發佈,體現了業界對百度安全在形式化驗證技術能力對認可。長期以來,百度安全實驗室在自動化漏洞挖掘、形式化驗證技術方面進行了深入的研究,相關技術陸續應用到 AIoT 安全、無人駕駛安全、機密計算安全等多個領域。通過技術積累構建自動化工具,顯著提升了上述業務場景的安全性。
百度安全在隱私安全計算領域取得了豐碩的成果,得到了全球軟件和互聯網行業、廠商以及國際安全社區的廣泛認可。也和多個國內外知名廠商、高校開展了安全研究合作,爲百度隱私安全計算業務提供先進的安全能力,並推動共建開源開放的隱私安全計算生態。
百度安全實驗室致力於探索隱私數據安全計算技術(如可信執行環境、聯邦學習、多方安全計算、差分隱私等)的研究和應用,包括隱私計算安全平臺的系統設計、安全能力評估、生態建設等。2019 年百度安全實驗室推出 Teaclave 隱私安全計算平臺,並在 Apache 軟件基金會中孵化開源。Teaclave 成爲業界首個包含遠程認證、多方隱私安全計算等多種安全能力的開源隱私計算平臺,服務數十家公司和多個開源項目的核心組件。隱私安全研究成果也發表在學術會議(CCS, ICSE, ACSAC)和行業技術研討會(ApacheCon, OC3, RustConf, Zer0Con, BlackHat)。2020 年,Teaclave 項目獲得 WitAwards 年度最佳安全開源項目。同時,爲提升隱私計算生態項目等安全性,實驗室也發現並協助修復數十處主流廠商機密計算框架的漏洞,並獲得微軟應急響應中心頒發的“最有價值安全研究者”稱號。

歡迎加盟

百度隱私安全計算實驗室歡迎有相關技術背景,以及對隱私計算系統設計感興趣的同學加入,實驗室在北京和硅谷均有全職與實習的崗位。詳情可發郵件給 [email protected] 諮詢,或參考以下鏈接:
  • https://anquan.baidu.com/tag/321
  • https://usa.baidu.com/careers/

本文分享自微信公衆號 - 百度安全實驗室(BaiduX_lab)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章