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