在沙箱中保存引用的系統(tǒng)和方法
【專利摘要】本文公開了用于在沙箱中保存引用的系統(tǒng)、方法、和非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。實(shí)施該方法的系統(tǒng)接收要在沙箱環(huán)境中使用的文檔并通過協(xié)調(diào)器將該文檔傳遞給解析器。解析器在所述文檔中找到對(duì)其他資源的引用并輸出引用列表。所述系統(tǒng)傳遞所述引用列表到驗(yàn)證器,所述驗(yàn)證器驗(yàn)證每個(gè)引用并輸出經(jīng)驗(yàn)證引用列表。所述系統(tǒng)傳遞所述經(jīng)驗(yàn)證引用列表到沙箱應(yīng)用,所述沙箱應(yīng)用擴(kuò)展沙箱以包括經(jīng)驗(yàn)證引用列表上的資源。在一個(gè)實(shí)施例中,所述系統(tǒng)在沙箱中保留引用,而無需使用協(xié)調(diào)器。
【專利說明】在沙箱中保存引用的系統(tǒng)和方法
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求于2011年6月3日提交的、序列號(hào)為13/153,274的、標(biāo)題為“SYSTEMAND METHOD FOR PRESERVING REFERENCES IN SANDBOXES” 的美國專利申請(qǐng)的優(yōu)先權(quán),所述申請(qǐng)通過引用整體包含于本公開中。
【背景技術(shù)】1.【技術(shù)領(lǐng)域】
[0003]本發(fā)明公開涉及計(jì)算機(jī)安全,尤其是涉及保存文檔中的引用以供在沙箱環(huán)境中使用。
[0004]2.引言
[0005]計(jì)算機(jī)安全是計(jì)算世界的一個(gè)重要方面。許多不同的行業(yè),包括通信、娛樂、交通、金融、醫(yī)療等行業(yè)都依賴于計(jì)算機(jī)。計(jì)算機(jī)安全涉及通過阻止和檢測(cè)計(jì)算機(jī)攻擊以保護(hù)這些重要的計(jì)算系統(tǒng)。攻擊者以不同的方式損害計(jì)算系統(tǒng),諸如竊取密碼、發(fā)出拒絕服務(wù)攻擊并散布惡意軟件,如病毒和蠕蟲。
[0006]保護(hù)計(jì)算系統(tǒng)免受攻擊者攻擊是一項(xiàng)具有挑戰(zhàn)性的和不斷改變的任務(wù)。存在很多種保護(hù)計(jì)算系統(tǒng)的方法,從要求用戶頻繁地更改密碼到在計(jì)算系統(tǒng)中使用復(fù)雜的加密算法。一種保護(hù)計(jì)算系統(tǒng)的方法是沙箱化(sandbox)計(jì)算機(jī)程序來保護(hù)計(jì)算系統(tǒng)免受潛在的惡意程序的攻擊。沙箱是一種用于使正在運(yùn)行的計(jì)算機(jī)程序與其他程序和/或計(jì)算資源分離的機(jī)制。一些安全的計(jì)算系統(tǒng)在沙箱中執(zhí)行不受信任的程序或不受信任方發(fā)布的程序。沙箱約束限制計(jì)算機(jī)程序可以訪問的資源。沙箱環(huán)境的一個(gè)例子是在虛擬機(jī)或解釋器上運(yùn)行的小程序,如 Adobe? Flash?或Microsoft? Silverlight?。
[0007]以交換格式存儲(chǔ)的文檔,如便攜式文件格式(pdf),或Apple? QuickTime?.可以包含對(duì)其他文件的嵌入引用。當(dāng)計(jì)算系統(tǒng)不信任這種文件時(shí),它可以沙箱化訪問該不受信任文件的應(yīng)用。當(dāng)這些文檔用沙箱應(yīng)用打開時(shí),鑒于計(jì)算系統(tǒng)對(duì)沙箱化應(yīng)用設(shè)置的約束,該應(yīng)用無法遵循對(duì)其他文件的引用。在沙箱化應(yīng)用中對(duì)其他文檔的引用的不可訪問性是令用戶沮喪的。沒有經(jīng)驗(yàn)的用戶可能會(huì)簡(jiǎn)單地放棄并對(duì)該計(jì)算平臺(tái)產(chǎn)生不好的印象,而更有經(jīng)驗(yàn)的或有技術(shù)頭腦的用戶可能會(huì)試圖繞過沙箱,從而無意中造成潛在的嚴(yán)重安全漏洞。在沙箱化應(yīng)用中,希望從文檔中包含的引用中獲得更多信息的用戶無法訪問這些引用。
【發(fā)明內(nèi)容】
[0008]本發(fā)明公開的更多特征和優(yōu)勢(shì)將在以下說明中闡述,且將部分地從說明書中顯而易見,或可以通過實(shí)踐本文所公開的原理來習(xí)得。本發(fā)明公開的特征和優(yōu)點(diǎn)可以通過在所附權(quán)利要求書中特別指出的工具和組合實(shí)現(xiàn)和獲得。從下面的描述和所附的權(quán)利要求書中,本公開的這些和其它特征將變得更加明顯,或者可以通過實(shí)踐在此闡述的原理而了解。[0009]本發(fā)明公開提供了用于在沙箱中保存引用的系統(tǒng)、方法和非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。實(shí)施該方法的系統(tǒng)接收文檔,如roF,以供在沙箱環(huán)境中使用。該系統(tǒng)傳遞該文檔到協(xié)調(diào)器,然后該協(xié)調(diào)器傳遞該文檔到解析器。所述解析器識(shí)別文檔中的對(duì)其他資源的引用并返回引用列表到所述協(xié)調(diào)器。所述協(xié)調(diào)器再傳遞所述引用列表到驗(yàn)證器并選擇性地傳遞其它參數(shù),所述其它參數(shù)指示原始文檔類型、用來處理引用列表的所需的安全或信任級(jí)另O、用戶帳戶等等。驗(yàn)證器驗(yàn)證與每個(gè)引用關(guān)聯(lián)的每個(gè)資源并返回經(jīng)驗(yàn)證引用列表到所述協(xié)調(diào)器。當(dāng)所述引用文件格式具有預(yù)期的類型時(shí)和/或在文件被打開時(shí)所述計(jì)算系統(tǒng)按預(yù)期行動(dòng)時(shí),則驗(yàn)證器可以驗(yàn)證引用。驗(yàn)證器可以檢查通過引用列表鏈接的資源的其他屬性。例如,驗(yàn)證器可以確認(rèn)資源被適當(dāng)?shù)睾灻?,所述資源的校驗(yàn)和、所述資源的文件屬性、和/或可以表明資源是可信任的、預(yù)望的和/或真實(shí)的其他特征。驗(yàn)證器傳遞經(jīng)驗(yàn)證引用列表回到協(xié)調(diào)器;協(xié)調(diào)器然后傳遞所述經(jīng)驗(yàn)證引用列表到應(yīng)用?;诮?jīng)驗(yàn)證引用列表,應(yīng)用隨后可以修改沙箱環(huán)境,以產(chǎn)生修改后的沙箱環(huán)境,所述修改后的沙箱環(huán)境除原始文檔之外還包括經(jīng)驗(yàn)證弓I用,或提供對(duì)經(jīng)驗(yàn)證弓I用所指示的資源的訪問。
[0010]在一個(gè)實(shí)施例中,該系統(tǒng)直接傳遞文檔到解析器,而無需利用協(xié)調(diào)器。解析器找到文檔中對(duì)其他資源的引用并輸出引用列表。該系統(tǒng)直接傳遞引用列表到驗(yàn)證器,而不利用協(xié)調(diào)器。驗(yàn)證器驗(yàn)證與每個(gè)引用相關(guān)聯(lián)的每個(gè)資源并輸出經(jīng)驗(yàn)證引用列表。驗(yàn)證器直接傳遞經(jīng)驗(yàn)證引用列表到應(yīng)用,應(yīng)用然后擴(kuò)展沙箱環(huán)境以除原始文檔之外還包括經(jīng)驗(yàn)證引用。在本實(shí)施例中,沒有使用協(xié)調(diào)器;相反應(yīng)用直接與解析器和驗(yàn)證器通信。雖然潛在地較不安全,但是在沙箱中保存引用的這個(gè)修改后的方法比原來的方法簡(jiǎn)單,這對(duì)于實(shí)施是有利的。
【專利附圖】
【附圖說明】
[0011]為了描述可以獲得本發(fā)明公開的上述和其他優(yōu)點(diǎn)和特征的方式,將參考附圖中所示的本發(fā)明的具體實(shí)施例給出上面簡(jiǎn)要描述的原理的更具體說明。應(yīng)該理解這些附圖僅示出本發(fā)明公開的示例性實(shí)施例,而不該被理解為限制本發(fā)明的范圍,通過使用附圖,本發(fā)明的原理會(huì)被描述和說明得更加具體詳細(xì),附圖中:
[0012]圖1示出了示例系統(tǒng)實(shí)施例;
[0013]圖2示出了包括協(xié)調(diào)器的第一個(gè)示例受信任服務(wù)系統(tǒng)實(shí)施例;
[0014]圖3示出了用于查看帶嵌入引用的文檔的示例未經(jīng)修改沙箱環(huán)境;
[0015]圖4示出了用于查看帶嵌入引用的文檔的示例經(jīng)修改沙箱環(huán)境;
[0016]圖5示出了引用保存方法實(shí)施例;
[0017]圖6示出了用于分析和驗(yàn)證要在沙箱環(huán)境中使用的文檔中的引用的示例系統(tǒng)架構(gòu);
[0018]圖7示出了示例沙箱環(huán)境;
[0019]圖8示出了顯示經(jīng)驗(yàn)證的和未經(jīng)驗(yàn)證的引用的示例修改后沙箱環(huán)境;和
[0020]圖9示出了沒有協(xié)調(diào)器的第二個(gè)示例受信任服務(wù)系統(tǒng)實(shí)施例。
【具體實(shí)施方式】
[0021]本公開公開的各種實(shí)例將在下面詳細(xì)討論。應(yīng)該認(rèn)識(shí)到,對(duì)【具體實(shí)施方式】進(jìn)行討論,僅僅是為了說明的目的。相關(guān)領(lǐng)域的技術(shù)人員會(huì)認(rèn)識(shí)到在不偏離本發(fā)明公開的精神和范圍的情況下可以使用其他組件和配置。
[0022]本發(fā)明公開解決了在本領(lǐng)域中對(duì)于在沙箱中保存引用的需要。本發(fā)明公開提供了一種系統(tǒng)、方法、和非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其保存文檔中的引用以供在沙箱環(huán)境中使用。本文公開了圖1中可用于實(shí)現(xiàn)這些概念的基本通用系統(tǒng)或計(jì)算設(shè)備的簡(jiǎn)要介紹性描述。在沙箱中保存引用的更具體描述將在下面給出。本發(fā)明公開現(xiàn)在轉(zhuǎn)向圖1。
[0023]參考圖1,示例性系統(tǒng)100包括通用計(jì)算設(shè)備100,通用計(jì)算設(shè)備100包括處理單元(CPU或處理器)120和系統(tǒng)總線110,用于耦合各種系統(tǒng)組件至處理器120,所述系統(tǒng)組件包括系統(tǒng)存儲(chǔ)器130 (諸如,只讀存儲(chǔ)器140 (ROM)和隨機(jī)存取存儲(chǔ)器150 (RAM)0系統(tǒng)100可以包括直接連接至、或近鄰、或作為一部分集成至處理器120的高速存儲(chǔ)器的高速緩存122。系統(tǒng)100從存儲(chǔ)器130和/或存儲(chǔ)設(shè)備160復(fù)制數(shù)據(jù)至高速緩存122,以供處理器120快速訪問。以這種方式,高速緩存提供性能提升,這避免了處理器120在等待數(shù)據(jù)時(shí)的延遲。這些和其他模塊可以控制或被配置為控制處理器120執(zhí)行各種動(dòng)作。其他系統(tǒng)存儲(chǔ)器130也可以使用。存儲(chǔ)器130可以包括多個(gè)不同類型的、具有不同性能特點(diǎn)的存儲(chǔ)器。可以理解:本發(fā)明公開可以運(yùn)行在具有一個(gè)以上處理器120的計(jì)算設(shè)備100上或運(yùn)行在一組或一簇網(wǎng)絡(luò)連接以提供更好處理能力的計(jì)算設(shè)備上。處理器120可以包括任何通用處理器和硬件模塊或軟件模塊,諸如存儲(chǔ)在存儲(chǔ)設(shè)備160中的模塊1162、模塊2164、模塊3166,其被配置為控制處理器120以及特殊用途的處理器,其中軟件指令被結(jié)合到實(shí)際的處理器設(shè)計(jì)中。處理器120可以基本上是一個(gè)完全獨(dú)立的計(jì)算系統(tǒng),包含多個(gè)核心或處理器、總線、存儲(chǔ)器控制器、高速緩存等等。多核處理器可以是對(duì)稱的或不對(duì)稱的。
[0024]系統(tǒng)總線110可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線和使用多種總線架構(gòu)中的任一種的局部總線。存儲(chǔ)在R0M140或類似設(shè)備中的基本輸入/輸出(BIOS)可以提供幫助在計(jì)算設(shè)備100中的元件間傳送信息,諸如在啟動(dòng)過程期間,的基本例行程序。計(jì)算設(shè)備100進(jìn)一步包括存儲(chǔ)設(shè)備160,諸如硬盤驅(qū)動(dòng)器、磁盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等等。存儲(chǔ)設(shè)備160可以包括軟件模塊162、164、166,用于控制處理器120??梢詷?gòu)想其他硬件或軟件模塊。存儲(chǔ)設(shè)備160由驅(qū)動(dòng)器接口連接到系統(tǒng)總線110。驅(qū)動(dòng)器和相關(guān)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)為計(jì)算設(shè)備100提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲(chǔ)。一方面,執(zhí)行特定功能的硬件模塊包括存儲(chǔ)在與必要硬件組件——諸如處理器120、總線110、顯示器170等等——相連的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì)中的軟件組件以實(shí)現(xiàn)所述功能?;窘M件是本領(lǐng)域技術(shù)人員所熟知的,并且可以根據(jù)設(shè)備類型,諸如設(shè)備100是否是小型手持式計(jì)算設(shè)備、臺(tái)式計(jì)算機(jī)或計(jì)算機(jī)服務(wù)器,來構(gòu)想適當(dāng)?shù)淖兓?br>
[0025]雖然本文所描述的示例性實(shí)施例中使用了硬盤160,本領(lǐng)域技術(shù)人員可以理解:也可以在該示例性操作環(huán)境中使用其他類型的可以存儲(chǔ)計(jì)算機(jī)可訪問的數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì),如磁帶、閃存卡、數(shù)字通用盤、盒式磁帶、隨機(jī)存取存儲(chǔ)器(RAM) 150、只讀存儲(chǔ)器(ROM) 140、電纜或者包含比特流的無線信號(hào)等等。非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)明確地排除諸如能量、載波信號(hào)、電磁波和信號(hào)本身的介質(zhì)。
[0026]為了使計(jì)算設(shè)備100能與用戶交互,輸入設(shè)備190代表任何數(shù)量的輸入機(jī)構(gòu),諸如用于語音的麥克風(fēng)、用于姿態(tài)或圖形輸入的觸敏屏幕、鍵盤、鼠標(biāo)、運(yùn)動(dòng)輸入、語音等等。輸出設(shè)備170也可以是領(lǐng)域技術(shù)人員所熟知的多種輸出機(jī)構(gòu)中的一種或多種。在一些情況下,多模式系統(tǒng)使得用戶能夠提供多種類型的輸入來與計(jì)算設(shè)備100通信。通信接口 180總體上支配和管理用戶輸入和系統(tǒng)輸出。對(duì)運(yùn)行在任意特定硬件配置上沒有任何限制,因此,隨著硬件或固件配置的發(fā)展,可以用改進(jìn)的硬件或固件配置容易地替換此處的基本特征。
[0027]為了解釋清楚,說明性系統(tǒng)實(shí)施例被提供為包括多個(gè)單個(gè)功能塊,包括標(biāo)記為“處理器”或者處理器120的功能塊。這些塊所代表的功能可以通過使用共享的或?qū)S玫挠布ǖ幌抻谀軌驁?zhí)行軟件的硬件和諸如處理器120的硬件,該硬件被有目的地構(gòu)建成作為在通用處理器上執(zhí)行的軟件的等同進(jìn)行操作——來提供。例如圖1中給出的一個(gè)或多個(gè)處理器的功能可以由單個(gè)共享處理器或多個(gè)處理器來提供。(術(shù)語“處理器”的使用不應(yīng)被解釋為僅指能夠執(zhí)行軟件的硬件。)說明性實(shí)施例可以包括微處理器和/或數(shù)字信號(hào)處理器(DSP)硬件、用于存儲(chǔ)執(zhí)行如下討論的操作的軟件的只讀存儲(chǔ)器HO(ROM)、和用于存儲(chǔ)結(jié)果的隨機(jī)存取存儲(chǔ)器150 (RAM)。也可以提供超大規(guī)模集成(VLSI)硬件實(shí)施例以及結(jié)合與通用DSP電路相結(jié)合的定制VLSI電路。
[0028]各種實(shí)施例的邏輯操作被實(shí)現(xiàn)為:(I)在一般用途的計(jì)算機(jī)中的可編程電路上運(yùn)行的一系列計(jì)算機(jī)實(shí)施的步驟、操作或過程;(2)在特定用途的可編程電路上運(yùn)行的一系列計(jì)算機(jī)實(shí)施的步驟、操作或過程;和/或(3)可編程電路內(nèi)的互連機(jī)器模塊或程序引擎。在圖1所示的系統(tǒng)100可以實(shí)踐所述方法的全部或部分,可以是所述系統(tǒng)的一部分,和/或可以根據(jù)在所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的指令進(jìn)行操作。這樣的邏輯操作可以被實(shí)施為模塊,所述模塊被配置為控制處理器120以根據(jù)模塊的編程執(zhí)行特定的功能。例如,圖1示出三個(gè)模塊MODl 162、M0D2164、M0D3166,其是被配置為控制處理器120的模塊。這些模塊可以存儲(chǔ)在存儲(chǔ)設(shè)備160上,并在運(yùn)行時(shí)加載到RAM150或存儲(chǔ)器130中或可被存儲(chǔ)在本領(lǐng)域熟知的其它計(jì)算機(jī)可讀存儲(chǔ)位置中。
[0029]已經(jīng)公開了計(jì)算系統(tǒng)的一些組件,本發(fā)明公開現(xiàn)在回來討論在沙箱環(huán)境中處理文檔中的引用。圖2示出了受信任服務(wù)的三元組,用以在沙箱中保存引用。受信任服務(wù)的三元組是協(xié)調(diào)引用保存過程的協(xié)調(diào)器202、解析包含對(duì)其他資源的嵌入引用的文檔的解析器204和驗(yàn)證每個(gè)對(duì)其他資源的嵌入引用的驗(yàn)證器206。協(xié)調(diào)器、解析器和驗(yàn)證器被認(rèn)為是受信任的且每一個(gè)都在它們各自的單個(gè)沙箱中運(yùn)行,所述沙箱限制每項(xiàng)服務(wù)可以訪問的資源。以諸如PDF或Quicktime影片格式的交換格式存儲(chǔ)的文檔可以包含對(duì)其它資源的嵌入引用,其中引用是文件路徑。當(dāng)在沙箱應(yīng)用中打開諸如這些的文檔時(shí),系統(tǒng)不能遵循該引用,原因在于沙箱不允許訪問沙箱環(huán)境之外的所引用資源。當(dāng)嵌入引用在文檔之內(nèi)時(shí),沙箱應(yīng)用可以訪問該資源,原因在于該引用是內(nèi)部的。內(nèi)部資源不需要沙箱擴(kuò)展,所以解析器可以忽略它們,和/或驗(yàn)證器可以跳過它們。但是,萬一文檔包含指向其自身的鏈接的話,系統(tǒng)也可以可選地為此鏈接擴(kuò)展沙箱。本文所述的引用保存過程允許沙箱應(yīng)用訪問經(jīng)驗(yàn)證引用。
[0030]圖3示出了存儲(chǔ)引用的文檔,所述文檔在被約束到初始沙箱環(huán)境中的應(yīng)用中打開,并且圖4示出了在被約束到修改后的沙箱環(huán)境中的應(yīng)用中打開的文檔。應(yīng)用302無法訪問在沙箱環(huán)境之外的資源304,因?yàn)橛?jì)算系統(tǒng)對(duì)沙箱內(nèi)的應(yīng)用設(shè)置了限制。但是,內(nèi)部引用310被區(qū)別對(duì)待,因?yàn)樗鼈儾灰笤L問外部的未經(jīng)驗(yàn)證的資源。在可信任的服務(wù)執(zhí)行了保存文檔中的引用的處理之后,應(yīng)用修改或擴(kuò)展沙箱環(huán)境,使得沙箱包括由可信任的服務(wù)驗(yàn)證過的資源。在修改后的沙箱環(huán)境中訪問文檔406的用戶可訪問經(jīng)驗(yàn)證引用408文件1、文件2和文件3。系統(tǒng)可以利用對(duì)本地資源的引用或?qū)?jīng)網(wǎng)絡(luò)連接的資源的引用,諸如對(duì)因特網(wǎng)上的資源的引用,來執(zhí)行引用保存處理。
[0031]圖5示出了示例性方法實(shí)施例。為了清楚起見,根據(jù)被配置為實(shí)施該方法的圖1中所示的示例性系統(tǒng)100來討論該方法。此處勾勒出的步驟是示例性的并且可以以其任何組合——包括排除、添加或修改某些步驟的組合——來實(shí)施。實(shí)施該方法的系統(tǒng)100接收要在沙箱環(huán)境中使用的文檔(502),傳遞所述文檔到解析器(504),所述解析器找到所述文檔中的引用并產(chǎn)生引用列表;傳遞所述引用列表到驗(yàn)證器(506),所述驗(yàn)證器驗(yàn)證引用以產(chǎn)生經(jīng)驗(yàn)證引用列表。然后,系統(tǒng)100可以基于經(jīng)驗(yàn)證引用列表來修改沙箱環(huán)境(508)。文檔可以是包含對(duì)其他資源的引用的任意計(jì)算機(jī)文件或多個(gè)文件,如PDF和Quicktime文檔,但不限于這些特定格式。要求沙箱環(huán)境的文檔可以是來自于不受信任源的文檔,或可能已經(jīng)被篡改的文檔,或系統(tǒng)可以要求所有文檔經(jīng)過引用保存過程。該系統(tǒng)可在沙箱環(huán)境中放置特定類型的所有文檔。具體應(yīng)用或操作系統(tǒng)設(shè)置可以影響關(guān)于在訪問文件時(shí)是否使用沙箱的決定。文件本身可以包括標(biāo)志或標(biāo)簽,其指示該文件是否應(yīng)在沙箱中使用。文檔中對(duì)其他資源的引用可以是對(duì)其他計(jì)算機(jī)文件的引用,或是對(duì)文檔內(nèi)的其他文件或資源的引用。資源可以具有與原始文檔相同的格式或不同的格式。例如,PDF格式的原始文檔可以包含對(duì)其他PDF文件或用戶指定的任何其他文件格式、應(yīng)用、協(xié)調(diào)器或驗(yàn)證器——諸如Excel或Word——的引用。系統(tǒng)100可以要求存儲(chǔ)Qu i ckT ime文件格式的文檔,例如,只能訪問其他視頻格式,如AVI。
[0032]圖6示出了在沙箱中保存引用。應(yīng)用602發(fā)送文檔到協(xié)調(diào)器604,協(xié)調(diào)器604協(xié)調(diào)對(duì)資源的引用的驗(yàn)證。協(xié)調(diào)器604傳遞文檔到解析器606,解析器606找到文檔中對(duì)其他資源的引用以產(chǎn)生引用列表(504)。為安全起見,解析器606可以在其自己的沙箱內(nèi)部操作,使得除了從協(xié)調(diào)器傳來的文檔或文檔的一部分之外,解析器不訪問任何其它資源。解析器606解析文檔,以找到對(duì)其他文件的引用,并生成在文檔中找到的引用的列表。例如,解析器606可以解析HTML以獲得到文檔或圖像的鏈接,可以解析XML以獲得特定的標(biāo)簽或數(shù)據(jù),或可以解析便攜式文件格式(PDF)以獲得對(duì)其他資源的引用。解析器606發(fā)送引用列表回至協(xié)調(diào)器604,協(xié)調(diào)器604然后將引用列表傳送給驗(yàn)證器608,用于驗(yàn)證解析器506輸出的所列出的引用(506)。
[0033]驗(yàn)證器也可以在其自身的沙箱中運(yùn)行,使得打開潛在惡意或有害的計(jì)算機(jī)文件不會(huì)損害計(jì)算系統(tǒng)。如果資源包含威脅或者是不安全的,在其自身的沙箱環(huán)境中運(yùn)行解析器和/或驗(yàn)證器可以保護(hù)計(jì)算系統(tǒng)的其余部分。在沙箱環(huán)境中,病毒可以自由漫游,但系統(tǒng)不允許其在沙箱外的任何動(dòng)作,從而保護(hù)了系統(tǒng)的其余部分。
[0034]驗(yàn)證器608打開引用列表中的每個(gè)資源或文件,并比較實(shí)際的系統(tǒng)行為與預(yù)期的系統(tǒng)行為。驗(yàn)證器也可以驗(yàn)證文件是預(yù)期的文件類型。例如,系統(tǒng)100可以要求引用列表中的對(duì)特定文檔的所有引用都是PDF文件。驗(yàn)證器可以通過檢查文件擴(kuò)展名和/或打開文件來驗(yàn)證列表中的所有引用都是PDF文件。驗(yàn)證器可以從協(xié)調(diào)器604接收參數(shù)和/或指令,所述參數(shù)和/或指令是關(guān)于引用的哪些方面必須被驗(yàn)證,如何驗(yàn)證引用,以及驗(yàn)證引用時(shí)適用什么容限(如果有的話)。例如,當(dāng)每個(gè)資源被打開時(shí),驗(yàn)證器可以觀察系統(tǒng)行為,并比較該行為與預(yù)期的系統(tǒng)行為。驗(yàn)證器將不驗(yàn)證沒有按預(yù)期執(zhí)行的引用,諸如使程序崩潰的引用。在一種變體中,驗(yàn)證器只簡(jiǎn)單地檢查文件存在于引用指示的特定路徑。一旦驗(yàn)證器完成對(duì)引用列表的驗(yàn)證,它發(fā)送經(jīng)驗(yàn)證引用列表回到協(xié)調(diào)器604,協(xié)調(diào)器604然后發(fā)送經(jīng)驗(yàn)證引用列表回到應(yīng)用602。應(yīng)用基于經(jīng)驗(yàn)證引用列表為此文檔擴(kuò)展原始的沙箱(508),從而創(chuàng)建修改后的沙箱環(huán)境。修改后的沙箱環(huán)境包括和/或提供對(duì)與驗(yàn)證器驗(yàn)證的引用列表相關(guān)的資源的訪問。
[0035]圖7示出了用沙箱應(yīng)用打開的示例性文件。系統(tǒng)使用沙箱應(yīng)用702打開文件weather, pdf。weather, pdf 文件包含對(duì) tornadoes.pdf704> wind.docx706、tsunami_warning.pdf708和temperature.xlsx710的嵌入引用。沙箱環(huán)境不允許應(yīng)用訪問嵌入引用,這可以阻止部分用戶試圖訪問嵌入引用。在沙箱應(yīng)用中允許訪問引用對(duì)期待獲得除文檔提供的之外的附加信息的用戶有利。
[0036]圖8示出了在提取、解析和驗(yàn)證文檔中的引用和擴(kuò)展沙箱環(huán)境之后的系統(tǒng)。應(yīng)用發(fā)送文件weather, pdf到協(xié)調(diào)器,協(xié)調(diào)器然后將文件發(fā)送到解析器。解析器在沙箱環(huán)境中打開該文件,找到對(duì)資源的嵌入引用,在此例中,資源是文件tornadoes.pdf704、wind.docx706、tsunami_warning.pdf708 和 temperature.xlsx710。解析器生成對(duì)這些文件的嵌入引用的列表,并發(fā)送引用列表到協(xié)調(diào)器。協(xié)調(diào)器發(fā)送引用列表到在其自身的沙箱環(huán)境中運(yùn)行的驗(yàn)證器608。驗(yàn)證器可以檢查每個(gè)文件的文件格式是預(yù)期格式和/或執(zhí)行其他驗(yàn)證措施。例如,如果系統(tǒng)要求驗(yàn)證器僅為特定文檔驗(yàn)證PDF文件,它會(huì)檢查每個(gè)文件是HF格式。驗(yàn)證器可以接收用以僅僅驗(yàn)證PDF文件,或驗(yàn)證,例如,PDF和Microsoft Word文件的指令。在這個(gè)例子中,系統(tǒng)要求驗(yàn)證器僅僅驗(yàn)證PDF文件。驗(yàn)證器也可以打開引用列表中的每個(gè)文件并觀察系統(tǒng)行為。如果系統(tǒng)按預(yù)期行動(dòng)且文件格式是預(yù)期的類型,驗(yàn)證器可以驗(yàn)證該文件。驗(yàn)證器發(fā)送經(jīng)驗(yàn)證引用列表到協(xié)調(diào)器,在這種情況下,經(jīng)驗(yàn)證引用列表是文件 tornadoes.pdf804 和 tsunami_warning.pdf808o 文件 wind.docx806 和 temperature.xlsx810沒有包括在經(jīng)驗(yàn)證引用列表中,因?yàn)樗鼈儾痪哂蓄A(yù)期的文件類型,此例中是HF。協(xié)調(diào)器發(fā)送經(jīng)驗(yàn)證引用列表到所述應(yīng)用。該應(yīng)用擴(kuò)展沙箱712以創(chuàng)建包括經(jīng)驗(yàn)證引用tornadoes.pdf804 和 tsunami_warning.pdf808 的修改后的沙箱 812。文件 wind.docx806與temperature.xlsx810不允許在修改后的沙箱中,因?yàn)樗麄儧]有包括在驗(yàn)證器發(fā)送給協(xié)調(diào)器的經(jīng)驗(yàn)證引用列表上。修改后的沙箱812中的應(yīng)用802內(nèi)現(xiàn)在可以訪問經(jīng)驗(yàn)證引用tornadoes.pdf804 和 tsunami_warning.pdf808o
[0037]從用戶的角度出發(fā),點(diǎn)擊weather, pdf中的到tornadoes, pdf804或tsunami_warning.pdf808的鏈接將是透明的。用戶可以點(diǎn)擊到那些文件的鏈接,且系統(tǒng)可以打開它們,因?yàn)檫@些資源在修改后的沙箱812中。然而,如果用戶點(diǎn)擊到wind.docx806或到temperature.xlsx810的鏈接,該系統(tǒng)可以拒絕打開該資源的請(qǐng)求。例如,系統(tǒng)可以簡(jiǎn)單地忽略訪問沙箱外的資源的請(qǐng)求。備選地,該系統(tǒng)可給質(zhì)疑所需資源不能訪問的用戶提供“錯(cuò)誤”消息。該系統(tǒng)可對(duì)質(zhì)疑為何所需資源不能訪問的用戶提供可能基于從驗(yàn)證器返回的代碼或消息的消息。而且,該系統(tǒng)可以提供這個(gè)和/或其他信息給用戶,并提示用戶是否要擴(kuò)展修改后的沙箱環(huán)境以提供對(duì)不可訪問資源的訪問。
[0038]一方面,作為擴(kuò)展或修改沙箱環(huán)境以包括在文檔中引用的其他資源的一部分,該系統(tǒng)可以為在修改后的沙箱中是不可訪問的其他資源保存臨時(shí)的備份副本。這樣,即使惡意代碼以某種方式在修改后的沙箱環(huán)境中執(zhí)行了并改變了資源時(shí),系統(tǒng)仍可以恢復(fù)到臨時(shí)的備份副本。[0039]在另一個(gè)實(shí)施例中,系統(tǒng)100在沙箱中保存引用而沒有使用協(xié)調(diào)器,如圖9所示。在沙箱環(huán)境中的應(yīng)用902發(fā)送具有嵌入引用的文檔的全部或部分到解析器904。解析器904找到文檔中的引用并輸出引用列表。解析器904直接發(fā)送引用列表到驗(yàn)證器906。驗(yàn)證器906驗(yàn)證引用列表中的至少一個(gè)引用并生成經(jīng)驗(yàn)證引用列表。經(jīng)驗(yàn)證引用列表可以包含零個(gè)、一個(gè)或多個(gè)引用。檢驗(yàn)器906發(fā)送經(jīng)驗(yàn)證引用列表到應(yīng)用902,如果至少一個(gè)經(jīng)驗(yàn)證引用包含在此列表中,則應(yīng)用902擴(kuò)展沙箱以創(chuàng)建修改后的沙箱環(huán)境中。沙箱環(huán)境被擴(kuò)展成包括經(jīng)驗(yàn)證引用。以安全性為代價(jià),在沙箱中保存引用的這種修改后的方法是個(gè)更簡(jiǎn)單、可能更易于實(shí)施的方案,其不需使用協(xié)調(diào)器。協(xié)調(diào)器是不實(shí)際接觸資源的唯一過程。協(xié)調(diào)器不解析文檔,也不試著檢查外部資源。因此,協(xié)調(diào)器是個(gè)不太可能成為利用目標(biāo)的過程。因此,協(xié)調(diào)器可以執(zhí)行一些額外的檢查,這些檢查可能是或可能不是與利用或其他攻擊的降低了的風(fēng)險(xiǎn)相關(guān)的安全性。
[0040]在一個(gè)與用戶體驗(yàn)和/或感知性能相關(guān)的方面,當(dāng)處理要在沙箱中使用的文檔時(shí),該系統(tǒng)可在解析或驗(yàn)證引用之前初始加載該文檔到未經(jīng)修改的沙箱中,因此用戶可以迅速加載文檔以供查看。然后,當(dāng)用戶查看該文檔時(shí),系統(tǒng)可以解析并驗(yàn)證背景中的文檔中的引用并基于解析和驗(yàn)證后的引用,擴(kuò)展沙箱環(huán)境。這讓用戶覺得文檔加載得很快速,同時(shí)提供對(duì)引用所指示的資源的延遲訪問。該系統(tǒng)可以以批處理模式或以一次一個(gè)引用的方式解析和驗(yàn)證背景中的引用。例如,在批處理模式下,系統(tǒng)解析來自于文檔的所有引用,驗(yàn)證所有引用,然后相應(yīng)地?cái)U(kuò)展沙箱環(huán)境。備選地,只要系統(tǒng)解析出一個(gè)引用,驗(yàn)證器就驗(yàn)證該引用,且系統(tǒng)為那一個(gè)引用擴(kuò)展沙箱環(huán)境,而解析器繼續(xù)搜索其他引用。在這兩種情況下,沙箱環(huán)境被加載以首先查看該文檔,然后沙箱環(huán)境被擴(kuò)展或在加載文檔之后在背景中以其他方式被修改,而用戶能夠?qū)Ш?、查看或訪問該文檔。
[0041]在本發(fā)明公開的范圍之內(nèi)的實(shí)施例也可以包括有形的和/或非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于攜帶或具有存儲(chǔ)在其上的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)。這樣的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是由通用或?qū)S糜?jì)算機(jī)——包括如上所討論的任何專用處理器的功能設(shè)計(jì)——訪問的任何可用介質(zhì)。例如,而不是限制,這樣的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì)可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)器、磁盤存儲(chǔ)器或其它磁存儲(chǔ)設(shè)備、或可用于攜帶或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)或處理器芯片設(shè)計(jì)形式的所需程序代碼裝置的任何其它介質(zhì)。當(dāng)信息通過網(wǎng)絡(luò)或其他通信連接(硬連線、無線或其組合)傳遞或提供給計(jì)算機(jī)時(shí),計(jì)算機(jī)適當(dāng)?shù)匾暣诉B接為計(jì)算機(jī)可讀介質(zhì)。因此,任何這種連接被適當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。以上各項(xiàng)的組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
[0042]計(jì)算機(jī)可執(zhí)行指令包括,例如,使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行特定功能或功能組的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令也包括由單機(jī)或網(wǎng)絡(luò)環(huán)境中的計(jì)算機(jī)執(zhí)行的程序模塊。通常,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)、對(duì)象和專用處理器的設(shè)計(jì)中固有的功能,等等,它們執(zhí)行特定的任務(wù)或?qū)嵤┨囟ǖ某橄髷?shù)據(jù)類型。計(jì)算機(jī)可執(zhí)行指令、相關(guān)的數(shù)據(jù)結(jié)構(gòu)和程序模塊代表用于執(zhí)行本文公開的方法的步驟的程序代碼裝置的示例。這樣的可執(zhí)行指令或相關(guān)數(shù)據(jù)結(jié)構(gòu)的特定序列代表用于執(zhí)行在這些步驟中描述的功能的相應(yīng)行為的例子。
[0043]本領(lǐng)域技術(shù)人員將會(huì)理解,本公開的其它實(shí)施例可以用許多類型的計(jì)算系統(tǒng)配置在網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)施,包括個(gè)人計(jì)算機(jī)、手持設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程的消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì)算機(jī)等等。實(shí)施例也可以在分布式計(jì)算環(huán)境中實(shí)施,其中任務(wù)由通過通信網(wǎng)絡(luò)(或者通過有線鏈接、無線鏈接或它們的組合)鏈接的本地和遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
[0044]如上所述的各種實(shí)施例僅僅是作為說明提供的,且不應(yīng)被解釋為限制本發(fā)明公開的范圍。例如,本發(fā)明原理可以應(yīng)用到任何利用沙箱方法保護(hù)計(jì)算系統(tǒng)的應(yīng)用中。本領(lǐng)域技術(shù)人員將容易地認(rèn)識(shí)到:在不背離本發(fā)明的精神和范圍情況下,這里描述的原理可作各種修改和改變,而不需遵循此文中示出和描述的示例實(shí)施例和應(yīng)用。
【權(quán)利要求】
1.一種方法,包括: 經(jīng)由計(jì)算設(shè)備的處理器接收要在沙箱環(huán)境中使用的文檔; 將所述文檔傳遞到解析器,所述解析器在所述文檔中找到了對(duì)其他資源的引用以產(chǎn)生引用列表; 將所述引用列表傳遞到驗(yàn)證器,所述驗(yàn)證器驗(yàn)證與所述引用列表中的每個(gè)引用關(guān)聯(lián)的資源存在以產(chǎn)生經(jīng)驗(yàn)證引用列表;以及 基于所述經(jīng)驗(yàn)證引用列表修改所述沙箱環(huán)境以產(chǎn)生修改后的沙箱環(huán)境。
2.根據(jù)權(quán)利要求1所述的方法,還包括: 基于所述經(jīng)驗(yàn)證引用列表來在所述修改后的沙箱環(huán)境中加載所述文檔。
3.根據(jù)權(quán)利要求2所述的方法,其中所述修改后的沙箱環(huán)境提供對(duì)所述文檔以及經(jīng)驗(yàn)證引用的訪問。
4.根據(jù)權(quán)利要求1一 3中任一項(xiàng)所述的方法,其中,所述沙箱環(huán)境提供對(duì)預(yù)定義的受限的計(jì)算資源集的訪問以在所述預(yù)定義的受限的計(jì)算資源集中運(yùn)行。
5.根據(jù)權(quán)利要求4 所述的方法,其中,所述預(yù)定義的受限的計(jì)算資源集包括所述引用列表。
6.一種系統(tǒng),包括: 處理器; 非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于存儲(chǔ)控制所述處理器執(zhí)行如下步驟的指令: 從協(xié)調(diào)器接收對(duì)其他資源的引用列表,其中從文檔中提取所述引用列表以在沙箱環(huán)境中使用; 驗(yàn)證由所述引用列表中的每個(gè)引用所指示的各個(gè)資源以產(chǎn)生經(jīng)驗(yàn)證引用列表;以及 基于所述經(jīng)驗(yàn)證引用列表,為所述文檔建立沙箱環(huán)境。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中,驗(yàn)證各個(gè)資源包括: 比較實(shí)際的資源格式與預(yù)期的資源格式。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述預(yù)期的資源格式匹配所述文檔的格式。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述預(yù)期的資源格式不同于所述文檔的格式。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其中,驗(yàn)證各個(gè)資源包括: 打開所述各個(gè)資源并比較實(shí)際的系統(tǒng)行為與預(yù)期的系統(tǒng)行為。
11.一種存儲(chǔ)指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述指令在被計(jì)算設(shè)備執(zhí)行時(shí)使得所述計(jì)算設(shè)備在沙箱環(huán)境中保存引用,所述指令包括: 向協(xié)調(diào)器傳遞包含要在沙箱環(huán)境中使用的引用的文檔; 經(jīng)由所述協(xié)調(diào)器將所述文檔傳遞到解析器,其中,所述解析器在所述文檔中找到了對(duì)其他資源的引用以產(chǎn)生對(duì)其他資源的引用列表; 經(jīng)由所述協(xié)調(diào)器將所述對(duì)其他資源的引用列表傳遞到驗(yàn)證器,其中所述驗(yàn)證器驗(yàn)證所述引用列表指向的資源以產(chǎn)生經(jīng)驗(yàn)證引用列表;以及 基于所述經(jīng)驗(yàn)證引用列表來擴(kuò)展用于所述文檔的沙箱環(huán)境。
12.根據(jù)權(quán)利要求11所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述解析器在單獨(dú)的沙箱環(huán)境中運(yùn)行。
13.根據(jù)權(quán)利要求12所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述單獨(dú)的沙箱環(huán)境使得所述解析器只訪問所述文檔。
14.根據(jù)權(quán)利要求11- 13中任一項(xiàng)所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述驗(yàn)證器在單獨(dú)的沙箱環(huán)境中運(yùn)行。
15.根據(jù)權(quán)利要求14所述的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述單獨(dú)的沙箱環(huán)境使得所述驗(yàn)證·器只訪問所述引用列表。
【文檔編號(hào)】G06F21/00GK103582888SQ201280027361
【公開日】2014年2月12日 申請(qǐng)日期:2012年5月10日 優(yōu)先權(quán)日:2011年6月3日
【發(fā)明者】I·科爾斯蒂克, P-O·J·馬特爾 申請(qǐng)人:蘋果公司