摘 要:隨著嵌入式技術(shù)的發(fā)展,嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)已經(jīng)被廣泛使用,因?yàn)槠浒踩躁P(guān)系到整個(gè)信息系統(tǒng),若處理不當(dāng)可能引起系統(tǒng)的崩潰,因此很有必要研究其安全性。針對(duì)嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)的安全性提出2點(diǎn)改進(jìn):調(diào)度策略的改進(jìn);軟件分層。實(shí)踐表明這2個(gè)方法能很好地保護(hù)系統(tǒng)的安全。當(dāng)然,每個(gè)系統(tǒng)都有其固有的安全缺陷,這就需要在實(shí)踐中不斷摸索和積累經(jīng)驗(yàn)。最后以Linux操作系統(tǒng)為例具體分析如何提高其安全性。
關(guān)鍵詞:實(shí)時(shí)多任務(wù)操作系統(tǒng);時(shí)間片輪轉(zhuǎn)調(diào)度;Linux操作系統(tǒng);權(quán)限分割;緩沖區(qū)溢出
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
許多實(shí)時(shí)操作系統(tǒng)本身就有不安全性和不可靠性,這些不安全因素就給黑客的入侵和病毒的攻擊留下了可趁之機(jī)。操作系統(tǒng)是最基本的系統(tǒng)軟件,它是對(duì)硬件系統(tǒng)的第一次擴(kuò)充,同時(shí)給用戶提供一個(gè)更容易理解和進(jìn)行程序設(shè)計(jì)的接口,它是設(shè)備安全的核心,它的安全性不僅直接影響上層網(wǎng)絡(luò)通信及應(yīng)用軟件的安全[1],而且還會(huì)造成整個(gè)信息系統(tǒng)的癱瘓,基于此,本文對(duì)嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)安全性進(jìn)行分析與探討。
1 調(diào)度策略的改進(jìn)
在多任務(wù)的實(shí)時(shí)操作系統(tǒng)中,調(diào)度是一個(gè)十分重要的功能,用來(lái)確定多任務(wù)下執(zhí)行的順序和在獲得CPU資源后能夠執(zhí)行的時(shí)間長(zhǎng)度,若調(diào)度不當(dāng),可能引起死鎖,死鎖就是死機(jī),死機(jī)在嵌入式系統(tǒng)中是絕對(duì)不允許的[2,3]。絕大多數(shù)實(shí)時(shí)多任務(wù)操作系統(tǒng)RO(Real ime multi[CD2]tasking Operation ystem)采用基于優(yōu)先級(jí)的搶先式調(diào)度方式;在這種機(jī)制下,系統(tǒng)中優(yōu)先級(jí)最高進(jìn)程總是占用處理器。如果多個(gè)進(jìn)程具有同等優(yōu)先級(jí),這些進(jìn)程一般通過(guò)時(shí)間片輪轉(zhuǎn)調(diào)度方式實(shí)現(xiàn)對(duì)處理器的平均分配,但在給定的優(yōu)先級(jí)條件下,時(shí)間片輪轉(zhuǎn)調(diào)度方式并不能保證處理器時(shí)間被關(guān)鍵進(jìn)程占用。
假定系統(tǒng)包含兩個(gè)具有同等優(yōu)先級(jí)的進(jìn)程。進(jìn)程A是不重要的后臺(tái)進(jìn)程,而進(jìn)程B則是至少需要40%處理器時(shí)間才能運(yùn)行完成的關(guān)鍵進(jìn)程。由于進(jìn)程A和進(jìn)程B分配了同等優(yōu)先級(jí),典型的調(diào)度程序?qū)r(shí)間片分割,以保證每個(gè)進(jìn)程都能獲得0%的處理器的時(shí)間。此時(shí),進(jìn)程B能順利完成。若進(jìn)程A創(chuàng)建了一個(gè)具有同等優(yōu)先級(jí)的新進(jìn)程,則這3個(gè)進(jìn)程將共享處理器,進(jìn)程B只獲得33%的處理時(shí)間,因而無(wú)法完成關(guān)鍵進(jìn)程。在這種情況下,如果進(jìn)程A的代碼本身存在缺陷或受到病毒的影響,進(jìn)程A可能會(huì)創(chuàng)建更多的進(jìn)程,使進(jìn)程B只能占用很少的運(yùn)行時(shí)間。
在系統(tǒng)的調(diào)度策略中,在特定優(yōu)先級(jí)條件下為進(jìn)程增加一個(gè)“權(quán)重”參數(shù),可以解決這個(gè)問(wèn)題。當(dāng)一個(gè)進(jìn)程創(chuàng)建另一個(gè)具有同等優(yōu)先級(jí)的進(jìn)程時(shí),該進(jìn)程必須轉(zhuǎn)讓自身的部分權(quán)重給新創(chuàng)建的進(jìn)程。在上例中,假定系統(tǒng)設(shè)計(jì)時(shí)預(yù)先分配進(jìn)程的權(quán)重,進(jìn)程A占用60%的時(shí)間,進(jìn)程B占用40%的時(shí)間,當(dāng)進(jìn)程A創(chuàng)建新的進(jìn)程時(shí),必須轉(zhuǎn)讓部分權(quán)重,在此為設(shè)30%,則進(jìn)程A和新的進(jìn)程均占用30%處理器的時(shí)間,而進(jìn)程B則不受影響仍為40%,這樣就可以保證關(guān)鍵進(jìn)程順利進(jìn)行,阻止了有缺陷的進(jìn)程無(wú)限度地占用CPU,從而提高了系統(tǒng)的安全性。
2 軟件分層防御
在以前的嵌入式實(shí)時(shí)操作系統(tǒng)中,為了確保實(shí)時(shí)性,通常采用函數(shù)調(diào)用的方式實(shí)現(xiàn)應(yīng)用程序訪問(wèn)操作系統(tǒng)的服務(wù),一旦應(yīng)用程序出現(xiàn)錯(cuò)誤往往會(huì)引起操作系統(tǒng)崩潰。
為了解決操作系統(tǒng)數(shù)據(jù)安全性,使得應(yīng)用程序、系統(tǒng)程序的錯(cuò)誤不會(huì)引起蔓延,目前國(guó)際上在安全性實(shí)時(shí)操作系統(tǒng)中提出安全分層防御體系[4,],其核心思想是根據(jù)應(yīng)用任務(wù)的時(shí)間特性與空間特性,確保系統(tǒng)資源的可用性,最終實(shí)現(xiàn)系統(tǒng)的安全性。就是為每個(gè)任務(wù)都有自己的指定時(shí)間域和一個(gè)確定是存儲(chǔ)空間域,該時(shí)間域和空間域是該任務(wù)所獨(dú)有的,其他任務(wù)的破壞不會(huì)導(dǎo)致該任務(wù)的破壞,也就是說(shuō)一個(gè)任務(wù)的破壞不會(huì)導(dǎo)致整個(gè)系統(tǒng)的其他任務(wù)的時(shí)間和存儲(chǔ)空間的耗盡,從而導(dǎo)致整個(gè)系統(tǒng)的崩潰。
采用軟件分層結(jié)構(gòu)來(lái)保護(hù)軟件不受變化的影響,其實(shí)時(shí)操作系統(tǒng)的3層結(jié)構(gòu)如圖1所示。
應(yīng)用層包括所有應(yīng)用軟件的功能模塊。
操作系統(tǒng)層提供實(shí)時(shí)操作系統(tǒng)的一般服務(wù),主要包括調(diào)度、通信、同步和異步操作、存儲(chǔ)器管理、中斷處理服務(wù)等。
模塊支持層主要實(shí)現(xiàn)硬件與操作系統(tǒng)間的隔離。
各層之間均有個(gè)接口,使各層的更新相互不影響,提高了系統(tǒng)的安全性。
3 Linux操作系統(tǒng)的安全性分析
Linux操作系統(tǒng)是一個(gè)開(kāi)放源代碼的、可以免費(fèi)使用和自由傳播的類(lèi)Unix操作系統(tǒng)。Linux是一個(gè)開(kāi)放式系統(tǒng),可以在網(wǎng)絡(luò)上找到許多現(xiàn)成的程序和工具,這既方便了用戶,也方便了黑客,因?yàn)樗麄円材芎苋菀椎卣业匠绦蚝凸ぞ邅?lái)潛入Linux系統(tǒng),或者盜取Linux系統(tǒng)上的重要信息。因此,要加強(qiáng)安全觀念,最大限度的確保信息安全[1]。
31 控制超級(jí)用戶的權(quán)限
系統(tǒng)管理員擁有其他用戶所沒(méi)有的特權(quán),一旦獲得超級(jí)管理員的權(quán)限,就獲得對(duì)計(jì)算機(jī)系統(tǒng)的完全控制。因此,有必要對(duì)權(quán)限進(jìn)行分割,將原有ROO具有的特權(quán)按其功能的不同劃分不同的類(lèi)型,單獨(dú)加以控制。按最小特權(quán)安全策略,對(duì)系統(tǒng)的用戶權(quán)限和進(jìn)程權(quán)限進(jìn)行控制,將ROO用戶具有的特權(quán)細(xì)化,使系統(tǒng)中沒(méi)有一個(gè)用戶的權(quán)限是“超級(jí)”的。將Linux操作系統(tǒng)的系統(tǒng)調(diào)用分為受控與非受空2類(lèi),既滿足控制特權(quán)又方便用戶使用。由特權(quán)控制管理程序管理用戶特權(quán)和文件特權(quán),系統(tǒng)進(jìn)程特權(quán)在執(zhí)行程序后有進(jìn)程特權(quán)計(jì)算公式計(jì)算它的新特權(quán)[6]。
32 加強(qiáng)身份認(rèn)證技術(shù)
身份認(rèn)證是對(duì)系統(tǒng)的主體進(jìn)行驗(yàn)證,目的是防止數(shù)據(jù)被非法用戶訪問(wèn)。除了口令認(rèn)證外,采用數(shù)字簽名技術(shù)可大大提高訪問(wèn)控制的力度,采用生理特征認(rèn)證技術(shù)可獲得最好的驗(yàn)證效果[1]。如生物識(shí)別技術(shù),即基于指紋、聲音、視網(wǎng)膜等獨(dú)一無(wú)二的特征驗(yàn)證。
33 備份
在完成Linux系統(tǒng)的安裝以后應(yīng)該對(duì)整個(gè)系統(tǒng)進(jìn)行備份,以后可以根據(jù)這個(gè)備份來(lái)驗(yàn)證系統(tǒng)的完整性,當(dāng)然也可以用tripwire對(duì)照一個(gè)數(shù)據(jù)庫(kù)來(lái)檢查文件,這樣就可以發(fā)現(xiàn)系統(tǒng)是否被非法篡改過(guò)。例如,tripwire可以很容易地確定入侵者是否已經(jīng)把/bin/login的副本替換成了一個(gè)把口令記錄在秘密文件中的程序。根據(jù)篡改過(guò)的文件可以判斷系統(tǒng)哪些文件存在安全隱患,就可以加強(qiáng)這方面的管理,不斷完善系統(tǒng)的安全性。同時(shí),一旦系統(tǒng)文件被破壞也可使用系統(tǒng)備份來(lái)恢復(fù)到正常狀態(tài)。
34 改進(jìn)系統(tǒng)內(nèi)部的安全機(jī)制
在編程時(shí)經(jīng)常要考慮溢出問(wèn)題,同樣的Linux操作系統(tǒng)也要考慮此問(wèn)題。Linux內(nèi)核沒(méi)有對(duì)存儲(chǔ)在IO9660文件系統(tǒng)上的符號(hào)進(jìn)行正確長(zhǎng)度檢查,本地攻擊者可利用這個(gè)漏洞獲得root用戶權(quán)限。通過(guò)改進(jìn)Linux操作系統(tǒng)內(nèi)部功能來(lái)防止Linux操作系統(tǒng)緩沖區(qū)溢出攻擊這種破壞力極強(qiáng)卻有最難預(yù)防的攻擊方式,雖然這樣的改進(jìn)需要管理員具有相當(dāng)豐富的經(jīng)驗(yàn)和技巧,但對(duì)許多安全性級(jí)別要求高的Linux系統(tǒng)來(lái)講是很有必要的[7,8]。
緩沖區(qū)溢出實(shí)施起來(lái)很困難,因?yàn)槿肭终弑仨毮軌蚺袛酀撛诘木彌_區(qū)溢出何時(shí)會(huì)出現(xiàn)以及它在內(nèi)存中的什么位置出現(xiàn),同時(shí)緩沖區(qū)溢出預(yù)防起來(lái)也十分困難,系統(tǒng)管理員必須完全去掉緩沖區(qū)逸出存在的條件才能防止這種方式的攻擊?,F(xiàn)在已經(jīng)有使用afeGuard的Linux版本,雖然使用afeGuard會(huì)導(dǎo)致系統(tǒng)的性能下降,也可能會(huì)導(dǎo)致對(duì)執(zhí)行棧的某些程序和庫(kù)的依賴(lài)問(wèn)題。但它能夠防止整個(gè)緩沖區(qū)溢出這一類(lèi)的攻擊[8]。
4 結(jié) 語(yǔ)
一個(gè)實(shí)時(shí)操作系統(tǒng)的安全性所包含的范圍很廣,如文件系統(tǒng)的安全性、死鎖、進(jìn)程的調(diào)度等。限于篇幅,本文只對(duì)其中的幾個(gè)進(jìn)行了討論分析。由于操作系統(tǒng)在整個(gè)計(jì)算機(jī)系統(tǒng)的重要性,尤其是在涉密網(wǎng)絡(luò)中,要特別注意其安全性,因此,必須加強(qiáng)以安全操作系統(tǒng)為基礎(chǔ)的整體安全保障設(shè)施的建設(shè)。
參 考 文 獻(xiàn)
[JP2][1]蔣天發(fā)Intranet關(guān)鍵技術(shù)及其信息安全新方案的研究[J]武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版,2004,28():713[CD2]716
[2]IntelIntel PXA20 and PXA210 Applicaion Processors[R]Developr′s Manual,2002
[3]羅蕾嵌入式實(shí)時(shí)操作系統(tǒng)及應(yīng)用開(kāi)發(fā)[M]北京:北京航空航天大學(xué)出版社,2007
[4]何小慶微軟嵌入式操作系統(tǒng)的分析和比對(duì)(下)[J]電子產(chǎn)品世界,2007(11):128[CD2]130
[]胡繼陽(yáng)嵌入式系統(tǒng)導(dǎo)論[M]北京:中國(guó)鐵道出版社,200
[6]吳健基于嵌入式Linux的無(wú)線檢測(cè)系統(tǒng)設(shè)計(jì)[J]現(xiàn)代電子技術(shù),2006,29(13):78[CD2]80
[7]岳浩Linux操作系統(tǒng)教程[M]北京:機(jī)械工業(yè)出版社,200
[8]Aleph Onemashing thetack Fun and Profit[J]Phrack,1996,7(49):163[CD2]168