摘 要:隨著嵌入式技術的發展,嵌入式實時多任務操作系統已經被廣泛使用,因為其安全性關系到整個信息系統,若處理不當可能引起系統的崩潰,因此很有必要研究其安全性。針對嵌入式實時多任務操作系統的安全性提出2點改進:調度策略的改進;軟件分層。實踐表明這2個方法能很好地保護系統的安全。當然,每個系統都有其固有的安全缺陷,這就需要在實踐中不斷摸索和積累經驗。最后以Linux操作系統為例具體分析如何提高其安全性。
關鍵詞:實時多任務操作系統;時間片輪轉調度;Linux操作系統;權限分割;緩沖區溢出
ecurity Analysis and Research of Embedded Real[CD2]time Multi[CD2]task Operating ystem
LIU Yongkui,JIANG ianfa
(College of Computer,outh Central University for Nationalities,Wuhan,430073,China)[J13]
Abstract:With the development of embedded technology,RO has been used spreadlyBecause its security is related to the whole information system,if handled improperly may cause the collapse of system,so it is necessary to research its securitytwo improvements about the security of RO are put forward in this paper:one is the improvement of scheduling,the other is software layeredPractice shows that these two methods can protect the system very wellOf course,each system has inherent security flaws,this requires exploring and accumulating experience gradually in practiceFinally,takes Linux operation system as example to analyze how to improve its secutity
Keywords:RO;round[CD2]robin scheduling;Linux operating system;authortity segmentation;buffer overflow
許多實時操作系統本身就有不安全性和不可靠性,這些不安全因素就給黑客的入侵和病毒的攻擊留下了可趁之機。操作系統是最基本的系統軟件,它是對硬件系統的第一次擴充,同時給用戶提供一個更容易理解和進行程序設計的接口,它是設備安全的核心,它的安全性不僅直接影響上層網絡通信及應用軟件的安全[1],而且還會造成整個信息系統的癱瘓,基于此,本文對嵌入式實時多任務操作系統安全性進行分析與探討。
1 調度策略的改進
在多任務的實時操作系統中,調度是一個十分重要的功能,用來確定多任務下執行的順序和在獲得CPU資源后能夠執行的時間長度,若調度不當,可能引起死鎖,死鎖就是死機,死機在嵌入式系統中是絕對不允許的[2,3]。絕大多數實時多任務操作系統RO(Real ime multi[CD2]tasking Operation ystem)采用基于優先級的搶先式調度方式;在這種機制下,系統中優先級最高進程總是占用處理器。如果多個進程具有同等優先級,這些進程一般通過時間片輪轉調度方式實現對處理器的平均分配,但在給定的優先級條件下,時間片輪轉調度方式并不能保證處理器時間被關鍵進程占用。
假定系統包含兩個具有同等優先級的進程。進程A是不重要的后臺進程,而進程B則是至少需要40%處理器時間才能運行完成的關鍵進程。由于進程A和進程B分配了同等優先級,典型的調度程序將時間片分割,以保證每個進程都能獲得0%的處理器的時間。此時,進程B能順利完成。若進程A創建了一個具有同等優先級的新進程,則這3個進程將共享處理器,進程B只獲得33%的處理時間,因而無法完成關鍵進程。在這種情況下,如果進程A的代碼本身存在缺陷或受到病毒的影響,進程A可能會創建更多的進程,使進程B只能占用很少的運行時間。
在系統的調度策略中,在特定優先級條件下為進程增加一個“權重”參數,可以解決這個問題。當一個進程創建另一個具有同等優先級的進程時,該進程必須轉讓自身的部分權重給新創建的進程。在上例中,假定系統設計時預先分配進程的權重,進程A占用60%的時間,進程B占用40%的時間,當進程A創建新的進程時,必須轉讓部分權重,在此為設30%,則進程A和新的進程均占用30%處理器的時間,而進程B則不受影響仍為40%,這樣就可以保證關鍵進程順利進行,阻止了有缺陷的進程無限度地占用CPU,從而提高了系統的安全性。
2 軟件分層防御
在以前的嵌入式實時操作系統中,為了確保實時性,通常采用函數調用的方式實現應用程序訪問操作系統的服務,一旦應用程序出現錯誤往往會引起操作系統崩潰。
為了解決操作系統數據安全性,使得應用程序、系統程序的錯誤不會引起蔓延,目前國際上在安全性實時操作系統中提出安全分層防御體系[4,],其核心思想是根據應用任務的時間特性與空間特性,確保系統資源的可用性,最終實現系統的安全性。就是為每個任務都有自己的指定時間域和一個確定是存儲空間域,該時間域和空間域是該任務所獨有的,其他任務的破壞不會導致該任務的破壞,也就是說一個任務的破壞不會導致整個系統的其他任務的時間和存儲空間的耗盡,從而導致整個系統的崩潰。
采用軟件分層結構來保護軟件不受變化的影響,其實時操作系統的3層結構如圖1所示。

應用層包括所有應用軟件的功能模塊。
操作系統層提供實時操作系統的一般服務,主要包括調度、通信、同步和異步操作、存儲器管理、中斷處理服務等。
模塊支持層主要實現硬件與操作系統間的隔離。
各層之間均有個接口,使各層的更新相互不影響,提高了系統的安全性。
3 Linux操作系統的安全性分析
Linux操作系統是一個開放源代碼的、可以免費使用和自由傳播的類Unix操作系統。Linux是一個開放式系統,可以在網絡上找到許多現成的程序和工具,這既方便了用戶,也方便了黑客,因為他們也能很容易地找到程序和工具來潛入Linux系統,或者盜取Linux系統上的重要信息。因此,要加強安全觀念,最大限度的確保信息安全[1]。
31 控制超級用戶的權限
系統管理員擁有其他用戶所沒有的特權,一旦獲得超級管理員的權限,就獲得對計算機系統的完全控制。因此,有必要對權限進行分割,將原有ROO具有的特權按其功能的不同劃分不同的類型,單獨加以控制。按最小特權安全策略,對系統的用戶權限和進程權限進行控制,將ROO用戶具有的特權細化,使系統中沒有一個用戶的權限是“超級”的。將Linux操作系統的系統調用分為受控與非受空2類,既滿足控制特權又方便用戶使用。由特權控制管理程序管理用戶特權和文件特權,系統進程特權在執行程序后有進程特權計算公式計算它的新特權[6]。
32 加強身份認證技術
身份認證是對系統的主體進行驗證,目的是防止數據被非法用戶訪問。除了口令認證外,采用數字簽名技術可大大提高訪問控制的力度,采用生理特征認證技術可獲得最好的驗證效果[1]。如生物識別技術,即基于指紋、聲音、視網膜等獨一無二的特征驗證。
33 備份
在完成Linux系統的安裝以后應該對整個系統進行備份,以后可以根據這個備份來驗證系統的完整性,當然也可以用tripwire對照一個數據庫來檢查文件,這樣就可以發現系統是否被非法篡改過。例如,tripwire可以很容易地確定入侵者是否已經把/bin/login的副本替換成了一個把口令記錄在秘密文件中的程序。根據篡改過的文件可以判斷系統哪些文件存在安全隱患,就可以加強這方面的管理,不斷完善系統的安全性。同時,一旦系統文件被破壞也可使用系統備份來恢復到正常狀態。
34 改進系統內部的安全機制
在編程時經常要考慮溢出問題,同樣的Linux操作系統也要考慮此問題。Linux內核沒有對存儲在IO9660文件系統上的符號進行正確長度檢查,本地攻擊者可利用這個漏洞獲得root用戶權限。通過改進Linux操作系統內部功能來防止Linux操作系統緩沖區溢出攻擊這種破壞力極強卻有最難預防的攻擊方式,雖然這樣的改進需要管理員具有相當豐富的經驗和技巧,但對許多安全性級別要求高的Linux系統來講是很有必要的[7,8]。
緩沖區溢出實施起來很困難,因為入侵者必須能夠判斷潛在的緩沖區溢出何時會出現以及它在內存中的什么位置出現,同時緩沖區溢出預防起來也十分困難,系統管理員必須完全去掉緩沖區逸出存在的條件才能防止這種方式的攻擊。現在已經有使用afeGuard的Linux版本,雖然使用afeGuard會導致系統的性能下降,也可能會導致對執行棧的某些程序和庫的依賴問題。但它能夠防止整個緩沖區溢出這一類的攻擊[8]。
4 結 語
一個實時操作系統的安全性所包含的范圍很廣,如文件系統的安全性、死鎖、進程的調度等。限于篇幅,本文只對其中的幾個進行了討論分析。由于操作系統在整個計算機系統的重要性,尤其是在涉密網絡中,要特別注意其安全性,因此,必須加強以安全操作系統為基礎的整體安全保障設施的建設。
參 考 文 獻
[JP2][1]蔣天發Intranet關鍵技術及其信息安全新方案的研究[J]武漢理工大學學報:交通科學與工程版,2004,28():713[CD2]716
[2]IntelIntel PXA20 and PXA210 Applicaion Processors[R]Developr′s Manual,2002
[3]羅蕾嵌入式實時操作系統及應用開發[M]北京:北京航空航天大學出版社,2007
[4]何小慶微軟嵌入式操作系統的分析和比對(下)[J]電子產品世界,2007(11):128[CD2]130
[]胡繼陽嵌入式系統導論[M]北京:中國鐵道出版社,200
[6]吳健基于嵌入式Linux的無線檢測系統設計[J]現代電子技術,2006,29(13):78[CD2]80
[7]岳浩Linux操作系統教程[M]北京:機械工業出版社,200
[8]Aleph Onemashing thetack Fun and Profit[J]Phrack,1996,7(49):163[CD2]168