解析嵌入式系統(tǒng)中入侵檢測(cè)的設(shè)計(jì)
隨著通信技術(shù)和電子技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)在電力系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用,電力嵌入式系統(tǒng)連接Internet將成為一大發(fā)展趨勢(shì)。但是Internet是一個(gè)不確定的網(wǎng)絡(luò),存在著許多安全隱患,這是一個(gè)突出的、急待解決的問(wèn)題。嵌入式芯片的發(fā)展將使機(jī)器人在微型化,高智能方面優(yōu)勢(shì)更加明顯,同時(shí)會(huì)大幅度降低機(jī)器人的價(jià)格,使其在工業(yè)領(lǐng)域和服務(wù)領(lǐng)域獲得更廣泛的應(yīng)用。這些應(yīng)用中,可以著重于在控制方面的應(yīng)用。就遠(yuǎn)程家電控制而言,除了開(kāi)發(fā)出支持TCP/IP的嵌入式系統(tǒng)之外,家電產(chǎn)品控制協(xié)議也需要制訂和統(tǒng)一,這需要家電生產(chǎn)廠家來(lái)做。同樣的道理,所有基于網(wǎng)絡(luò)的遠(yuǎn)程控制器件都需要與嵌入式系統(tǒng)之間實(shí)現(xiàn)接口,然后再由嵌入式系統(tǒng)來(lái)控制并通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)控制。所以,開(kāi)發(fā)和探討嵌入式系統(tǒng)有著十分重要的意義。
本文引用地址:http://www.ex-cimer.com/article/149864.htm目前,比較流行的嵌入式操作系統(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)。μC /OS-II是一個(gè)完整的、可移植、可固化、可裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核。μC/OS-II絕大部分的代碼是用ANSI的C語(yǔ)言編寫(xiě)的,包含一小部分匯編代碼,使之可供不同架構(gòu)的微處理器使用。至今,從8位到64位,μC/OS-II已在超過(guò)40種不同架構(gòu)上的微處理器上運(yùn)行。μC/OS-II已經(jīng)在世界范圍內(nèi)得到廣泛應(yīng)用,包括很多領(lǐng)域, 如手機(jī)、路由器、集線器、不間斷電源、飛行器、醫(yī)療設(shè)備及工業(yè)控制上。實(shí)際上,μC/OS-II已經(jīng)通過(guò)了非常嚴(yán)格的測(cè)試,并且得到了美國(guó)航空管 理局(Federal AviatiON AdminiSTration)的認(rèn)證,可以用在飛行器上。這說(shuō)明μC/OS-II是穩(wěn)定可靠的,可用于與人性命攸關(guān)的安全緊要(safety critical)系統(tǒng)。除此以外,μC/OS-II 的鮮明特點(diǎn)就是源碼公開(kāi),便于移植和維護(hù)。
本文將針對(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ù)的保密性和完整性問(wèn)題。通過(guò)現(xiàn)有的保密技術(shù)和網(wǎng)絡(luò)安全措施可以基本上保證數(shù)據(jù)的安全,但并不能絕對(duì)保證。入侵檢測(cè)模塊可以認(rèn)為是整個(gè)系統(tǒng)的最后一道防線,在系統(tǒng)遭受威脅或被攻擊后,可以分析攻擊行為,有效保護(hù)系統(tǒng)免受同樣的攻擊。入侵檢測(cè)(Intrusion Detection)是對(duì)入侵行為的檢測(cè)。它通過(guò)收集和分析網(wǎng)絡(luò)行為、安全日志、審計(jì)數(shù)據(jù)、其它網(wǎng)絡(luò)上可以獲得的信息以及計(jì)算機(jī)系統(tǒng)中若干關(guān)鍵點(diǎn)的信息,檢查網(wǎng)絡(luò)或系統(tǒng)中是否存在違反安全策略的行為和被攻擊的跡象。入侵檢測(cè)作為一種積極主動(dòng)地安全防護(hù)技術(shù),提供了對(duì)內(nèi)部攻擊、外部攻擊和誤操作的實(shí)時(shí)保護(hù),在網(wǎng)絡(luò)系統(tǒng)受到危害之前攔截和響應(yīng)入侵。
?。?) 內(nèi)部人員的違規(guī)行為。通常,數(shù)據(jù)保密技術(shù)和賬戶(hù)安全管理手段,只能防止外來(lái)人員的攻擊,而對(duì)于內(nèi)部人員則束手無(wú)策。若內(nèi)部人員濫用權(quán)限也會(huì)使系統(tǒng)面臨很大的威脅。小則造成設(shè)備損壞,大則危害公共安全和經(jīng)濟(jì)生產(chǎn)。
(2) 非授權(quán)用戶(hù)登錄操作。一個(gè)電力監(jiān)控系統(tǒng)不僅可以遠(yuǎn)程采集電力終端設(shè)備的數(shù)據(jù),同時(shí)也可以進(jìn)行設(shè)備故障診斷、實(shí)時(shí)控制等操作。
?。?) 對(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ò)攻擊和故障分析能力。
2、基于主機(jī)的入侵檢測(cè)模塊設(shè)計(jì)
2.1 檢測(cè)技術(shù)
檢測(cè)技術(shù)與自動(dòng)化裝置是將自動(dòng)化、電子、計(jì)算機(jī)、控制工程、信息處理、機(jī)械等多種學(xué)科、多種技術(shù)融合為一體并綜合運(yùn)用的符合技術(shù),廣泛應(yīng)用于交通、電力、冶金、化工、建材等各領(lǐng)域自動(dòng)化裝備及生產(chǎn)自動(dòng)化過(guò)程。檢測(cè)技術(shù)與自動(dòng)化裝置的研究與應(yīng)用,不僅具有重要的理論意義,符合當(dāng)前及今后相當(dāng)長(zhǎng)時(shí)期內(nèi)我國(guó)科技發(fā)展的戰(zhàn)略,而且緊密結(jié)合國(guó)民經(jīng)濟(jì)的實(shí)際情況,對(duì)促進(jìn)企業(yè)技術(shù)進(jìn)步、傳統(tǒng)工業(yè)技術(shù)改造和鐵路技術(shù)裝備的現(xiàn)代化有著重要的意義。
考慮到嵌入式系統(tǒng)資源的有限性,入侵檢測(cè)模塊將采用濫用檢測(cè)技術(shù)。所謂濫用檢測(cè)是直接對(duì)入侵行為進(jìn)行特征化描述,建立某種或某類(lèi)入侵的特征行為模式庫(kù)。如果發(fā)現(xiàn)當(dāng)前行為與某個(gè)入侵模式一致,則表示發(fā)生了這種入侵。
2.2 框架設(shè)計(jì)
入侵檢測(cè)模塊一般分為四部分:
?。?) 事件產(chǎn)生器。從環(huán)境中抽取感興趣的信息,并把信息轉(zhuǎn)化為標(biāo)準(zhǔn)格式供系統(tǒng)其他部件使用。
(2) 事件數(shù)據(jù)庫(kù)。事件數(shù)據(jù)庫(kù)保存事件日志。
?。?) 事件分析器。分析輸入的格式化后的事件,進(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)行修改如下:
?。?)事件發(fā)生器產(chǎn)生原始日志數(shù)據(jù),為了避免對(duì)進(jìn)程實(shí)時(shí)性造成太大的影響,先不做格式化處理。
?。?)事件數(shù)據(jù)庫(kù)將接收的原始日志數(shù)據(jù)進(jìn)行格式化處理,并進(jìn)行相應(yīng)的分類(lèi)保存。
(3)事件分析器與響應(yīng)單元合并,以減少對(duì)系統(tǒng)進(jìn)程的占用。
整個(gè)入侵檢測(cè)框架如圖1所示。
圖1 入侵檢測(cè)框架圖
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 事件分析器程序流程圖
從圖2可以看出,系統(tǒng)目前只檢測(cè)三種安全威脅,這是針對(duì)電力系統(tǒng)的威脅而確定。檢測(cè)的結(jié)果保存到威脅日志中并生成相應(yīng)錯(cuò)誤號(hào),輔助響應(yīng)單元完成后續(xù)操作。可以根據(jù)需求,通過(guò)修改檢測(cè)策略庫(kù)增加檢測(cè)的攻擊類(lèi)型,但是為了不影響嵌入式系統(tǒng)的實(shí)時(shí)性,原則上只檢測(cè)必要的攻擊行為。
3.2 主要數(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ō)明日志文件類(lèi)型
unsigned char action; //說(shuō)明操作類(lèi)型
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í)間。
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)分析用戶(hù)登錄日志記錄,檢測(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)。μC/OS-II 是一種基于優(yōu)先級(jí)的搶占式多任務(wù)實(shí)時(shí)操作系統(tǒng),包含了實(shí)時(shí)內(nèi)核、任務(wù)管理、時(shí)間管理、任務(wù)間通信同步(信號(hào)量,郵箱,消息 隊(duì)列)和內(nèi)存管理等功能。它可以使各個(gè)任務(wù)獨(dú)立工作,互不干涉,很容易實(shí)現(xiàn)準(zhǔn)時(shí)而且無(wú)誤執(zhí)行,使實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)和擴(kuò)展變得容易,使應(yīng)用程序的設(shè)計(jì)過(guò)程大為減化。并且,作者修改了本實(shí)驗(yàn)室已實(shí)現(xiàn)的智能脫扣器項(xiàng)目的軟件,并把它加載到修改后的嵌入式操作系統(tǒng)上進(jìn)行初步測(cè)試。測(cè)試結(jié)果表明:系統(tǒng)的實(shí)時(shí)性和安全性均能滿(mǎn)足要求。在本論文的基礎(chǔ)上,作者將對(duì)入侵檢測(cè)的策略進(jìn)行進(jìn)一步改進(jìn)和擴(kuò)充,增強(qiáng)其穩(wěn)定性和實(shí)時(shí)性,以使其能更適應(yīng)實(shí)際的電力應(yīng)用領(lǐng)域。
評(píng)論