本質(zhì)安全型集中式控制安全操作系統(tǒng)研究
摘要:隨著網(wǎng)絡(luò)技術(shù)、通信技術(shù)的飛快發(fā)展,信息安全問題正成為人們研究的重點。作為底層系統(tǒng)軟件的操作系統(tǒng),是信息安全研究的基礎(chǔ)部分,已成為研究的重點之重。本文以嵌入式系統(tǒng)為背景,結(jié)合智能卡技術(shù)和現(xiàn)有一般的安全操作系統(tǒng)研究方法,提出一種全新的安全控制策略,針對嵌入式系統(tǒng)應(yīng)用環(huán)境中面臨的問題給出有效解決方法。最后,結(jié)合Linux操作系統(tǒng),給出一種本質(zhì)安全型集中式控制安全操作系統(tǒng)模型,描述它所具有的安全特性。
引言
操作系統(tǒng)作為底層系統(tǒng)軟件,負(fù)責(zé)為應(yīng)用程序提供運(yùn)行環(huán)境和訪問硬件的接口,它的安全性是信息安全的基礎(chǔ)?,F(xiàn)在操作系統(tǒng)面臨的威脅與攻擊多種多樣,安全操作系統(tǒng)已經(jīng)不再局限于僅提供安全的存取控制機(jī)制,還要提供安全的網(wǎng)絡(luò)平臺、安全的信息處理平臺和安全的進(jìn)程通信支持。
在嵌入式系統(tǒng)中,由于系統(tǒng)軟件和硬件設(shè)計的特點,很容易從硬件和軟件直接進(jìn)行拷貝。操作系統(tǒng)的安全性應(yīng)有更特殊的考慮。操作系統(tǒng)不但要對保存的數(shù)據(jù)提供安全保證,而且還要考慮自己運(yùn)行的硬件平臺和系統(tǒng)本身的安全性。
在現(xiàn)有操作系統(tǒng)中,有關(guān)系統(tǒng)安全控制的代碼是分散到系統(tǒng)中的,這對系統(tǒng)性能的影響降到了最低。但是,如果要添加新的控制機(jī)制,必須會引起大量的修改,由此將帶來潛在的不穩(wěn)定性和不一致性。隨著系統(tǒng)硬件性能的成倍增長,人們逐漸將目光轉(zhuǎn)移到集中式控制上來。在操作系統(tǒng)設(shè)計初期,安全模塊應(yīng)該被獨立地提出來,成為操作系統(tǒng)設(shè)計需要考慮的一部分。
智能卡技術(shù)是一種軟硬件結(jié)合的安全保護(hù)技術(shù),經(jīng)常用于身份驗證和存儲加密信息。由于自身的硬件特性,它可以防止非法讀取和篡改;同時,智能卡本身具有加密的文件系統(tǒng),可以對信息進(jìn)行安全的保護(hù)。
在我們研究操作系統(tǒng)安全問題時,首次將智能卡技術(shù)引用到安全控制當(dāng)中,作為整個安全體系結(jié)構(gòu)的保證。智能卡用于對操作系統(tǒng)本身和運(yùn)行的平臺進(jìn)行標(biāo)識,可以對用戶身份、進(jìn)程的合法性進(jìn)行嚴(yán)格的控制。
1 存取控制和安全模型
存取控制是系統(tǒng)安全的核心內(nèi)容。存取控制按照一定的機(jī)制,在系統(tǒng)主體對客體進(jìn)行訪問時,判定訪問請求和訪問的方式是否合法,返回判定結(jié)果。一般情況下,有兩種存取控制方式:自主存取控制DAC(Discretionary Access Control)和強(qiáng)制存取控制MAC(Mandatory Access Control)。
(1)自主存取控制
DAC是安全操作系統(tǒng)最早期的存取控制方式,客體的所有者可以將客體的訪問權(quán)限或者訪問權(quán)限的子集授予其它主體。在類Unix系統(tǒng)當(dāng)中,系統(tǒng)提供owner/group/other的控制方式,就是一種典型的自主存取控制方式。
(2)強(qiáng)制存取控制
在自主存取控制當(dāng)中,由于管理不當(dāng)或者操作失誤,可能會引起非法的訪問,并且不能有效地防御特洛伊馬病毒的攻擊。在信息保密要求比較高的領(lǐng)域,人們提出了強(qiáng)制的存以控制方式,給系統(tǒng)提供一道不可逾越的訪問控制限制。強(qiáng)制存取控制主要通過安全級的方式實現(xiàn)。安全級含“密級”和“部門集”兩方面。密級又分為無密、秘密、機(jī)密、絕密四級。系統(tǒng)中主體和客體按照一定的規(guī)則被賦予最高安全級和當(dāng)前安全級。系統(tǒng)主體的部門集表示主體可以涉及獵的信息范圍,系統(tǒng)客體的部門集表示該信息涉及的信息范圍。強(qiáng)制存取控制抽象出三條訪問原理:①的主體的安全級高于客體,當(dāng)且僅當(dāng)主體的密級高于客體的密級,且主體的部門集包含客體的部門集;②主體對客體具有讀權(quán)限,當(dāng)且僅當(dāng)主體的安全級高于客體的安全級;③主體對客體具有寫權(quán)限,當(dāng)全僅當(dāng)主體的安全級低于或者等于客體的安全級。
安全模型是系統(tǒng)安全特性的描述,是對安全策略的一種數(shù)學(xué)形式化的表示方法。一般的安全操作系統(tǒng)的設(shè)計方法,通常是先設(shè)計安全模型,對安全模型進(jìn)行分析,并且給出數(shù)學(xué)證明。安全模型的設(shè)計是研究安全操作系統(tǒng)的重要成果,可以對安全系統(tǒng)設(shè)計提供結(jié)構(gòu)清晰、功能明確的指導(dǎo)。這里主要介紹BLP安全模型。
BLP模型是人們對安全策略的形式化描述。它通過系統(tǒng)安全級的劃分來保證系統(tǒng)存取的合法性。BLP模型定義了一系列的安全狀態(tài)和狀態(tài)轉(zhuǎn)換規(guī)則,如果保證系統(tǒng)啟動時處于安全狀態(tài)的話,即可按安全轉(zhuǎn)換規(guī)則,在各個安全狀態(tài)之間轉(zhuǎn)換。下面介紹BLP模型的具體規(guī)則。
系統(tǒng)的主體和客體均被賦予一定的安全級和部門集。主體安全級包含最高安全級的當(dāng)前安全級。主體對于客體的訪問方式包括:只讀、只寫、執(zhí)行、讀寫。BLP模型定義了兩具安全特性,并且證明了只要系統(tǒng)遵循這兩個模型,便可認(rèn)為系統(tǒng)處于安全狀態(tài)并可在狀態(tài)之間進(jìn)行轉(zhuǎn)換,這兩個特性是簡單安全特性和*特性。
(1)簡單安全特性(ss-property)
如果一個主體對一個客體具有讀的權(quán)限,則客體的安全級不能比主體的最大安全級高。
(2)*特性(*-property)
主體對客體有“只寫”的權(quán)限,則客體的安全級至少和主體的最高安全級一樣高。
主體對客體有“讀”權(quán)限,則客體的安全級不會比主體的當(dāng)前安全級高。
主體對客體有“讀寫”權(quán)限,則客體安全級等于主體的當(dāng)前安全級。
人們習(xí)慣上將簡單安全特性看成限制“向上讀”,將*特性看成限制“向下寫”。
BLP在多年的研究當(dāng)中被認(rèn)為可以有效防止特洛伊馬病毒的攻擊,但是仍然存在兩個問題:①系統(tǒng)具有動態(tài)的信息處理(例如主體的安全級的變化)都是有可信進(jìn)程來實現(xiàn)的,但是BLP模型并沒有對可信進(jìn)程進(jìn)行說明,可信進(jìn)程也不受BLP模型的限制;②BLP模型不能防止隱通道。
2 系統(tǒng)實現(xiàn)原理
根據(jù)上面的分析,我們提出了一種本質(zhì)安全型,以進(jìn)程控制為中心,集中式管理方式的安全控制方法。下面結(jié)合Linux操作系統(tǒng)說明具體的實現(xiàn)原理,以wolf-Linux來指具有這種控制機(jī)制的安全操作系統(tǒng)。
本質(zhì)安全是指一種建立在特殊的硬件設(shè)備上(Smart卡),具有特殊的體系結(jié)構(gòu),可對操作系統(tǒng)本身、進(jìn)程合法性和運(yùn)行權(quán)利進(jìn)行驗證的安全機(jī)制。
系統(tǒng)的安全控制分為六部分:進(jìn)程管理器、安全服務(wù)器、文件系統(tǒng)伺服器、進(jìn)程通信伺服務(wù)器、網(wǎng)絡(luò)伺服器和審計模塊。總體結(jié)構(gòu)如圖1所示:進(jìn)程管理器、安全服務(wù)器wolf-Linux安全控制的核心部分,審計模塊負(fù)責(zé)對系統(tǒng)的安全性事件進(jìn)行記錄,其它部分是安全控制的執(zhí)行模塊。
從圖1中可以看出,SIM(Subscriber Identity Module)卡處于系統(tǒng)的安全模塊中,保存系統(tǒng)的關(guān)鍵信息,集中式管理主要體現(xiàn)在進(jìn)程控制器部分,安全判定和安全執(zhí)行的分離使得任何存取操作都不可能繞過安全控制機(jī)制。系統(tǒng)中所有的安全事件都通過進(jìn)程控制器來判定是否可行,安全執(zhí)行模塊負(fù)責(zé)在訪問操作發(fā)生時抽象主體和客體,提交訪問請求并執(zhí)行訪問結(jié)果。下面主要介紹各個模塊的功能原理。
(1)安全服務(wù)器和SIM卡
系統(tǒng)的安全服務(wù)器負(fù)責(zé)提供系統(tǒng)支持的安全策略。在系統(tǒng)啟動時,安全服務(wù)器初始化系統(tǒng)支持的安全策略。它的初始化過程中重要的一步是讀智能卡中的信息,驗證系統(tǒng)的身份。安全服務(wù)器提供的接口有三類:①與智能卡的接口。在智能卡中保存系統(tǒng)的關(guān)鍵信息,例如系統(tǒng)的有效使用時間、操作系統(tǒng)身份ID。這個ID號相當(dāng)規(guī)模識了一個合法的系統(tǒng)身份和系統(tǒng)用戶身份信息(在系統(tǒng)的安全特性部分還會討論)。安全模塊通過智能卡的驅(qū)動程序,負(fù)責(zé)與智能卡信息的安全交互,并提供訪問智能卡的操作函數(shù)。②與進(jìn)程控制器交互的接口。安全服務(wù)器只負(fù)責(zé)實現(xiàn)對安全策略的支持,而不管判定訪問操作是否合法。進(jìn)程控制器在判定訪問是否合法時,使用安全服務(wù)器提供規(guī)則。③提供給系統(tǒng)管理的接口。由于在安全模塊當(dāng)中實現(xiàn)了策略的獨立性,所以安全模塊可以在實現(xiàn)對多種策略的支持。接口函數(shù)包括安全模塊的初始化接口、安全策略的注冊接口、安全策略的管理接口。通過這些接口函數(shù)可以實現(xiàn)對安全策略的配置,系統(tǒng)安全特性針對不同的工作環(huán)境,可以動態(tài)變化。安全模塊的固化設(shè)計保證系統(tǒng)的安全特性不可能被破壞和篡改。
(2)進(jìn)程控制器
進(jìn)程控制器是系統(tǒng)安全特性的關(guān)鍵部分,功能有兩個:①以進(jìn)程為單位的權(quán)限控制;②判定安全執(zhí)行部分提供的訪問請求并返回判定結(jié)果;同時為了提高效率,保存最近的訪問判定結(jié)果,提供緩存功能。
在傳統(tǒng)的Unix系統(tǒng)當(dāng)中,一般提供基于用戶的權(quán)限控制方法,系統(tǒng)的控制粒度只能到用戶。一般的攻擊方法是利用程序的設(shè)計漏洞,或者用戶的誤操作來取得高級權(quán)限。在我們研究這類安全問題時,繼續(xù)細(xì)化了這類控制方法,提供更細(xì)的控制粒度;可以針對每一個進(jìn)程進(jìn)行控制,確保用戶所啟動的所有進(jìn)程均處于相應(yīng)權(quán)限控制之下。
(3)文件系統(tǒng)伺服器
主要操作是抽象各種操作,包括對文件系統(tǒng)的操作和對于文件的操作;是在文件系統(tǒng)當(dāng)中的系統(tǒng)調(diào)用部分加入控制機(jī)制,向控制器提交訪問的主客體標(biāo)識符。在Linux操作系統(tǒng)中,涉及到的數(shù)據(jù)結(jié)構(gòu)有:super_block(表示文件系統(tǒng)),file(表示操作的文件),inode(表示管道),文件或者網(wǎng)絡(luò)套接字等等。
(4)網(wǎng)絡(luò)伺服器
網(wǎng)絡(luò)安全部分控制操作的目的是,防止違法的網(wǎng)絡(luò)操作。例如,控制網(wǎng)絡(luò)打開與關(guān)閉,路由器和防火墻的安全規(guī)則配置,端口綁定,網(wǎng)絡(luò)廣播等。
(5)進(jìn)程通信伺服器
進(jìn)程之間的安全通信是安全操作系統(tǒng)研究的重點之一。隨通道是指按照常規(guī)不會用于傳送信息卻被利用泄漏信息的傳送渠道。隱通道包括正規(guī)隱通道、存儲隱通道和時間隱通道。在我們的研究過程中,分析了前兩種信息泄漏方式,通過以進(jìn)程為控制單位,控制進(jìn)程之間有效通信方式來解決。在Linux方式當(dāng)中,提供信號量、消息隊列和共享內(nèi)存等進(jìn)程通信方式,在關(guān)鍵點處加入控制點,例如msg_msg代表單個的消息,kern_ipc_perm代表信號,共享內(nèi)存段,或者消息隊列。進(jìn)程控制器提供的控制機(jī)制使得普通用戶的進(jìn)程只能在具有血緣關(guān)系的進(jìn)程之間來傳送消息,可有效防止信息的擴(kuò)散。
(6)設(shè)備管理器
在計算機(jī)系統(tǒng)當(dāng)中,輸入輸出設(shè)備非常易于泄漏信息,包括打印機(jī)、終端、文件卷等。例如,黑客可以利用模擬登陸終端設(shè)備來取得用戶密碼。這個模塊負(fù)責(zé)對這些設(shè)備進(jìn)行單獨的管理,保證這些設(shè)備始終處于有效和正確的狀態(tài)下。
3 系統(tǒng)的安全特性
本質(zhì)安全型操作系統(tǒng)是在嵌入式系統(tǒng)背景下設(shè)計的一種安全操作系統(tǒng)。相對于其它嵌入式系統(tǒng),它提供了一種根本意義上的信息安全保證;擴(kuò)展了安全操作系統(tǒng)的內(nèi)涵,引入了操作系統(tǒng)的生命周期、系統(tǒng)生成態(tài)、運(yùn)營態(tài)、消亡態(tài)概念。在不同的時間段,安全應(yīng)該有不同的考慮,而智能卡作為安全控制的基點,保證操作系統(tǒng)可在各種狀態(tài)之下轉(zhuǎn)換。智能卡健全的發(fā)生和管理機(jī)制,是安全的重要保證。下面介紹本質(zhì)安全型集中式控制操作系統(tǒng)提供的安全特性。
(1)身份標(biāo)識
在wolf-Linux系統(tǒng)當(dāng)中,身份標(biāo)識包括系統(tǒng)身份標(biāo)識和用戶身份標(biāo)識。
系統(tǒng)身份標(biāo)識是指在系統(tǒng)啟動過程當(dāng)中,對運(yùn)行的平臺和運(yùn)行系統(tǒng)進(jìn)行身份驗證。智能卡中和操作系統(tǒng)中,在系統(tǒng)生成態(tài)時均被賦予了的特定數(shù)字ID,系統(tǒng)啟動時操作系統(tǒng)讀取智能卡中的ID號,進(jìn)行驗證。如果不合法,則轉(zhuǎn)入USSPEND態(tài),不能正常啟動。通過智能卡可以有效地對系統(tǒng)的生命周期進(jìn)行監(jiān)控。
用戶身份標(biāo)識是指通常的用戶身份標(biāo)識與鑒定。系統(tǒng)采用智能卡保存用戶的關(guān)鍵信息,防止被非法篡改或竊取。
(2)進(jìn)程受控運(yùn)行
在一般的嵌入式系統(tǒng)當(dāng)中,不可能對系統(tǒng)運(yùn)行的進(jìn)程進(jìn)行有效監(jiān)控,wof-Linux提出了一種以進(jìn)程控制為中心的管理方法。系統(tǒng)中運(yùn)行的程序必須取得合法性驗證才可以運(yùn)行,對于一些違法的攻擊程序可以有效進(jìn)行限制。系統(tǒng)控制粒度可以以進(jìn)程為單位,結(jié)合強(qiáng)制存取控制可以有效保證數(shù)據(jù)的安全性。
(3)集中式管理和強(qiáng)制訪問控制
不同于現(xiàn)有的系統(tǒng)安全代碼分散到系統(tǒng)的各個部分,wolf-Linux實現(xiàn)了集中式管理的策略。安全執(zhí)行部分抽象存取操作的主體和客體,提交給進(jìn)程控制器進(jìn)行判定,集中式控制保證系統(tǒng)的所有存取操作不可能繞過系統(tǒng)的安全機(jī)制。強(qiáng)制存取控制是集中式控制的一種具體實現(xiàn)的存取控制機(jī)制。
圖2給出了系統(tǒng)中安全存取控制的層次。
從上面分析可知,本質(zhì)安全型操作系統(tǒng)是指建立在特殊的硬件設(shè)備基礎(chǔ)之上,可以對系統(tǒng)運(yùn)營平臺,對系統(tǒng)進(jìn)程合法性和運(yùn)行權(quán)利進(jìn)行有效保證的安全系統(tǒng)。
4 系統(tǒng)驗證分析
由上述可知,本質(zhì)安全型操作系統(tǒng)是建立在智能卡技術(shù)之上的。傳統(tǒng)的研究方法最終將系統(tǒng)的安全建立在密碼技術(shù)之上,而隨著密碼破解技術(shù)和開源操作系統(tǒng)的發(fā)展,密碼機(jī)制已經(jīng)不能有效地保證系統(tǒng)的安全。安全操作系統(tǒng)和智能卡的結(jié)合,使系統(tǒng)的安全控制點建立在軟硬件結(jié)合的技術(shù)之上,從而可對系統(tǒng)的各種狀態(tài)和環(huán)節(jié)進(jìn)行有效的控制。在翰林電子書中采用這種結(jié)合智能卡的安全控制方式,取得了良好的效果。表1提供了一般嵌入式安全操作和本質(zhì)安全型操作系統(tǒng)的安全特性對比。
表1 系統(tǒng)安全特性對比
系 統(tǒng) |
||
控制粒度 | 以進(jìn)程為單位 | 以用戶為單位 |
TCB的設(shè)計方式 | 采用智能卡固化設(shè)計 | 純軟件設(shè)計 |
控制方式 | 集中式管理 | 分散式管理 |
控制環(huán)節(jié) | 多環(huán)節(jié)支持 | 存儲和訪問環(huán)節(jié) |
身份標(biāo)識與鑒定 | 基于智能卡的增強(qiáng)型 | 基于普通密碼機(jī)制 |
存取控制方式 | 強(qiáng)制存取控制和自主存取控制 | 自主存取控制 |
結(jié)語
后PC時代,嵌入式系統(tǒng)成為發(fā)展主流,它的安全性是將來整個信息系統(tǒng)安全的基礎(chǔ)。由于嵌入式應(yīng)用環(huán)境的多樣性,單純地使用軟件來實現(xiàn)安全操作系統(tǒng)已經(jīng)不太現(xiàn)實,軟硬件結(jié)合是一種重要的方法。本文分析了嵌入式系統(tǒng)面臨的安全問題的特點,提供了一個全新的安全概念,豐富了操作系統(tǒng)安全研究的內(nèi)涵。目前由于系統(tǒng)攻擊方法的多樣性,多策略支持已經(jīng)成為主要發(fā)展方向。Linux社區(qū)已經(jīng)實現(xiàn)lsm多策略支持安全控制框架,可以支持se-linux的flask的安全體系結(jié)構(gòu)和capability的權(quán)能控制機(jī)制。在研究安全操作系統(tǒng)時,安全機(jī)制對系統(tǒng)性能的影響是一個需要嚴(yán)肅考慮的問題。在一般的安全控制機(jī)制中,系統(tǒng)的性能大概會下降10%~20%,因此需要衡量控制范圍和性能影響,同時要提供完善的緩存機(jī)制。