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