《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)的VxWorks安全性問題研究
嵌入式系統(tǒng)的VxWorks安全性問題研究
田力 袁家斌
摘要: 實(shí)時(shí)嵌入式系統(tǒng)與網(wǎng)絡(luò)的結(jié)合以及高可信覆蓋網(wǎng)絡(luò)的發(fā)展使得嵌入式實(shí)時(shí)操作系統(tǒng)的安全性問題日益突出。提高實(shí)時(shí)嵌入式系統(tǒng)的安全性和可靠性是未來實(shí)時(shí)嵌入式系統(tǒng)發(fā)展的重要方向之一。VxWorks是一個(gè)運(yùn)行在目標(biāo)機(jī)上的高性能、可裁剪的嵌入式實(shí)時(shí)操作系統(tǒng)。該系統(tǒng)以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中。VxWorks系統(tǒng)在安全方面未作任何處理。針對(duì)這一問題,本文在分析現(xiàn)有嵌入式安全操作系統(tǒng)構(gòu)建原理及技術(shù)的基礎(chǔ)上,提出了VxWorks安全內(nèi)核,實(shí)現(xiàn)了基于多策略的強(qiáng)制訪問控制等安全機(jī)制。測(cè)試表明,該安全內(nèi)核不僅增強(qiáng)了VxWorks系統(tǒng)的安全性,而且對(duì)其實(shí)時(shí)性的影響較小。
Abstract:
Key words :

引 言

    實(shí)時(shí)嵌入式系統(tǒng)與網(wǎng)絡(luò)的結(jié)合以及高可信覆蓋網(wǎng)絡(luò)的發(fā)展使得嵌入式實(shí)時(shí)操作系統(tǒng)的安全性問題日益突出。提高實(shí)時(shí)嵌入式系統(tǒng)的安全性和可靠性是未來實(shí)時(shí)嵌入式系統(tǒng)發(fā)展的重要方向之一。VxWorks是一個(gè)運(yùn)行在目標(biāo)機(jī)上的高性能、可裁剪的嵌入式實(shí)時(shí)操作系統(tǒng)。該系統(tǒng)以其良好的可靠性和卓越的實(shí)時(shí)性被廣泛應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中。VxWorks系統(tǒng)在安全方面未作任何處理。針對(duì)這一問題,本文在分析現(xiàn)有嵌入式安全操作系統(tǒng)構(gòu)建原理及技術(shù)的基礎(chǔ)上,提出了VxWorks安全內(nèi)核,實(shí)現(xiàn)了基于多策略的強(qiáng)制訪問控制等安全機(jī)制。測(cè)試表明,該安全內(nèi)核不僅增強(qiáng)了VxWorks系統(tǒng)的安全性,而且對(duì)其實(shí)時(shí)性的影響較小。

1 安全操作系統(tǒng)構(gòu)建原理及方法

    1.1 強(qiáng)制安全和訪問控制

    操作系統(tǒng)的安全性是整個(gè)計(jì)算機(jī)系統(tǒng)安全性的基礎(chǔ)。操作系統(tǒng)的安全特性很多,強(qiáng)制安全是其一個(gè)側(cè)面。是不是強(qiáng)制安全,要視其安全策略邏輯定義與安全屬性分配是不是由系統(tǒng)安全性策略管理員控制。如果是,則是強(qiáng)制安全;反之,如果是由普通用戶控制的,則是自主安全。一個(gè)操作系統(tǒng)的強(qiáng)制安全策略可以分解為若干種類的策略,如訪問控制策略,認(rèn)證、加密策略等。

    在本系統(tǒng)中實(shí)現(xiàn)了基于多策路的強(qiáng)制訪問控制,即規(guī)定主體在操作系統(tǒng)的控制下依據(jù)一定的策略對(duì)客體進(jìn)行訪問。為此,提供了一個(gè)定義和轉(zhuǎn)換強(qiáng)制安全性策略的架構(gòu),用于定義操作系統(tǒng)的強(qiáng)制安全策略,并把它轉(zhuǎn)化成底層的操作系統(tǒng)強(qiáng)制安全機(jī)制能夠解釋的形式。

    1.2 增強(qiáng)嵌入式操作系統(tǒng)安全性的方法

    在一個(gè)現(xiàn)有的較成熟的嵌入式操作系統(tǒng)基礎(chǔ)上增加安全核來增強(qiáng)現(xiàn)有系統(tǒng)安全性,是一個(gè)很好的開發(fā)安全嵌入式系統(tǒng)的思路。安全內(nèi)核負(fù)責(zé)實(shí)現(xiàn)整個(gè)操作系統(tǒng)的安全機(jī)制,在硬件、操作系統(tǒng)、計(jì)算系統(tǒng)的其他部分之間提供安全接口,將安全功能隔離在安全核內(nèi)。

2 VxWorks安全核框架

    2.1 安全核體系結(jié)構(gòu)

    本文提出一種如圖1所示的VxWorks安全核框架結(jié)構(gòu)。基本思想是:應(yīng)用程序?qū)ind內(nèi)核的訪問都是受控的,即應(yīng)用程序(主體)對(duì)任務(wù)、信號(hào)量、共享內(nèi)存、消息隊(duì)列、管道、信號(hào)和文件等(客體)的訪問及操作都受到強(qiáng)制的控制,安全核依據(jù)一定的策略判定是否允許主題對(duì)客體訪問。應(yīng)用程序?qū)ind內(nèi)核的所有調(diào)用都被監(jiān)控器攔截。首先通過查詢策略緩存判定該調(diào)用的合法性,如果合法則允許進(jìn)行該調(diào)用;如果沒有找到相關(guān)策略則將該請(qǐng)求交由安全服務(wù)器進(jìn)行判定,合法則允許進(jìn)行該調(diào)用并將該策略寫入策略緩存以便下次調(diào)用時(shí)直接判定,非法則拒絕此次調(diào)用。每次調(diào)用及結(jié)果反饋給審計(jì)模塊以備查詢。監(jiān)視器、安全服務(wù)器、審計(jì)模塊的配置工作由主機(jī)端配置工具進(jìn)行。

    該安全核的強(qiáng)制訪問控制模塊主要由監(jiān)控器、策略緩存和安全服務(wù)器三大組件組成。其中,監(jiān)控器負(fù)責(zé)攔截主體對(duì)客體的所有訪問,將攔截到的訪問交由判定機(jī)構(gòu)判定,并負(fù)責(zé)依據(jù)接收到的判定結(jié)果對(duì)訪問進(jìn)行控制;策略緩存(Access Vector Cache,AVC)組件緩存安全服務(wù)器提供的訪問控制決策供監(jiān)控器使用,以減少檢查對(duì)象訪問權(quán)限耗時(shí),從而提高整體性能;安全服務(wù)器是內(nèi)核的一個(gè)子系統(tǒng),將安全策略與通用接口封裝在一起的一個(gè)組件,通用接口用于獲取安全策略決策。針對(duì)不同對(duì)象的管理器負(fù)責(zé)向安全服務(wù)器申請(qǐng)SID標(biāo)簽以及向監(jiān)控器提供服務(wù)。

    2.2 安全服務(wù)器

    安全服務(wù)器是本系統(tǒng)的核心組件,是訪問合法性的判定部分。其結(jié)構(gòu)如圖2所示。

    安全上下文是表示安全屬性的變長(zhǎng)字符串,是安全服務(wù)器私有的數(shù)據(jù)類型,由安全服務(wù)器依據(jù)一定的策略邏輯負(fù)責(zé)解釋。安全上下文不直接與主客體綁定,而是在運(yùn)行時(shí)由安全服務(wù)器依據(jù)標(biāo)簽規(guī)則進(jìn)行其與安全標(biāo)識(shí)符SID的映射。多策略驗(yàn)證器是安全服務(wù)器的核心模塊,它包含系統(tǒng)設(shè)定的所有安全策略的判定邏輯。本安全核對(duì)多安全策略的支持由這一模塊實(shí)現(xiàn)。按照不同的策略,對(duì)訪問有不同的判定結(jié)果,安全服務(wù)器依據(jù)這些判定結(jié)果的交集做出最終的判定結(jié)論。

    策略數(shù)據(jù)庫(kù)是策略數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),通過主機(jī)端配置工具配置其中相關(guān)信息。

    本安全核的實(shí)現(xiàn)采用了一種結(jié)合類型實(shí)施(TE)、基于角色的訪問控制(RBAC)和多級(jí)安全(MLS)的多安全策略。安全服務(wù)器定義的安全性上下文由用戶身份、角色、類型及可選的安全級(jí)別和范圍組成,其中角色只與任務(wù)(task)相關(guān)。只有合法的用戶、角色、類別及安全級(jí)別或范圍的組合才會(huì)被安全服務(wù)器賦予SID。

    2.3 客體管理器及強(qiáng)制訪問控制

    客體管理器是負(fù)責(zé)安全策略實(shí)施的部分。Wind內(nèi)核中任務(wù)、信號(hào)量、共享內(nèi)存、消息隊(duì)列、管道、信號(hào)、文件等的管理系統(tǒng)是不同的對(duì)象管理器。本系統(tǒng)實(shí)行強(qiáng)制訪問控制,系統(tǒng)中每個(gè)任務(wù)、信號(hào)量、文件等都被賦予一定的安全屬性,這些屬性由客體管理器負(fù)責(zé)維護(hù)。

    強(qiáng)制訪問控制的具體過程為:監(jiān)控器截獲訪問請(qǐng)求格式為主體SID、客體SID以及許可權(quán)限三元組,即<SID,SID,Perms>。監(jiān)控器將三元組交與AVC進(jìn)行匹配,如果有相應(yīng)條目,則允許該訪問請(qǐng)求;如果沒有相應(yīng)條目,則將該三元組交由安全服務(wù)器進(jìn)行判定。安全服務(wù)器首先進(jìn)行SID與安全上下文的映射,依據(jù)策略邏輯將映射后的該條訪問信息交與策略驗(yàn)證器進(jìn)行驗(yàn)證。如果驗(yàn)證通過則將該三元組寫入AVC,同時(shí)運(yùn)行此次訪問,反之則不允許訪問。

3 系統(tǒng)實(shí)現(xiàn)及測(cè)試

    3.1 安全系統(tǒng)的實(shí)現(xiàn)方式

    在分析VxWorks系統(tǒng)內(nèi)核Wind結(jié)構(gòu)的基礎(chǔ)上,結(jié)合上述提出的安全核設(shè)計(jì),本系統(tǒng)實(shí)現(xiàn)了安全標(biāo)記和強(qiáng)制訪問控制,即實(shí)現(xiàn)了對(duì)Wind任務(wù)、信號(hào)量(二進(jìn)制/互斥/計(jì)數(shù)信號(hào)量)、消息隊(duì)列、管道、事件等的安全標(biāo)記和強(qiáng)制訪問控制。實(shí)現(xiàn)了監(jiān)控器部分來支持對(duì)系統(tǒng)調(diào)用的控制;實(shí)現(xiàn)了策略服務(wù)器使之初步支持MLS、TE、RBAC策略判定;實(shí)現(xiàn)了策略緩存部分以提高系統(tǒng)性能。監(jiān)控器的實(shí)現(xiàn):監(jiān)控器對(duì)系統(tǒng)調(diào)用實(shí)施攔截,實(shí)質(zhì)上是作為一個(gè)轉(zhuǎn)向器將正常的系統(tǒng)調(diào)用轉(zhuǎn)入強(qiáng)制訪問控制階段。系統(tǒng)通過調(diào)用全局安全鉤子函數(shù)securi_hooks()調(diào)用各子系統(tǒng)安全鉤子函數(shù),如sec_task_hooks()、see_semB_hooks()、sec_semM_hooks()等。在系統(tǒng)調(diào)用級(jí),定義了需要進(jìn)行安全判定的接口函數(shù),如sec_taskSpawn()、sec_taskDelete()、sec_emBCreate()等。

    安全服務(wù)器的實(shí)現(xiàn):本安全核的訪問控制粒度為系統(tǒng)對(duì)象級(jí),因此在安全服務(wù)器中實(shí)現(xiàn)了對(duì)每一個(gè)系統(tǒng)對(duì)象(任務(wù)、信號(hào)量等)定義安全屬性,定義SID,以及將SID與安全屬性相映射關(guān)聯(lián)。安全策略的加載與驗(yàn)證,以及依據(jù)監(jiān)控器發(fā)來的判定請(qǐng)求進(jìn)行訪問判定的功能也在安全服務(wù)器中進(jìn)行了具體實(shí)現(xiàn)。驗(yàn)證函數(shù)的三個(gè)參數(shù)分別為:主題SID、客體SID、訪問請(qǐng)求模式。只有在該請(qǐng)求同時(shí)滿足TE、MLS、RBAC的情況下,驗(yàn)證函數(shù)才返回TRUE,同意訪問。

    策略緩存的實(shí)現(xiàn):策略緩存實(shí)現(xiàn)中最重要的是緩存數(shù)據(jù)項(xiàng)。本系統(tǒng)中實(shí)現(xiàn)的緩存數(shù)據(jù)項(xiàng)結(jié)構(gòu)為:

    3.2 系統(tǒng)功能及性能測(cè)試

    本文在對(duì)此安全內(nèi)核測(cè)試時(shí)目標(biāo)機(jī)采用Tornado系統(tǒng)自帶的VxSim目標(biāo)模擬器。宿主機(jī)配置為AMD Ath-lon 64x2 Dual Core Processor 3600+2.00 GHz,512 MB,安裝Tornad02.2/VxWorks5.5。

    安全核功能測(cè)試的內(nèi)容包括安全標(biāo)記以及強(qiáng)制訪問控制。首先設(shè)計(jì)了測(cè)試用例,結(jié)果表明Wind安全內(nèi)核目前可以標(biāo)識(shí)Wind任務(wù)、信號(hào)量(二進(jìn)制/互斥/計(jì)數(shù)信號(hào)量)、消息隊(duì)列、管道,安全標(biāo)簽和對(duì)象一一對(duì)應(yīng)且具有繼承性。其次設(shè)定了不同安全等級(jí)任務(wù)的系統(tǒng)調(diào)用來測(cè)定系統(tǒng)的強(qiáng)制訪問控制,測(cè)試表明監(jiān)控器攔截了安全相關(guān)的所有系統(tǒng)調(diào)用,安全服務(wù)器依據(jù)配置好的安全策略給出了正確判定,沒有任務(wù)繞過強(qiáng)制訪問控制。

    在安全核性能的測(cè)試上使用VxWorks提供的一組系統(tǒng)調(diào)用——timex()和timexN()——來記錄使用安全核和未使用安全核時(shí)同一任務(wù)的執(zhí)行時(shí)間,以及在使用安全核時(shí)使用策略緩存和未使用策略緩存時(shí)執(zhí)行統(tǒng)一任務(wù)的時(shí)間。由于測(cè)試時(shí)使用的任務(wù)執(zhí)行時(shí)間非常短,因此主要采用timexN()來記錄重復(fù)執(zhí)行該任務(wù)的時(shí)間。測(cè)試結(jié)果表明,未使用安全核、使用帶緩存安全核、使用不帶緩存安全核執(zhí)行同一任務(wù)時(shí)間依次增加。以taskSpawn()任務(wù)為例,未使用安全核時(shí)執(zhí)行時(shí)間為50μs,使用帶緩存的安全核時(shí)執(zhí)行時(shí)間為70 μs,使用不帶緩存時(shí)執(zhí)行時(shí)間為80μs,誤差均小于10%。測(cè)試表明本文設(shè)計(jì)的安全內(nèi)核會(huì)在一定程度上影響系統(tǒng)調(diào)用的時(shí)間,但是策略緩存可以有效地提高系統(tǒng)性能,整體上還是可以接受的。

    該安全核結(jié)構(gòu)具有通用性,改造后可以用于其他嵌入式系統(tǒng)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。