摘 要: 針對電力應(yīng)用系統(tǒng)對嵌入式操作系統(tǒng)的實(shí)時(shí)性" title="實(shí)時(shí)性">實(shí)時(shí)性和安全性要求,以μC/OS-II" title="C/OS-II">C/OS-II內(nèi)核為基礎(chǔ),,提出了一種入侵檢測" title="入侵檢測">入侵檢測模塊的設(shè)計(jì)及實(shí)現(xiàn),。
關(guān)鍵詞: 嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng) 審計(jì)跟蹤 入侵檢測
隨著通信技術(shù)和電子技術(shù)的不斷發(fā)展,,嵌入式系統(tǒng)在電力系統(tǒng)中得到越來越廣泛的應(yīng)用,電力嵌入式系統(tǒng)連接Internet將成為一大發(fā)展趨勢,。但是Internet是一個(gè)不確定的網(wǎng)絡(luò),,存在著許多安全隱患,這是一個(gè)突出的,、急待解決的問題,。因此要求嵌入式操作系統(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)定、簡短,、源代碼公開等特性得到了人們的青睞,。但μC/OS-II只是一個(gè)微內(nèi)核,并沒有安全方面的設(shè)計(jì),。為了更加適合應(yīng)用在電力系統(tǒng)中,,這部分功能必須增強(qiáng)。
本文將針對電力系統(tǒng)的需求,,基于一個(gè)改寫的μC/OS-II說明該嵌入式操作系統(tǒng)中入侵檢測模塊的設(shè)計(jì)與實(shí)現(xiàn),。
1 針對電力系統(tǒng)的安全威脅分析
嵌入式系統(tǒng)在電力系統(tǒng)中主要應(yīng)用于數(shù)據(jù)采集和遠(yuǎn)程監(jiān)控,所以它面臨的最大威脅是數(shù)據(jù)(指令也認(rèn)為是一種數(shù)據(jù))的保密性和完整性問題,。通過現(xiàn)有的保密技術(shù)和網(wǎng)絡(luò)安全措施可以基本上保證數(shù)據(jù)的安全,,但并不能絕對保證。入侵檢測模塊可以認(rèn)為是整個(gè)系統(tǒng)的最后一道防線,,在系統(tǒng)遭受威脅或被攻擊后,,可以分析攻擊行為,有效保護(hù)系統(tǒng)免受同樣的攻擊,。針對電力系統(tǒng),,可以歸納出三個(gè)主要的安全威脅,這些威脅不能通過常規(guī)的數(shù)據(jù)保密技術(shù)和網(wǎng)絡(luò)安全措施得到絕對有效的解決,。
(1)內(nèi)部人員的違規(guī)行為,。通常,數(shù)據(jù)保密技術(shù)和賬戶安全管理手段,,只能防止外來人員的攻擊,,而對于內(nèi)部人員則束手無策。若內(nèi)部人員濫用權(quán)限也會使系統(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)用戶通過盜取密碼等非法手段登錄嵌入式系統(tǒng)并進(jìn)行非法的設(shè)備控制是監(jiān)控系統(tǒng)面臨的最大安全威脅,。
(3)對系統(tǒng)資源的非法訪問。這里所謂的系統(tǒng)資源主要包括存儲器中的數(shù)據(jù),、系統(tǒng)的運(yùn)行參數(shù)以及用于控制電力設(shè)備的硬件,。當(dāng)攻擊者繞過正常的操作順序獲取數(shù)據(jù)或是硬件的控制權(quán)時(shí),系統(tǒng)的所有安全措施形同虛設(shè),。
通過上述分析可知,,為了進(jìn)一步加強(qiáng)系統(tǒng)的安全性,,必須使系統(tǒng)具有個(gè)人行為監(jiān)控、事件重建,、抵御網(wǎng)絡(luò)攻擊和故障分析能力,。這些都將在入侵檢測模塊中實(shí)現(xiàn)。
2 基于主機(jī)的入侵檢測模塊設(shè)計(jì)
2.1 檢測技術(shù)
考慮到嵌入式系統(tǒng)資源的有限性,,入侵檢測模塊將采用濫用檢測技術(shù),。所謂濫用檢測是直接對入侵行為進(jìn)行特征化描述,建立某種或某類入侵的特征行為模式庫,。如果發(fā)現(xiàn)當(dāng)前行為與某個(gè)入侵模式一致,,則表示發(fā)生了這種入侵。采用這種技術(shù)將降低判斷入侵檢測程序的復(fù)雜度,,并且大大減少審計(jì)開銷,,系統(tǒng)只記錄一些必要的日志信息,節(jié)省了有限的存儲器空間,。
2.2 框架設(shè)計(jì)
入侵檢測模塊一般分為四部分:
(1)事件產(chǎn)生器,。從環(huán)境中抽取感興趣的信息,并把信息轉(zhuǎn)化為標(biāo)準(zhǔn)格式供系統(tǒng)其他部件使用,。
(2)事件數(shù)據(jù)庫,。事件數(shù)據(jù)庫保存事件日志。
(3)事件分析器,。分析輸入的格式化后的事件,,進(jìn)行真正意義上的入侵檢測,并產(chǎn)生新的警告,。
(4)響應(yīng)單元,。響應(yīng)單元按照警告進(jìn)行相應(yīng)的保護(hù),反擊入侵行為,。
根據(jù)電力應(yīng)用的特性和嵌入式系統(tǒng)的特點(diǎn),,對上述入侵檢測框架進(jìn)行修改如下:
(1)事件發(fā)生器產(chǎn)生原始日志數(shù)據(jù),為了避免對進(jìn)程實(shí)時(shí)性造成太大的影響,,先不做格式化處理,。
(2)事件數(shù)據(jù)庫將接收的原始日志數(shù)據(jù)進(jìn)行格式化處理,并進(jìn)行相應(yīng)的分類保存,。
(3)事件分析器與響應(yīng)單元合并,,以減少對系統(tǒng)進(jìn)程的占用。
整個(gè)入侵檢測框架如圖1所示,。
3 基于主機(jī)的入侵檢測模塊的實(shí)現(xiàn)
3.1 入侵檢測模塊的實(shí)現(xiàn)流程
該操作系統(tǒng)是一個(gè)實(shí)時(shí)操作系統(tǒng),,為了不影響系統(tǒng)的實(shí)時(shí)性,入侵檢測并不是實(shí)時(shí)處理,數(shù)據(jù)流在整個(gè)處理過程中可能并不是很流暢,,所以在設(shè)計(jì)時(shí)采用消息隊(duì)列形式傳遞原始記錄,。即每個(gè)事件產(chǎn)生器發(fā)送的消息都送到一個(gè)消息隊(duì)列中,,事件數(shù)據(jù)庫在系統(tǒng)空閑時(shí)取出消息做統(tǒng)一的格式化處理,,并保存到數(shù)據(jù)庫中。當(dāng)日志記錄累積到一定程度時(shí),,由事件數(shù)據(jù)庫觸發(fā)事件分析器做分析檢測,,經(jīng)過檢測的日志記錄可以適當(dāng)刪除,以保持事件數(shù)據(jù)庫接收新日志的能力,。事件分析器作為整個(gè)入侵檢測模塊的核心,,其程序流程如圖2所示。
從圖2可以看出,,系統(tǒng)目前只檢測三種安全威脅,,這是針對電力系統(tǒng)的威脅而確定。檢測的結(jié)果保存到威脅日志中并生成相應(yīng)錯(cuò)誤號,,輔助響應(yīng)單元完成后續(xù)操作,。可以根據(jù)需求,,通過修改檢測策略庫增加檢測的攻擊類型,,但是為了不影響嵌入式系統(tǒng)的實(shí)時(shí)性,原則上只檢測必要的攻擊行為,。
3.2 主要數(shù)據(jù)結(jié)構(gòu)" title="數(shù)據(jù)結(jié)構(gòu)">數(shù)據(jù)結(jié)構(gòu)和方法
大型入侵檢測系統(tǒng)采用標(biāo)準(zhǔn)的日志數(shù)據(jù)結(jié)構(gòu),,以方便系統(tǒng)之間的數(shù)據(jù)交流。但作為一個(gè)嵌入式的應(yīng)用,,目前并沒有做分布式架構(gòu)的設(shè)計(jì),。若采用標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu),則會使日志記錄的數(shù)據(jù)量大大增加,,占用大量有限的存儲器空間,。因此系統(tǒng)自定義了一個(gè)日志記錄的數(shù)據(jù)結(jié)構(gòu),而事件數(shù)據(jù)庫以一個(gè)結(jié)構(gòu)體數(shù)組形式存在,,并通過一個(gè)結(jié)構(gòu)體控制數(shù)組使其成為一個(gè)循環(huán)區(qū)域,。日志記錄和控制循環(huán)區(qū)域的結(jié)構(gòu)體數(shù)據(jù)格式如下:
struct log {
unsigned char tp; //說明日志文件類型
unsigned char action,; //說明操作類型
unsigned long time,; //說明操作時(shí)間
unsigned long ip; //說明操作地點(diǎn)
long backup,; //供擴(kuò)展用
}
日志記錄是整個(gè)模塊中最占用存儲器的部分,,為了盡量減少占用存儲區(qū)域,各個(gè)字段都做了優(yōu)化處理。在時(shí)間上并不采用傳統(tǒng)標(biāo)準(zhǔn)的年/月/日/時(shí)/分/秒表示,,而是以一個(gè)無符號的長整型表示時(shí)間差來計(jì)算時(shí)間,。這樣不僅節(jié)省了存儲空間,還簡化了檢測過程中時(shí)間差計(jì)算的復(fù)雜度,。具體操作類型通過char tp與char action確定,,用每一個(gè)bit位表示一個(gè)操作,這樣可以表示64個(gè)具體操作類型,。
struct logchain {
struct log* start,; //緩存區(qū)開始的地址
struct log* end; //緩存區(qū)結(jié)束的地址
unsigned short lpoint//上次入侵檢測提取的最后一條記錄
unsigned short ttsize//整個(gè)緩存區(qū)的大小
unsigned short entries//目前被占用的記錄數(shù)目
unsigned short curpoint//指向當(dāng)前可以寫入的緩存區(qū)點(diǎn)
},;
上述數(shù)據(jù)結(jié)構(gòu)將控制整個(gè)事件數(shù)據(jù)庫日志的存儲管理,。事件數(shù)據(jù)庫以一個(gè)循環(huán)的結(jié)構(gòu)體數(shù)組表示,可以避免數(shù)據(jù)緩沖區(qū)的溢出,。
整個(gè)入侵檢測模塊主要有以下幾個(gè)功能函數(shù),。為了保證通用性,所有函數(shù)都是以標(biāo)準(zhǔn)C語言編寫,。
(1)入侵檢測模塊的啟動:unsigned char audit_init(void),。該功能函數(shù)將完成事件數(shù)據(jù)庫存儲區(qū)域的初始化、消息隊(duì)列的初始化和常駐任務(wù)的建立,。
(2)常駐任務(wù):void audittrail_thread(void*arg),。當(dāng)系統(tǒng)啟動入侵檢測服務(wù)后,該任務(wù)將作為常駐任務(wù)運(yùn)行在系統(tǒng)中,。常駐任務(wù)是接收事件產(chǎn)生器發(fā)送的消息,,經(jīng)格式化處理保存在事件數(shù)據(jù)庫中,并根據(jù)事件數(shù)據(jù)庫的情況觸發(fā)事件分析器,。
(3)檢測函數(shù)
密碼猜測攻擊:void check_countguess(void)
異常操作行為:void check_abnormalaction(void)
資源訪問情況:void check_resoucestatus(void)
這三個(gè)功能函數(shù)用來分析用戶登錄日志記錄,,檢測是否存在惡意攻擊。
(4)響應(yīng)單元主函數(shù):void response_main(unsigned char alarm),。該函數(shù)根據(jù)分析器得出的警告,,調(diào)用響應(yīng)策略庫中的相關(guān)策略,實(shí)施保護(hù)或者反擊措施,。
本文提出的基于改進(jìn)的μC/OS-II入侵檢測模塊的設(shè)計(jì)已基本實(shí)現(xiàn),。并且,作者修改了本實(shí)驗(yàn)室已實(shí)現(xiàn)的智能脫扣器項(xiàng)目的軟件,,并把它加載到修改后的嵌入式操作系統(tǒng)上進(jìn)行初步測試,。測試結(jié)果表明:系統(tǒng)的實(shí)時(shí)性和安全性均能滿足要求。在本論文的基礎(chǔ)上,,作者將對入侵檢測的策略進(jìn)行進(jìn)一步改進(jìn)和擴(kuò)充,,增強(qiáng)其穩(wěn)定性和實(shí)時(shí)性,,以使其能更適應(yīng)實(shí)際的電力應(yīng)用領(lǐng)域。
參考文獻(xiàn)
1 韓東海,,王 超.入侵檢測系統(tǒng)實(shí)例剖析[M].北京:清華大學(xué)出版社,,2002
2 劉美蘭.基于審計(jì)的入侵檢測系統(tǒng).cernet學(xué)術(shù)會議論文集[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