工控網(wǎng)首頁
>

新聞中心

>

市場(chǎng)評(píng)論

>

嵌入式系統(tǒng)安全性(中) 對(duì)攻擊狀況和防衛(wèi)策略的概述和分析

嵌入式系統(tǒng)安全性(中) 對(duì)攻擊狀況和防衛(wèi)策略的概述和分析

2008/7/25 0:00:00
借助虛擬化實(shí)現(xiàn)安全性

  虛擬技術(shù)已從企業(yè)計(jì)算空間轉(zhuǎn)向嵌入式世界。虛擬技術(shù)包括在虛擬計(jì)算機(jī)監(jiān)控器的控制下提取系統(tǒng)資源,有時(shí)稱為系統(tǒng)管理程序。系統(tǒng)管理程序使運(yùn)行同時(shí)執(zhí)行環(huán)境具有可能性,每個(gè)環(huán)境孤立存在,分別運(yùn)行在基礎(chǔ)硬件平臺(tái)的一個(gè)虛擬代表上。

  從器件整合和資源最優(yōu)化的角度來說,虛擬計(jì)算機(jī)有很多優(yōu)點(diǎn)。它們可以采用不同設(shè)計(jì)方法,從“純粹”的或“完全”的虛擬到“部分虛擬(Paravirtualization)”,部分虛擬是嵌入式應(yīng)用中最常用的方法。在部分虛擬中,進(jìn)行進(jìn)一步的細(xì)分,包括微內(nèi)核、微調(diào)度程序和輕薄的產(chǎn)品,這種輕薄產(chǎn)品實(shí)際上擴(kuò)大了硬件抽象層,使之包括了虛擬特性。

  從安全的角度來看,虛擬技術(shù)的使用,允許設(shè)計(jì)者通過執(zhí)行特權(quán)分離和最小權(quán)限原則7,8,來減輕計(jì)算機(jī)安全攻擊的潛在危害。

  特權(quán)分離要求應(yīng)用程序被分為有特權(quán)部分和無特權(quán)部分,有特權(quán)的部分應(yīng)保存得越小越好,來減小攻擊的表面。因此,一個(gè)成功的、針對(duì)對(duì)更大的、不安全的組件的攻擊,只會(huì)獲得對(duì)敏感數(shù)據(jù)的極低的訪問能力。

  最小權(quán)限要求,每個(gè)軟件模塊僅能獲得合理用途所需的信息和資源。

  各種各樣不同的虛擬技術(shù)的一個(gè)共同點(diǎn)就是整齊。對(duì)于純粹虛擬和完全虛擬,VMM負(fù)責(zé)捕捉和處理所有由客戶操作系統(tǒng)執(zhí)行的指令。這種方法的好處是客戶操作系統(tǒng)可以不更改地運(yùn)行。另外,由于操作系統(tǒng)是與硬件完全脫鉤的,才有可能創(chuàng)造更高的便攜式應(yīng)用,其應(yīng)用平臺(tái)多樣化且在應(yīng)用程序中。這種方法的缺點(diǎn)是在系統(tǒng)功耗方面是一個(gè)重大的支出,特別是當(dāng)硬件平臺(tái)沒有配置軟件虛擬支持的情況下。

  純粹虛擬技術(shù)依靠具有重要硬件支持的底層硬件平臺(tái)來實(shí)現(xiàn),如Intel公司的VT體系機(jī)構(gòu)和AMD的Pacifica。在這些系統(tǒng)中,虛擬計(jì)算機(jī)資源的狀態(tài)在硬件中維持,而且VMM的性能消耗大幅度減小。這種技術(shù)的優(yōu)點(diǎn)是它類似于全虛擬,表現(xiàn)在客戶操作系統(tǒng)可以無修改地運(yùn)行。缺點(diǎn)是那些運(yùn)用這一技術(shù)的產(chǎn)品占用的裸片面積稍大一些,而且現(xiàn)有可用的嵌入式裝置中納入這種水平的支持能力者并不多。

  部分虛擬技術(shù)(Paravirtualization)是這樣一種技術(shù),其特定操作系統(tǒng)的指示,一般具有“特權(quán)”和內(nèi)核模式指示,被“hypercalls”或API對(duì)管理程序的調(diào)用所代替。這減輕了處理所有客戶指示的負(fù)擔(dān),降低了系統(tǒng)的開銷,明顯地提高了執(zhí)行績(jī)效。缺點(diǎn)是客戶操作系統(tǒng)必須被“觸及”,但是,實(shí)際上這種影響是很小的。

  例如,分析Linux時(shí),發(fā)現(xiàn)/dev/arch中具有優(yōu)先權(quán)的指令僅存在15個(gè)文件中。

  在普通的部分虛擬技術(shù)種類中,存在一些系統(tǒng)管理程序的子程序。

  微調(diào)度器(如圖2),正如其名稱所暗示的那樣,是按照一個(gè)固定的進(jìn)度表來分配系統(tǒng)資源的程序。商業(yè)上典型的具體實(shí)施方法是在內(nèi)核模式下運(yùn)行微調(diào)度程序,并且作為主控來控制一個(gè)客戶操作系統(tǒng),該OS也在類似的內(nèi)核模式下進(jìn)行操作。從安全的角度來說,這意味著客戶操作系統(tǒng)一定得是一個(gè)“良好的市民”,因?yàn)榭蛻敉耆赡芾@過微調(diào)度程序。這使得整個(gè)空閑的存儲(chǔ)器易受攻擊。為了消除這個(gè)弱點(diǎn),微調(diào)度程序的開發(fā)者增加了一個(gè)可供選擇的安全引擎,以監(jiān)測(cè)和控制硬件的訪問。

圖2 使用微調(diào)度器的虛擬化

  微內(nèi)核(圖3)本質(zhì)上是一個(gè)操作系統(tǒng),這個(gè)系統(tǒng)移去了大量的典型操作系統(tǒng)服務(wù),并代之以可以在用戶級(jí)別執(zhí)行服務(wù)的機(jī)制。從安全的角度來看,它的優(yōu)點(diǎn)是,用戶模式實(shí)體訪問底層硬件時(shí)不具有危險(xiǎn)性,因?yàn)閮?nèi)核模式指令調(diào)用已被移去。其缺點(diǎn)主要是多重處理域的維護(hù),當(dāng)執(zhí)行從微核的本地處理區(qū)運(yùn)行到客戶操作系統(tǒng)及其應(yīng)用程序處理區(qū)時(shí),這些處理域需要具體實(shí)現(xiàn)復(fù)雜的進(jìn)程間通信(IPS)機(jī)制和額外的環(huán)境轉(zhuǎn)換。

圖3 基于微內(nèi)核的虛擬化方法

  虛擬的另一個(gè)途徑是產(chǎn)生一個(gè)硬件抽象層(HAL),并增加額外的服務(wù),以照顧多重執(zhí)行環(huán)境(圖4)的需求。HAL是一個(gè)硬件微薄轉(zhuǎn)換層,它可以使得軟件具有更好的可移植性。為增加對(duì)多重執(zhí)行環(huán)境的支持,開發(fā)者創(chuàng)造了超微內(nèi)核,盡管這種表述不是很準(zhǔn)確。在實(shí)踐中,這種途徑和微核型解決方案的不同之處是,雖然微核在設(shè)計(jì)時(shí)已經(jīng)考慮到要運(yùn)行某種客戶操作系統(tǒng),而HAL更趨向于以硬件為中心,而且并不了解操作系統(tǒng)的具體情況。

圖4 利用HAL或者超微內(nèi)核性管理程序?qū)崿F(xiàn)的虛擬化

  從安全的角度來說,最關(guān)鍵的因素是所有商業(yè)管理程序控制對(duì)硬件資源(如MMU系統(tǒng))訪問的能力。例如,如果一個(gè)客戶端應(yīng)用程序(比如web瀏覽器)被一個(gè)流氓HTML站點(diǎn)所破壞,并試圖侵入存儲(chǔ)器禁區(qū),那么系統(tǒng)管理程序就會(huì)向存儲(chǔ)器強(qiáng)加邊界,并適當(dāng)?shù)乇Wo(hù)敏感數(shù)據(jù)。通過使用安全的系統(tǒng)管理員,根據(jù)駐留在特定的執(zhí)行環(huán)境中的應(yīng)用程序的已知邊界檢查可疑的重填數(shù)據(jù),就可以實(shí)現(xiàn)由軟件填充的TBL不受侵?jǐn)_,由此保證程序的執(zhí)行處于“界限內(nèi)”。在路由器或其他客戶端裝置中,系統(tǒng)管理程序可以用來提供一定程度的DoS保護(hù),這可以通過使用多重VM來控制對(duì)任何特定資源的訪問或是要求提供適當(dāng)?shù)耐ㄐ凶C來實(shí)現(xiàn)的,這樣做可以避免VM使用“界限外”的資源。

   在虛擬化架構(gòu)的設(shè)計(jì)過程中,虛擬計(jì)算機(jī)之間的默認(rèn)通信途徑要盡可能減少,理想的情況是,如果從VM到VM沒有公開昭示的授權(quán)的話,最好沒有任何通信。

  由于增加一個(gè)VM的開銷是很低的,用VM自己已經(jīng)完成引導(dǎo)的、處于掛起狀態(tài)的“候補(bǔ)”操作系統(tǒng)來生成”候補(bǔ)”VM是可能的。那么,當(dāng)一個(gè)處理域被DoS所危及時(shí),一直在自己的執(zhí)行環(huán)境中運(yùn)行的系統(tǒng)健康度監(jiān)督程序,可以將被危及的VM的執(zhí)行掛起,將激活的程序轉(zhuǎn)移到候補(bǔ)的VM,并繼續(xù)執(zhí)行。這種方法在受到攻擊的情況下維持更長(zhǎng)的計(jì)算機(jī)正常運(yùn)行時(shí)間。

  由于VM一般來說必須從CPU時(shí)間和可用內(nèi)存的角度來公開地界定,VM所需要的資源在DoS面前僅呈現(xiàn)一個(gè)很小的“攻擊面”,在一些情況下,可以通過限制收到的消息數(shù)量來進(jìn)一步限制弱點(diǎn)的發(fā)展,從而避免飽和攻擊。

  將認(rèn)證機(jī)制擴(kuò)展到虛擬計(jì)算機(jī)上可以使安全導(dǎo)入機(jī)制變得更健全。硬件引導(dǎo)完成后,安全引導(dǎo)機(jī)制標(biāo)記第一個(gè)VM。第一個(gè)虛擬機(jī)可以執(zhí)行第二個(gè)層次的安全引導(dǎo),通過額外標(biāo)記和經(jīng)過驗(yàn)證的VMs來擴(kuò)展“信任鏈”,直到系統(tǒng)飽和以及所有物理、虛擬計(jì)算機(jī)序列導(dǎo)入完成。

  就所有系統(tǒng)的基礎(chǔ)部分而言,需要分析其優(yōu)點(diǎn)和缺點(diǎn)。系統(tǒng)管理程序提供了一個(gè)高水平的安全性和執(zhí)行環(huán)境之間的隔離。但是,當(dāng)數(shù)據(jù)必須在環(huán)境之間共享時(shí),會(huì)發(fā)生什么情況呢?很多系統(tǒng)管理程序通過生成通信渠道或是共用執(zhí)行環(huán)境中的存儲(chǔ)器區(qū)域來處理這個(gè)問題。這隨之又造成了第二個(gè)層次上的弱點(diǎn),所以應(yīng)該確定這些通道不會(huì)被惡意軟件利用來將數(shù)據(jù)從安全的/可信任的區(qū)域轉(zhuǎn)移到不安全/不可信任的區(qū)域。在這些種類的環(huán)境中,可以運(yùn)用分層的方法。例如,可以納入一個(gè)激勵(lì)/響應(yīng)機(jī)制,來實(shí)現(xiàn)數(shù)據(jù)通過共用存儲(chǔ)器在各執(zhí)行環(huán)境之間的轉(zhuǎn)移。當(dāng)這種機(jī)制就位時(shí),不可信區(qū)域的安全就會(huì)到危脅,危險(xiǎn)就會(huì)侵入共用存儲(chǔ)器區(qū)域,但它仍不能從可信區(qū)獲得數(shù)據(jù)。舉對(duì)Web瀏覽器的例子來說,攻擊者可能會(huì)獲得進(jìn)入存儲(chǔ)器共享區(qū)的許可,但它們不能侵入激勵(lì)/響應(yīng)機(jī)制,因此,敏感數(shù)據(jù)就不會(huì)從安全區(qū)轉(zhuǎn)移到共用存儲(chǔ)器區(qū)。

  另一個(gè)系統(tǒng)級(jí)問題會(huì)影響虛擬化的運(yùn)用的地方,是系統(tǒng)管理程序的響應(yīng)時(shí)間。如果響應(yīng)時(shí)間使實(shí)時(shí)操作系統(tǒng)(RTOS)不能在系統(tǒng)管理程序?qū)哟芜m當(dāng)?shù)剡\(yùn)行,那么RTOS一般就會(huì)在微核模式下運(yùn)行,并通過優(yōu)先指令直接接觸系統(tǒng)硬件。這就形成了,或更準(zhǔn)確地說,遺留了一個(gè)可通過對(duì)RTOS的破壞來擊破的弱點(diǎn)。

  與設(shè)計(jì)的許多其他方面一樣,少就是多。系統(tǒng)管理程序所占用的區(qū)域越小,需要去防范的的攻擊面積就越小,而且對(duì)超級(jí)調(diào)用(hypercall)的服務(wù)響應(yīng)時(shí)間就越短。一個(gè)小的覆蓋區(qū)允許系統(tǒng)管理程序根映像被保存在芯片上,從而減小外界對(duì)存儲(chǔ)器總線的探測(cè)和代碼細(xì)節(jié)的暴露。(下集預(yù)告:將批露ARM、MIPS、PowerPC處理器的安全策略與系統(tǒng)加固。)

 

 

投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

中國(guó)聯(lián)通首個(gè)量子通信產(chǎn)品“量子密信”亮相!

國(guó)家重大裝備企業(yè)齊聚高交會(huì) 中國(guó)科技第一展11月深圳舉行

東土精彩亮相華南工博會(huì),展現(xiàn)未來工業(yè)前沿技術(shù)

ATMS邀請(qǐng)函 | 以智馭新,協(xié)作創(chuàng)造汽車行業(yè)新質(zhì)生產(chǎn)力

直播定檔!見證西門子與中科摩通聯(lián)手打造汽車電子智能制造新范式