《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 嵌入式系統(tǒng)中入侵檢測(cè)的設(shè)計(jì)與實(shí)現(xiàn)

嵌入式系統(tǒng)中入侵檢測(cè)的設(shè)計(jì)與實(shí)現(xiàn)

2008-05-29
作者:趙躍華,蔣 軍,蔡貴賢

  摘 要: 針對(duì)電力應(yīng)用系統(tǒng)對(duì)嵌入式操作系統(tǒng)的實(shí)時(shí)性" title="實(shí)時(shí)性">實(shí)時(shí)性和安全性要求,以μC/OS-II" title="C/OS-II">C/OS-II內(nèi)核為基礎(chǔ),提出了一種入侵檢測(cè)" title="入侵檢測(cè)">入侵檢測(cè)模塊的設(shè)計(jì)及實(shí)現(xiàn)。
  關(guān)鍵詞: 嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng) 審計(jì)跟蹤 入侵檢測(cè)


  隨著通信技術(shù)和電子技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)在電力系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用,電力嵌入式系統(tǒng)連接Internet將成為一大發(fā)展趨勢(shì)。但是Internet是一個(gè)不確定的網(wǎng)絡(luò),存在著許多安全隱患,這是一個(gè)突出的、急待解決的問(wèn)題。因此要求嵌入式操作系統(tǒng)設(shè)計(jì)時(shí),除了考慮實(shí)時(shí)性,還必須考慮其安全性設(shè)計(jì)。
  目前,比較流行的嵌入式操作系統(tǒng)有QNX、VxWorks、Widow CE、μC/OS-II等。其中,μC/OS-II內(nèi)核以穩(wěn)定、簡(jiǎn)短、源代碼公開(kāi)等特性得到了人們的青睞。但μC/OS-II只是一個(gè)微內(nèi)核,并沒(méi)有安全方面的設(shè)計(jì)。為了更加適合應(yīng)用在電力系統(tǒng)中,這部分功能必須增強(qiáng)。
  本文將針對(duì)電力系統(tǒng)的需求,基于一個(gè)改寫(xiě)的μC/OS-II說(shuō)明該嵌入式操作系統(tǒng)中入侵檢測(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn)。
1 針對(duì)電力系統(tǒng)的安全威脅分析
  嵌入式系統(tǒng)在電力系統(tǒng)中主要應(yīng)用于數(shù)據(jù)采集和遠(yuǎn)程監(jiān)控,所以它面臨的最大威脅是數(shù)據(jù)(指令也認(rèn)為是一種數(shù)據(jù))的保密性和完整性問(wèn)題。通過(guò)現(xiàn)有的保密技術(shù)和網(wǎng)絡(luò)安全措施可以基本上保證數(shù)據(jù)的安全,但并不能絕對(duì)保證。入侵檢測(cè)模塊可以認(rèn)為是整個(gè)系統(tǒng)的最后一道防線,在系統(tǒng)遭受威脅或被攻擊后,可以分析攻擊行為,有效保護(hù)系統(tǒng)免受同樣的攻擊。針對(duì)電力系統(tǒng),可以歸納出三個(gè)主要的安全威脅,這些威脅不能通過(guò)常規(guī)的數(shù)據(jù)保密技術(shù)和網(wǎng)絡(luò)安全措施得到絕對(duì)有效的解決。
  (1)內(nèi)部人員的違規(guī)行為。通常,數(shù)據(jù)保密技術(shù)和賬戶安全管理手段,只能防止外來(lái)人員的攻擊,而對(duì)于內(nèi)部人員則束手無(wú)策。若內(nèi)部人員濫用權(quán)限也會(huì)使系統(tǒng)面臨很大的威脅。小則造成設(shè)備損壞,大則危害公共安全和經(jīng)濟(jì)生產(chǎn)。
  (2)非授權(quán)用戶登錄操作。一個(gè)電力監(jiān)控系統(tǒng)不僅可以遠(yuǎn)程采集電力終端設(shè)備的數(shù)據(jù),同時(shí)也可以進(jìn)行設(shè)備故障診斷、實(shí)時(shí)控制等操作。非授權(quán)用戶通過(guò)盜取密碼等非法手段登錄嵌入式系統(tǒng)并進(jìn)行非法的設(shè)備控制是監(jiān)控系統(tǒng)面臨的最大安全威脅。
  (3)對(duì)系統(tǒng)資源的非法訪問(wèn)。這里所謂的系統(tǒng)資源主要包括存儲(chǔ)器中的數(shù)據(jù)、系統(tǒng)的運(yùn)行參數(shù)以及用于控制電力設(shè)備的硬件。當(dāng)攻擊者繞過(guò)正常的操作順序獲取數(shù)據(jù)或是硬件的控制權(quán)時(shí),系統(tǒng)的所有安全措施形同虛設(shè)。
  通過(guò)上述分析可知,為了進(jìn)一步加強(qiáng)系統(tǒng)的安全性,必須使系統(tǒng)具有個(gè)人行為監(jiān)控、事件重建、抵御網(wǎng)絡(luò)攻擊和故障分析能力。這些都將在入侵檢測(cè)模塊中實(shí)現(xiàn)。
2 基于主機(jī)的入侵檢測(cè)模塊設(shè)計(jì)
2.1 檢測(cè)技術(shù)
  考慮到嵌入式系統(tǒng)資源的有限性,入侵檢測(cè)模塊將采用濫用檢測(cè)技術(shù)。所謂濫用檢測(cè)是直接對(duì)入侵行為進(jìn)行特征化描述,建立某種或某類入侵的特征行為模式庫(kù)。如果發(fā)現(xiàn)當(dāng)前行為與某個(gè)入侵模式一致,則表示發(fā)生了這種入侵。采用這種技術(shù)將降低判斷入侵檢測(cè)程序的復(fù)雜度,并且大大減少審計(jì)開(kāi)銷,系統(tǒng)只記錄一些必要的日志信息,節(jié)省了有限的存儲(chǔ)器空間。
2.2 框架設(shè)計(jì)
  入侵檢測(cè)模塊一般分為四部分:
  (1)事件產(chǎn)生器。從環(huán)境中抽取感興趣的信息,并把信息轉(zhuǎn)化為標(biāo)準(zhǔn)格式供系統(tǒng)其他部件使用。
  (2)事件數(shù)據(jù)庫(kù)。事件數(shù)據(jù)庫(kù)保存事件日志。
  (3)事件分析器。分析輸入的格式化后的事件,進(jìn)行真正意義上的入侵檢測(cè),并產(chǎn)生新的警告。
  (4)響應(yīng)單元。響應(yīng)單元按照警告進(jìn)行相應(yīng)的保護(hù),反擊入侵行為。
  根據(jù)電力應(yīng)用的特性和嵌入式系統(tǒng)的特點(diǎn),對(duì)上述入侵檢測(cè)框架進(jìn)行修改如下:
  (1)事件發(fā)生器產(chǎn)生原始日志數(shù)據(jù),為了避免對(duì)進(jìn)程實(shí)時(shí)性造成太大的影響,先不做格式化處理。
  (2)事件數(shù)據(jù)庫(kù)將接收的原始日志數(shù)據(jù)進(jìn)行格式化處理,并進(jìn)行相應(yīng)的分類保存。
  (3)事件分析器與響應(yīng)單元合并,以減少對(duì)系統(tǒng)進(jìn)程的占用。
  整個(gè)入侵檢測(cè)框架如圖1所示。


3 基于主機(jī)的入侵檢測(cè)模塊的實(shí)現(xiàn)
3.1 入侵檢測(cè)模塊的實(shí)現(xiàn)流程
  該操作系統(tǒng)是一個(gè)實(shí)時(shí)操作系統(tǒng),為了不影響系統(tǒng)的實(shí)時(shí)性,入侵檢測(cè)并不是實(shí)時(shí)處理,數(shù)據(jù)流在整個(gè)處理過(guò)程中可能并不是很流暢,所以在設(shè)計(jì)時(shí)采用消息隊(duì)列形式傳遞原始記錄。即每個(gè)事件產(chǎn)生器發(fā)送的消息都送到一個(gè)消息隊(duì)列中,事件數(shù)據(jù)庫(kù)在系統(tǒng)空閑時(shí)取出消息做統(tǒng)一的格式化處理,并保存到數(shù)據(jù)庫(kù)中。當(dāng)日志記錄累積到一定程度時(shí),由事件數(shù)據(jù)庫(kù)觸發(fā)事件分析器做分析檢測(cè),經(jīng)過(guò)檢測(cè)的日志記錄可以適當(dāng)刪除,以保持事件數(shù)據(jù)庫(kù)接收新日志的能力。事件分析器作為整個(gè)入侵檢測(cè)模塊的核心,其程序流程如圖2所示。


  從圖2可以看出,系統(tǒng)目前只檢測(cè)三種安全威脅,這是針對(duì)電力系統(tǒng)的威脅而確定。檢測(cè)的結(jié)果保存到威脅日志中并生成相應(yīng)錯(cuò)誤號(hào),輔助響應(yīng)單元完成后續(xù)操作??梢愿鶕?jù)需求,通過(guò)修改檢測(cè)策略庫(kù)增加檢測(cè)的攻擊類型,但是為了不影響嵌入式系統(tǒng)的實(shí)時(shí)性,原則上只檢測(cè)必要的攻擊行為。
3.2 主要數(shù)據(jù)結(jié)構(gòu)" title="數(shù)據(jù)結(jié)構(gòu)">數(shù)據(jù)結(jié)構(gòu)和方法
  大型入侵檢測(cè)系統(tǒng)采用標(biāo)準(zhǔn)的日志數(shù)據(jù)結(jié)構(gòu),以方便系統(tǒng)之間的數(shù)據(jù)交流。但作為一個(gè)嵌入式的應(yīng)用,目前并沒(méi)有做分布式架構(gòu)的設(shè)計(jì)。若采用標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu),則會(huì)使日志記錄的數(shù)據(jù)量大大增加,占用大量有限的存儲(chǔ)器空間。因此系統(tǒng)自定義了一個(gè)日志記錄的數(shù)據(jù)結(jié)構(gòu),而事件數(shù)據(jù)庫(kù)以一個(gè)結(jié)構(gòu)體數(shù)組形式存在,并通過(guò)一個(gè)結(jié)構(gòu)體控制數(shù)組使其成為一個(gè)循環(huán)區(qū)域。日志記錄和控制循環(huán)區(qū)域的結(jié)構(gòu)體數(shù)據(jù)格式如下:
  struct log {
  unsigned char tp;      //說(shuō)明日志文件類型
  unsigned char action;    //說(shuō)明操作類型
  unsigned long time;     //說(shuō)明操作時(shí)間
  unsigned long ip;      //說(shuō)明操作地點(diǎn)
  long backup;        //供擴(kuò)展用
  }
  日志記錄是整個(gè)模塊中最占用存儲(chǔ)器的部分,為了盡量減少占用存儲(chǔ)區(qū)域,各個(gè)字段都做了優(yōu)化處理。在時(shí)間上并不采用傳統(tǒng)標(biāo)準(zhǔn)的年/月/日/時(shí)/分/秒表示,而是以一個(gè)無(wú)符號(hào)的長(zhǎng)整型表示時(shí)間差來(lái)計(jì)算時(shí)間。這樣不僅節(jié)省了存儲(chǔ)空間,還簡(jiǎn)化了檢測(cè)過(guò)程中時(shí)間差計(jì)算的復(fù)雜度。具體操作類型通過(guò)char tp與char action確定,用每一個(gè)bit位表示一個(gè)操作,這樣可以表示64個(gè)具體操作類型。
  struct logchain {
  struct log*  start; //緩存區(qū)開(kāi)始的地址
  struct log*  end; //緩存區(qū)結(jié)束的地址
  unsigned short lpoint//上次入侵檢測(cè)提取的最后一條記錄
  unsigned short  ttsize//整個(gè)緩存區(qū)的大小
  unsigned short  entries//目前被占用的記錄數(shù)目
  unsigned short  curpoint//指向當(dāng)前可以寫(xiě)入的緩存區(qū)點(diǎn)
  };
  上述數(shù)據(jù)結(jié)構(gòu)將控制整個(gè)事件數(shù)據(jù)庫(kù)日志的存儲(chǔ)管理。事件數(shù)據(jù)庫(kù)以一個(gè)循環(huán)的結(jié)構(gòu)體數(shù)組表示,可以避免數(shù)據(jù)緩沖區(qū)的溢出。
  整個(gè)入侵檢測(cè)模塊主要有以下幾個(gè)功能函數(shù)。為了保證通用性,所有函數(shù)都是以標(biāo)準(zhǔn)C語(yǔ)言編寫(xiě)。
  (1)入侵檢測(cè)模塊的啟動(dòng):unsigned char audit_init(void)。該功能函數(shù)將完成事件數(shù)據(jù)庫(kù)存儲(chǔ)區(qū)域的初始化、消息隊(duì)列的初始化和常駐任務(wù)的建立。
  (2)常駐任務(wù):void audittrail_thread(void*arg)。當(dāng)系統(tǒng)啟動(dòng)入侵檢測(cè)服務(wù)后,該任務(wù)將作為常駐任務(wù)運(yùn)行在系統(tǒng)中。常駐任務(wù)是接收事件產(chǎn)生器發(fā)送的消息,經(jīng)格式化處理保存在事件數(shù)據(jù)庫(kù)中,并根據(jù)事件數(shù)據(jù)庫(kù)的情況觸發(fā)事件分析器。
  (3)檢測(cè)函數(shù)
  密碼猜測(cè)攻擊:void check_countguess(void)
  異常操作行為:void check_abnormalaction(void)
  資源訪問(wèn)情況:void check_resoucestatus(void)
  這三個(gè)功能函數(shù)用來(lái)分析用戶登錄日志記錄,檢測(cè)是否存在惡意攻擊。
  (4)響應(yīng)單元主函數(shù):void response_main(unsigned char alarm)。該函數(shù)根據(jù)分析器得出的警告,調(diào)用響應(yīng)策略庫(kù)中的相關(guān)策略,實(shí)施保護(hù)或者反擊措施。
  本文提出的基于改進(jìn)的μC/OS-II入侵檢測(cè)模塊的設(shè)計(jì)已基本實(shí)現(xiàn)。并且,作者修改了本實(shí)驗(yàn)室已實(shí)現(xiàn)的智能脫扣器項(xiàng)目的軟件,并把它加載到修改后的嵌入式操作系統(tǒng)上進(jìn)行初步測(cè)試。測(cè)試結(jié)果表明:系統(tǒng)的實(shí)時(shí)性和安全性均能滿足要求。在本論文的基礎(chǔ)上,作者將對(duì)入侵檢測(cè)的策略進(jìn)行進(jìn)一步改進(jìn)和擴(kuò)充,增強(qiáng)其穩(wěn)定性和實(shí)時(shí)性,以使其能更適應(yīng)實(shí)際的電力應(yīng)用領(lǐng)域。
參考文獻(xiàn)
1 韓東海,王 超.入侵檢測(cè)系統(tǒng)實(shí)例剖析[M].北京:清華大學(xué)出版社,2002
2 劉美蘭.基于審計(jì)的入侵檢測(cè)系統(tǒng).cernet學(xué)術(shù)會(huì)議論文集[C],2000
3 Jean J Labrosse.MicroC/OS-II The Real-Time Kernel Second Edition[M].2002
4 CIDF specification documents[S].The common intrusion detec-tion framework architecture,1999

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。