,,,
(信息工程大學(xué) 國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,鄭州 450001)
互聯(lián)網(wǎng)上存在著大量網(wǎng)絡(luò)資源,包括網(wǎng)頁(yè)、文檔和程序文件等,大量網(wǎng)絡(luò)資源為攻擊者提供了方便的攻擊途徑。攻擊者通過(guò)在網(wǎng)絡(luò)資源中嵌入攻擊代碼,可實(shí)現(xiàn)對(duì)用戶的瀏覽器、閱讀器以及操作系統(tǒng)攻擊的惡意目的。已有的網(wǎng)絡(luò)攻擊防御技術(shù)大多基于先驗(yàn)知識(shí)的建模和模式匹配技術(shù),將獲取的網(wǎng)絡(luò)資源與已有的攻擊模式進(jìn)行匹配計(jì)算以識(shí)別可能的攻擊行為,利用識(shí)別的結(jié)果來(lái)過(guò)濾惡意資源,比如防火墻技術(shù)、入侵檢測(cè)技術(shù)等。雖然基于先驗(yàn)知識(shí)的網(wǎng)絡(luò)防御技術(shù)能夠防御一些攻擊,但隨著網(wǎng)絡(luò)攻擊向高隱蔽性、高復(fù)雜度和高可利用性方向發(fā)展,尤其是APT技術(shù)的出現(xiàn)和0-Day漏洞利用技術(shù)的發(fā)展,網(wǎng)絡(luò)攻擊模式的提取和識(shí)別越來(lái)越困難,基于先驗(yàn)知識(shí)的網(wǎng)絡(luò)防御技術(shù)顯得力不從心。
軟件錯(cuò)誤隔離技術(shù)(Software-based Fault Isolation,SFI)[1]是一種利用軟件手段限制不可信模塊對(duì)軟件造成危害的技術(shù),其主要思想是隔離,即通過(guò)將不可信模塊與軟件系統(tǒng)隔離來(lái)保證軟件的魯棒性。為了應(yīng)對(duì)APT攻擊和0-Day漏洞利用,研究者將SFI的思想應(yīng)用于網(wǎng)絡(luò)防御研究中,構(gòu)建隔離的環(huán)境用于解析和執(zhí)行不可信網(wǎng)絡(luò)資源,限制其可能的惡意行為,最終達(dá)到網(wǎng)絡(luò)防御的目的。研究者將這種隔離的環(huán)境形象地稱為“沙箱”(Sandbox)。
本文分別從訪問(wèn)控制機(jī)制和沙箱實(shí)現(xiàn)技術(shù)兩個(gè)方面對(duì)沙箱技術(shù)研究進(jìn)行綜述。
訪問(wèn)控制(Application-oriented Access Control)[2]機(jī)制是沙箱技術(shù)的理論基礎(chǔ)。訪問(wèn)控制的任務(wù)是在為用戶提供對(duì)系統(tǒng)資源最大限度共享的基礎(chǔ)上,對(duì)用戶的訪問(wèn)權(quán)限進(jìn)行管理,防止其對(duì)信息越權(quán)篡改和濫用[3]。它對(duì)經(jīng)過(guò)身份鑒別認(rèn)證的合法主體提供訪問(wèn)所需客體的權(quán)利,拒絕主體越權(quán)的客體訪問(wèn)請(qǐng)求,使系統(tǒng)有序地運(yùn)行。面向應(yīng)用的訪問(wèn)控制將應(yīng)用程序作為標(biāo)識(shí)主體,根據(jù)程序的功能需求和自身安全要求對(duì)程序設(shè)置訪問(wèn)控制規(guī)則。利用訪問(wèn)控制規(guī)則限制程序的資源訪問(wèn)能力,既滿足了程序正常資源訪問(wèn)需求,又保證了系統(tǒng)的安全。
面向應(yīng)用的訪問(wèn)控制研究的歷史起源于Boebert W等的Type Enforcement(TE)系統(tǒng)[4],TE系統(tǒng)第一次將應(yīng)用程序作為訪問(wèn)控制的主體,敏感數(shù)據(jù)作為客體,通過(guò)完整性級(jí)別來(lái)限制應(yīng)用程序?qū)γ舾袛?shù)據(jù)的訪問(wèn)。Wagner D等在研究瀏覽器插件時(shí),也采用了面向應(yīng)用的訪問(wèn)控制,并設(shè)計(jì)了原型系統(tǒng)Janus[5]。早期研究認(rèn)為面向用戶的訪問(wèn)控制與面向應(yīng)用的訪問(wèn)控制是兩個(gè)不同的領(lǐng)域,而Schreuders Z等在RBAC的基礎(chǔ)上,設(shè)計(jì)了基于功能的訪問(wèn)控制模型(Functionality-Based Application Confinement,F(xiàn)BAC),將面向用戶的訪問(wèn)控制研究成果應(yīng)用到面向應(yīng)用的訪問(wèn)控制研究中[6]。
沙箱采用的是面向應(yīng)用的訪問(wèn)控制。本文根據(jù)采用的訪問(wèn)控制思路的不同,將沙箱研究分為基于虛擬化的沙箱和基于規(guī)則的沙箱。下面分別對(duì)兩者相關(guān)研究進(jìn)行分析。
基于虛擬化的沙箱(圖1)為不可信資源構(gòu)建封閉的運(yùn)行環(huán)境,在保證不可信資源原有功能的同時(shí)提供安全防護(hù)。基于虛擬化的沙箱使用虛擬化技術(shù)為不可信資源提供運(yùn)行環(huán)境,使不可信資源的解析執(zhí)行不會(huì)對(duì)宿主造成影響。根據(jù)虛擬化層次的不同,本文將基于虛擬化的沙箱分為兩類,即系統(tǒng)級(jí)別的沙箱和容器級(jí)別的沙箱。
圖1 基于虛擬化的沙箱
硬件層虛擬化技術(shù)在硬件和目的操作環(huán)境之間增加操作層,即監(jiān)控器層,由監(jiān)控器層的程序?qū)崿F(xiàn)對(duì)硬件的抽象操作和向上提供接口。使用該技術(shù),可以在相同的硬件上模擬多個(gè)自包含操作環(huán)境。系統(tǒng)級(jí)別的沙箱采用該技術(shù)為不可信資源提供完整的操作環(huán)境。1973年,Madnick S等第一個(gè)將虛擬化技術(shù)應(yīng)用到計(jì)算機(jī)安全領(lǐng)域,在操作系統(tǒng)和應(yīng)用程序之間增加虛擬機(jī)監(jiān)控器,并在虛擬機(jī)監(jiān)控器中設(shè)計(jì)實(shí)現(xiàn)了限制應(yīng)用程序?qū)ο到y(tǒng)資源訪問(wèn)的策略[7]。Whitaker A等設(shè)計(jì)了一個(gè)輕量級(jí)的虛擬機(jī)調(diào)度和監(jiān)控系統(tǒng)Denali,將多個(gè)具有相同系統(tǒng)資源訪問(wèn)需求的程序置于定制的虛擬機(jī)中,并為這些程序提供相同的資源。與其他系統(tǒng)級(jí)別虛擬機(jī)研究比較,Denali減少了需要虛擬化的資源的規(guī)模,提高了虛擬化的效率[8]。WindowBox是一個(gè)針對(duì)桌面應(yīng)用程序設(shè)計(jì)的安全模型,將應(yīng)用程序放置在不同安全設(shè)置的桌面內(nèi),實(shí)現(xiàn)對(duì)應(yīng)用程序的限制[9]。Qubes[10]采用了與WindowBox相同的研究思路,構(gòu)建在相同的硬件基礎(chǔ)上,根據(jù)用戶的應(yīng)用需求為用戶生成包含不同資源、不同設(shè)備的虛擬機(jī)——應(yīng)用虛擬機(jī)(AppVM),兩者的不同在于實(shí)現(xiàn)系統(tǒng)的區(qū)別,Qubes基于Xen,而WindowBox基于Windows操作系統(tǒng)。系統(tǒng)級(jí)別沙箱的研究還包括VMware[11]、VirtualBox[12]、Parallels[13]、Virtual Server[14]以及QEMU[15]等。
容器級(jí)別的沙箱與基于硬件層虛擬化的系統(tǒng)級(jí)別沙箱相比,采用了更為輕量級(jí)的虛擬化技術(shù),在操作系統(tǒng)和應(yīng)用程序之間增加虛擬化層,實(shí)現(xiàn)用戶空間資源的虛擬化,但在資源使用效率和資源管理上占有較大的優(yōu)勢(shì)。主要的研究包括:Solaris Zones[16],Linux Containers[17],Linux Vserver[18],OpenVZ[19],F(xiàn)reeVPS[20],Virtuozzo Containers[21]和AIX Workload Partitions[22]等。
基于規(guī)則的沙箱(圖2)使用訪問(wèn)控制規(guī)則限制程序的行為,主要由訪問(wèn)控制規(guī)則引擎、程序監(jiān)控器等部分組成。程序監(jiān)控器將監(jiān)控到的行為經(jīng)過(guò)轉(zhuǎn)換提交給訪問(wèn)控制規(guī)則引擎,并由訪問(wèn)控制規(guī)則引擎根據(jù)訪問(wèn)控制規(guī)則來(lái)判斷是否允許程序的系統(tǒng)資源使用請(qǐng)求。與基于虛擬化的沙箱不同,一方面,基于規(guī)則的沙箱不需要對(duì)系統(tǒng)資源進(jìn)行復(fù)制,降低了冗余資源對(duì)系統(tǒng)性能的影響;另一方面,基于規(guī)則的沙箱方便了不同程序?qū)Y源的共享。Berman A等設(shè)計(jì)了第一個(gè)基于規(guī)則的沙箱系統(tǒng)TRON[23],將操作系統(tǒng)的資源劃分到不同控制域,在控制域中使用唯一字串對(duì)每個(gè)資源進(jìn)行標(biāo)識(shí)和設(shè)置訪問(wèn)權(quán)限,用戶使用命令將應(yīng)用程序指定到控制域中,通過(guò)控制域中的訪問(wèn)控制規(guī)則實(shí)現(xiàn)對(duì)程序行為的限制。Cowan等設(shè)計(jì)的AppArmor[24]與TRON較為相似,用白名單定義沙箱內(nèi)程序可訪問(wèn)的資源。
圖2 基于規(guī)則的沙箱
程序行為監(jiān)控是實(shí)現(xiàn)基于規(guī)則的沙箱的重要技術(shù),沙箱監(jiān)控程序行為可以識(shí)別潛在的惡意行為。大多數(shù)研究者采用監(jiān)控系統(tǒng)調(diào)用的方式來(lái)對(duì)程序行為進(jìn)行監(jiān)控,根據(jù)監(jiān)控到的系統(tǒng)調(diào)用順序和訪問(wèn)資源的情況來(lái)識(shí)別潛在的惡意行為,相關(guān)的研究包括Janus、Systrace[25]和ETrace[26]等。
隨著APT攻擊威脅的增加,沙箱技術(shù)得到了快速發(fā)展。沙箱技術(shù)被廣泛應(yīng)用到瀏覽器(IE、Chrome、Firefox)、文檔閱讀器(Adobe Reader)等解析和處理網(wǎng)絡(luò)資源的應(yīng)用中。本節(jié)根據(jù)沙箱化對(duì)象的不同,對(duì)沙箱的實(shí)現(xiàn)技術(shù)進(jìn)行綜述。
沙箱技術(shù)起源于SFI技術(shù),因此,二進(jìn)制程序的沙箱也首先受到研究者的關(guān)注。SFI技術(shù)主要應(yīng)用在RISC架構(gòu),而大多數(shù)用戶使用的是CISC架構(gòu)的計(jì)算機(jī),CISC架構(gòu)與RISC架構(gòu)在指令結(jié)構(gòu)、寄存器個(gè)數(shù)等方面存在較大差別。為了能夠?yàn)镃ISC架構(gòu)下程序提供沙箱環(huán)境,研究者做了大量研究。McCamant S等設(shè)計(jì)了PITTSFIELD系統(tǒng)[27],在該系統(tǒng)中,采用指令對(duì)齊和掩碼技術(shù)來(lái)保證程序的數(shù)據(jù)訪問(wèn)和控制流轉(zhuǎn)移在可控的范圍內(nèi)。Ford B等設(shè)計(jì)的Vx32[28-29]將沙箱技術(shù)進(jìn)一步細(xì)分為數(shù)據(jù)沙箱和控制流沙箱,數(shù)據(jù)沙箱采用的是x86-32結(jié)構(gòu)CPU的段匹配技術(shù),在沙箱中程序數(shù)據(jù)訪問(wèn)時(shí),進(jìn)行段標(biāo)識(shí)符匹配操作,保證數(shù)據(jù)安全;控制流沙箱采用的是動(dòng)態(tài)翻譯技術(shù),即在指令執(zhí)行前,用等價(jià)的安全指令序列替換不安全指令,同時(shí),禁止不安全指令來(lái)實(shí)現(xiàn)控制流的沙箱化。為了保證用戶的安全和網(wǎng)絡(luò)程序的性能,2009年,Google公司推出了面向x86結(jié)構(gòu)的二進(jìn)制沙箱產(chǎn)品—Native Client(NaCl)[30]。NaCl是一個(gè)雙層的沙箱,內(nèi)層沙箱在指令層限制不可信程序的控制流,外層沙箱在系統(tǒng)調(diào)用層監(jiān)視驗(yàn)證不可信程序的系統(tǒng)調(diào)用行為。NaCl通過(guò)定制的GCC編譯器將內(nèi)層沙箱的安全限制插入到匯編程序內(nèi),并在程序執(zhí)行前驗(yàn)證,外層沙箱在程序運(yùn)行過(guò)程中監(jiān)控程序行為。在隨后兩年,Google公司又分別開發(fā)了針對(duì)x86-64、ARM結(jié)構(gòu)的NaCl[31],并結(jié)合LLVM技術(shù),設(shè)計(jì)實(shí)現(xiàn)了跨架構(gòu)的PNaCl[32]。二進(jìn)制程序沙箱研究還包括:Jana S等將操作系統(tǒng)的事務(wù)機(jī)制引入到沙箱研究,在不可信程序執(zhí)行前設(shè)置系統(tǒng)的事務(wù)恢復(fù)點(diǎn),在程序執(zhí)行過(guò)程中監(jiān)控程序行為,當(dāng)發(fā)現(xiàn)惡意行為時(shí),使用事務(wù)回滾技術(shù),將系統(tǒng)狀態(tài)恢復(fù)到未執(zhí)行該程序的系統(tǒng)狀態(tài)[33]。Zeng B等將靜態(tài)分析和CFI引入到數(shù)據(jù)沙箱的研究中,在靜態(tài)分析二進(jìn)制程序時(shí),利用指令重寫等CFI技術(shù)對(duì)可能的數(shù)據(jù)污染指令進(jìn)行重寫,實(shí)現(xiàn)對(duì)內(nèi)存數(shù)據(jù)的讀寫保護(hù)[34]。為了應(yīng)對(duì)攻擊者對(duì)CFI實(shí)現(xiàn)的“SpringBroad”地址的猜測(cè)攻擊,Zhang C等將地址隨機(jī)化技術(shù)應(yīng)用到沙箱實(shí)現(xiàn)中,將需要計(jì)算獲得的間接控制流轉(zhuǎn)移地址隨機(jī)存放在“SpringBroad”段中,實(shí)現(xiàn)控制流完整性[35]。
JavaScript是一種由NetScape的LiveScript發(fā)展而來(lái)的,基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言。由于JavaScript能夠?yàn)榫W(wǎng)頁(yè)提供動(dòng)態(tài)功能,被廣泛應(yīng)用于網(wǎng)站。大多數(shù)網(wǎng)站上的JavaScript腳本是由第三方提供,安全性無(wú)法保證。因此,針對(duì)JavaScript腳本的沙箱也受到研究者的關(guān)注。Cao Y等借鑒虛擬機(jī)技術(shù)設(shè)計(jì)了Virtual Box[36],該系統(tǒng)的JavaScript引擎包括虛擬引擎和本地引擎兩個(gè)引擎,可信的JavaScript腳本運(yùn)行于本地引擎上,第三方JavaScript腳本運(yùn)行在虛擬引擎上。虛擬引擎在對(duì)第三方JavaScript腳本解析時(shí),根據(jù)沙箱策略對(duì)該腳本進(jìn)行檢查驗(yàn)證,實(shí)現(xiàn)對(duì)第三方不可信JavaScript腳本的隔離。與Virtual Box不同,JSand[37]是一個(gè)由網(wǎng)站開發(fā)者提供安全策略的JavaScript沙箱,網(wǎng)站開發(fā)者在引入第三方腳本時(shí),根據(jù)功能和安全的需要,對(duì)第三方腳本設(shè)置安全策略,而JSand則以插件形式運(yùn)行在用戶的瀏覽器中,當(dāng)用戶訪問(wèn)該網(wǎng)站時(shí),JSand根據(jù)開發(fā)者設(shè)定的沙箱策略限制第三方腳本的運(yùn)行。
瀏覽器插件為用戶提供擴(kuò)展和個(gè)性化的瀏覽器。大多數(shù)瀏覽器插件與瀏覽器運(yùn)行在相同的進(jìn)程中,具有與瀏覽器相同的訪問(wèn)權(quán)限,而瀏覽器插件大多由第三方開發(fā)者開發(fā),安全性無(wú)法保證,一旦瀏覽器插件受到攻擊,會(huì)對(duì)系統(tǒng)造成與瀏覽器被攻擊相同的危害。因此,瀏覽器插件沙箱也成為研究的重點(diǎn)。Liu L等設(shè)計(jì)了sePlugin沙箱[38],通過(guò)對(duì)插件的瀏覽器內(nèi)部對(duì)象訪問(wèn)行為和對(duì)系統(tǒng)資源調(diào)用行為的監(jiān)控來(lái)獲取插件可能的行為,根據(jù)沙箱策略限制插件行為。Dhawan M等從信息流層面對(duì)插件行為進(jìn)行了建模,對(duì)內(nèi)存中的JavaScript對(duì)象是否包含敏感數(shù)據(jù)進(jìn)行標(biāo)識(shí),并通過(guò)在腳本執(zhí)行中監(jiān)控這些內(nèi)存對(duì)象的信息傳播和處理過(guò)程來(lái)識(shí)別可能的危險(xiǎn)行為,包括信息泄露、信息破壞等等,并設(shè)計(jì)了原型系統(tǒng)Sabre。
程序行為監(jiān)控是沙箱實(shí)現(xiàn)需要解決的一個(gè)重要問(wèn)題,大多數(shù)研究都采用系統(tǒng)調(diào)用監(jiān)控的方法來(lái)實(shí)現(xiàn)對(duì)程序行為的監(jiān)控,僅僅從監(jiān)控到的系統(tǒng)調(diào)用信息中獲得的程序行為信息很難完全推理得到惡意程序的真正目的,尤其是面對(duì)高隱蔽的APT攻擊。研究多維度的程序行為監(jiān)控技術(shù),從不同維度的程序執(zhí)行信息中獲得程序可能的行為,是提高沙箱防御APT攻擊的一個(gè)重要途徑。
訪問(wèn)控制是沙箱的基礎(chǔ),沙箱由多種訪問(wèn)控制機(jī)制組合實(shí)現(xiàn)。如果訪問(wèn)控制機(jī)制本身存在矛盾或錯(cuò)誤,會(huì)造成沙箱逃逸的嚴(yán)重后果。如何保證多種訪問(wèn)控制機(jī)制的安全性,也是沙箱研究的一個(gè)重要方向。
沙箱技術(shù)是保證網(wǎng)絡(luò)安全的一項(xiàng)重要技術(shù),受到學(xué)術(shù)界和產(chǎn)業(yè)界的重視。本文從訪問(wèn)控制和實(shí)現(xiàn)技術(shù)兩個(gè)方面對(duì)已有的沙箱研究進(jìn)行了綜述,并對(duì)沙箱技術(shù)的研究方向進(jìn)行了展望,為沙箱的繼續(xù)研究提供了參考。
參考文獻(xiàn):
[1] Wahbe R, Lucco S, Anderson, et al.Efficient Software-based Fault Isolation[C]//Proceedings of ACM SOSP, New York, 1993: 203-216.
[2] Abadi M, Budiu M, Erlingsson U.Control-flow Integrity[C]//Proceedings of the 12th ACM Conference on Computer and Communications Security, New York, 2005: 340-353.
[3] 洪帆.訪問(wèn)控制概論[M].武漢: 華中科技大學(xué)出版社, 2010: 13-14.
[4] Boebert W, Kain R.A Practical Alternative to Hierarchical Integrity Policies[C]//Proceedings of the 8th National Computer Security Conference, Gaithersbury, MD, 1985.
[5] Wagner D.Janus: An Approach for Confinement of Untrusted Applications[D].California: Department of Electrical Engineering and Computer Sciences, University of California, 1999.
[6] Schreuders Z, Christian Payne.Functionality-based Application Confinement-parameterised Hierarchical Application Restrictions [EB/OL].[2014-04-16].http://z.cliffe.schreuders.org/publications/SECRYPT08%20FBAC%20Paper.pdf.
[7] Madnick S, Donovan J.Application and Analysis of the Virtual Machine Approach to Information System Security and Isolation[C]//Proceedings of the Workshop on Virtual Computer Systems, Cambridge Mass, 1973: 210-224.
[8] Whitaker A, Shaw M, Gribble S.Denali: Lightweight Virtual Machines for Distributed and Networked Applications[R].Washington: University of Washington, 2002.
[9] Balfanz D, Simon D.Windowbox: A simple Security Model for the Connected desktop[C]//Proceedings of the 4th USENIX Windows Systems Symposium, Washington,
2000: 37-48.
[10] Rutkowska J, Wojtczuk R.Qubes OS Architecture[R].Warsaw: Invisible Things Lab, 2010.
[11] Sugerman J, Venkitachalam G, Beng-Hong Lim.Virtualizing I/O Devices on VMware Workstation’s Hosted Virtual Machine Monitor[C]//Proceedings of USENIX Annual Technical Conference, Boston, Massachusetts, USA,2001: 1-14.
[12] Watson J.Virtualbox: Bits and Bytes Masquerading as Machines[EB/OL].[2014-04-16].http://www.linuxjournal.com/article/9941.
[13] Parallels Inc.Virtual PC Virtual Machine and Multiple Operating System Solutions by Parallels[EB/OL].[2014-04-16].http://www.parallels.com/.
[14] Microsoft.Microsoft Virtual Server 2005 R2 [EB/OL].[2014-04-16].http://www.microsoft.com/windowserversystem/virtualserver/.
[15] Bellard F.QEMU, A Fast and Portable Dynamic Translator[C]//USENIX Annual Technical Conference, Anaheim CA, 2005: 41-46.
[16] Price D, Tucker A.Solaris Zones: Operating System Support for Consolidating Commercial Workloads[EB/OL].[2014-04-16].http://www.cs.toronto.edu/~demke/2227S.14/Papers/zones_lisa.pdf.
[17] LXC.Lxc Linux Containers[EB/OL].[2014-04-16].https://linuxcontainers.org/.
[18] Des Ligneris B.Virtualization of Linux Based Computers: the Linux-VServer Project[C]//Proceedings of High Performance Computing Systems and Applications, Berlin, 2005: 340-346.
[19] Parallels Inc.OpenVZ Server Virtualization Open Source Project[EB/OL].[2014-04-16].http://openvz.org/Main_Page.
[20] Positive Software Corporation.Free Virtual Private Server Solution [EB/OL].[2014-04-16].http://www.gate.com/virtual-servers/.
[21] Parallels Inc.Virtuozzo Containers [EB/OL].[2014-04-16].http://www.parallels.com/au/products/pvc46/.
[22] Coelho P, Hazuka M, Petru J, et al.Introduction to Workload Partition Management in IBM AIX Version 6.1 [R].Armonk NY: IBM International Technical Support Organization, 2007.
[23] Berman A, Bourassa V, Selberg E.TRON: Process-Specific File Protection for the UNIX Operating System[C]//Proceedings of USENIX Winter, Manhatten, USA, 1995: 165-175.
[24] Canonical.AppArmor: Linux Application Security Framework [EB/OL].[2014-04-16].https://launchpad.net/apparmor, Accessed 2013.
[25] Provos N.Systrace-interactive Policy Generation for System Calls [EB/OL].[2014-04-16].http://www.citi.umich.edu/u/provos/papers/systrace.pdf.
[26] Jain K, Sekar R.User-Level Infrastructure for System Call Interposition: A Platform for Intrusion Detection and Confinement [EB/OL].[2014-04-16].http://seclab.cs.sunysb.edu/seclab/pubs/ndss00.pdf.
[27] McCamant S, Morrisett G.Evaluating SFI for A CISC Architecture[C]//Proceedings of 15th USENIX Security Symposium, Vancouver, Canada, 2006: 209-224.
[28] Ford B.VXA: A Virtual Architecture for Durable Compressed Archives[EB/OL].[2014-04-16].http://pdos.csail.mit.edu/papers/vxa:fast05/.
[29] Ford B, Cox R.Vx32: Lightweight User-level Sandboxing on the x86[C]//Proceedings of USENIX Annual Technical Conference, 2008: 293-306.
[30] Yee B, Sehr D, Dardyk G, et al.Native Client: A Sandbox for Portable, Untrusted x86 Native Code[C]//Proceedings of Security and Privacy, Brisbane, Australia, 2009: 79-93.
[31] Sehr D, Muth R, Biffle C, et al.Adapting Software Fault Isolation to Contemporary CPU Architectures[C]//Proceedings of USENIX Security Symposium, Washington, 2010: 1-12.
[32] Ansel J, Marchenko P.Language-Independent Sandboxing of Just-In-Time Compilation and Self-Modifying Code[J].ACM SIGPLAN Notices, 2011, 46(6): 355-366.
[33] Jana S, Porter D, Shmatikov V.TxBox: Building Secure, Efficient Sandboxes with System Transactions[C]//Proceedings of Security and Privacy,Melbourne, Australia, 2011: 329-344.
[34] Zeng B, Tan G, Morrisett G.Combining Control-Flow Integrity and Static Analysis for Efficient and Validated Data Sandboxing[C]//the 18th ACM Conference on Computer and Communications Security, Chicage, 2011.
[35] Zhang C, Wei T, Chen Z F, et al.Practical Control Flow Integrity & Randomization for Binary Executables [EB/OL].[2014-04-16].http://www.cs.berkeley.edu/~dawnsong/papers/Oakland2013-CCFIR-CR.pdf, Accessed 2013.
[36] Cao Y, Li Z, Rastogi V.Virtual Browser: A Virtualized Browser to Sandbox Third-Party JavaScripts with Enhanced Security[C]//the 7th ACM Symposium on Information, Computer and Communications Security,Seoul, Korea, 2012.
[37] Agten P, Van Acker.JSand: Complete Client-side Sandboxing of Third-party JavaScript without Browser Modifications[C]//the 28th Annual Computer Security Applications Conference, Orlando, FL, 2012.
[38] Liu L, Zhang X, Yan G, et al.sePlugin: Towards Transparently Secure Plugins in Your Internet Explorers[C]//the 8th International Conference on Applied Cryptography and Network Security, Beijing, 2010.