趙劍鋒, 史 崗, 孟 丹
(中國科學(xué)院 信息工程研究所, 北京 100093)
?
進(jìn)程安全保護(hù)技術(shù)綜述
趙劍鋒, 史崗, 孟丹
(中國科學(xué)院 信息工程研究所, 北京 100093)
摘要:進(jìn)程安全保護(hù)是信息安全領(lǐng)域的一個(gè)研究熱點(diǎn),可以應(yīng)用于計(jì)算機(jī)安全系統(tǒng)、網(wǎng)站保護(hù)、殺毒軟件自保護(hù)、數(shù)字產(chǎn)權(quán)保護(hù)等方面. 在信息安全研究的背景下,總結(jié)了進(jìn)程所受到的威脅,包括軟件和硬件方面的威脅;結(jié)合實(shí)際案例對進(jìn)程安全保護(hù)技術(shù)從硬件和軟件方面進(jìn)行了詳細(xì)分類,分析了每種技術(shù)的特點(diǎn)和不足;指出現(xiàn)在研究存在的問題,并展望了未來關(guān)于進(jìn)程安全保護(hù)的研究方向和重點(diǎn).
關(guān)鍵詞:進(jìn)程; 安全保護(hù);分類;研究方向
信息安全主要涵蓋以下方面的內(nèi)容,也就是需保證信息的幾個(gè)特性:機(jī)密性、真實(shí)性、完整性、未授權(quán)拷貝和信息所寄生系統(tǒng)的安全性. 信息安全概念本身包括的外延范圍很大,其中包括防范商業(yè)企業(yè)機(jī)密泄露、防范未成年人對不良信息的瀏覽、防范個(gè)人信息的泄露等. 信息安全是指信息系統(tǒng)(包括計(jì)算機(jī)硬件、計(jì)算機(jī)軟件、數(shù)據(jù)、人員、物理環(huán)境及其基礎(chǔ)設(shè)施)受到保護(hù),不受偶然的或人為惡意的原因而遭到破壞、更改、泄露,保證系統(tǒng)連續(xù)可靠地運(yùn)行,保證信息服務(wù)不中斷,最終實(shí)現(xiàn)業(yè)務(wù)連續(xù)性[1-10].
為了抵御花樣不斷翻新的安全威脅,計(jì)算機(jī)安全界相關(guān)研究人員進(jìn)行了廣泛深入的研究,制定了一系列安全相關(guān)標(biāo)準(zhǔn)[11-16],同時(shí)也開發(fā)了各種各樣的安全產(chǎn)品. 研究發(fā)現(xiàn),位于計(jì)算機(jī)系統(tǒng)底層的基礎(chǔ)系統(tǒng)的安全在很大程度上決定了整個(gè)系統(tǒng)的安全,同時(shí)位于上層的應(yīng)用軟件的安全也占有一定地位. 要想構(gòu)建安全的計(jì)算機(jī)系統(tǒng),就應(yīng)當(dāng)加強(qiáng)以操作系統(tǒng)為代表的軟件的安全性. 基礎(chǔ)軟件和應(yīng)用軟件都是以程序的形式存在的. 程序是靜態(tài)的,程序要想起作用,就要轉(zhuǎn)變成動(dòng)態(tài)的進(jìn)程. 因此,進(jìn)程安全保護(hù)技術(shù)是信息安全的重要研究熱點(diǎn)之一. 進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序基于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng),它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行、調(diào)度的基本單元. 每個(gè)進(jìn)程有自己的地址空間,一般包括代碼區(qū)域、數(shù)據(jù)區(qū)域和堆棧. 代碼區(qū)域存儲(chǔ)處理執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲(chǔ)程序變量和進(jìn)程執(zhí)行期間使用的動(dòng)態(tài)分配內(nèi)存;堆棧區(qū)域存儲(chǔ)著進(jìn)程活動(dòng)過程調(diào)用的指令和本地變量. 進(jìn)程是一個(gè)動(dòng)態(tài)的“執(zhí)行中的程序”. 因此,進(jìn)程的安全就是要保護(hù)進(jìn)程地址空間(代碼區(qū)域、數(shù)據(jù)區(qū)域和堆棧)中數(shù)據(jù)的機(jī)密性和完整性. 進(jìn)程安全與軟件安全不同. 軟件安全主要保護(hù)軟件中的智力成果、知識產(chǎn)權(quán)不被非法使用,諸如篡改及盜用等. 軟件安全的研究主要包括如何防止軟件盜版、逆向工程、授權(quán)加密以及非法篡改等. 進(jìn)程安全與計(jì)算機(jī)安全也不同. 計(jì)算機(jī)安全所涵蓋的范圍更廣,主要包括:計(jì)算機(jī)病毒防范與檢測、非法訪問控制、計(jì)算機(jī)電磁輻射防范、硬件損壞等. 進(jìn)程安全只是計(jì)算機(jī)安全研究中的一個(gè)子項(xiàng).
本文給出了進(jìn)程受到的威脅和進(jìn)程安全保護(hù)技術(shù)的分類,指出進(jìn)程安全保護(hù)技術(shù)現(xiàn)在研究存在的問題,并對未來的研究方向進(jìn)行了討論.
1進(jìn)程受到的威脅
在程序及信息系統(tǒng)的開發(fā)過程中,由于項(xiàng)目過于龐大復(fù)雜,技術(shù)難度相對較高,以及開發(fā)時(shí)間相對緊迫等一系列困難,一般來說,在所開發(fā)出的軟件產(chǎn)品中,存在安全性隱患的概率是很大的. 如果這些軟件程序在計(jì)算機(jī)系統(tǒng)上運(yùn)行,程序就轉(zhuǎn)化為進(jìn)程. 這時(shí),很多別有用心的人或黑客等就會(huì)利用開發(fā)過程中的失誤或漏洞,對運(yùn)行的進(jìn)程進(jìn)行攻擊.
程序在運(yùn)行時(shí)受到的攻擊可以分成兩類:一種是軟件攻擊,如溢出攻擊、軟件病毒;另一種是物理攻擊,如通過功耗差分分析方法取得加密密鑰和通過電磁手段獲取內(nèi)存中正在運(yùn)行的代碼等.
軟件攻擊有以下幾種:
1)緩沖區(qū)溢出. 緩沖區(qū)溢出的攻擊原理比較簡單,但是它比較危險(xiǎn),因?yàn)樗梢垣@得系統(tǒng)的最高控制權(quán),此外它很難被檢測出來. 緩沖區(qū)溢出攻擊是一種常見的系統(tǒng)攻擊手段,通過在程序的緩沖區(qū)寫超出其長度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,迫使程序轉(zhuǎn)而執(zhí)行其他指令,從而達(dá)到攻擊的目的. 如圖1 所示,溢出攻擊通過修改進(jìn)程堆棧中的數(shù)據(jù),使其轉(zhuǎn)向攻擊者設(shè)定的特殊地址,達(dá)到了破壞進(jìn)程的目的.
圖1 溢出攻擊示意
2)病毒. 計(jì)算機(jī)病毒的本質(zhì)是程序. 一般它能把自己附加在其他具有正常功能的程序之中,并不斷地進(jìn)行自我復(fù)制,然后再去感染其他程序. 病毒能由被感染的程序和系統(tǒng)傳播出去,如圖2所示,圖2(a)表示正常的進(jìn)程,圖2(b)、(c)、(d)表示病毒附加在正常進(jìn)程的不同位置. 當(dāng)病毒附加在正在執(zhí)行的進(jìn)程中時(shí),無論在進(jìn)程的頭部、尾部還是其他部分,都會(huì)導(dǎo)致進(jìn)程無法完成正常的功能,病毒從而破壞了進(jìn)程的代碼區(qū)域、數(shù)據(jù)區(qū)域或堆棧,以此破壞了進(jìn)程地址空間數(shù)據(jù)的機(jī)密性和完整性.
圖2 病毒攻擊示意
硬件攻擊有以下幾種:
1)冷啟動(dòng)攻擊. 普林斯頓大學(xué)前沿基金會(huì)和溫瑞爾系統(tǒng)公司的研究人員在2008年初,聯(lián)合發(fā)表了一篇題為《鮮為人知的秘密:對密鑰的冷啟動(dòng)攻擊》的文章,這篇文章從實(shí)現(xiàn)細(xì)節(jié)上介紹了從運(yùn)行系統(tǒng)獲取內(nèi)存信息的一種新型攻擊方式. 一般認(rèn)為,內(nèi)存屬于數(shù)據(jù)易失性設(shè)備,如果機(jī)器一旦斷電,內(nèi)存中的數(shù)據(jù)就會(huì)立刻丟失. 然而,事實(shí)并非如此,實(shí)際上數(shù)據(jù)從內(nèi)存丟失需要一定的時(shí)間. 從斷開電源開始計(jì)算,一到兩秒內(nèi),內(nèi)存大部分?jǐn)?shù)據(jù)保存如初,并沒有什么改變. 如果采用冷卻內(nèi)存的辦法,則可以延長數(shù)據(jù)保持時(shí)間,甚至可以到幾分鐘. 研究人員開發(fā)了一系列工具,用來從即將關(guān)閉電源的機(jī)器內(nèi)存中提取重要的信息,然后再次啟動(dòng)系統(tǒng).
2)火線接口攻擊. 電氣和電子工程師協(xié)會(huì)的1394接口,一開始是用于取代SCSI的一個(gè)高速通信接口. 火線的主要部分是它的高速數(shù)據(jù)傳輸速率,這也是它大量應(yīng)用于音視頻傳輸?shù)脑? 火線接口高速率的一個(gè)主要特征是,它可以完全繞過CPU,通過直接內(nèi)存訪問DMA的方式訪問內(nèi)存. 這正是這個(gè)接口脆弱、易受攻擊的地方.
火線接口具有直接訪問內(nèi)存的能力,這使得能夠接觸目標(biāo)機(jī)器的滲透測試人員有了攻擊機(jī)會(huì),他們可以通過重寫包含訪問控制功能的內(nèi)存部分,繞過操作系統(tǒng)的密碼保護(hù)機(jī)制. DMA同樣可以讓滲透測試人員下載小于4GB內(nèi)存鏡像. 即使火線接口僅能訪問少于4GB的內(nèi)存且能使用反病毒軟件保護(hù)DMA,這類型的訪問還是揭示了IEEE1394標(biāo)準(zhǔn)中重大的安全缺陷. 由于火線接口的熱插拔功能,即使目標(biāo)機(jī)器在鎖定情況下,攻擊同樣能夠進(jìn)行.
3)邊信道攻擊(side channel attack 簡稱SCA),又稱為側(cè)信道攻擊. 針對加密電子設(shè)備在運(yùn)行過程中的時(shí)間消耗、功率消耗或是電磁輻射之類的側(cè)信道信息泄露而對加密設(shè)備進(jìn)行攻擊的方法被稱為邊信道攻擊. 這類新型攻擊的有效性遠(yuǎn)高于密碼分析的數(shù)學(xué)方法,因此給密碼設(shè)備帶來了嚴(yán)重的威脅. 主要分為電磁攻擊和能量攻擊兩種方式.
常見的功耗分析方法有簡單功耗分析(simple power analysis,SPA)、差分功耗分析(differential power analysis, DPA)、高階差分功耗分析(high order differential power analysis, HODPA). 簡單功耗分析方法利用功耗和操作之間的依賴性,這種方法具有最弱的攻擊強(qiáng)度和最小的實(shí)施難度[17-19]. 差分功耗分析方法主要利用統(tǒng)計(jì)學(xué)原理,通過分析功耗和數(shù)據(jù)之間的相關(guān)性來實(shí)現(xiàn)攻擊,該方法攻擊強(qiáng)度較強(qiáng),應(yīng)用空間最廣[17-18,20-21]. 高階差分功耗分析方法推廣了差分功耗分析方法的應(yīng)用,它主要用于攻擊采用了掩碼或盲化技術(shù)的密碼芯片[22-24].
4)總線攻擊. 攻擊者通過使用特殊硬件設(shè)備搭載到系統(tǒng)總線,利用此硬件設(shè)備來竊聽總線信息,甚至可以篡改和偽造總線信息,使程序運(yùn)行得到錯(cuò)誤的處理結(jié)果. 主要分為三種:一是欺騙攻擊,攻擊者通過使用偽造的數(shù)據(jù)塊替換掉內(nèi)存中的數(shù)據(jù)塊來實(shí)現(xiàn);二是重組、拼接攻擊,攻擊者將內(nèi)存中不同地址的數(shù)據(jù)塊替換當(dāng)前塊,這種攻擊方式可以認(rèn)為是內(nèi)存塊的空間置換;三是重放、重演攻擊,攻擊者將一個(gè)給定地址內(nèi)存塊的數(shù)據(jù)塊換成歷史數(shù)據(jù),這種攻擊方式可以認(rèn)為是內(nèi)存塊的時(shí)間置換.
2進(jìn)程安全保護(hù)技術(shù)分類
進(jìn)程安全保護(hù)技術(shù)可以分成軟件和硬件兩類. 軟件分類主要有如下幾種:
1)HOOKAPI防殺技術(shù). 該技術(shù)在Windows操作系統(tǒng)信息安全中得到廣泛應(yīng)用,它主要通過截獲對某個(gè)API函數(shù)的調(diào)用,以此來讓程序調(diào)用偽API函數(shù),Windows通過調(diào)用TerminateProcessp這個(gè)函數(shù)終止進(jìn)程. 如果對這個(gè)函數(shù)進(jìn)行篩選過濾,對需要保護(hù)的進(jìn)程返回一個(gè)特殊的值,那么就可以達(dá)到保護(hù)進(jìn)程的目的,如圖3所示.
2)進(jìn)程隱藏. 想辦法把進(jìn)程隱藏起來,通常是把進(jìn)程從進(jìn)程活動(dòng)鏈上刪除,當(dāng)從進(jìn)程活動(dòng)鏈上刪除之后,受保護(hù)的進(jìn)程就不會(huì)被查詢到,從而實(shí)現(xiàn)了“隱身”操作.
3)三線程保護(hù). 主要運(yùn)用代碼注入技術(shù),目的是讓本地線程和遠(yuǎn)程線程相互監(jiān)視,只要有其中一方被關(guān)閉,另一方馬上將其啟動(dòng). 這種方法發(fā)展較為成熟,相對來說采用較多,保護(hù)效果也較為不錯(cuò),除了重啟以外,找不到任何方法可以關(guān)掉受保護(hù)進(jìn)程.
圖3 HOOK API結(jié)構(gòu)示意
4)動(dòng)態(tài)鏈接庫鉤掛. 它是在三線程保護(hù)技術(shù)基礎(chǔ)上所作的改進(jìn),主要是讓系統(tǒng)進(jìn)程自動(dòng)去加載偽動(dòng)態(tài)鏈接庫以及庫中的功能.
5)沙箱隔離. 所謂沙箱,其實(shí)是一種運(yùn)行環(huán)境,在這種環(huán)境中對程序的運(yùn)行行為制定了安全策略,即什么能做,什么不能做[25].
第一個(gè)沙箱系統(tǒng)是Janus[26],它采用攔截系統(tǒng)調(diào)用的方法來監(jiān)控程序行為. 它成功地在Solaris操作系統(tǒng)上實(shí)現(xiàn)了對不可信軟件的運(yùn)行行為的控制. Janus最新版本[27]利用類似于Systrace[28]的技術(shù)重新實(shí)現(xiàn)了系統(tǒng)調(diào)用的攔截機(jī)制. Chakravyuha[29]與Janus系統(tǒng)一樣,也是基于內(nèi)核系統(tǒng)調(diào)用攔截技術(shù),成功實(shí)現(xiàn)了Linux操作系統(tǒng)下的沙箱機(jī)制. BlueBox[30]和 Cerb[31]也是這樣兩種系統(tǒng).
以上的沙箱系統(tǒng)都存在安全策略難以管理的問題,而MAPbox[32]提高了安全策略的可配置性與易用性,解決了上述問題. Peterson和其他研究人員實(shí)現(xiàn)了一個(gè)通用的系統(tǒng)調(diào)用攔截系統(tǒng)[33],并提供了一組支持二次開發(fā)的調(diào)用函數(shù). Vassilis Prevelakis等人在Linux和BSD操作系統(tǒng)上提出并實(shí)現(xiàn)了通過跟蹤程序的文件訪問操作創(chuàng)建安全策略的沙箱機(jī)制[34]. Strata[35]實(shí)現(xiàn)了一種沙箱機(jī)制,其基礎(chǔ)是軟件動(dòng)態(tài)轉(zhuǎn)換(Software Dynamic Translation)的運(yùn)行時(shí)程序代碼修改技術(shù),其體系結(jié)構(gòu)如圖4、5所示.
以上保護(hù)技術(shù),雖然對進(jìn)程有一定的保護(hù)能力,但是沒有保證信息安全的三個(gè)特性,即保密性(保證機(jī)密信息不被竊聽,或竊聽者不能了解信息的真實(shí)含義)、完整性(保證數(shù)據(jù)的一致性,防止數(shù)據(jù)被非法用戶篡改)、不可抵賴性(防止用戶否認(rèn)其行為). 另外,沙箱技術(shù)都面臨一個(gè)可用性的問題,需要手工配置系統(tǒng)的安全策略;無法找到一種便捷有效的方式生成安全策略,難以判斷哪些程序行為不會(huì)危害系統(tǒng)安全;程序的安全性和完整性難以兼顧.
圖4 Strata指令轉(zhuǎn)換引擎
圖5 Strata體系結(jié)構(gòu)
因此,還需要有相應(yīng)的硬件技術(shù)來對進(jìn)程進(jìn)行進(jìn)一步的保護(hù). 進(jìn)程的硬件保護(hù)主要有以下幾種典型的安全體系結(jié)構(gòu):
1)XOM. XOM(eXecute only memory)[36]是斯坦福大學(xué)計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)室提出的用于解決數(shù)字版權(quán)保護(hù)問題的系統(tǒng)保護(hù)框架,如圖6所示.
圖6 XOM架構(gòu)示意
這種架構(gòu)的核心是:在CPU片內(nèi)增加加密引擎,不同的程序運(yùn)行在不同的存儲(chǔ)隔間(Compartment)中,存儲(chǔ)隔間相互獨(dú)立,不重疊;同樣地,對于數(shù)據(jù)也是如此. 當(dāng)系統(tǒng)運(yùn)行時(shí),程序中能訪問屬于自己隔間的數(shù)據(jù),而不能訪問其他隔間的數(shù)據(jù). 在XOM上運(yùn)行的程序,事先由軟件商進(jìn)行了加密,所以此程序只能運(yùn)行在特定的處理器上. 考慮到安全性并且為了提高系統(tǒng)性能,同時(shí)采用對稱加密算法(處理速度相對快)和非對稱加密算法(處理速度相對慢),XOM使用了密鑰共享協(xié)議. 首先,XOM處理器芯片中存儲(chǔ)一對非對稱密鑰對,稱之為(Kxom,Kp),其中,Kxom為私鑰,Kp為公鑰. 應(yīng)用程序發(fā)布者使用自己的對稱密鑰Ks對程序進(jìn)程加密生成相應(yīng)的密文,然后通過用戶處理器公鑰Kp來加密密鑰Ks,最后將程序密文和加密后的Ks一起發(fā)給用戶. 當(dāng)系統(tǒng)運(yùn)行此應(yīng)用軟件時(shí),先使用自己的私鑰Kxom來解密得到軟件密鑰Ks,然后通過Ks來解密程序并運(yùn)行. 通過這種方法,軟件發(fā)布者可以通過使用相應(yīng)的處理器公鑰Kp來加密Ks,從而使得相應(yīng)的程序只能運(yùn)行在特定的處理器上,以此達(dá)到進(jìn)程運(yùn)行時(shí)的機(jī)密性和完整性保護(hù)目的.
2)AEGIS. AEGIS(architecture for tamper-evident and tamper-resistant processing)[37]系統(tǒng)保護(hù)框架是由麻省理工學(xué)院的計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室提出的. 它的安全前提是:假定處理器和操作系統(tǒng)的部分內(nèi)核是安全的(security kernel). 它有TE(tamper-evident)和PTR(private and authenticated tamper-resistant)兩種工作模式. TE只提供完整性保護(hù),能夠探測到所有對數(shù)據(jù)的篡改行為;PTR不僅提供完整性保護(hù),同時(shí)也提供機(jī)密性保護(hù). 在PTR模式下,所有片外的數(shù)據(jù)都是加密的,攻擊者不僅無法獲取任何具體信息,而且對這些數(shù)據(jù)進(jìn)行篡改的行為都可以被系統(tǒng)檢測到,如圖7所示.
圖7 AEGIS安全模型示意
在Security Kernel中,AEGIS采用安全上下文管理器SCM(Secure Context Manager)來維護(hù)每一個(gè)進(jìn)程的相關(guān)安全信息. 每條記錄有SPID,H(Prog),Regs,Hmem,0/1,和(Kstatic,Kdynamic)五個(gè)字段組成. 其中:SPID為安全進(jìn)程ID,其值為0時(shí)表示不受安全保護(hù)的普通進(jìn)程;H(Prog)表示相應(yīng)的哈希值;Regs代表相應(yīng)的寄存器及其值;Hmem用于完整性校驗(yàn);0/1表示該進(jìn)程的工作保護(hù)模式狀態(tài)(TE或PTR);Kstatic為對稱密鑰,用于加解密應(yīng)用程序,每個(gè)應(yīng)用程序都有一個(gè)唯一的Kstatic,在程序運(yùn)行過程中保持不變;程序運(yùn)行過程中產(chǎn)生的數(shù)據(jù)使用Kdynamic進(jìn)行加密,不同會(huì)話產(chǎn)生的Kdynamic是不同的,在會(huì)話結(jié)束時(shí)該密鑰也就失效了.
AEGIS架構(gòu)不僅可以用于軟件版權(quán)保護(hù),也可以用于認(rèn)證執(zhí)行和數(shù)字版權(quán)管理,這是其優(yōu)點(diǎn)所在. 但就機(jī)密性和完整性而言,AEGIS采用了直接塊加密和Hash樹校驗(yàn)方法,系統(tǒng)延遲開銷較大,效率較低,實(shí)用性不是很強(qiáng),這也正是這種架構(gòu)的缺點(diǎn).
3)Ceriums. Cerium[38]是麻省理工學(xué)院提出的另外一種可信處理器,它結(jié)合了XOM和AEGIS處理器優(yōu)點(diǎn),通過加密被保護(hù)進(jìn)程的地址空間來實(shí)現(xiàn)類似IBM4758中的認(rèn)證執(zhí)行. 它采用軟件方式來加密保護(hù)進(jìn)程,把一個(gè)可信微內(nèi)核放入處理器內(nèi)部,對被保護(hù)進(jìn)程地址空間的所有操作都會(huì)觸發(fā)這段微內(nèi)核代碼,由它來處理加密地址空間. Ceriums系統(tǒng)結(jié)構(gòu)如圖8所示. 另外,在商用CPU中,Intel公司和AMD公司也分別推出了自己的增強(qiáng)型安全處理技術(shù),如Intel的TXT[39]和AMD的SVM[40]. TXT和SVM不提供加密進(jìn)程空間的功能,它在處理器中增加了新的指令作為動(dòng)態(tài)可信度量根,這條指令可以實(shí)現(xiàn)進(jìn)程的保護(hù)執(zhí)行.
圖8 Cerium系統(tǒng)結(jié)構(gòu)示意
4)硬件虛擬化技術(shù). 硬件虛擬化技術(shù)[41-44]通過在操作系統(tǒng)和底層硬件之間插入一層虛擬機(jī)監(jiān)控層VMM(virtual machine monitor),與應(yīng)用程序?qū)拥奶摂M化技術(shù)相比而言,它的權(quán)限更高,效率更好,并且有硬件支持.
虛擬機(jī)是對真實(shí)計(jì)算環(huán)境的抽象和模擬,所以VMM要為每個(gè)虛擬機(jī)分配一套數(shù)據(jù)結(jié)構(gòu),以此來管理各個(gè)虛擬機(jī)的狀態(tài),諸如虛擬處理器的全套寄存器,物理內(nèi)存的使用情況,虛擬設(shè)備的狀態(tài)等. VMM 調(diào)度虛擬機(jī)時(shí),將其部分狀態(tài)恢復(fù)到主機(jī)系統(tǒng)中,但是并非所有的狀態(tài)都需要恢復(fù),例如主機(jī) CR3 寄存器中存放的是 VMM 設(shè)置的頁表物理地址,而不是 Guest OS 設(shè)置的值. 主機(jī)處理器直接運(yùn)行 Guest OS 的機(jī)器指令,由于 Guest OS運(yùn)行在低特權(quán)級別,當(dāng)訪問主機(jī)系統(tǒng)的特權(quán)狀態(tài)(如寫 GDT寄存器)時(shí),權(quán)限不足導(dǎo)致主機(jī)處理器產(chǎn)生異常,將運(yùn)行權(quán)自動(dòng)交還給 VMM. 此外,外部中斷的到來也會(huì)導(dǎo)致 VMM 的運(yùn)行. VMM可以通過模擬操作系統(tǒng)來執(zhí)行進(jìn)程調(diào)用,并且可以在啟動(dòng)進(jìn)程以前插入自己的代碼,以保護(hù)整個(gè)進(jìn)程.
基于虛擬化安全監(jiān)視的技術(shù)可以分為內(nèi)部監(jiān)控和外部監(jiān)控兩類. 內(nèi)部監(jiān)控在虛擬機(jī)中加載內(nèi)核模塊,通過內(nèi)核模塊來攔截目標(biāo)虛擬機(jī)的內(nèi)部事件,而內(nèi)核模塊本身的安全通過虛擬機(jī)管理器來進(jìn)行保護(hù). Lares[45]內(nèi)部監(jiān)控的架構(gòu)如圖9所示. 需要被監(jiān)控的系統(tǒng)放在目標(biāo)虛擬機(jī)中運(yùn)行,安全工具放一個(gè)與目標(biāo)虛擬機(jī)隔離的安全虛擬域中. 內(nèi)存保護(hù)模塊可以根據(jù)鉤子函數(shù)所在的內(nèi)存頁面對進(jìn)程進(jìn)行保護(hù),防止攻擊者的惡意篡改. SIM[46]架構(gòu)也是這個(gè)原理,如圖10所示.
圖9 Lares內(nèi)部監(jiān)控架構(gòu)
圖10 SIM內(nèi)部監(jiān)控架構(gòu)
外部監(jiān)控與內(nèi)部監(jiān)控不同,它是在虛擬機(jī)管理器中對虛擬機(jī)事件進(jìn)行攔截,在其外部進(jìn)行檢測,如圖11所示的Livewire[47]結(jié)構(gòu). 外部監(jiān)控是指在目標(biāo)虛擬機(jī)外部,由位于安全域的安全工具按照某種安全策略對其進(jìn)行檢測.
圖11 Livewire外部監(jiān)控架構(gòu)
5)TrustZone技術(shù). TrustZone是ARM針對消費(fèi)電子設(shè)備安全提出的一種安全系統(tǒng)架構(gòu)[48-60],目標(biāo)是防范設(shè)備可能遭受到的多種特定威脅,不是所有的威脅. 系統(tǒng)安全是通過將SoC(system on chip)資源(硬件和軟件)劃分成兩個(gè)世界來獲得的,即安全子系統(tǒng)對應(yīng)的安全世界和其他子系統(tǒng)對應(yīng)的普通世界. AMBA3 AXI總線系統(tǒng)能確保安全世界的資源不會(huì)被普通世界所訪問.
就處理器架構(gòu)而言,每個(gè)物理的處理器核提供兩個(gè)虛擬核: 一個(gè)非安全核NS(non-secure)和一個(gè)安全核(secure). 非安全核與安全核之間的切換機(jī)制叫做monitor模式. 非安全核只能訪問普通世界的系統(tǒng)資源,而安全核能訪問所有資源. 普通世界的軟件想進(jìn)入到monitor模式,可以使用SMC指令或通過硬件異常機(jī)制的一個(gè)子集實(shí)現(xiàn). 可以配置IRQ,F(xiàn)IQ,外部data abort,外部prefetch abort這幾個(gè)異常進(jìn)入到monitor模式. 圖12展示了這種切換方式.
圖12 TrustZone切換示意
一般情況下,如果普通世界的用戶模式需要獲取安全世界的服務(wù),它要先進(jìn)入到普通世界的特權(quán)模式,在該模式下調(diào)用SMC,那么處理器進(jìn)入到monitor模式,monitor模式備份保存普通世界的上下文,隨后進(jìn)入到安全世界的特權(quán)模式,此時(shí)運(yùn)行環(huán)境變成了安全世界的執(zhí)行環(huán)境,然后再進(jìn)入到安全世界的用戶模式,執(zhí)行相應(yīng)的安全服務(wù). 這里把安全世界的用戶模式和特權(quán)模式分離,是因?yàn)橥ㄟ^特權(quán)模式中的執(zhí)行環(huán)境是系統(tǒng)級別的,而用戶模式的安全服務(wù)是應(yīng)用級別的,兩者的提供者通常是不同的. 圖13是軟件架構(gòu)的展示,安全世界的執(zhí)行環(huán)境要管理用戶模式的服務(wù)和應(yīng)用,并給它們提供編程接口.
圖13 TrustZone軟件架構(gòu)示意
3總結(jié)與展望
當(dāng)前進(jìn)程安全保護(hù)技術(shù)主要分成軟件和硬件兩大類. 軟件類中的進(jìn)程安全保護(hù)技術(shù),主要優(yōu)點(diǎn)是可移植性強(qiáng),不需要硬件開銷,但是存在著不能對信息的機(jī)密性、完整性很好保護(hù)的缺點(diǎn). 硬件類中的進(jìn)程安全保護(hù)技術(shù),主要優(yōu)點(diǎn)是可以做到對進(jìn)程的機(jī)密性、完整性保護(hù),但存在開銷大,執(zhí)行效率低,在實(shí)際應(yīng)用中有局限性的弱點(diǎn).
因此,下一步的研究應(yīng)該是,如何結(jié)合進(jìn)程安全保護(hù)兩類技術(shù)的優(yōu)點(diǎn),找到好的切入點(diǎn),以期更好地對進(jìn)程進(jìn)行安全保護(hù).
參考文獻(xiàn)
[1] McAfee Corp. New paradigm shift: comprehensive security beyond the operating system [R].California: McAfee, 2012.
[2] MILENA M, ALEKSANDAR M, EMIL J. Using instruction block signatures to counter code injection attacks [J]. ACM Sigarch Computer Architecture News, 2005, 33(1):1-5.
[3] 馮登國,張陽,張玉清. 信息安全風(fēng)險(xiǎn)評估綜述 [J]. 通信學(xué)報(bào), 2004, 25 (7): 11-17.
[4] JOHANNES W. Trusted computing building blocks for embedded Linux-based ARM trustzone platforms[C]// Proceedings of the 3rd ACM workshop on Scalable trusted computing. ACM Press, 2012:21-30.
[5] 邢栩嘉,林闖,蔣屹新. 計(jì)算機(jī)系統(tǒng)脆弱性評估研究 [J]. 計(jì)算機(jī)學(xué)報(bào), 2004, 1(1) : 2-9.
[6] 洪帆,崔國華,付小青. 信息安全概論 [M]. 武漢:華中科技大學(xué)出版社, 2005: 2-20.
[7] IBM, MICROSOFT. Workshop on advancing computer architecture research (acar-ii): laying a new foundation for IT: computer architecture for 2025 and beyond [R]. IBM, MICROSOFT, 2010.
[8] 金海. 淺析云計(jì)算安全的核心問題 [J]. 中國計(jì)算機(jī)學(xué)會(huì)通訊, 2009, 5(2): 47.
[9] 孫建華. 大規(guī)模網(wǎng)絡(luò)中的入侵檢測與病毒防御模型研究 [D]. 武漢:華中科技大學(xué), 2005.
[10]連一峰. 入侵檢測綜述 [J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2003, 1(1): 46 - 47.
[11]BLAKLEY G R. Twenty years of cryptography in the open literature [C]//IEEE Symposium on Security and Privacy. Oakland: IEEE Press, 1999:106-107.
[12]VIRGIL G. 20 Years of operating system security (UNIX as one focus) [C]//IEEE Symposium on Security and Privacy. Oakland: IEEE Press, 1999:108-110.
[13]STEVE L. Twenty years of evaluation criteria and commercial technology [C]//IEEE Symposium on Security and Privacy. Oakland: IEEE Press, 1999:111-112.
[14]MILLEN J. 20 Years of covert channel modeling and analysis [C]//IEEE Symposium on Security and Privacy. Oakland: IEEE Press, 1999:113-114.
[15]JOHN M. Twenty years of formal methods [C]//IEEE Symposium on Security and Privacy. Oakland: IEEE Press, 1999:115-116.
[16]STEPHEN K. 20 years of network security [C]//IEEE Symposium on Security and Privacy. Oakland: IEEE Press, 1999:117-118.
[17]KOCHER P C. Timing attacks on implementations of Deffie-Hellman, RSA, DSS, and other systems[C]//Advances in Cryptology-CRYPTO’96. California: Springer Press, 1996: 104-113.
[18]KOCHER P, JAFFE J , JUN B. Differential power analysis[C]//Advances in Cryptology-CRYPTO’99. California:Springer Press, 1999: 388-387.
[19]OSWALD E. Enhancing simple power-analysis attacks on elliptic curve cryptosystems[C]//Cryptographic Hardware and Embedded Systems-CHES 2002.Redwood City:Springer Press, 2003:82-97.
[20]BRIER E, CLAVIER C, OLIVIER F. Correlation power analysis with a leakage model[C]//Cryptographic Hardware and Embedded Systems-CHES 2004.Boston:Springer Press, 2004: 16-29.
[21]LI Huiyun, WU Keke, YU Fengqi. Enhanced correlation power analysis attack against trusted systems[J]. Security and Communication Networks, 2011, 4(1): 3-10.
[22]WADDLE J, WAGNER D. Towards efficient second-order power analysis[C]//Cryptographic Hardware and Embedded Systems-CHES 2004.Boston: Springer Press, 2004: 1-15.
[23]NASSAR M, SOUISSI Y, GUILLEY S, et al. RSM: a small and fast countermeasure for AES, secure against 1st and 2nd-order Zero-Offset SCAs[C]//Design, Automation & Test in Europe Conference & Exhibition(DATE 2012).Dresden:IEEE Press, 2012: 1173-1178.
[24]GENELLE L, PROUFF E, QUISQUATER M. Thwarting higher-order side channel analysis with additive and multiplicative maskings[C]//Cryptographic Hardware and Embedded Systems-CHES 2011.Nara:Springer Press, 2011: 240-255.
[25]WANG Sun, ZHANG Liang, SEKAR R, et al. One-way isolation: an effective approach for realizing safe execution environments[C]//Proceedings of Network and Distributed Systems Security Symposium (NDSS'05).San Diego:IEEE Press, 2005: 1-18.
[26]GOLDBERG I, WAGNER D, THOMAS R, et al. A secure environment for untrusted helper applications: confining the wily hacker[C]//Proceedings of the 6th USENIX Security Symposium.San Jose:IEEE Press, 1996: 1-13.
[27]GARFINKEL T. Traps and pitfalls: practical problems in system call interposition based security tools[C]//Proceedings of the ISOC Symposium on Network and Distributed System Security (NDSS'03). San Diego:IEEE Press, 2003: 163-176.
[28]PROVOS N. Improving host security with system call policies[C]//Proceedings of the 12th USENIX Security Symposium. Washington DC: IEEE Press, 2003: 257-271.
[29]DAN A, MOHINDRA A, RAMASWAMI R, et al. Chakra Vyuha(CV): a sandbox operating system environment for controlled execution of alien code[R]. Technical Report 20742, IBM T.J. Watson Research Center,1997.
[30]SURESH N C, PAU C. BlueBox: a policy-driven, host-based intrusion detection system [J]. ACM Transactions on Information and System Security, 2003, 6(2): 173-200.
[31]DAWIDEK P J. Cerb: system firewall mechanism [C]// Proceedings of the 12th Usenix Security Symposium. Washington D C: IEEE Press, 2003.
[32]ACHARYA A, RAJE M. Mapbox: using parameterized behavior classes to confine applications[C]//Proceedings of the 9th USENIX Security Symposium. Denver: IEEE Press, 2000: 1-18.
[33]PETERSON D S, BISHOP M, PANDEY R. A flexible containment mechanism for executing untrusted code[C]//Proceedings of the 11th USENIX Security Symposium. San Francisco:CA Press, 2002: 207-225.
[34]PREVELAKIS V, SPINELLIS D. Sandboxing applications[C]//Proceedings of USENIX Annual Technical Conference. Washington DC: IEEE Press, 2001: 119-126.
[35]SCOTT K, DAVIDSON J. Safe virtual execution using software dynamic translation[C]//Proceedings of the 18th Annual Computer Security Applications Conference (ACSAC’02). Las Vegas: IEEE Press, 2002: 209-218.[36]LIE D, THEKKATH C, MITCHELL M, et al. Architectural support for copy and tamper resistant software[C]// Proceedings of the 9th International Conference on Architectural Support for Programming Languages and Operating System (ASPLOSIX). California: ACM Press, 2000:169-177.
[37]SUH G, CLARKE D, GASSEND B, et al. AEGIS: architecture for tamper-evident and tamper-resistant processing[C]//Processing of International Conference of Supercomputing (ICS’03). California: ACM Press,2003:160-171.
[38]CHEN B, MORRIS T. Certifying program execution with secure processors[C]//9th Hot Topics in Operating Systems. Lihue:IEEE Press, 2003: 1-15.
[39]INTEL CORPORATION. Intel trusted execution technology software development guide [R]. INTEL Publication, 2005.
[40] ADVANCED MICRO DEVICES. AMD64 virtualization: secure virtual machine architecture reference manual [R]. AMD Publication, 2005.
[41]SMITH J E, NAIR R. The architecture of virtual machines [J]. IEEE Computer, 2005, 38(5): 28-32.
[42]ROSENBLUM M, GARFINKEL T. Virtual machine monitors: current technology and future trends [J]. IEEE Computer, 2005, 38(5): 39-47.
[43]WHITAKER A, COX R S, SHAW M, et al. Rethinking the design of virtual machine monitors [J]. IEEE Computer, 2005, 38(5): 57-62.
[44]JIN H. Computer system virtualization-theory and application[M]. Beijing: Tsinghua University Press, 2008:1-26.
[45]PAYNE B D, CARBONE M, SHARIF M, et al. Lares: an architecture for secure active monitoring using virtualization[C]//Proc of the 29th IEEE symposium on Security and Privacy. Washington DC: IEEE Computer Society, 2008:233-247.
[46]SHARIF M, LEE W, CUI W, et al. Secure in-VM monitoring using hardware virtualization[C]// Proc of the 16th ACM Conference on Computer and Communications Security. New York: ACM Press, 2009:477-487.
[47]GARFINKEL T, ROSENBLUM M. A virtual machine introspection based architecture for intrusion detection[C]//Proc of the 10th Network and Distributed System Security Symposium. Berkeley: USENIX Association, 2003: 191-206.
[48]SRIVATHS R, ANAND R. Security in embedded systems: design challenges[C]//Proceeding of the ACM Transactions on Embedded Computing Systems. New York:IEEE Press, 2004:461-491.
[49]KAPIL K. DRM on android[C]//Proceeding of the 10th IEEE India Conference. Mumbai:IEEE Press, 2013:1-6.
[50]TIAGO A, DON F. Trust zone: integrated hardware and software security enabling trusted computing in embedded system[J]. Government Information Quarterly, 2004, 3(4): 18-24.
[51]WAQAR A, DALE L. Redesigning secure element access control for NFC enabled Android smart phones using mobile trusted computing[C]//Proceeding of the 2013 International Conference on Information Society. Toronto:IEEE Press, 2013: 27-34.
[52]ARM LIMITED. ARM security technology building a secure system using trustzone technology [R].ARM Publication, 2009.
[53]RUBY B L, PETER C S. Architecture for protecting critical secrets in microprocessors[C]//Proceeding of the 32nd International Symposium on Computer Architecture. Madison: IEEE Press, 2005:2-13.
[54]PETER W, ALEXANDRE. Implementing embedded security on dual-virtual-CPU systems[C]//Proceeding of the Design and Test of ICs for Secure Embedded Computing. Shilong:IEEE Press, 2007:582-591.
[55]YANG An, ZHAO Bo, LI Hongbo. Extension implementation of TCM in the embedded system based on FPGA[C]//Proceeding of the 2013 International Conference on Computer Science and Application.Wuhan: IEEE Press 2013:749-752
[56]DAVID J L, CHANDRAMOHAN T. Architecture support for copy and tamper-resistant software[C]//Proceeding of the ASPLOS-IX 2000. Massachusetts:IEEE Press, 2000:1-10.
[57]EDWARD S, DWAINE C. AEGIS: architecture for tamper-evident and tamper-resistant processing[C]//Proceeding of the 27th International Conference on Supercomputing. San Francisco:IEEE Press, 2003:1-12.
[58]LI Hongjuan, LAN Yuqing. A design of trusted operating system based on Linux[C]//Proceeding of the 2010 International Conference on Electrical and Control Engineering. Wuhan:IEEE Press, 2010:4598-4601.
[59]ARIJIT U, JAYDIP S. Embedded security for Internet of things[C]//Proceeding of the 2nd National Conference on Emerging Trends and Applications in Computer Science. Shilong: IEEE Press, 2011:1-6.
[60]ARM LIMITED. ARM Trustzone API specification version 3.0 [R]. ARM Publication, 2009.
(編輯王小唯)
A survey on the studies of security guard technology for process
ZHAO Jianfeng, SHI Gang, MENG Dan
(Institute of Information Engineering, Chinese Academy of Sciences, 100093 Beijing, China)
Abstract:Security and protection for process is a hot point in the field of information security, which can be applied to computer security system, anti-virus software, the protection of digital property rights, etc. In the context of information security, this paper summarizes the threats of the process including software threat and hardware threat, and combines the actual case. It classifies the security protection technology for process from hardware and software aspects, as well as analyzes the characteristics of each technology and its shortcomings. Finally the paper concludes the problems in the current research, and looks forward to the future research direction and focus on security protection technology for process.
Keywords:process; security protection; classification; research direction
中圖分類號:TP309.2
文獻(xiàn)標(biāo)志碼:A
文章編號:0367-6234(2016)05-0077-08
通信作者:趙劍鋒, zhaojianfeng@iie.ac.cn.
作者簡介:趙劍鋒(1980—),男,博士研究生;
基金項(xiàng)目:國家"核高基"科技重大專項(xiàng)基金(2013ZX01029003-001); 國家高技術(shù)研究發(fā)展計(jì)劃基金(2012AA01A401).
收稿日期:2016-01-13.
doi:10.11918/j.issn.0367-6234.2016.05.012
孟丹(1965—),男,研究員,博士生導(dǎo)師.