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