用于運行不可信代碼的框架的制作方法
【專利說明】用于運行不可信代碼的框架
[0001] 背景
[0002] 在一種技術中,測試框架可通過在虛擬機上運行不可信代碼來對其進行測試。虛 擬機所提供的抽象防止不可信代碼傷害主存該虛擬機的底層系統。然而,在一些情況下,可 能期望在不采用虛擬機抽象的情況下在物理系統本身上運行不可信代碼。例如,在一些情 況下,底層物理系統可能不支持(或可能不能容易地支持)使用虛擬機或模擬器。例如,使 用基于ARM技術的物理系統(諸如智能手機等)目前并不容易容許虛擬機的使用。替代地 或附加地,物理系統內的一些硬件特征(諸如數據執行防止技術)不能完全由虛擬機或模 擬器來抽象。
[0003] 概述
[0004] 此處描述了一種用于直接在物理系統的資源上執行任務的處理平臺。在這樣做 時,處理平臺提供與虛擬機相同類型的隔離保證,但是不使用虛擬機。
[0005] 在一種方法中,處理平臺可通過使用兩個文件系統來實現上述結果,每一個文件 系統可被加載以運行一個操作系統(0S)。第一文件系統使用文件保護機制來提供第一、安 全版本的0S。第二文件系統提供第二、非安全版本的0S。在操作中,能夠訪問第一 0S的代 理首先執行檢查來確保第二0S未被破壞。處理平臺隨后存儲第二0S的狀態,引導到第二 0S,并且使用第二0S的資源來執行任務。處理平臺隨后引導回到第一 0S以檢索任務的結 果,隨后將第二文件系統還原到其先前的干凈狀態。
[0006] 憑借使用文件保護機制,處理平臺可確保運行在第二非安全0S上的任務不能損 害第一安全0S所執行的操作。借助還原第二文件系統,處理平臺可確保任務所產生的任何 有害效果都不會損害第二文件系統;此外,這一結果可在不執行從頭開始重新安裝任何0S 的昂貴操作的情況下實現。
[0007] 第二文件系統可以各種方式存儲第二0S的干凈狀態并在稍后還原到該干凈狀 態。在一種方法中,第二文件系統提供使用虛擬硬盤(VHD)來實現的父0S,并且隨后產生差 分盤來存儲對第二文件系統所作的改動。第二文件系統通過在任務被執行之后丟棄差分盤 來還原干凈狀態。在另一種方法中,第二文件系統使用狀態存儲機制來存儲第二0S在其干 凈狀態下的快照。第二文件系統使用第二0S的資源來運行測試,并且隨后使用所存儲的快 照來基于該快照將第二0S還原到其干凈狀態。
[0008] 此處還描述了包括兩個或更多個處理平臺以及用于管理處理平臺所執行的操作 的控制系統的處理框架。
[0009] 上面的方法可以顯現在各種類型的系統、組件,方法、計算機可讀存儲介質、數據 結構、圖形用戶界面呈現、制品等等中。
[0010] 提供本概述以便以簡化形式介紹一些概念;這些概念將在以下的詳細描述中進一 步描述。本
【發明內容】
并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于 限制所要求保護主題的范圍。
[0011] 附圖簡述
[0012] 圖1示出用于在一個或多個處理平臺上執行任務的說明性處理框架。每個處理平 臺使用用于提供操作系統(os)的安全版本的第一文件系統以及用于提供OS的不安全版本 的第二文件系統。
[0013] 圖2示出用于實現第一和第二文件系統的存儲設備。
[0014] 圖3是示出由圖1的處理框架執行的說明性操作序列的流程圖。
[0015] 圖4示出了實現圖1的第二文件系統的一種方式。圖4還示出了描述第二文件系 統的這一實現的一種操作方式的流路徑。
[0016] 圖5示出了實現圖1的第二文件系統的另一種方式。圖5還示出了描述第二文件 系統的這一實現的一種操作方式的流路徑。
[0017] 圖6示出其中可使用圖1的處理框架的一種環境。
[0018] 圖7是示出圖1的處理框架的一種操作方式的流程圖。
[0019] 圖8示出了可以被用來實現前面的附圖中所示出的特征的任何方面的說明性計 算功能。
[0020] 貫穿本公開和各附圖,相同的編號參考相同的組件和特征。100系列標號指的是最 初在圖1中所找到的特征,200系列的標號指的是最初在圖2中找到的特征,300系列的標 號指的是最初在圖3中找到的特征,依此類推。
[0021] 詳細描述
[0022] 本發明是按如下方式來組織的。章節A描述了用于在物理系統上執行任務的說明 性功能,該功能提供與虛擬機相同的隔離保證但是不使用虛擬機。章節B闡述了解釋章節 A的功能的操作的說明性方法。章節C描述了可以被用來實現章節A和B中所描述的特征 的任何方面的說明性計算功能。
[0023] 作為預備,一些附圖在被不同地稱為功能、模塊、特征、元素等的一個或多個結構 組件的上下文中描述概念。附圖中示出的各組件可以通過任何物理和有形機制用各種方式 來實現,例如通過運行在計算機裝備上的軟件、硬件(例如,芯片實現的邏輯功能)等、和/ 或它們的任意組合。在一種情況下,附圖中所示出的將各種組件分離為不同的單元可以反 映在實際實現中使用對應的不同的物理和有形的組件。另選地或者另外地,附圖中所示出 的任何單個組件都可以通過多個實際物理組件來實現。另選地或另外地,附圖中的任何兩 個或更多分開組件的描繪可以反映單個實際物理組件所執行的不同功能。圖8(將依次討 論)提供關于附圖中所示的功能的一個說明性物理實現的附加細節。
[0024] 其他附圖以流程圖形式描述了概念。以此形式,某些操作被描述為構成以某一順 序執行的不同的框。這些實現是說明性而非限制性的。此處描述的某些框可被分組在一起 并在單個操作中執行,某些框可被分成多個組件框,并且某些框可以按與此處所示出的不 同的次序來執行(包括以并行方式執行這些框)。流程圖中示出的框可以任何方式由任何 物理和有形機制來實現,例如由正在計算機裝備上運行的軟件、硬件(如芯片實現的邏輯 功能)等和/或它們的任何組合來實現。
[0025] 至于術語,短語"被配置成"包含任何類型的物理和有形的功能可以被構建來執行 已標識的操作的任何方式。功能可以被配置成使用例如正在計算機裝備上運行的軟件、硬 件(例如,芯片實現的邏輯功能)等和/或其任何組合來執行操作。
[0026] 術語"邏輯"包含用于執行任務的任何物理和有形的功能。例如,流程圖中示出的 每一個操作都對應于用于執行該操作的邏輯組件。操作可以使用例如正在計算機裝備上運 行的軟件、硬件(例如,芯片實現的邏輯功能)等和/或其任何組合來執行操作。在由計算 裝備實現時,邏輯組件表示作為計算系統的物理部分的、無論如何實現的電子組件。
[0027] 下列的闡述可以將一個或多個特征標識為"可任選的"。這種類型的陳述不應該被 解讀為可以被視為可選的特征的窮盡的指示;也就是說,其他特征也可以被視為可選,雖然 在文本中沒有明確地標識。最后,術語"示例性"或"說明性"指的是可能的許多實現中的 一個實現。
[0028] A.說明性處理框架
[0029] 圖1示出用于在一個或多個處理平臺上執行任務的說明性處理框架102,諸如代 表性處理平臺104。任務可涉及出于任何原因執行一個或多個計算機程序。例如,任務可 涉及執行對于不可信代碼(諸如提交到市場的應用(app))的一個或多個測試;這一場景將 (在以下)參照圖6更詳細地描述。
[0030] 處理框架102可包括控制系統106,該控制系統106管理在一個或多個處理平臺上 執行的操作。例如,控制系統106可調度要由各個處理平臺執行的任務。控制系統106還 可收集各個處理平臺所執行的任務的結果。
[0031] 控制系統106可被實現為一個或多個計算機設備,這些計算機設備被提供在相對 于處理平臺套件的本地或遠程位置。例如,控制系統106可對應于由一個或多個服務器實 現的遠程功能,處理平臺經由任何網絡108 (諸如本地局域網、廣域網(例如因特網)、一個 或多個點對點鏈路等)與服務器通信。更具體地,控制系統106可經由加密信道(諸如代 表性的加密信道110)與每一個處理平臺交互。加密信道110可以各種方式實現,諸如通過 使用傳輸層安全(TLS)機制等。
[0032] 代表性處理平臺104可包括用于加載來自不同文件系統的操作系統(0S)的引導 管理器112。更具體地,引導管理器112可加載由第一文件系統116提供的第一 0S114,或 者由第二文件系統120提供的第二0S118。引導管理器112基于引導數據存儲122中提供 的引導控制數據來作出這一選擇。例如,默認地,引導管理器112可嘗試加載由第一文件系 統116提供的第一 0S114。但是當在引導數據存儲122中發現一次性重引導條目時,引導 管理器112可替代地加載由第二文件系統120提供的第二0S118。
[0033] 文件保護機制124保護與第一 0S114相關聯的文件。為此,第一 0S114被視為 "安全"或可靠的0S。文件保護機制124可以用不同方式來實現。不作為限制,在一個示例 中,文件保護機制124可被實現為由華盛頓州雷蒙德市的微軟公司提供的BitLoeker? 機制,該機制連同可信平臺模塊(TPM)來操作。
[0034] 更一般地,文件保護機制124可包括用于生成密鑰信息的機制126,以及用于存儲 該密鑰信息的安全數據存儲128。文件保護機制124還包括用于使用數據存儲128中存儲 的密鑰信息對第一文件系統116所存儲的信息進行加密/解密的加密/解密機制130。機 制130還提供用于在加載第一 0S114之際提供對于第一 0S114的訪問的協議。例如,當 引導管理器112嘗試加載第一 0S114時,機制130可檢查用于啟動第一 0S114的過程的 完整性,例如通過將于第一 0S114相關聯的配置信息的散列與(與干凈狀態下的配置信息 的前一快照相關聯的