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