SGX技術與SGX攻擊

2013年, Intel推出SGX(software guard extensions)指令集擴展, 旨在以硬件安全爲強制性保障, 不依賴於固件和軟件的安全狀態, 提供用戶空間的可信執行環境, 通過一組新的指令集擴展與訪問控制機制, 實現不同程序間的隔離運行, 保障用戶關鍵代碼和數據的機密性與完整性不受惡意軟件的破壞.不同於其他安全技術, SGX的可信計算基(trusted computing base, 簡稱TCB)僅包括硬件, 避免了基於軟件的TCB自身存在軟件安全漏洞與威脅的缺陷, 極大地提升了系統安全保障; 此外, SGX可保障運行時的可信執行環境, 惡意代碼無法訪問與篡改其他程序運行時的保護內容, 進一步增強了系統的安全性; 基於指令集的擴展與獨立的認證方式, 使得應用程序可以靈活調用這一安全功能並進行驗證.作爲系統安全領域的重大研究進展, Intel SGX是基於CPU的新一代硬件安全機制, 其健壯、可信、靈活的安全功能與硬件擴展的性能保證, 使得這項技術具有廣闊的應用空間與發展前景.目前, 學術界和工業界已經對SGX技術展開了廣泛的研究, Intel也在其最新的第六代CPU中加入了對SGX的支持.

Intel Software Guard eXtensions (SGX) 是現代Intel處理器的一個特徵,允許應用創建enclave,enclave可以理解爲一個數據運行的安全環境,我們可以稱它爲“小黑匣”。SGX對於軟件的保護並不是識別或者隔離系統中出現的惡意軟件,而是將合法軟件對於敏感數據(如加密密鑰、密碼、用戶數據等)的操作封裝在一個“小黑匣”中,使得惡意軟件無法對這些數據進行訪問。

1 SGX架構概述1.1 SGX技術概述

Intel SGX[12]是Intel架構新的擴展, 在原有架構上增加了一組新的指令集和內存訪問機制[3].這些擴展允許應用程序實現一個被稱爲enclave的容器, 在應用程序的地址空間中劃分出一塊被保護的區域, 爲容器內的代碼和數據提供機密性和完整性的保護, 免受擁有特殊權限的惡意軟件的破壞.SGX整體架構如圖 1所示.

Fig. 1 Architecture description of SGX圖 1 SGX整體架構

 

SGX的實現需要處理器、內存管理部件、BIOS、驅動程序、運行時環境等軟硬件協同完成.除了提供內存隔離與保護安全屬性, SGX架構還支持遠程認證和密封的功能, 可用於安全軟件應用和交互協議的設計.

1.2 SGX的設計目標

(1) 允許應用程序開發者保護敏感數據不被未授權訪問或者更高特權級別軟件的修改[4-6];

(2) 使得應用程序能夠擁有保護敏感代碼和數據的機密性與完整性的能力, 而不會中斷這些資源被合法程序和系統調度、使用和管理的能力;

(3) 使得計算設備的消費者能夠控制自己平臺, 並且具有自由安裝和卸載應用與服務的能力;

(4) 使得平臺能夠度量應用程序的可信代碼, 生成簽名驗證, 並且度量和認證過程的代碼都能夠在可信賴的環境中正確的初始化;

(5) 使得可信應用程序的開發過程中能夠使用原來的工具和流程;

(6) 允許可信應用程序的性能能夠隨着處理器的能力增強而得到擴展;

(7) 使得軟件代理商能夠使用它們選擇的分發通道來分發、更新可信應用程序;

(8) 使得應用程序可以定義一個安全代碼和數據區域, 這一區域可以維護其機密性, 即使攻擊者能夠物理上控制這個平臺以及產生對內存的直接攻擊, 也能夠有效加以抵禦.

2 SGX關鍵技術2.1 Enclave安全容器

Enclave是一個被保護的內容容器, 用於存放應用程序敏感數據和代碼[7].SGX允許應用程序指定需要保護的代碼和數據部分, 在創建enclave之前, 不必對這些代碼和數據進行檢查或分析, 但加載到enclave中去的代碼和數據必須被度量.當應用程序需要保護的部分加載到enclave後, SGX保護它們不被外部軟件所訪問.Enclave可以向遠程認證者證明自己的身份, 並提供必需的功能結構用於安全地提供密鑰.用戶也可以請求獨有的密鑰, 這個密鑰通過結合enclave身份和平臺的身份做到獨一無二, 可以用來保護存儲在enclave之外的密鑰或數據.

所有的enclave都駐留在EPC(enclave page cache)中, 這是系統內一塊被保護的物理內存區域, 用來存放enclave和SGX數據結構[8].EPC佈局由平臺具體實現決定, 如果CPU支持SGX架構並在加密保護的DRAM (dynamic random access memory)中實現EPC, 那麼它也支持BIOS保留一段叫PRM(processor reserved memory)的內存範圍.BIOS通過配置一組範圍寄存器分配PRM.具體的PRM和EPC佈局和平臺有關, 並取決於BIOS設置, 下圖 2是一個PRM和EPC佈局的例子.

Fig. 2 Sample layout of PRM圖 2 PRM佈局示例

 

Enclave具有如下特徵.

(1) 具有自己的代碼和數據;

(2) 提供機密性保護;

(3) 提供完整性保護;

(4) 具有可控的入口點;

(5) 支持多線程;

(6) 對應用程序內存具有最高訪問權限.

Enclave的結構如圖 3所示, 其中, TCS(thread control structure)保存着進入或退出enclave時恢復enclave線程的特殊信息.每一個enclave中的執行線程都和一個TCS相關聯, 它需要4K字節對齊, 由多個部分組成, 例如保留位(RESERVED)、標誌位(FLAGS)、狀態保存區偏移量(state save area offset, 簡稱OSSA)等.

Fig. 3 Schematic diagram of enclave圖 3 Enclave示意圖


2.2 Enclave保護機制

針對enclave的保護機制主要包括兩個部分:一是enclave內存訪問語義的變化, 二是應用程序地址映射關係的保護, 這兩項功能共同完成對enclave的機密性和完整性的保護.

2.2.1 內存訪問語義

在系統內分配一塊被保護的物理內存區域EPC, 用來存放enclave和SGX數據結構[9].必須保證內存保護機制在物理上鎖住EPC內存區域, 將外部的訪問請求視爲引用了不存在的內存, 使得外部的實體(直接存儲器訪問、圖像引擎等)無法訪問.對於使用MOV等指令訪問enclave內部的頁面的情況, 硬件將執行下列的檢查.

(1) 處理器當前運行在enclave mode中;

(2) 訪問地址在enclave地址空間;

(3) 物理地址在EPC內存中;

(4) EPCM(enclave page cache map)檢查, 請求訪問的頁屬於正在運行的enclave(只有enclave內的代碼才能訪問該enclave的內容).

系統在SGX調用前, 必須處於保護模式, 且需要支持分頁.SGX所提供的內存保護機制, 在保護模式所提供的段保護、頁保護機制基礎上進行進一步的內存保護, 訪問地址由虛擬地址轉換爲物理地址進行訪問.對內存的訪問可分爲如下5種類型, 如圖 4所示.

Fig. 4 Memory access control of SGX圖 4 SGX的內存訪問控制

 

(1) 運行於非enclave模式的處理器訪問PRM之外的內存, 按照保護模式下的機制進行訪問;

(2) 運行於非enclave模式的處理器訪問PRM內部內存, 將被視爲引用了不存在的內存;

(3) 處理器運行於enclave模式, 訪問的頁面不在enclave的虛擬地址空間, 但是處於EPC的區域範圍內, 則CPU將這次訪問視爲引用了不存在的內存;

(4) 處理器運行於enclave模式, 硬件允許enclave代碼訪問處理器保留內存(PRM)外部的地址;

(5) 如果頁面在enclave的虛擬地址空間外, 且指向PRM頁面, 硬件將阻止訪問並且發出異常.

簡而言之, enclave外部的應用程序不能訪問enclave內存; enclave內部的代碼在EPC範圍內只能訪問屬於自己的內存區域, 不能訪問別的enclave內存; 對於PRM以外的內存, 則按照系統中其他的保護機制進行訪問.這樣的內存保護機制, 防止了enclave內部運行的程序被其他惡意軟件盜取隱私信息和篡改.

2.2.2 地址映射保護

EPC內存以頁爲單位進行管理, 頁的控制信息保存在硬件結構EPCM裏, 一個頁面對應一個EPCM表項, 類似於操作系統內的頁表, 管理着EPC頁面的基本信息, 包括頁面是否已被使用、該頁的擁有者、頁面類型、地址映射和權限屬性等[10].EPCM結構在CPU地址映射過程中用於執行enclave頁面的訪問控制, 邏輯上而言, 它在保護模式的段保護和頁保護機制的基礎上增加了一層安全的訪問控制.EPCM結構由PMH(page miss handler)硬件模塊訪問, 這個模塊通過查詢頁表(系統軟件維護的)、範圍寄存器、EPCM來進行內存訪問.EPCM邏輯結構圖如圖 5所示.

Fig. 5 Logical structure of EPCM圖 5 EPCM邏輯結構


2.2.3 Enclave機密性和完整性保護

應用程序在申請創建一個enclave時, 需要進行頁面分配、複製程序代碼與數據和度量操作, 創建過程的最後一步需要對enclave的完整性進行驗證, 判斷特權軟件在創建過程中是否篡改了程序數據, 如分配了多餘的頁、將惡意代碼複製進來, 或是篡改了複製的數據等.通過對每個添加的頁面內容進行度量, 最終得到一個創建序列的度量結果, 保存在enclave的控制結構中.然後, SGX通過一條初始化指令將這個結果與enclave所有者簽名的證書中的完整性值進行比較:如果匹配, 則將證書中的所有者公鑰進行哈希, 作爲密封身份保存在enclave控制結構中; 如果不匹配, 則說明創建過程存在問題, 指令返回失敗結果.

成功進行了初始化指令之後, 才能進入enclave執行程序, 此後SGX提供的內存保護和地址映射保護使得外界無法訪問enclave內存, 從而保證了enclave的機密性和完整性, 遠程的認證者可以通過enclave的完整性度量值和其密封身份, 確保其正確地創建.圖 6對這個過程進行了描述, 其中, 較粗箭頭表示請求的操作, 細箭頭表示具體步驟.

Fig. 6 Process of establishing protection圖 6 Enclave建立保護的過程


2.3 SGX認證

SGX提出了兩種類型的身份認證方式:一種是平臺內部enclave間的認證, 用來認證進行報告的enclave和自己是否運行在同一個平臺上; 另一種是平臺間的遠程認證, 用於遠程的認證者認證enclave的身份信息.

當enclave向平臺上其他enclave報告身份時, 先獲取當前的enclave的身份信息和屬性、平臺硬件TCB信息, 附加上用戶希望交互的數據, 生成報告結構; 然後獲取目標enclave的報告密鑰, 對報告結構生成一個MAC標籤, 形成最終的報告結構, 傳遞給目標enclave, 由目標enclave驗證請求報告身份的enclave跟自己是否運行於同一平臺.

爲了實現遠程認證, 需要引入一個特殊的引用(quoting)enclave.同一平臺enclave之間的驗證使用的是對稱密鑰, 不適用於遠程認證, 因此, 平臺間的認證採用非對稱密鑰機制.由引用enclave創建平臺認證的簽名密鑰EPID(enhanced privacy identification), 這個密鑰不僅代表平臺, 還代表着底層硬件的可信度, 並且綁定處理器固件的版本, 當enclave系統運行時, 只有引用enclave才能訪問到EPID密鑰.

遠程認證的過程中, 假設遠程認證方B要認證enclaveAA先執行EREPORT指令, 將A的身份和附加信息組合生成REPORT結構, 利用引用enclave(稱其爲Q)的報告密鑰生成一個MAC, 連同報告結構一起發給QQ通過該結構驗證A是否運行於同一平臺, 然後將它封裝爲一個引用結構體QUOTE, 並使用EPID進行簽名, 將QUOTE和簽名一同發給遠程認證者.報告結構還需提供額外的用戶數據域, 可用來傳遞用戶自定義的信息, 以支持更復雜的交互方式.

3 SGX在雲安全中的應用進展3.1 基於SGX構建雲端應用安全隔離執行環境

當前, 雲計算環境需要可信計算的支持, 雲環境的構建通常使用傳統分層的安全模型來保護特權程序免受不可信的用戶程序的攻擊, 但是卻不能保護用戶程序的數據被特權軟件所訪問和篡改.這導致雲環境下的用戶只能被動地相信雲服務供應商的硬件和軟件的可靠性, 以及管理人員不會去竊取自己的私密數據.

目前, 保護雲計算環境安全的方法主要有3種.

●  第1種是基於特定的硬件保護關鍵的祕密信息, 如密鑰的安全.該方法難以保證整個應用程序的安全, 且密鑰通常會以明文的形式在不可信節點上使用;

●  第二種是基於可信的VMM(virtual machine manager)來保護應用程序, 該方法需要整個VMM可信, 並且無法防止特權用戶竊取用戶隱私數據;

●  第3種方法是基於密文數據的計算, 如密文檢索, 但該方法在性能方面存在侷限性.

文獻[11]利用Intel SGX技術爲用戶程序提供一個安全的隔離執行環境, 從而防止用戶數據被特權軟件訪問, 或是受到基於硬件的攻擊(如內存掃描).方案基於Drawbridge[12]沙箱機制, 爲用戶程序的運行提供了一個Picoprocess容器[13], 從而保證運行在裏面的用戶程序無法對外界系統造成破壞; 再在容器中創建一個enclave, 將用戶程序、System Library和Shield module放進enclave中, 以防止這些數據和代碼被外界的特權軟件或惡意程序訪問和篡改.System Library通過Downcalls和Upcalls的方式與Drawbridge主機進行交互, 用來完成用戶程序需要的系統功能, Shield module模塊配合檢查函數的參數和返回的結果, 進而保護用戶程序的安全執行[1415].

由於操作系統自身可能是不可信的, 因此方案中設計了一個System Library庫, 用來將操作系統的系統調用進行封裝, 並在應用程序運行時將其一起放到enclave中供應用程序使用, System Library自身實現了全部的系統調用.

爲了保護用戶程序和System Library的代碼和數據不被enclave外的惡意軟件攻擊, 設計了Shield module, 該模塊通過仔細地檢查參數和函數調用的返回值來進行保護.Shield module自身包含了一些典型的內核函數:內存管理、進程調度、文件系統操作等.

3.2 基於SGX技術構建安全容器

基於容器的虛擬化現在越來越流行, 已經有不少的多租戶環境開始使用容器來實現應用程序的性能隔離. Docker[16]或者Kubernete[17]提供的容器只需要佔用較少的資源就能提供快速的啓動和比由hypervisor監控的虛擬機提供更高的I/O性能.但是, 現有的容器隔離機制專注於保護其免受不可信容器的訪問, 然而租戶需要保護應用程序數據的機密性和完整性, 以防止未經授權的其他容器, 或更高級的系統軟件(如操作系統內核和管理程序等)訪問.這便需要有硬件機制能夠保護用戶級軟件免受特權級系統軟件的影響.Intel SGX的出現恰好滿足這一需求.使用SGX來構建安全容器面臨着兩個挑戰:(1)儘量減少enclave中可信計算基的大小; (2)儘量減少性能開銷.

因此, 文獻[18]提出了SCONE, 一種用於Docker的安全容器環境, 其利用Inter CPU提供的SGX機制來保護Docker容器內進程免受外部攻擊.SCONE的設計主要實現了:

(1) 一個較小的可信計算基;

(2) 更低的性能消耗:SCONE提供了一個安全C語言靜態庫接口用於透明的加解密I/O數據; 降低了因線程同步和系統調用導致的高性能消耗; 支持用戶級線程和異步系統調用.

通過實驗評估表明:SCONE能夠通過SGX保護未被修改的應用程序, 並實現0.6~1.2倍的吞吐量.

3.3 基於SGX構建雲端大數據安全可信計算環境

MapReduce[19]的出現有力推動了大數據技術和應用的發展, 使其成爲目前大數據處理最成功的計算技術.由於大數據計算通常會租用公共計算設施, 如公有云, 因此, 如何在MapReduce計算過程中確保用戶數據不被泄露, 解決大數據計算中數據的安全和隱私, 是目前亟需要解決的問題[2021].

目前, 對於大數據安全通常採用的是基於密碼的保護機制, 如全同態加密機制、安全多方計算或零知識證明的機制, 然而這些方式目前都因受到性能的制約而沒有大規模實用.另外一些方法, 如數據庫加密機制, 如CtrptDB[22]和Cipherbase[23], 只能對數據庫進行保護, 卻不能保護計算中的代碼和數據.基於此, 文獻[19]提出了基於SGX技術構建大數據安全可信計算環境, 確保數據在計算和存儲中的安全.

該方案主要需解決以下3個關鍵問題.

(1) 利用SGX構建最小可信計算基

爲增加方案的實用性, 本方法需要運行在未修改過的Hadoop上, 因此係統的可信計算基不包括Hadoop, OS和hypervisor.用戶編寫map和reduce代碼, 並且將它們進行加密, 之後上傳到雲端.在每一個工作節點上, 雲操作系統將這些代碼加載進一個隔離的enclave中之後, enclave內的代碼會執行密鑰交換協議, 解密出map和reduce函數, 從而運行分佈式計算處理用戶數據.

(2) 保證整個分佈式計算的完整性

SGX只能在本地計算節點上爲程序和數據構建安全執行環境, 如何在分佈式大數據處理過程中確保代碼和數據的安全可信是需要解決的關鍵問題.本方案提出了一個高效的分佈式作業執行協議來保證MapReduce作業的正確性和機密性.每個計算節點爲正在運行的程序產生一個安全的摘要信息, 之後再將這些摘要進行收集整合, 通過驗證最後結果中的最終摘要信息, 用戶可以檢查雲服務提供商是否干擾了計算的執行.

(3) 保護用戶程序免受非法內存訪問攻擊

SGX技術允許用戶程序訪問系統的全部地址空間, 因此, 不安全的內存訪問可能會泄露數據或者帶來其他的安全威脅.如何限制enclave內部程序的內存訪問, 減輕由於應用程序本身的缺陷而導致其遭受非法內存訪問攻擊, 是需要解決的一個問題.該項目基於GCC開發了安全增強的編譯器[24], 在代碼編譯過程中增加額外參數, 將其地址空間限定在有效範圍內, 從而有效地將需要保證完整性的代碼放到一個獨立的區域中, 並且對該區域中變量的讀寫訪問都將進行檢查.只有通過檢查, 才能真正訪問到用戶數據.

3.4 基於SGX技術實現NFV的狀態保護

網絡功能虛擬化(network function virtualization, 簡稱NFV)通過軟硬件解耦及功能抽象, 使網絡設備功能不再依賴於專用硬件, 資源可以充分靈活共享, 實現新業務的快速開發和部署, 並基於實際業務需求進行自動部署、彈性伸縮、故障隔離和自愈等.NFV網元是有狀態的[25], 例如, 內容分發網絡從遠程服務器緩存瀏覽器內容並且把它們發送至客戶端.類似地, 入侵檢測系統和入侵防禦系統都有逐流或者多流(共享)狀態來應對入侵.在現今NFV的部署方式中, 攻擊者可以通過訪問共享的物理資源來竊取網絡應用的狀態信息.這篇文獻中, 作者提出一種保護方案(S-NFV), 即是利用SGX對NFV產生的狀態進行安全隔離保護.但該方案較簡單, 僅在模擬環境OpenSGX中驗證了保護Snort[26]應用程序流狀態安全的方案.

4 SGX的漏洞及防禦4.1 SGX側信道攻擊4.1.1 威脅模型

側信道攻擊主要目標是攻擊enclave數據的機密性.攻擊者來自non-enclave部分, 包括應用程序和系統軟件.系統軟件包括OS, hypervisor, SMM(system management mode), BIOS等特權級軟件.

側信道攻擊一般假設攻擊者知道enclave初始化時候的代碼和數據, 並且知道內存佈局.內存佈局包括虛擬地址、物理地址以及他們之間的映射關係.有些側信道攻擊假設攻擊者知道enclave的輸入數據, 並且可以反覆觸發enclave, 進行多次觀察記錄.側信道攻擊還假設攻擊者知道運行enclave平臺的硬件配置、特性和性能, 比如CPU、TLB(translation lookaside buffer)、Cache、DRAM、頁表、中斷以及異常等各種系統底層機制.

4.1.2 側信道的攻擊面

Enclave和non-enclave共享大量的系統資源, 這就給側信道攻擊留下了非常大的攻擊面.經過對現有資料的總結和系統結構的分析, 我們把SGX的攻擊面總結在圖 7裏面.

Fig. 7 Attack surface of SGX side channel圖 7 Intel SGX側信道的攻擊面

 

圖 7所示, enclave的運行過程中會用到:

(1) CPU內部結構.比如pipeline, BPB(branch prediction buffer)等等.這些結構不能夠直接訪問, 但是如果可以間接利用[27], 仍然可能泄露enclave的控制流或數據流;

(2) TLB.TLB包括iTLB, dTLB和L2 TLB.如果Hyper-Threading打開, 兩個邏輯核共享一個物理核, 這個時候會大大增加側信道攻擊的可能;

(3) Cache.Cache包括L1instructionCache, L1dataCache, L2Cache和L3Cache(又叫LLCCache);

(4) DRAM.DRAM包括channels, DIMMs(dual inline memory module), ranks, banks.每個banks又包括rows, columns和rowbuffer;

(5) 頁表(page table).頁表可以通過權限控制來觸發缺頁異常, 也可以通過頁表的狀態位來表明CPU的某些操作.

對於不同的攻擊面, 攻擊者需要了解具體的細節和工作原理, 其中比較重要的參考文檔就是Intel的手冊[2829].目前, SGX已經部署在SkyLake的機器上面.因此, 我們需要對SkyLake的一些硬件和性能細節重點掌握.文檔[30]對SkyLakei7-6700的一些CPU細節和性能做了一個比較全面的介紹和測量.

目前, 文獻[31]發現了Intel文檔的一處描述和實際實驗有衝突, 在這裏需要重點說明一下.具體來講, Intel CPU開發手冊指出, SkyLake機器在打開Hyper-Threading之後的TLB的配置信息如圖 8所示, 然而根據文獻[31]的實驗, 這個Intel文檔對於TLB partition的描述是不準確的.實驗結果表明, iTLB是fixedpartition, 其他(dTLB和L2 TLB)都是dynamicpartition.

Fig. 8 Configuration of TLB in SkyLake圖 8 SkyLake的TLB配置


4.1.3 側信道攻擊

側信道攻擊的主要手段是通過攻擊面獲取數據, 推導獲得控制流和數據流信息, 最終獲取enclave的代碼和數據的信息, 比如加密密鑰、隱私數據等等.我們這裏不一一列舉具體的工作, 而是試圖從攻擊面的角度, 全面地介紹側信道攻擊.本節下面的內容就從典型的攻擊面, 包括頁表、TLB、Cache、DRAM以及CPU內部結構, 描述目前已知的側信道攻擊.

4.1.3.1 基於頁表的攻擊

最早的SGX側信道攻擊就是基於頁表的攻擊[3233], 這類利用頁表對enclave頁面的訪問控制權, 設置enclave頁面爲不可訪問.這個時候任何訪問都會觸發缺頁異常, 從而能夠區分enclave訪問了哪些頁面.按照時間順序把這些信息組合, 就能夠反推出enclave的某些狀態和保護的數據.該類典型的攻擊包括controlled- channel攻擊[32]和pigeonhole攻擊[33].這類攻擊的缺點就是精度只能達到頁粒度, 無法區分更細粒度的信息.但是在某些場景下, 這類攻擊已經能夠獲得大量有用信息.例如圖 9所示, 這類基於頁表的側信道攻擊可以獲得libjpeg處理的圖片信息.經過還原, 基本上達到人眼識別的程度.pigeonhole攻擊也展示了大量對現有的安全庫的攻擊, 如圖 10所示.

Fig. 9 Attack effect of Controlled-channel attack to libjepg圖 9 Controlled-channel攻擊對libjpeg的攻擊效果

 

Fig. 10 Attack effect of Pigeonhole attack to the security library圖 10 Pigeonhole攻擊對安全庫的攻擊效果

 

後來, 基於頁表的攻擊有了新的變種.這些側信道攻擊主要利用頁表的狀態位[31].如圖 11所示, 一個頁表項有很多位, 有些是用來做訪問控制, 比如P, RW, US, XD; 有些則標識狀態, 比如D(dirtybit)和A(accessbit).如果Abit被設置, 則表明該頁表指向的頁面已經被訪問; 如果D bit被設置, 則表明該頁表指向的頁面發生了寫操作.通過監控觀察這些狀態位, 攻擊者就可以獲取和controlled-channel/pigeonhole攻擊類似的信息.

Fig. 11 Typical format of PTE圖 11 典型的頁表項的格式(x64系統)


4.1.3.2 基於TLB的攻擊

目前還沒有完全基於TLB的攻擊, 但是已經出現TLB作爲輔助手段的側信道攻擊, 我們會在混合側信道攻擊的章節(第4.1.3.6節)裏面介紹.關於TLB的兩點重要信息, 我們需要了解, 希望對提出新的基於TLB的側信道攻擊和防禦有所幫助.

(1) TLB的層次結構.目前, SkyLake的機器分爲L1和L2兩層, 不同層次出現TLB miss的時間代價不同;

(2) TLB對代碼和數據的區分.L1區分代碼(iTLB)和數據(dTLB), 兩者直接有Cachecoherence的保證; .L2不區分代碼和數據.

4.1.3.3 基於Cache的攻擊

傳統側信道有很多基於Cache的攻擊[34-38].在SGX的環境裏面, 大部分側信道技術仍然適用, 而且可以做得更好.原因在於:在SGX環境裏面僅依賴CPU, 因此當操作系統, 甚至是BIOS都是惡意的情況下, 攻擊者可以控制整個系統的資源.文獻[39]證明, SGX易受Cache-timing攻擊.他們實現了一種基於Cache的Prime & Probe算法, 能夠識別Cache行粒度上的enclave代碼訪問的內存位置, 並在相同的Hyper-threading核心上運行enclave和攻擊線程, 使得攻擊線程和enclave共享內存.通過這種方法, 能夠在不到10秒的時間獲得加密程序的AES密鑰.但是另一方面, SGX能很好地防禦利用Flush+ Reload的Cache攻擊.因爲EPC頁面一次只屬於一個enclave, 這就導致攻擊者和enclave程序不能共享代碼, 也就使得Flush+Reload變得不可能.

在攻擊者能控制整個系統資源的情況下, 可以有針對地調度資源, 減少側信道的噪音, 增加側信道的成功率.降低噪音的策略大體可以有一下幾種[39-42].

(1) 核隔離(coreIsolation).這個方法的主要目標就是讓enclave獨自佔有一個核(不允許其他程序運行在該核上面);

(2) 緩存隔離(cacheIsolation).儘量使用L1或者L2級別的Cache進行側信道攻擊.L3的Cache被所有的核共用, 會引入不必要的噪音;

(3) 不間斷運行(uninterrupted execution).也就是不觸發或儘量少觸發AEX(asynchronous enclave exit), 因爲AEX和後續的ISR(interrupt service routines)都會使用Cache, 從而引入不必要噪音.少觸發AEX就是要使用中斷綁定(interruptaffinity)和時鐘頻率; 不觸發AEX基本上就是讓系統軟件(比如OS)屏蔽所有中斷.

除了降低噪音, 攻擊者還可以提高攻擊的精度, 大體策略有:

(1) 高精度時鐘.可以採用APIC(advanced programmable interrupt controller)提供的高精度時鐘和硬件TSC(time stamp counter);

(2) 放大時間差異.比如, 攻擊者可以配置側信道攻擊代碼所在的CPU以最高頻率運行, 而對enclave所在的CPU進行降頻處理.

基於Cache的側信道攻擊可以進行細粒度的監控.最小粒度可以做到一個Cacheline, 即64個字節.由於粒度更小, 基於Cache的側信道可以比基於頁表的側信道以及後面介紹的基於DRAM的側信道獲得更多的信息.

4.1.3.4 基於DRAM的攻擊

在講解基於DRAM的側信道之前, 我們首先了解一些DRAM的基本知識.DRAM一般由channel, DIMM, rank, bank等部分構成, 如圖 12所示.每個bank又由columns和rows組成, 並且還有一個rowbuffer用來緩存最近訪問過的一個row.在訪問DRAM的時候, 如果訪問地址已經被緩存在rowbuffer當中(情況A), 就直接從buffer裏面讀取; 否則, 需要把訪問地址對應的整個row都加載到rowbuffer當中(情況B).當然, 如果rowbuffer之前緩存了其他row的內容, 還需要先換出rowbuffer的內容再加載新的row(情況C).ABC對應的3種情況, 訪問速度依次遞減(情況A最快, 情況C最慢).這樣, 通過時間上的差異, 攻擊者就可以瞭解當前訪問的內存地址是否在rowbuffer裏面以及是否有被換出.文獻[42]在側信道攻擊過程中用到了基於DRAM的側信道信息.另外, 文獻[43]介紹了更多基於DRAM的攻擊細節, 不過, 該文獻不是在SGX環境下的攻擊.

Fig. 12 Typical format of DRAM圖 12 典型的DRAM的格式

 

基於DRAM的側信道攻擊有一些不足[31].

●  enclave使用的內存通常都在緩存裏面, 只有少部分需要從DRAM裏面去取;

●  DRAM的精度不夠.例如, 一個頁面(4KB)通常分佈在4個DRAM row上面, 這樣, 基於DRAM的側信道攻擊的精度就是1KB, 僅僅比基於頁表的側信道攻擊好一些, 遠遠不及基於Cache的側信道攻擊的精度;

●  DRAM裏面存在很難避免的噪音干擾.因爲一個DRAM row被很多頁面使用, 同時, 同一個bank不同row的數據讀取也會對時間測量造成干擾, 使得誤報時常發生.

4.1.3.5 基於CPU內部結構的攻擊

CPU內部有大量的結構是在enclave和non-enclave之間共用的.這就給側信道攻擊提供了大量的攻擊面素材.比如, 文獻[27]裏面提出使用BPB來實現側信道攻擊.具體來講, 在enclave和non-enclave切換的時候, BPB裏面存留的跳轉預測記錄並沒有被清除.這樣使得non-enclave可以構造一個程序, 測試這些跳轉預測記錄.如果預測成功, 則執行時間較短; 反之, 如果預測失敗, 則執行時間較長.通過時間上的差異, 攻擊者就可以推測enclave之前運行的跳轉分支, 進而獲得enclave運行的控制流圖.通過控制流圖, 攻擊者又可以進一步推測隱私數據, 比如加密密鑰等.這個攻擊的強大之處在於, 它幾乎可以還原整個控制流.這樣細粒度的信息使得該攻擊可以泄露很多信息.該文獻也進行了大量實驗, 充分展示了這個攻擊的強大.實驗表明, 這個攻擊可以泄露字符串信息、RSA私鑰以及網絡數據等等.

目前, 對以CPU內部結構爲攻擊面的工作纔剛剛開始, 僅僅有一個工作發表.相信通過進一步研究, 還會有其他的攻擊面被陸續發掘.

從設計上來講, SGX可以避免這類側信道攻擊.具體來講, 在enclave到non-enclave的切換過程中, CPU清除這些共用的內部結構體.這樣, non-enclave就不會得到任何殘留的記錄.但在具體實現的時候還要注意一些細節, 比如清除的時間也必須是穩定不變的.如果enclave運行的差異會導致清除操作的時間差異, 攻擊者很可能據此推導出enclave的某些運行狀態.

4.1.3.6 混合側信道攻擊

混合側信道攻擊是同時採集多個側信道攻擊面的信息, 或通過多個攻擊面共同作用放大差異增加準確度.比較典型的做法包括:

(1) TLB和頁表混合攻擊.比如TLB miss的時候會加載頁表, 這個時候CPU會設置頁表的Accessbit.文獻[31]就在Hyper-Threading的情況下觸發大量的TLB miss, 再通過觀察頁表的A bit進行側信道攻擊;

(2) Cache和DRAM混合攻擊.基於DRAM的攻擊只能精確到row(一個row通常8KB)的粒度.爲了增強這類攻擊的效果, 文獻[31]提出了這個Cache-DRAM攻擊來增加空間精度, 把精度提高到了一個Cacheline(64B).

除了結合兩個攻擊面的側信道攻擊, 還可以採用多個攻擊面相結合的側信道攻擊.這類混合攻擊目前在SGX的環境下還沒有看到相關工作.不過, 之前CCS’16的文獻[44]使用了3個攻擊面(i.e., TLB、頁表和Cache)的混合.我們相信, 類似的攻擊也可以在SGX的環境下使用.

4.1.4 未來可能的側信道攻擊

未來, 新的側信道攻擊可能來自兩個方面.

●  第一就是發掘新的混合側信道攻擊.前面列出的經典的混合側信道攻擊, 他們往往是用兩種攻擊面信息.因此, 我們可以考慮多個攻擊面結合的側信道攻擊.以往的混合側信道攻擊往往專注於內存管理和地址轉換等方面, 新的側信道攻擊可以結合其他方面的信息, 進行一些新的嘗試;

●   Enclave所有和non-enclave共享的資源都可能成爲潛在的側信道攻擊面.因此, 發掘新的側信道攻擊的第2個途徑就是發現新的共享資源, 比如未被髮掘的CPU內部共享結構.這些新的共享資源可能來自一些新的硬件特性, 如Intel PT(processor trace), Intel TSX(transactional synchronization extensions), Intel MPX(memory protection extensions), Intel CAT(cache allocation technology)等等.

4.2 SGX側信道防禦

目前, 已經有很多文獻給出了防禦SGX側信道攻擊的方案, 有些只是大體的思路, 有些則已經有成型的設計和實現.我們在這裏主要介紹防禦的思路和方法, 不涉及設計和實現的細節.首先, 我們把這些方法涉及的層次分爲源碼級別、系統級別和硬件級別.

4.2.1 源碼層次的解決方案

這類方法的主要思想就是通過修改源碼, 編寫出能夠防禦側信道的代碼實現.這裏的核心思想就是隱藏控制流和數據流.

這類方法的探索已經在一些密碼算法中有所涉及, 比如利用exponentblinding[45]來增強RSA算法, 利用bitslicing增強DES和AES算法[4647].在機器學習領域, 也有人做了嘗試.ObliviousML[48]修改了機器學習的算法, 使用obliviousassignmentsandcomparisons來隱藏控制流, 使用obliviousarrayaccess(即k-anonymity)來隱藏數據流.文獻Raccoon[49]也採用了類似的方法, 使用obliviousstore隱藏if-else控制流, 使用ORAM(oblivious random access memory)來隱藏數據流, 從而抵禦側信道攻擊.但是目前, 這些技術還很難在一個通用的計算環境下實現, 比如looptripcount, longjump以及break等問題.

4.2.2 系統層次的解決方案

系統層次的解決方案主要是利用一些系統特性來防禦或檢測SGX側信道攻擊.這裏有幾個思路可以參考.

(1) 隨機化技術(randomization).隨機化技術可以應用在控制流和數據流上面, 這將大大增加側信道攻擊的代價.防禦效果與隨機化粒度以及隨機化頻率有關;

(2) 檢測可疑異常和中斷.T-SGX[50]利用TSX技術來檢測中斷和缺頁異常, 從而抵禦最原始的controlled- channel攻擊[32].但是現在已經出現不需要觸發AEX的側信道攻擊;

(3) 檢測時間異常.目前, Déjá Vu系統[51]也使用了TSX技術來保護enclave自己的時鐘.如果攻擊者中斷或減緩enclave的運行, enclave就可以通過自己的時鐘檢測出時間上的異常.目前, 絕大多數側信道攻擊都會引起enclave的顯著性能下降.因此, 檢測時間異常還是一個比較有效的方案;

(4) Cache隔離.目前, Intel推出了CAT技術, 允許對Cache進行粗粒度的隔離.這個技術已經被使用在雲計算平臺上面[52]防禦側信道攻擊, 但是還沒有看到在SGX環境裏面的應用.把CAT應用到SGX的一個很大的障礙是enclave在用戶空間無法有效地檢測或驗證CAT的配置.

4.2.3 硬件層次的解決方案

硬件層次的解決方案還處於探索階段.加入側信道防禦, 將會顯著增加硬件複雜度, 影響功耗和性能.這也可能是Intel在最初推出SGX的時候沒有加入側信道防禦的一個原因.硬件解決方案可能有以下兩種.

(1) 硬件分割(partition).類似於ARM裏面的TrustZone, 有自己的Cache, memory等一系列硬件資源, 物理上與non-enclave分離;

(2) 硬件隔離(isolation).類似於Intel CAT技術, 可以單獨爲每一個enclave提供一個動態隔離出的Cache.當enclave銷燬的時候, 隔離出的Cache可以被收回.這裏一個很重要的要求就是, enclave必須可以驗證這個功能的有效性.

Sanctum[53]已經做了一些嘗試, 但是還不夠徹底, 還會遭受攻擊[41].

4.3 SGX程序機密性問題

在文獻[54]中, 作者基於自動定理證明和信息流分析, 提出了一套SGX的使用規範, 設計了Moat這一檢測工具, 通過在彙編語言層面對程序進行分析, 從而檢測應用程序是否存在泄露SGX區域中祕密信息的可能.

4.4 SGX多線程同步漏洞

在文獻[55]中, 展示了在使用SGX後以往被視爲無害的同步漏洞可能會變爲嚴重的安全漏洞.通過在enclave代碼中利用UAF(use-after-free)和TOCTTOU(time-of-check-to-time-of-use)漏洞, 一個攻擊者可以劫持它的控制流或者繞過訪問控制[5657].

文獻[55]提出AsyncShock, 一個利用運行於SGX的多線程代碼的同步漏洞的工具.AsyncShock只能通過操作用於執行enclave代碼的線程調度來達到這一的目標.它允許一個攻擊者通過在enclave頁強制分割錯誤來中斷線程.

5 SGX技術的挑戰與展望5.1 SGX與其他相關技術對比分析5.1.1 TPM/TCM

TPM/TCM提供度量、簽名、加解密、密封等功能, 其主要用於系統和應用程序的靜態完整性度量, 無法確保運行態的安全.SGX除了提供程序加載時的完整性驗證外, 還保證程序運行時安全, 緩解針對程序運行時的攻擊[58-60].

5.1.2 Intel TXT

Intel TXT[61]基於TPM動態可信度量根, 通過一組安全擴展, 爲系統創建一個被保護的環境, 其在設計時缺乏對SMM的考慮導致可被繞過, 而SMM惡意代碼無法繞過SGX硬件保護機制去訪問受保護的模塊.

5.1.3 硬件虛擬化

Intel VT/AMD SVM硬件虛擬化技術提供操作系統級別的隔離環境, SGX則針對用戶空間提供程序粒度的隔離.虛擬化技術通過特權分級制度保證隔離, 其安全性依賴於特權軟件的安全性, 若VMM出現安全漏洞, 平臺的安全性將難以保證.而SGX提供硬件隔離的執行環境, 不依賴於固件和特權軟件的安全性, 特權軟件也無法訪問普通程序被保護的內存[6263].

5.1.4 TrustZone技術

TrustZone技術是由ARM公司提出的嵌入式平臺安全技術, 在儘量不影響原有處理器設計的情況下, 通過物理隔離保護安全內存、加密塊、鍵盤和顯示器等外設.其將系統的硬件和軟件資源劃分爲兩個執行環境——安全環境(secure world)和普通環境(normal world)[64].每個執行環境都有自己的系統軟件和應用軟件、內存區及外圍設備.通過TrustZone的硬件邏輯, 建立一個隔離的TEE爲安全敏感應用提供安全服務, 使得安全環境的資源不能被普通環境的組件訪問, 將其與普通環境隔離開來.TrustZone技術已經得到廣泛的研究與應用:文獻[65]介紹了利用TrustZone構建移動平臺TEE的方法; 文獻[66]利用TrustZone技術提供的代碼隔離技術可以實現可信白名單, 確保目標設備只能執行符合白名單策略的授權代碼; 文獻[67]設計了對移動嵌入式內核完整性保護方案, 保障內核的可信性.TrustZone與可信計算技術相結合方面也已經有不少的研究成果:文獻[6869]基於TrustZone中實現了符合TPM規範的應用於移動平臺的DAA(direct anonymous attestation)協議, 爲移動平臺的安全應用提供快速有效的匿名身份認證服務; 文獻[70]提出一套可信操作的TEEM方案, 利用TrustZone技術實現了TPM1.2模擬器的安全隔離, 保障了可信操作的安全性.在實際應用中, 蘋果、華爲和三星等公司也基於TrustZone開發了指紋識別和安全支付等應用.

TrustZone和SGX的不同之處在於:TrustZone中, 通過CPU將系統劃分爲兩個隔離環境, 兩者之間通過SMC指令通信, 一旦Secure world中存在惡意程序, 那麼將危害整個系統的安全; 而SGX中, 一個CPU可以運行多個安全enclaves, 併發執行, 即使某個enclave中存在惡意程序, 它也不能訪問和危害其他enclave的被保護內容.

5.2 SGX技術的優勢與不足5.2.1 優勢

與現有的幾種硬件安全技術相比, Intel SGX主要有3大優勢:一是通過內存加密技術保護程序運行態的安全, 使得通過內存泄漏攻擊獲取關鍵信息的難度增大; 二是將系統的可信計算基縮小到CPU, 相比以往將整個操作系統或特權軟件(如hypervisor等)視爲可信計算基, 可以避免更多的系統攻擊帶來的危害; 三是支持虛擬化技術、容器技術, 可用性更強.

5.2.2 SGX的不足之處

(1) 由於enclave處於用戶態, 其自身無法執行系統調用, 需要與不可信區域進行交互(運行庫的支持有限, 接口的安全性).在執行系統調用前需要退出enclave, 執行完成後將結果返回到enclave中, 增大了安全風險和系統開銷;

(2) Enclave中的數據和處理過程, 如果依賴於外部數據, 則存在一定的安全隱患.例如:通過一些不合法輸入, 可以發起對可信區的緩衝區溢出攻擊, 這些攻擊可能會改變可信區中程序的執行流程、獲取可信區中的敏感信息;

(3) SGX本身無法抵禦側信道攻擊;

(4) SGX提供的enclave可使用內存太小, 當程序數量和規模增大時, 需要換進換出頁面.爲了保證安全性, 需要對頁面進行完整性和機密性保障, 導致系統開銷大;

(5) 使用SGX提供的enclave時需要對程序進行改造, 當程序規模大時, 帶來的編程成本高.

5.3 SGX研究和應用需求展望

自2013年Intel推出SGX技術以來, SGX技術便受到了學術界和工業界的極大關注.目前, 除SGX自身安全問題研究外, SGX技術已經被學術界和工業界應用到了很多領域.第3節中我們介紹了目前SGX在雲計算安全相關領域的研究工作, 此外, SGX已經被用於構建可信的身份認證環境[71]、可信的網絡通信通道[72]、可信的系統審計[73]、高效安全的密文計算機制[74]、保護AI程序和數據安全[75]等方面.基於以上研究進展, 我們提出了SGX在雲計算相關研究領域的進一步應用需求和研究方向.

5.3.1 可信計算與SGX技術的結合

目前, 可信雲主要依賴於在服務器中部署TPM[7677], 利用它的信任鏈以及完整性度量技術, 保障平臺的可信啓動、操作系統可信、虛擬機可信等.但這種保護是靜態的, TPM無法動態保護系統內存中的密鑰等隱私數據的安全.SGX技術可以對軟件運行時的環境進行硬件隔離, 安全係數高, 將其應用於可信環境構建中, 與可信計算技術[78]相結合, 可以保障可信應用運行時的安全性.然而, 如何將TPM與SGX技術進行結合, 從而構建更安全的可信計算環境, 是目前需要進一步研究的問題.

5.3.2 利用SGX技術構建可信雲安全環境

隨着雲計算的興起與發展, 虛擬化技術得到了廣泛的研究與應用.虛擬化技術爲雲平臺實現資源抽象、隔離以及資源的按需分配提供技術支撐.在雲虛擬化架構中, 虛擬機是系統資源虛擬化的直觀體現, 也與雲用戶密切相關.

目前, 一些研究工作將可信計算和虛擬化技術相結合, 提出了虛擬可信平臺模塊的概念, 它通過模擬硬件TPM的功能爲每個虛擬機分配一個vTPM設備[7980], 進而爲虛擬機提供可信計算服務[81-83].然而這種安全更多關注的是虛擬機的靜態安全, 對於虛擬機內應用程序的動態安全卻無法通過這種方案得到根本保證; 同時, 虛擬機動態遷移是構建可靠的雲平臺的重要需求之一[84-88].通過動態遷移技術, 可以將虛擬機從負載過高的主機遷移到負載較小的主機, 以實現負載均衡; 當某一主機出現問題時, 可以通過遷移將該主機的虛擬機遷移至其他主機, 保障虛擬化平臺的安全可靠.以前對於虛擬機動態遷移的研究大都集中在提升性能方面, 主流的虛擬化平臺包括Xen[89], KVM[90]都有適用於自身平臺的完善的動態遷移技術, 但是隨着網絡空間安全的日益嚴峻[91], 虛擬機遷移的安全問題也開始受到人們的重視.

因此, 如何結合Intel SGX技術構建可信雲執行環境, 實現虛擬機的可信啓動、可信執行、虛擬可信根的安全保護以及虛擬機及其虛擬可信根的安全遷移, 是未來一個值得研究的方向.

5.3.3 利用SGX技術構建虛擬網元可信執行環境

在雲虛擬網絡中, 網絡功能主要不再僅以硬件的方式出現, 取而代之的是數量衆多並且可複用的虛擬網元(virtual network function, 簡稱VNF).然而, 如何保護這些虛擬網元自身的安全, 是雲虛擬網絡安全面臨的一個難題.SGX爲這一問題的解決提供了硬件基礎.

基於上述SGX技術在雲環境中應用的構想, 如圖 13, 可以構建基於SGX的虛擬網元可信執行環境構建方案.通過SGX技術爲虛擬網絡功能構建安全可信的執行環境.主要的思路是:將虛擬網絡功能中涉及安全隱私的主要代碼和數據, 如密碼操作、安全策略等放到enclave中執行和加密保護; 同時, 基於SGX對虛擬網元進行身份認證、授權和網絡通信監管, 構建達到與單獨隔離硬件接近的安全執行環境.

Fig. 13 Protected cloud architectures of NFV based on the SGX圖 13 基於SGX的NFV保護雲環境架構


5.3.4 利用SGX技術構建面向雲的可信外包計算

外包計算的安全與隱私, 是近幾年來的研究熱點問題.通過將計算外包到雲中, 一個計算能力有限的用戶可以利用雲計算強大的計算能力實現更高效更快捷的計算服務.然而, 如何保護外包數據和計算過程的安全與隱私, 是目前需要解決的問題.傳統的方式是利用密文檢索等方法, 在保護數據隱私的同時實現安全的計算.然而密文檢索目前只能在密文數據上實現簡單的計算, 此外, 性能目前仍然是制約密文檢索技術被應用的瓶頸.SGX爲保護外包計算的安全與隱私提供了一條新的途徑.目前, 該方面的研究工作剛剛起步[75], 如何基於SGX構建可信的外包計算環境, 解決多方授權的外包計算安全, 以及針對具體應用構建可實用的安全外包計算服務, 實現外包計算中數據安全隱私保護, 是目前需要進一步研究的問題.

5.3.5 SGX與ORAM的結合

雲計算中, 用戶的數據訪問模式可以泄露用戶的隱私.爲解決這一問題, 目前, 研究者利用不經意隨機存取(ORAM)保護雲平臺中用戶數據訪問模式的隱私.然而, 目前ORAM方案效率較低, 無法實際應用.SGX擁有較小的可信基, 同時具有較高的性能和安全性.如何結合SGX和各種ORAM機制[92], 例如Path ORAM和Circuit ORAM, 實現更安全的用戶數據訪問模式隱私保護, 是值得關注和研究的問題.

6 結束語

本文對SGX的技術原理、側信道攻擊以及在雲安全領域的應用和未來研究方向進行了深入分析和總結.首先介紹了該技術的基礎架構, 並且對其安全框架進行了詳細分析; 接着, 深入剖析了其技術原理, 同時, 針對SGX自身安全, 深入討論了SGX側信道攻擊及其防禦; 此外, 文中也將該技術與其他可信計算技術進行了分析對比, 在此基礎上, 指出了SGX技術自身的優勢和不足, 並進一步介紹了SGX在雲計算安全相關領域的應用; 最後, 本文提出SGX在雲安全相關領域的未來應用需求和研究方向.

參考文獻

 

[1] 

Wang JW, Jiang Y, Li Q, Yang Y. Survey of research on SGX technology application. Journal of Network New Media, 2017, 6(5): 3–9(in Chinese with English abstract). [doi:10.3969/j.issn.2095-347X.2017.05.002]

 

[2] 

Intel Corporation. Intel® software guard extensions programming reference. Rev. 2. 2014. Ref. #329298-002.

[3] 

Shaun D, Richard F. SGX: The good, the bad and the downright ugly. 2014.

[4] 

Intel Corporation. Intel® SGX for dummies (Intel® SGX design objectives). 2013. https://software.intel.com/en-us/blogs/2013/09/26/protecting-application-secrets-with-intel-sgx

[5] 

Intel Corporation. Intel® SGX for dummies-Part 2. 2014. https://software.intel.com/en-us/blogs/2014/06/02/intel-sgx-fordummies-part-2

[6] 

Intel Corporation. Intel® SGX for dummies-Part 3. 2014. https://software.intel.com/en-us/blogs/2014/09/01/intel-sgx-fordummies-part-3

[7] 

Prof. Dr. -Ing. Sadeghi AR. Trusted Execution Environments Intel SGX. Germany: Technische Universität Darmstadt (CASED).

[8] 

Intel Corporation. Intel® software guard extensions (Intel® SGX). Intel Labs., 2013. https://software.intel.com/sgx

[9] 

Intel Corporation. Intel® software guard extensions (Intel® SGX) SDK for Linux* OS., 2017.

[10] 

Rich M. Intel software guard extensions (SGX) is mighty interesting. 2013. https://securosis.com/blog/intel-software-guardextensions-sgx-is-mighty-interesting

[11] 

Baumann A, Peinado M, Hunt G. Shielding applications from an untrusted cloud with haven. ACM Trans. on Computer Systems, 2015, 33(3): 1–26. http://cn.bing.com/academic/profile?id=04c657304bab7c72baef3b5f37f32519&encoded=0&v=paper_preview&mkt=zh-cn

[12] 

Porter DE, Boyd-Wickizer S, Howell J, Olinsky R, Hunt GC. Rethinking the library OS from the top down. ACM Sigplan Notices, 2011, 46(3): 291–304. [doi:10.1145/1961296]

[13] 

Howell J, Parno B, Douceur JR. How to run POSIX apps in a minimal picoprocess. In: Proc. of the USENIX Conf. on Technical Conf. 2013. 321-332.

[14] 

Baumann A, Lee D, Fonseca P, Glendenning L, Lorch JR, Bond B, Olinsky R, Hunt GC. Composing OS extensions safely and efficiently with bascule. In: Proc. of the 8th ACM European Conf. on Computer Systems. 2013. 239-252.

[15] 

Tsai CC, Arora KS, Bandi N, Jain B, Jannen W, John J, Kalodner HA, Kulkarni V, Oliveira D, Porter DE. Cooperation and security isolation of library OSes for multi-process applications. In: Proc. of the 9th European Conf. on Computer Systems. 2014. 1-14.

[16] 

Merkel D. Docker:Lightweight Linux containers for consistent development and deployment. Linux Journal, 2014: 239.http://d.old.wanfangdata.com.cn/Periodical/ranj201411015

[17] 

Bernstein D. Containers and cloud:From LXC to docker to kubernetes. IEEE Cloud Computing, 2014, 1(3): 81–84. [doi:10.1109/MCC.2014.51]

[18] 

Arnautov S, Trach B, Gregor F, Knauth T, Martin A, Priebe C, Lind J, Muthukumuran D, O'Keeffe D, Stillwell M, Goltzche D, Eyers D, Kapitza R, Pietzuch P, Fetzer C. SCONE: Secure Linux containers with Intel SGX. In: Proc. of the 12th USENIX Symp. on Operating Systems Design and Implementation (OSDI). 2016

[19] 

Schuster F, Costa M, Fournet C, Gkantsidis C. VC3: Trustworthy data analytics in the cloud using SGX. In: Proc. of the Security and Privacy. IEEE, 2015. 38-54.

[20] 

Dean J, Ghemawat S. Mapreduce:Simplified data processing on large clusters. Communications of the ACM, 2008, 51(1): 107–113. [doi:10.1145/1327452]

[21] 

Dill S, Kumar R, Mccurley KS, Rajagopalan S, Sivakumar D, Tomkins A. Self-Similarity in the Web. ACM Trans. on Internet Technology (TOIT), 2002, 2(3): 205–223. [doi:10.1145/572326.572328]

[22] 

Popa RA, Redfield CMS, Zeldovich N, Balakrishnan H. CryptDB: Protecting confidentiality with encrypted query processing. In: Proc. of the ACM Symp. on Operating Systems Principles 2011(SOSP 2011). Cascais, 2011. 85-100.

[23] 

Arasu A, Blanas S, Eguro K, Kaushik R, Kossmann D, Ramamurthy R, Venkatesan R. Orthogonal security with cipherbase. In: Proc. of the Cidr. Asilomar, 2015.

[24] 

Nagarakatte S, Zhao JZ, Martin MMK, Zdancewic S. CETS:Compiler-enforced temporal safety for C. ACM SIGPLAN Notices, 2010, 45(8): 31–40. http://d.old.wanfangdata.com.cn/Periodical/xdyjljy200706019

[25] 

Shih MW, Kumar M, Kim T, Gavrilovska A. S-NFV: Securing NFV states by using SGX. In: Proc. of the 2016 ACM Int'l Workshop on Security in Software Defined Networks & Network Function Virtualization. 2016. 45-48.

[26] 

Roesch M. Snort-lightweight intrusion detection for networks. In: Proc. of the 13th USENIX Conf. on System Administration (LISA'99). 1999. 229-238.

[27] 

Lee S, Shih MW, Gera P, Kim T, Kim H, Peinado M. Inferring fine-grained control flow inside SGX enclaves with branch shadowing. In: Proc. of the 26th USENIX Security Symp. 2016.

[28] 

Intel Corporation. Intel x64 and ia-32 architectures optimization reference manual. 2016.

[29] 

Intel Corporation. Intel 64 and IA-32 architectures software developer's manual combined volumes: 1, 2a, 2b, 2c, 2d, 3a, 3b, 3c, 3d and 4. 2017.

[30] 

7-Zip LZMA benchmark. Intel skylake benchmark. https://www.7-cpu.com

[31] 

Wang WH, Chen GX, Pan XR, Zhang YQ, Wang XF, Bindschaedler V, Tang HX, Gunter CA. Leaky cauldron on the dark land: Understanding memory side-channel hazards in SGX. In: Proc. of the 2017 ACM SIGSAC Conf. on Computer and Communications Security (CCS 2017). 2017. 2421-2434.

[32] 

Xu YZ, Cui WD, Peinado M. Controlled-Channel attacks: Deterministic side channels for untrusted operating systems. In: Proc. of the 2015 IEEE Symp. on Security and Privacy (SP 2015). 2015. 640-656.

[33] 

Shinde S, Chua ZL, Narayanan V, Saxena P. Preventing page faults from telling your secrets. In: Proc. of the 11th ACM on Asia Conf. on Computer and Communications Security (ASIA CCS 2016). 2016. 317-328.

[34] 

Liu FF, Yarom Y, Ge Q, Heiser G, Lee RB. Last-Level cache side-channel attacks are practical. In: Proc. of the IEEE Symp. on Security and Privacy. IEEE Computer Society, 2015. 605-622.

[35] 

Yarom Y, Falkner K. FLUSH+RELOAD: A high resolution, low noise, L3 cache side-channel attack. In: Proc. of the 23rd USENIX Conf. on Security Symp. 2014. 719-732.

[36] 

Lipp M, Gruss D, Spreitzer R, Maurice C, Mangard S. ARMageddon: Cache attacks on mobile devices. In: Proc. of the 25th USENIX Security Symp. (USENIX Security 2016). 2016. 549-564.

[37] 

Gruss D, Maurice C, Wagner K, Mangard S. Flush+Flush: A fast and stealthy cache attack. In: Proc. of the 13th Conf. on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA). 2016.

[38] 

Gruss D, Spreitzer R, Mangard S. Cache template attacks: Automating attacks on inclusive last-level caches. In: Proc. of the 24th USENIX Conf. on Security Symp. 2015. 897-912.

[39] 

Götzfried J, Eckert M, Schinzel S, Müller T. Cache attacks on Intel SGX. In: Proc. of the 10th European Workshop on Systems Security (EuroSec 2017). 2017. 1-6.

[40] 

Moghimi A, Irazoqui G, Eisenbarth T. Cachezoom: How SGX amplifies the power of cache attacks. In: Proc. of the Conf. on Cryptographic Hadware and Embedded Systems (CHES 2017). 2017. 69-90.

[41] 

Brasser F, Müller U, Dmitrienko A, Kostianinen K, Capkun S, Sadeghi AR. Software grand exposure: SGX cache attacks are practical. In: Proc. of the 11th USENIX Workshop on Offensive Technologies (WOOT 2017). 2017.

[42] 

Schwarz M, Weiser S, Gruss D, Maurice C, Mangard S. Malware guard extension: Using SGX to conceal cache attacks. In: Proc. of the Detection of Instrusions and Malware, and Vulnerability Assessment. 2017. 3-24.

[43] 

Pessl P, Gruss D, Maurice C, Schwarz M, Mangard S. DRAMA: Exploiting DRAM addressing for cross-CPU attacks. In: Proc. of the 25th USENIX Security Symp. 2016.

[44] 

Gruss D, Maurice C, Fogh A, Lipp M, Mangard S. Prefetch side-channel attacks: Bypassing SMAP and kernel ASLR. In: Proc. of the 2016 ACM SIGSAC Conf. on Computer and Communications Security. 2016. 368-379.

[45] 

Kocher PC. Timing attacks on implementations of diffie-hellman, RSA, DSS, and other systems. In: Proc. of the 16th Annual Int'l Cryptology Conf. on Advances in Cryptology. 1996. 104-113.

[46] 

Biham E. A fast new DES Implementation in software. In: Proc. of the Int'l Workshop on Fast Software Encryption. 1997. 260-272.

[47] 

Matsui M. How far can we go on the x64 processors? In: Proc. of the Int'l Workshop on Fast Software Encryption. 2006. 341-358.

[48] 

Ohrimenko O, Schuster F, Fournet C, Mehta A, Nowozin S, Vaswani K, Costa M. Oblivious multi-party machine learning on trusted processors. In: Proc. of the 25th USENIX Security Symp. (USENIX Security 2016). 2016. 619-636.

[49] 

Rane A, Lin C, Tiwari M. Raccoon: Closing digital side-channels through obfuscated execution. In: Proc. of the 24th USENIX Security Symp. (USENIX Security 2015). 2015. 431-446.

[50] 

Shih MW, Lee S, Kim T, Peinado M. T-SGX: Eradicating controlled-channel attacks against enclave programs. In: Proc. of the 2017 Annual Network and Distributed System Security Symp. (NDSS). 2017.

[51] 

Chen S, Zhang XK, Reiter MK, Zhang YQ. Detecting privileged side-channel attacks in shielded execution with Déjá Vu. In: Proc. of the 2017 ACM on Asia Conf. on Computer and Communications Security. 2017. 7-18.

[52] 

Liu FF, Ge Q, Yarom Y, Mckeen F, Rozas C, Heiser G, Lee RB. CATalyst: Defeating last-level cache side channel attacks in cloud computing. In: Proc. of the 2016 IEEE Int'l Symp. on High Performance Computer Architecture (HPCA). 2016. 406-418.

[53] 

Costan V, Lebedev I, Devadas S. Sanctum: Minimal hardware extensions for strong software isolation. In: Proc. of the 25th USENIX Security Symp. (USENIX Security 2016). 2016. 857-874.

[54] 

Sinha R, Rajamani S, Seshia SA, Vaswani K. Moat: Verifying confidentiality of enclave programs. In: Proc. of the ACM SIGSAC Conf. on Computer and Communications Security. 2015. 1169-1184.

[55] 

Weichbrodt N, Kurmus A, Pietzuch P, Kapitza R. AsyncShock: Exploiting synchronisation bugs in Intel SGX enclaves. In: Proc. of the Computer Security (ESORICS 2016). 2016. 440-457.

[56] 

Savage S, Burrows M, Nelson G, Sobalvarro P, Anderson T. Eraser: A dynamic data race detector for multi-threaded programs. In: Proc. of the 16th ACM Symp. on Operating Systems Principles. 1997. 27-37.

[57] 

Checkoway S, Shacham H. Iago attacks: Why the system call API is a bad untrusted RPC interface. In: Proc. of the Int'l Conf. on Architectural Support for Programming Languages and Operating Systems. 2013. 253-264.

[58] 

GB/T 29827-2013. Information security technology-Trusted computing specification-motherboard function and interface of trusted platform. 2013(in Chinese with English abstract).

[59] 

GB/T 29828-2013. Information security technology-Trusted computing specification-trusted connect architecture. 2013(in Chinese with English abstract).

[60] 

GB/T 29829-2013. Information security techniques-Functionality and interface specification of cryptographic support platform for trusted computing. 2013(in Chinese with English abstract).

[61] 

Intel Corporation. Intel Trusted Execution Technology:Hardware-Based Technology for Enhancing Server Platform Security. White Paper, 2012.

[62] 

Shi L, Zou DQ, Jin H. Virtualization of Xen. Wuhan: Huazhong University of Science and Technology Press, 2009. 

[63] 

Sheng QN. Technology status and development trend of virtual trusted platform. Netinfo Security, 2010(4): 34–36(in Chinese with English abstract). [doi:10.3969/j.issn.1671-1122.2010.04.014]

[64] 

ARM. ARM security technology: Building a secure system using TrustZone technology. ARM Limited, 2009. http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf

[65] 

Verma A. Get into the Zone:Building Secure Systems with ARM TrustZone Technology. White Paper, Texas Instruments, 2013.http://cn.bing.com/academic/profile?id=1afb077e5abd66d276565763960d3ee5&encoded=0&v=paper_preview&mkt=zh-cn

[66] 

Zhang YJ, Feng DG, Qin Y, Yang B. A trustzone-based trusted code execution with strong security requirements. Journal of Computer Research & Development, 2015, 52(10): 2224–2238(in Chinese with English abstract). [doi:10.7544/issn1000-1239.2015.20150582]

[67] 

Ge XY, Vijayakumar H, Jaeger T. Sprobes: Enforcing kernel code integrity on the TrustZone architecture. In: Proc. of the Computer Science. 2014. 1793-1795.

[68] 

Yang B, Feng DG, Qin Y, Zhang QY, Xi L, Zheng CW. Research on direct anonymous attestation scheme based on trusted mobile platform. Journal of Computer Research & Development, 2014, 51(7): 1436–1445(in Chinese with English abstract).http://d.old.wanfangdata.com.cn/Periodical/jsjyjyfz201407007

[69] 

Chen LQ, Dietrich K, Löhr H, Sadeghi AR, Wachsmann C, Winter J. Lightweight anonymous authentication with TLS and DAA for embedded mobile devices. In: Proc. of the Int'l Conf. on Information Security. 2011. 84-98.

[70] 

Feng W, Feng DG, Wei G, Qin Y, Zhang QY, Chang DX. TEEM: A user-oriented trusted mobile device for multi-platform security applications. In: Proc. of the Int'l Conf. on Trust and Trustworthy Computing. 2013. 133-141.

[71] 

Gu JJ. Intel® Hardware-based Security Technologies Bring Differentiation to Biometrics Recognition Applications Part 1. 2015.

[72] 

Jain P, Desai S, Kim S, Shih MW, Lee JH, Choi C, Shin Y, Kim T, Kang BB, Han D. OpenSGX: An open platform for SGX research. In: Proc. of the Network and Distributed System Security Symp. 2016.

[73] 

Karande V, Bauman E, Lin Z, Khan L. SGX-Log: Securing system logs with SGX. In: Proc. of the 2017 ACM on Asia Conf. on Computer and Communications Security. 2017.

[74] 

Fisch BA, Vinayagamurthy D, Boneh D, Gorbunov S. Iron: Functional encryption using Intel SGX. In: Proc. of the 2017 ACM SIGSAC Conf. on Computer and Communications Security. 2017. 765-782.

[75] 

Ding Y, Duan R, Li L, Cheng YQ, Zhang YL, Chen TH, Wei T, Wang H. POSTER: Rust SGX SDK: Towards memory safety in Intel SGX enclave. In: Proc. of the 2017 ACM SIGSAC Conf. on Computer and Communications Security. 2017. 2491-2493.

[76] 

Trusted Computing Group. Trusted platform module (TPM). 2010. https://trustedcomputinggroup.org/work-groups/trustedplatform-module/

[77] 

Wang J, Shi Y, Peng GJ, Zhang HG, Zhao B, Yan F, Yu FJ, Zhang LQ. Survey on key technology development and application in trusted computing. China Communications, 2016, 13(11): 70–90. [doi:10.1109/CC.2016.7781720]

[78] 

Shen CX, Zhang HG, Wang HM, Wang J, Zhao B, Yan F, Yu FJ, Zhang LQ, Xu MD. Research and development of trusted computing. Science China Press:Information Science, 2010, 40(2): 139–166(in Chinese with English abstract).http://d.old.wanfangdata.com.cn/Periodical/wjfz201108059

[79] 

Berger S, Cáceres R, Goldman KA, Perez R, Sailer R, Doom LV. vTPM: Virtualizing the trusted platform module. In: Proc. of the Conf. on USENIX Security Symp. 2006. 305-320.

[80] 

Shi Y, Zhao B, Zhang HG. A security-improved scheme for virtual TPM based on KVM. Wuhan University Journal of Natural Sciences, 2015, 20(6): 505–511. [doi:10.1007/s11859-015-1126-5]

[81] 

Chen XQ, Gao XP, Wan H, Wang SM, Long X. Application-Transparent live migration for virtual machine on network security enhanced hypervisor. China Communications, 2011, 8(3): 32–42. http://cn.bing.com/academic/profile?id=ba8f958964b14df6568fd6bde18156e6&encoded=0&v=paper_preview&mkt=zh-cn

[82] 

Shetty J, Anala MR, Shobha G. A survey on techniques of secure live migration of virtual machine. Int'l Journal of Computer Applications, 2012, 39(12): 34–39. [doi:10.5120/4875-7305]

[83] 

Nagin K, Hadas D, Dubitzky Z, Glikson A, Loy I, Rochwerger B, Schour L. Inter-Cloud mobility of virtual machines. In: Proc. of the Int'l Conf. on Systems and Storage. 2011. 1-12.

[84] 

Patil VP, Patil GA. Migrating process and virtual machine in the cloud: Load balancing and security perspectives. Int'l Journal of Advanced Computer Science & Information Technology, 2012, 1(1).

[85] 

Bin Sulaiman NA, Masuda H. Evaluation of a secure live migration of virtual machines using ipsec implementation. In: Proc. of the Int'l Conf. on Advanced Applied Informatics. Iiai: IEEE, 2014. 687-693.

[86] 

Fan W, Kong B, Zhang ZJ, Wang TT, Zhang J, Huang WQ. Security protection model on live migration for KVM virtualization. Ruan Jian Xue Bao/Journal of Software, 2016, 27(6): 1402–1416(in Chinese with English abstract).http://www.jos.org.cn/jos/ch/reader/view_abstract.aspx?flag=1&file_no=5009&journal_id=jos[doi:10.13328/j.cnki.jos.005009]

[87] 

Wang W, Zhang Y, Lin B, Wu XX, Miao K. Secured and reliable VM migration in personal cloud. In: Proc. of the Int'l Conf. on Computer Engineering and Technology. 2010. V1-705-V1-709.

[88] 

Aslam M, Gehrmann C, Bjorkman M. Security and trust preserving VM migrations in public clouds. IEEE, In: Proc. of the Int'l Conf. on Trust, Security and Privacy in Computing and Communications. 2012. 869-876.

[89] 

Xen Open Source Community. Xen project. http://www.xenproject.org/

[90] 

KVM (kernel-based virtual machine). https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine

[91] 

Zhang HG, Han WB, Lai XJ, Lin DD, Ma JF, Li JH. Survey on cyberspace security. Science China Information Sciences, 2015, 58(11): 1–43.

[92] 

Sasy S, Gorbunov S, Fletcher CW. ZeroTrace: Oblivious memory primitives from Intel SGX. In: Proc. of the Symp. on Network and Distributed System Security (NDSS). 2018.

[1] 

王進文, 江勇, 李琦, 楊芫. SGX技術應用研究綜述. 網絡新媒體技術, 2017, 6(5): 3–9. [doi:10.3969/j.issn.2095-347X.2017.05.002]

[58] 

GB/T 29827-2013. 信息安全技術可信計算規範可信平臺主板功能接口. 2013.

[59] 

GB/T 29828-2013. 信息安全技術可信計算規範可信連接架構. 2013.

[60] 

GB/T 29829-2013. 信息安全技術可信計算密碼支撐平臺功能與接口規範. 2013.

[62] 

石磊, 鄒德清, 金海. Xen虛擬化技術. 武漢: 華中科技大學出版社, 2009.

[63] 

沈晴霓. 虛擬可信平臺技術現狀與發展趨勢. 信息網絡安全, 2010(4): 34–36. [doi:10.3969/j.issn.1671-1122.2010.04.014]

[66] 

張英駿, 馮登國, 秦宇, 楊波. 基於Trustzone的強安全需求環境下可信代碼執行方案. 計算機研究與發展, 2015, 52(10): 2224–2238. [doi:10.7544/issn1000-1239.2015.20150582]

[68] 

楊波, 馮登國, 秦宇, 張倩穎, 奚瓅, 鄭昌文. 基於可信移動平臺的直接匿名證明方案研究. 計算機研究與發展, 2014, 51(7): 1436–1445.http://d.old.wanfangdata.com.cn/Periodical/jsjyjyfz201407007

[78] 

沈昌祥, 張煥國, 王懷民, 王戟, 趙波, 嚴飛, 餘發江, 張立強, 徐明迪. 可信計算的研究與發展. 中國科學:信息科學, 2010, 40(2): 139–166.http://d.old.wanfangdata.com.cn/Periodical/wjfz201108059

[86] 

範偉, 孔斌, 張珠君, 王婷婷, 張傑, 黃偉慶. KVM虛擬化動態遷移技術的安全防護模型. 軟件學報, 2016, 27(6): 1402–1416.http://www.jos.org.cn/jos/ch/reader/view_abstract.aspx?flag=1&file_no=5009&journal_id=jos [doi:10.13328/j.cnki.jos.005009]

來源:http://www.jos.org.cn/html/2018/9/5594.htm#b18

 

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