基于uCOSII的MAC設(shè)計(jì)與實(shí)現(xiàn)
摘 要: 針對嵌入式計(jì)算機(jī)應(yīng)用領(lǐng)域中越來越突出的信息安全問題。本文以uCOSII操作系統(tǒng)為基礎(chǔ),在其上增加了強(qiáng)制訪問控制MAC模塊。模塊參照BLP安全模型,根據(jù)uCOSII特性設(shè)計(jì)出BLP修正模型,實(shí)現(xiàn)了對系統(tǒng)的強(qiáng)制存取控制。
關(guān)鍵字:強(qiáng)制訪問控制 安全模型 安全操作系統(tǒng)
1 引言
隨著嵌入式計(jì)算機(jī)應(yīng)用的日益普及,特別是嵌入式設(shè)備不斷的網(wǎng)絡(luò)化、智能化,嵌入式計(jì)算機(jī)的安全就成為一個(gè)急待解決的問題。許多嵌入式計(jì)算機(jī)處理的信息涉及到國家政治經(jīng)濟(jì)安全,工商業(yè)情報(bào)等,不采取有效的安全防范措施,一旦受到攻擊將造成巨大的損失。
在計(jì)算機(jī)系統(tǒng)中,安全機(jī)制的重要內(nèi)容就是存取控制。一般存在二種存取控制形式:自主訪問控制和強(qiáng)制訪問控制。
自主訪問控制具有很大的缺陷性。由于它的“自主”能力,從理論上講根本不可能建立對特洛伊木馬的有效防護(hù)機(jī)制。而強(qiáng)制訪問控制MAC則強(qiáng)制性嚴(yán)格規(guī)定各個(gè)客體屬性,實(shí)現(xiàn)了信息的單向流通,可以有效的抵制特洛伊木馬的攻擊。
2 MAC控制模型
2.1 強(qiáng)制訪問控制MAC簡介
在強(qiáng)制訪問控制下,系統(tǒng)中的每個(gè)進(jìn)程,每個(gè)文件和每個(gè)IPC客體(消息,信號量和共享區(qū)域)都被賦予了相應(yīng)的安全屬性,這些屬性是有安全管理員或者系統(tǒng)自動生成的,是不能隨意改變的。主體對任何客體的訪問要求,必須經(jīng)過MAC訪問控制模塊的檢測。如圖1所示。
圖1 MAC結(jié)構(gòu)示意圖
2.2 形式化安全模型BLP
本文采用的MAC安全模型將基于改進(jìn)的BLP模型(Bell-LaPadula Module)的安全策略包括二部分:自主安全策略和強(qiáng)制安全策略。模型認(rèn)為系統(tǒng)中的活動使系統(tǒng)狀態(tài)不斷變化,但是必須保持所有的狀態(tài)都是系統(tǒng)安全狀態(tài)。由此定義所有系統(tǒng)狀態(tài)的轉(zhuǎn)換規(guī)則必須保持簡單安全性,*特性和自主安全性。
與BIBA模型(BIBA Module)相反,BLP模型主要注重保密性控制,控制信息從低安全級傳向高安全級,但是缺少完整性的控制,其“向上寫”規(guī)則存在潛在的危險(xiǎn),它不能夠有效的限制隱通道。因此對其規(guī)則中所有涉及到可能對客體內(nèi)容進(jìn)行改動的操作以更嚴(yán)格控制,修改后規(guī)則如下:
(O∈b(S:a))=>(fo(O)=fc(S))
(O∈b(S:w))=>(fo(O)=fc(s))
(O∈b(S:r))=>(fo(S)>fc(O))
(O∈b(S:c))=>(fo(O)<fc(S))
(O∈b(S:x))=>(fo(S)>fc(O))
其中:
S表示主體:用戶,進(jìn)程等;
O表示客體:文件,信號量等;
主體對客體的訪問屬性A分為:r(只讀),a(只寫),w(讀寫),x(執(zhí)行)和c(控制);
b (S×O×A)表示某個(gè)特定狀態(tài)下,主體以何方式訪問客體;
fo表示客體的安全級函數(shù);
fc表示主體當(dāng)前的安全級函數(shù);
可以看出根據(jù)修改后的規(guī)則當(dāng)進(jìn)行只寫操作時(shí),主體必須具有與客體相同的安全屬性。
2.3 BLP模型在uCOSII中的應(yīng)用
為了使BLP在uCOSII中運(yùn)用,必須進(jìn)行模型與uCOSII的對應(yīng)性分析。下面我們將討論模型的系統(tǒng)狀態(tài),狀態(tài)轉(zhuǎn)換和系統(tǒng)安全狀態(tài)初始化在uCOSII中的對應(yīng)實(shí)施方式。
2.3.1 BLP模型的系統(tǒng)狀態(tài)
系統(tǒng)狀態(tài)是集合V=(B×M×F×H)中的元素。其中B是S×O×A的集合,在uCOSII中主體S只有進(jìn)程,當(dāng)用戶登錄后,所有由用戶發(fā)起的進(jìn)程都會繼承用戶的安全級。uCOSII系統(tǒng)中客體O主要有進(jìn)程,文件,共享內(nèi)存,消息和信號量。模型的訪問權(quán)限集由r(讀),a(追加寫),w(寫),x(執(zhí)行)和-(空)組成。在uCOSII中把追加寫也認(rèn)為是寫,所以訪問權(quán)限集由四個(gè)屬性組成。
uCOSII中存取控制矩陣M將通過每個(gè)客體屬性中16bit的保護(hù)模式實(shí)現(xiàn)。而安全級別函數(shù)F由賦予主體的當(dāng)前安全級別和賦予客體的安全級別組成。安全級別是由密級和域二部分組成的。密級共分為三級:top secret,secret和unsecret。域分為用戶空間域,系統(tǒng)管理域和安全控制域。
uCOSII是一個(gè)嵌入式的系統(tǒng),我們采用的文件系統(tǒng)將是一個(gè)一級目錄的文件系統(tǒng)。所以對于文件不存在客體層次結(jié)構(gòu)H。
2.3.2 BLP模型的狀態(tài)轉(zhuǎn)換
模型要求狀態(tài)轉(zhuǎn)換的任一規(guī)則都要保持系統(tǒng)安全狀態(tài)。uCOSII系統(tǒng)中的狀態(tài)轉(zhuǎn)換都是通過系統(tǒng)調(diào)用實(shí)施的。系統(tǒng)中定義了基本的調(diào)用接口。當(dāng)出現(xiàn)調(diào)用時(shí),系統(tǒng)通過軟中斷下陷到安全控制域中完成操作,以保證狀態(tài)的安全。
2.3.3 BLP模型的安全狀態(tài)初始化
uCOSII系統(tǒng)的安全初始化是在系統(tǒng)常規(guī)服務(wù)啟動以前完成的。主要包括:
① MAC機(jī)制和DAC機(jī)制的初始化。
② 系統(tǒng)中客體安全屬性的配置與檢測。
③ 審計(jì)跟蹤機(jī)制的啟動和日志數(shù)據(jù)庫的初始化。
3 MAC模塊的設(shè)計(jì)與實(shí)現(xiàn)
3.1 MAC模塊的設(shè)計(jì)
在模塊設(shè)計(jì)中,安全策略實(shí)施代碼被集成到操作系統(tǒng)的各個(gè)子系統(tǒng)中。在各個(gè)子系統(tǒng)中建立客體管理器。現(xiàn)在主要有MAC進(jìn)程管理器,MAC文件系統(tǒng)管理器,MAC網(wǎng)絡(luò)管理器。對于進(jìn)程的訪問控制是MAC模塊的重點(diǎn)。MAC進(jìn)程管理器中不僅包括進(jìn)程的訪問控制還包括消息,信號量等IPC客體的訪問控制。只有這些IPC客體的配合才能真正做到進(jìn)程的MAC控制。
由于安全措施是運(yùn)用在嵌入式操作系統(tǒng)上的,必須對一般的MAC控制方式進(jìn)行裁減,并作出一些規(guī)定以方便模塊的實(shí)現(xiàn)。
(1)主體只有進(jìn)程。作為主體的用戶在系統(tǒng)中表現(xiàn)為繼承用戶的安全屬性的進(jìn)程。
(2)整個(gè)系統(tǒng)中大部分客體的密級和范疇都是事先定義的,除了重新編譯系統(tǒng)外,無法作出改變。
(3)安全管理員可以更改與它同密級的安全配置文件和用戶帳戶屬性文件信息,但是不能修改其他任何信息。
(4)為了方便策略的更改,安全策略的實(shí)施代碼與安全策略的決策代碼是嚴(yán)格劃分的。
為了保持uCOSII系統(tǒng)的實(shí)時(shí)性,對訪問要求的判斷在保持正確性的基礎(chǔ)上要盡量快捷。當(dāng)判斷為非法訪問時(shí),還需要進(jìn)行一系列的后續(xù)操作,如恢復(fù)進(jìn)程狀態(tài),記錄訪問情況,審計(jì)判斷等,這些操作的實(shí)施將保持在一個(gè)較低的進(jìn)程優(yōu)先級上,盡量避免影響其他進(jìn)程的運(yùn)行,減少對系統(tǒng)實(shí)時(shí)性的影響。
模塊實(shí)施框架如圖2所示。
圖2 MAC模塊框架圖
3.2 MAC模塊的實(shí)現(xiàn)
3.2.1 MAC訪問控制的實(shí)現(xiàn)過程
整個(gè)MAC模塊以模塊化方式實(shí)現(xiàn),依據(jù)設(shè)計(jì)中的要求可以分為客體管理器、響應(yīng)處理單元和策略庫三個(gè)部分。整個(gè)控制過程如圖3所示。
圖3 MAC控制流程圖
3.2.2 MAC模塊中重要數(shù)據(jù)結(jié)構(gòu)和函數(shù)
對于主體對象的安全屬性以如下結(jié)構(gòu)體表示:
struct label {
int flags; //是否已經(jīng)初始化
//主體安全屬性
unsigned int prio; //主體安全級別
unsigned long reg //主體范疇
void (*dfs_handle); //默認(rèn)處理句柄
};
考慮到系統(tǒng)是一個(gè)實(shí)時(shí)操作系統(tǒng),所以策略不應(yīng)該很復(fù)雜.策略庫在系統(tǒng)初始化時(shí)加載到RAM中,策略庫以單向鏈表形式存在.每個(gè)結(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)如下:
struct macpolicy {
struct macpolicy *next //用于連接下一個(gè)結(jié)點(diǎn)
char *mpc_name; //違規(guī)操作名稱
void (*mpc_ops); //策略操作句柄
void (*restore); //恢復(fù)操作句柄
};
目前一共有三個(gè)客體管理器,管理四個(gè)類型的客體:進(jìn)程,IPC客體,文件,網(wǎng)絡(luò)事件。針對每一類客體都有一個(gè)訪問控制函數(shù),對該類客體的訪問作出初步判斷:
(1) mac_checkprocess(struct label *p,OS_TCB *q)
本函數(shù)實(shí)施對進(jìn)程的訪問控制,第一個(gè)參數(shù)為訪問者的安全屬性,第二個(gè)參數(shù)為被訪問進(jìn)程的控制塊指針。
(2) mac_checkfs(struct label *p,pfile *q, INT8U optype ,int state)
本函數(shù)實(shí)施對文件系統(tǒng)的訪問控制,第二個(gè)參數(shù)為指向文件客體的指針,第三個(gè)參數(shù)對客體的操作類型,第四個(gè)參數(shù)為文件系統(tǒng)的狀態(tài),供審計(jì)跟蹤使用。
(3) mac_checkevent(struct label *p,EVENT *q, INT8U optype)
本函數(shù)實(shí)現(xiàn)對ipc客體的訪問控制。參數(shù)中分別指明操作者和被操作客體,還有操作類型。
(4) mac_checknet(struct label *p,SOCKET *q, INT8U optype)
本函數(shù)實(shí)現(xiàn)對網(wǎng)絡(luò)客體的訪問控制。主體對任何一個(gè)套接字的訪問操作必須通過該函數(shù)的控制。
通過上述四個(gè)函數(shù)的判斷,當(dāng)出現(xiàn)非法訪問請求時(shí),必須對操作進(jìn)程進(jìn)行一定的控制:
(5) mac_erropt(void *pdata)
該函數(shù)是作為一個(gè)出錯(cuò)處理的入口函數(shù)??腕w管理器將把訪問情況通過無類型參數(shù)pdata傳遞給本函數(shù),函數(shù)根據(jù)訪問情況分別調(diào)用各個(gè)客體的錯(cuò)誤處理函數(shù)。
對于四個(gè)類型的客體分別有一個(gè)通用的錯(cuò)誤處理函數(shù):
(6) mac_handlerprocesserr(void);
(7) mac_handlereventerr(void);
(8) mac_handlerfserr(void);
(9) mac_handlerneterr(void);
它們將負(fù)責(zé)對非授權(quán)操作的初步評估,根據(jù)策略改變主體運(yùn)行狀態(tài),反饋信息給安全管理員和提交相關(guān)信息給審計(jì)模塊。
4 結(jié)束語
基于改進(jìn)的BLP模型,本文所提出的強(qiáng)制訪問控制模塊的設(shè)計(jì)已基本實(shí)現(xiàn)。并且,作者修改了本實(shí)驗(yàn)室已實(shí)現(xiàn)的智能脫扣器項(xiàng)目的軟件,并把它加載到修改后的嵌入式操作系統(tǒng)上進(jìn)行初步的測試。測試結(jié)果表明:系統(tǒng)的實(shí)時(shí)性和安全性均能滿足要求。在本論文的基礎(chǔ)上,作者將對MAC的安全模型進(jìn)行進(jìn)一步改進(jìn)和擴(kuò)充,使其穩(wěn)定性和實(shí)時(shí)性進(jìn)一步增強(qiáng),以使其能更適應(yīng)實(shí)際的應(yīng)用領(lǐng)域。
參考文獻(xiàn):
【1】 Jean J.Labrosse[USA] MicroC/OS-II The Real-Time Kernel Second Edition[M] 2002
【2】 IEEE Draft P1003.1e[S]
“B.26 Mandatory Access Control”
”B.27 Information Labeling” 1999
【3】 鐘誠, 趙躍華主編 信息安全概論[M] 武漢理工大學(xué)出版社 2003
【4】 卿斯?jié)h 劉文清等編著 操作系統(tǒng)安全[M] 清華大學(xué)出版社 2004
【5】 Jeremy Bentham著 嵌入式系統(tǒng)Web服務(wù)器-tcp/ip lean[M] 機(jī)械工業(yè)出版社 20