新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)安全性(下) 對攻擊狀況和防衛(wèi)策略的概述和分析

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

作者:Frank Altschuler 和 Bruno Zoppis, Trango Virtual Processors公司 時(shí)間:2008-07-08 來源:電子產(chǎn)品世界 收藏

技術(shù)

  是一種將軟件和硬件相結(jié)合為消費(fèi)者產(chǎn)品提供安全保護(hù)的技術(shù)9,10,11。在硬件方面,特殊的具有“安全意識(shí)”的存儲(chǔ)器包裹層(wrapper),系統(tǒng)總線,調(diào)試端口,及中斷控制器都被集成到了SOC中。另外,為CPU結(jié)構(gòu)和核心增加了一個(gè)新的安全監(jiān)控模式。

  在軟件方面,一個(gè)從受信任的邏輯提供的安全監(jiān)控器,在新的安全監(jiān)控模式下運(yùn)行,并擔(dān)當(dāng)安全與不安全狀態(tài)之間的看門監(jiān)控任務(wù)。當(dāng)操作系統(tǒng)調(diào)用指令(安全監(jiān)控中斷或SMI)時(shí),安全監(jiān)控器受到了控制,與此同時(shí),處理器獲得了額外層次的特權(quán)以運(yùn)行受到信任的代碼,并通過嵌入已知有安全意識(shí)的外設(shè)的安全審核位或“S-位”,來控制對受到信任的資源的訪問。對安全存儲(chǔ)器的訪問是通過使用MMU和TLB中的安全位標(biāo)記符和“S-位標(biāo)記符”來控制的。這些標(biāo)志被用來將存儲(chǔ)器劃分為安全區(qū)和不安全區(qū)。安全監(jiān)控器通過將中斷分為安全和不安全兩類,來進(jìn)一步增強(qiáng)安全性,并實(shí)現(xiàn)斷開/連接調(diào)試端口的能力。

  TrustZone技術(shù),已被用來保護(hù)在芯片上或不在芯片上的存儲(chǔ)器和外圍設(shè)備免受軟件攻擊。通過對系統(tǒng)的精心設(shè)計(jì),TrustZone可以額外地提供安全措施以抵抗一些硬件攻擊。例如,將可信的代碼放入SoC內(nèi)部存儲(chǔ)器,并保證置于外部存儲(chǔ)器的硬件表 walker列表不能指向內(nèi)部存儲(chǔ)器或敏感程序(TLB的再次寫入會(huì)失敗)。因此,有進(jìn)入外部存儲(chǔ)器的許可并不能提供進(jìn)入敏感資源的許可。

  TrustZone為操作系統(tǒng)在無安全狀態(tài)下的運(yùn)行提供了二進(jìn)制兼容性。如果操作系統(tǒng)需要與安全區(qū)域的應(yīng)用程序進(jìn)行交流,就必須寫擴(kuò)展名。同樣的,在無TrustZone的平臺(tái)上處于特權(quán)模式的一些可以被訪問的寄存器, 一旦在TrustZone.內(nèi)運(yùn)行時(shí),可以被強(qiáng)迫處于特權(quán)/不可信模式。

  然而,這種方法一個(gè)潛在的缺點(diǎn)是TrustZone僅提供兩種環(huán)境。一般的應(yīng)用程序需要三種或更多:一個(gè)操作系統(tǒng)核(如RTOS)、一個(gè)用于處理DRM或其它安全處理要求的安全內(nèi)核,以及“豐富的操作系統(tǒng)”—用于控制用戶的界面(一般包括Windows Mobile、Symbian、Linux等)。如圖5所示的小型終端交互操作平臺(tái)(STIP)應(yīng)用12是一類安全付款的方式。正如圖中所示的那樣,它被保護(hù)起來,免受任何在壁壘的“正常”一側(cè)所發(fā)生的入侵行為影響,該壁壘是受控于安全監(jiān)測器。

  很多方案的一個(gè)關(guān)鍵目標(biāo)是減少材料單成本。許多OEM的發(fā)展動(dòng)力,則是確保了單獨(dú)的處理器有足夠的CPU馬力來容納大量功能。在理想情況下,一個(gè)CPU可以同時(shí)運(yùn)行無線工作棧、應(yīng)用操作系統(tǒng),及安全應(yīng)用軟件(DRM,還款應(yīng)用)。將無線工作棧置于特權(quán)安全模式下,則產(chǎn)生容易遭受在外部存儲(chǔ)器上發(fā)生的硬件攻擊的弱點(diǎn),并大大地增大了可信代碼基(TCB)的尺寸,其原因可以由如下的例子來說明:一個(gè)3G GSM堆棧普遍有幾兆大小,比普通的SOC內(nèi)部存儲(chǔ)器要大很多。這就使得設(shè)計(jì)只能在如下兩個(gè)方面進(jìn)行選擇:通過將GSM堆棧與應(yīng)用操作系統(tǒng)集成到一起,使得它能夠在正常模式下運(yùn)行,或是在第三種執(zhí)行環(huán)境中運(yùn)行它,這種特性是TrustZone所不具有的。

  所以TrustZone能夠很好地保護(hù)硬件,但是卻不能為很多系統(tǒng)級(jí)的應(yīng)用程序管理其安全區(qū)域。一個(gè)獨(dú)立的系統(tǒng)管理程序可以提供一定程度的、針對軟件攻擊的防護(hù)力,可以讓開發(fā)者生成多種執(zhí)行環(huán)境,但它在防范硬件攻擊方面只采取了很少的措施。不過,把這兩者組合起來,就可以產(chǎn)生一種對兩個(gè)領(lǐng)域來說都是最佳的選擇。

  正如圖6所示的那樣,一個(gè)以監(jiān)控模式運(yùn)行的系統(tǒng)管理程序,可以取代TrustZone安全監(jiān)控器以及圖5所示的安全內(nèi)核的位置。所有其他軟件組件都被推入用戶空間中,于是特權(quán)模式實(shí)際上并未被使用。

本文引用地址:http://butianyuan.cn/article/85412.htm


圖5  TrustZone架構(gòu)概覽


圖6   帶有系統(tǒng)管理程序的TrustZone

  這種方式的優(yōu)點(diǎn)是,具有運(yùn)行大量虛擬機(jī)的能力,其中一些有安全區(qū),另一些有不被保護(hù)的區(qū)域。所以,在這種方法中,GSM堆??梢栽谒约旱挠蛑羞\(yùn)行,但是當(dāng)它在用戶態(tài)模式下運(yùn)行時(shí),如果堆棧被攻擊,對黑客公開的資源僅限于那些在引導(dǎo)時(shí)就被賦予的資源。STIP應(yīng)用程序在有墻壁保護(hù)且安全的區(qū)域是安全的。

  系統(tǒng)管理程序精心地管理著對SOC內(nèi)部的硬件資源的訪問,以保證所有可信的數(shù)據(jù)和應(yīng)用程序仍存在于合適的安全區(qū)域。敏感資源受益于TrustZone所提供的硬件保護(hù),而對安全性來說不那么關(guān)鍵的虛擬機(jī),例如容納GSM堆棧的虛擬機(jī),可以在外部存儲(chǔ)器運(yùn)行。

技術(shù)處理器

  為具有安全保護(hù)的應(yīng)用程序提供4KSd13內(nèi)核。這個(gè)核心包括應(yīng)用專用的擴(kuò)展——以改進(jìn)加密算法的執(zhí)行,隱藏處理器活動(dòng)、使之不至于受到能量信號(hào)特征分析和探測的手段,以及具有每頁讀/寫/執(zhí)行特權(quán)設(shè)置功能的安全MMU。

  這個(gè)核心除了具有安全保護(hù)功能外,獲得使用許可的人還可以增加額外的工具,比如獨(dú)有的芯片級(jí)序列號(hào)、加密處理器、隨機(jī)數(shù)發(fā)生器、USB防火墻以及安全引導(dǎo)加載機(jī)制。
使用分層的方法以提高安全性,一個(gè)合理設(shè)計(jì)的系統(tǒng)管理程序可以利用內(nèi)核內(nèi)置的安全防護(hù)功能以及SOC設(shè)計(jì)者增加的特性,來增強(qiáng)整體系統(tǒng)的安全性。

  處理器的旁路轉(zhuǎn)換緩沖器(TLB)的設(shè)計(jì)是一個(gè)關(guān)鍵問題。處理器的TLB兼容了一個(gè)軟件替換策略。當(dāng)采取措施來保護(hù)MMU和關(guān)聯(lián)的TLB時(shí),執(zhí)行TLB重填的代碼和被該代碼所操作的數(shù)據(jù)都處于內(nèi)存之中,可能被流氓軟件所訪問。一個(gè)系統(tǒng)管理程序可以用來在TLB重填時(shí)執(zhí)行額外的檢查,以保護(hù)系統(tǒng)不受通過外部SDRAM進(jìn)行的硬件攻擊。

  另外,一些MIPS處理器提供了一個(gè)中間“超級(jí)用戶”模式,以使系統(tǒng)管理程序可以用其來執(zhí)行一個(gè)執(zhí)行虛擬內(nèi)核模式。這樣就減少了虛擬的開銷。

Power/處理器

  32位和64位兩種體系的已經(jīng)在很寬范圍的產(chǎn)品中被廣泛應(yīng)用,包括通信處理器,通用設(shè)備,性能導(dǎo)向型游戲系統(tǒng)以及企業(yè)計(jì)算。

  的衍生體一般會(huì)應(yīng)用于產(chǎn)品中,比如32位PowerPC405和440,它們使用一種軟件重填策略來保持TLB實(shí)體不斷更新。另外,有一種區(qū)域保護(hù)寄存器(ZPR),它允許TLB訪問控制被撤銷。這些特征產(chǎn)生了一些弱點(diǎn),這些薄弱環(huán)節(jié)可以通過組合操作系統(tǒng)的安全策略管理和虛擬技術(shù)來阻止流氓軟件的訪問。

  一些PowerPC的衍生體,比如索尼Playstation 3中所使用的多核單元寬帶引擎(BE),具有先進(jìn)的安全機(jī)制,它包括經(jīng)過加密的、得到標(biāo)記的安全引導(dǎo)機(jī)制和將執(zhí)行敏感任務(wù)的處理器在物理上單獨(dú)隔離開的功能。

系統(tǒng)加固:多少才夠用?

  正如我們所述,有多少攻擊的方法,就有多少防御攻擊的技術(shù)。強(qiáng)勁的防御策略通常是依賴于一個(gè)“分層”防御,這個(gè)“分層”防御兼容了大量硬件和軟件技術(shù)。確定一個(gè)系統(tǒng)是否被充分地保護(hù)起來,是一件很復(fù)雜的事情。

  對于確定給定產(chǎn)品是否可以滿足給定應(yīng)用的安全需要的程度這一問題,有著正規(guī)的方法。對于安全分析來說,一個(gè)被廣泛接受的標(biāo)準(zhǔn)是信息技術(shù)安全評(píng)估的通用標(biāo)準(zhǔn)(簡稱通用標(biāo)注或CC14)。這是一個(gè)計(jì)算機(jī)安全方面的國際標(biāo)準(zhǔn)(國際標(biāo)準(zhǔn)化組織/國際電工委員會(huì)15408),它為廠商和客戶創(chuàng)造了一套系統(tǒng)框架,供廠商和客戶在該框架中運(yùn)行,該框架可以為用戶環(huán)境提供詳細(xì)的描述和隨之而來的威脅,以及分析和測試方法學(xué),以便決定給定的產(chǎn)品滿足環(huán)境的特定要求的程度。

  例如,德國BMI(Bundesamt für Sicherheit in der Informationstechnik)與歐洲智能卡協(xié)會(huì)(EUROSMART)合作,開發(fā)了一種保護(hù)狀況(PP),命名為智能卡IC平臺(tái)保護(hù)狀況(BSI-PP-0002),包括及其詳細(xì)的、與他們行業(yè)特別相關(guān)的攻擊狀況描述。希望提供產(chǎn)品來響應(yīng)這個(gè)特殊的保護(hù)狀況需要的公司,隨后選擇了一種評(píng)估保證級(jí)別(EAL),此級(jí)別從1級(jí)(最低)到7級(jí)(最高)。這些保證級(jí)別不是對應(yīng)于關(guān)于給定PP的保護(hù)程度,而是對應(yīng)于實(shí)驗(yàn)室所測結(jié)果與列舉的安全聲明的符合程度。測試實(shí)驗(yàn)室會(huì)將一系列的保證要求與所選擇的水平進(jìn)行聯(lián)系,進(jìn)行分析、測試,得出合格/與不合格的結(jié)論。

  我們提出一種更基本的度量方法,在開發(fā)階段的初期給設(shè)計(jì)打分。每個(gè)保護(hù)的措施和結(jié)構(gòu)的特征都會(huì)是一個(gè)得分點(diǎn)。那么,對不同種類基本分的調(diào)整,就要根據(jù)其安全要素(如:最大覆蓋面和最小受攻擊面)。

網(wǎng)格(+80):可能調(diào)整±40
TrustZone可信區(qū)(+80):可能調(diào)整±40
安全導(dǎo)入(+80) :可能調(diào)整±40
虛擬化 (+80): 可能調(diào)整±40

安全操作系統(tǒng)

  DMA控制器(-80): 可能調(diào)整±40
  在分層的策略中,每一個(gè)組件對整個(gè)安全性的貢獻(xiàn)是可以相加的。一個(gè)組件,如操作系統(tǒng),有一個(gè)固有的“虛擬化”以盜用一個(gè)加分條款,80就被加到另一個(gè)組件固有的分?jǐn)?shù)上,比如安全導(dǎo)入機(jī)制的80分,加起來就是160分?,F(xiàn)在,如果操作系統(tǒng)由于大量附加特征,呈現(xiàn)出一個(gè)大的攻擊表面,那么,這個(gè)組分的分?jǐn)?shù)就會(huì)降低一些,最多減少40分。

  加權(quán)分?jǐn)?shù)計(jì)算實(shí)例:挑選一個(gè)有MMU的SoC,MMU是系統(tǒng)管理程序?qū)Υ鎯?chǔ)器的控制所不能缺少的,和一個(gè)安全操作系統(tǒng)。選擇一個(gè)系統(tǒng)管理程序,它允許操作系統(tǒng)和應(yīng)用程序在“用戶空間”運(yùn)行,從而產(chǎn)生一個(gè)更安全的處理環(huán)境。系統(tǒng)管理程序(+80)呈現(xiàn)出一個(gè)小的攻擊表面,因此不會(huì)從它的安全分中減分。選擇一個(gè)安全操作系統(tǒng),比如SE Linux (+80),但是,在開發(fā)者加入大量代碼的同時(shí),也會(huì)生成一個(gè)大的攻擊表面(-40)。加權(quán)分?jǐn)?shù)就是:
  虛擬化:80
  安全操作系統(tǒng):80
  代碼尺寸減分:-40
  總安全分:160

  一些設(shè)計(jì)的組成,由于其本身特點(diǎn),在裝置的安全裝甲中形成了固有的裂痕,需要小心地處理。一個(gè)好的例子就是DMA控制器。有DMA控制器的系統(tǒng),考慮到其存在這樣一個(gè)弱點(diǎn),應(yīng)該從總分中減去80分,那么在那個(gè)分?jǐn)?shù)上,就明顯需要一個(gè)保護(hù)系統(tǒng)的機(jī)制。有DMA控制器的系統(tǒng)的調(diào)整范圍表明,這樣的系統(tǒng)可以被設(shè)計(jì)得更加安全,但是機(jī)制的性質(zhì)就是這樣,在成塊存取中以及從安全的觀點(diǎn)來說,它永遠(yuǎn)不可能達(dá)到100%的效率,這是不可避免的。

  這種方法的正式、細(xì)致、凝練允許了度量的產(chǎn)生,它允許設(shè)計(jì)者使用安全措施來滿足他們特定的需要。由于基準(zhǔn)提供了處理器在特定應(yīng)用中可能性能的粗略評(píng)估,所以安全分?jǐn)?shù)的產(chǎn)生也就提供了測量產(chǎn)品在抵御外來攻擊時(shí)可能性能的方式。

結(jié)語

  現(xiàn)在應(yīng)該清楚的是,真正強(qiáng)健的不能單靠軟件來保證的。加密和迷惑僅能減緩黑客的進(jìn)攻。即使是高度防篡改的系統(tǒng),也會(huì)受到軟件硬件聯(lián)合的進(jìn)攻15的威脅,而且,對于任何攻擊者可以在物理上接觸的器件,都它至少需要安全的引導(dǎo)。

  另一方面,全硬件的解決方式很昂貴且不具有彈性的,由于這個(gè)原因,如果它們過于冗瑣,就會(huì)迫使設(shè)計(jì)者和最終使用者轉(zhuǎn)而采用節(jié)省時(shí)間的、規(guī)避性的方法,而這些方法是器件的安全防護(hù)架構(gòu)所無法預(yù)料到的。因此,最好的安全解決方案是基于以硬件為中心(如TrustZone)、軟件(如安全操作系統(tǒng))和虛擬技術(shù)相結(jié)合的平衡結(jié)合方式,以保護(hù)存儲(chǔ)區(qū)域,DMA控制器,或其他潛在的易受攻擊的因素。

參考文獻(xiàn):

9. Tom R. Halfhill. " Dons Armor-TrustZone Security Extensions Strengthen v6 Architecture" (MPR August 25, 2003). http://www.mdronline.com/mpr/p/2003/0825/173401.pdf
10. Tiago Alves, Don Felton. Trustzone: Integrated Hardware and Software Security, ARM White Paper, July 2004. http://www.arm.com/pdfs/TZ_Whitepaper.pdf
11. Designing with Trustzone—Hardware Requirements#&151;ARM.  http://www.arm.com/pdfs/TrustZone_Hardware_Requirements.pdf
12. STIP (Small Terminal Interoperability Platform).  http://www.globalplatform.org/
13. MIPS32 4KST Family. http://www.mips.com/products/cores/32-bit-cores/mips32-4ks/
14. Common Criteria Portal. http://www.commoncriteriaportal.org/
15. Sudhakar Govindavajhala and Andrew W. Appel. "Using Memory Errors to Attack a Virtual Machine," 2003 IEEE Symposium on Security and Privacy, May 2003. http://www.cs.princeton.edu/sip/pub/memerr.pdf

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

linux相關(guān)文章:linux教程


存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉