摘要:本文簡單介紹了移動Agent和入侵檢測系統,介紹了基于移動Agent的入侵檢測模型,最后提出了一些移動Agent入侵檢測系統還存在的一些問題。
關鍵詞:Agent;移動Agent;入侵檢測系統
一、背景
網絡和電子商務已經成為企業制勝的必由之路,越來越多的政府、公司或個人將自己的關鍵業務置于網絡之上,并取得了卓越的成績。然而,高度發達的網絡也帶來了高風險,網絡安全成為一個非常重要的問題。防范網絡攻擊最常用的方法就是防火墻,利用防火墻技術,經過仔細的配置,通常能夠在內外網之間提供安全的網絡保護,降低網絡安全的風險。但防火墻并不是萬能的,因為首先入侵者可以尋找防火墻背后可能敞開的后門;其次防火墻完全不能阻止內部襲擊,對于企業內部心懷不滿的員工來說防火墻形同虛設;第三,由于性能的限制,防火墻通常不能提供實時的入侵檢測能力;另外,防火墻對于病毒也是束手無策的。
入侵檢測系統(IDS)是近年出現的新型網絡安全技術,如果系統遭到攻擊,IDS可以盡可能地檢測到,甚至是實時地檢測到,然后采取恰當的處理措施。它可以彌補防火墻的不足,為網絡安全提供實時的入侵檢測及采取相應的防護手段,如記錄證據用于跟蹤和恢復、斷開網絡連接等。
移動Agent是一種自治的軟件實體,在需要時能夠被主動或被動地從一個網絡節點遷移到另一個網絡節點。它能夠在任意點中斷執行,把自己傳輸到另一臺計算機,在新的計算機上再從開始中斷的地方繼續執行。
將移動Agent引AIDS能夠克服一些傳統IDS所固有的缺點,帶來更好的效率和效益。
二、移動Agent
Wooldridge和Jennings將Agent定義為:它是處在某個環境中的計算機系統,這個系統有能力在它所處的環境中自主行動以實現其設計目標。移動Agent是能通過計算機網絡傳輸自身(它們的程序和狀態)并在遠程地點重新啟動執行的一類Agent,實際上它是Agent技術與分布式計算技術的混血兒。傳統的RPC客戶和服務期間的交互需要連續的通信支持,而移動Agent可以遷移到服務器上,與之進行本地高速通信,這種本地通信不再占用網絡資源。移動Agent遷移的內容包括其代碼也包括其運行狀態,只有這樣才能保證它在遠程計算機上繼續執行中斷的代碼。
移動Agent系統由移動Agent和移動Agent服務器兩部分組成。如下圖所示,移動Agent體系結構可定義為以下相互關聯的模塊:安全Agent、環境交互模塊、任務求解模塊、知識庫、內部狀態集、約束條件和路由策略。
最外層是安全Agent,它是移動Agent與外界通信的中介,執行移動Agent的安全策略,組織外界環境對移動Agent的非法訪問。移動Agent通過環境交互模塊感知外部環境并作用于外部環境。路由策略決定移動Agent的移動路徑,路由策略可能是靜態的服務器列表(適用于簡單、明確的任務求解過程)或者是基于規則的動態路由以滿足復雜和非確定性任務的求解。
三、傳統入侵檢測系統
入侵檢測是在1980年由James Anderson首先提出的,但直到1987年,Denning提出了一個經典的異常檢測模型,才首次將入侵檢測作為一種計算機系統安全的防御措施提出,在1988年提出了IDES(IntrusionDetection Expert System),MIDAS(MulticsIntrusion Detection and Alerting System)等入侵檢測模型,在1990年提出了NSM(Network Security Monitor)。目前,許多入侵檢測系統是基于Denning的入侵檢測模型,在這一模型中,將審計記錄、網絡包以及任何其它可觀察到的活動作為檢測系統中非正常操作的根據,并且使用跟蹤和與已知攻擊方式進行比較的方法來進行檢測,具體實現時,這種模型可以分為異常入侵檢測(Anomaly Detection)與誤用入侵檢測(Misuse Detection)兩類。
異常入侵檢測記錄用戶在系統上的活動,并且根據這些記錄創建活動的統計報告。如果報告表明它與正常用戶的使用有明顯的不同,那么檢測系統就會將這樣的活動視為入侵。
誤用入侵檢測是事先對已知的入侵方式進行定義,并且將這些方式寫進系統中,將網絡上檢測到的攻擊與系統定義的已知入侵方式進行對比,如果兩者相同,則認為發生了入侵。
必須承認,這種傳統模型及其工具在早期是起了很大的作用的,但是隨著時間的推移,人們越來越發現這些傳統入侵模型的缺陷。
效率不高:入侵檢測系統經常需要實時地對事件進行評估,但當今的網絡都面臨著為數甚為龐大的事件,要處理這些事件是很困難的。
誤報率很高:改善入侵檢測系統檢測攻擊的準確率是現在入侵檢測研究的首要問題。高誤報率增加了系統負擔,使系統的處理效率低下,而且給管理員帶來了不必要的麻煩。
系統維護困難:維護入侵檢測系統需要有專業知識,并且要付出大量的努力。例如,升級規則集需要充分了解專家系統和表示規則集所用的語言。
缺少靈活性:一般入侵檢測系統是為特定的系統環境編寫,難移植到其他環境。
響應能力欠缺:傳統的IDS更重視對攻擊的檢測而不是響應。當檢測到一個攻擊時,通常情況下系統管理員無法及時分析來自IDS的警告并采取合適的行動。這給攻擊者在管理員采取相應的行動之前有了一個隨意操作的機會。
缺乏可擴展性和自適應性:IDS需要有可擴展性來與新的模塊配合工作。而且IDS也必須能夠經常自我更新,以檢測新的入侵模式。此外,通常情況下一個IDS是為某個特殊環境編寫的,事實證明很難適用于具有相似策略和關注事項的其它環境。
四、基于移動Agent的入侵檢測系統
在傳統的網絡入侵檢測系統中,每個目標系統都將它的系統日志傳送給入侵檢測服務器,由服務器分析整個日志,判斷是否發生了入侵。這種方法在如今的網絡環境下已經無法有效地工作。因為在一個部署有入侵檢測系統的大網絡中,網絡通信量將是極高的,日常傳輸的系統日志的數據量也非常驚人,但這些數據中絕大多數與入侵無關。因此,在大網絡中,這類入侵檢測系統執行效率很低,浪費了大量的網絡和系統資源。
基于移動Agent的入侵檢測系統將大大減少系統的通信負載,并且能夠檢測到新的或未知形式的攻擊。移動Agent將自動遷移到目標系統中去,收集只與入侵有關的信息,這樣就不再需要將系統日志傳輸給服務器,極大地提高了工作效率。它使用MLSI(Mark Left by Suspected Intruder)來表示由可疑的入侵者留下的痕跡,并且通過觀察可能與入侵有關的事件而不是所有的用戶活動來實現檢測。如果發現了MLSI,那么將收集與MLSI有關的信息,分析這些信息并且決定是否發生了入侵。
如下圖所示,基于移動Agent的入侵檢測系統由一個中介Agent、多個監控器、系統信息庫、信息庫、跟蹤Agent和信息收集Agent等組成。
(1)中介Agent
中介Agent分析信息收集Agent收集到的信息,并且判斷是否發生了入侵。它管理跟蹤Agent和系統信息庫,并且為管理員和系統之間的對話提供一個接口。中介Agent積累和評估分派出的信息收集Agent收集的各種信息,如果這些信息超過了一定的預設值,那么中介Agent就認為發生了入侵,中介Agent駐留在每一個網絡段上。
(2)監控器
監控器出現在每一個目標系統中,它通過監視信息庫中的系統日志來尋找MLSI,如果監控器發現了MLSI,那么它會將這個發現報告給中介Agent,監控器還可以報告MLSI的類型。
(3)跟蹤Agent
跟蹤Agent跟蹤入侵的路徑,并且確定它的起始點,即入侵用戶留下被目標主機日志記載的MLSI的地方。中介Agent、監控器和跟蹤Agent以下列方式協同工作:首先,監控器檢測到一個MLSI,并將其報告給中介Agent;中介Agent利用ATP(AgentTransfer Protocol)協議分派一個跟蹤Agent到目標系統上,跟蹤Agent自動在每臺機器之間進行遷移,并不需要中介Agent獨立跟蹤入侵。當某一個目標系統在短時間內被發現有多個MLSI時,中介Agent將分派多個跟蹤Agent到目標系統中收集所有的MLSI信息。單獨的一個跟蹤Agent不會對入侵做出判斷,也無法決定是否發生了入侵,多個跟蹤Agent結合起來才能夠供中介Agent做出判斷。由于跟蹤Agent可以轉移到安裝了Agent執行環境的任何系統中,因此它能夠智能地進行入侵路由跟蹤。
(4)信息收集Agent
信息收集Agent是移動的,它收集目標系統中與MLSI相關的信息。每當一個調查入侵者的跟蹤Agent被分派到目標系統中時,它會激活駐留在這個系統中的信息收集Agent;信息收集Agent根據MLSI的類型收集相關信息,并將結果返回給中介Agent。如果跟蹤Agent轉移到另一個目標系統中,那么它將激活駐留在這個目標系統中的信息收集Agent,這個信息收集Agent將收集這個目標系統上的信息。同一個目標系統上的多個不同的跟蹤Agent可以激活多個信息收集Agent。
(5)系統信息庫和信息庫
系統信息庫位于中介Agent機器上,并且被用于記錄從目標系統中收集到的信息,以及將收集到的有關每個跟蹤路由的信息集成起來。信息庫出現在每一個目標系統中,用于存放系統日志。從監控器檢測到目標系統上的MLSI到發現入侵點,其工作流程如下:
目標系統上的每個監控器從系統日志中尋找MLSI。
如果監控器檢測到MLSI,那么將會把它報告給中介Agent。
中介Agent給被檢測到MLSI的目標系統分派一個跟蹤Agent。
跟蹤Agent到達目標系統并且激活一個駐留在該系統中的信息收集Agent。
信息收集Agent收集與目標系統上的MLSI相關的信息。
在激活信息收集Agent以后,跟蹤Agent調查MLSI的起始點,以便判別用戶最初是從哪里發起攻擊的。跟蹤Agent可以利用中介Agent事先積累的有關網絡連接和在系統上運行的進程等數據推斷這些知識。
在收集信息以后,信息收集Agent將獨立于跟蹤Agent,向中介Agent返回報告,并且在系統信息庫上公布收集到的信息。
跟蹤Agent轉移到跟蹤路由上的另一個目標系統中,并且激活一個新的信息收集Agent。
如果跟蹤Agent到達入侵路山的起點,或者不能再轉移到任何其它地方,或者如果其它的跟蹤Agent已經到達了它將要到達的路由,那么它將返回到中介Agent。
當監控器檢測到在同一個目標系統中短時間內發現多個MLSI,或者如果監控器在許多目標系統中檢測到多個MLSI時,中介Agent將對所有的MLSI分派跟蹤Agent,并且按上面講的工作過程進行跟蹤。
4基于移動Agent的入侵檢測系統的優缺點
把移動Agent技術應用到入侵檢測系統中,可以解決入侵檢測系統中許多現存的問題。只需在每個被監視的主機、網絡設備裝上移動Agent下臺和裝有Java解釋器的Web瀏覽器,不像目前的入侵檢測系統,需要在每臺主機和網絡設備都裝上昂貴的入侵檢測系統。它的主要優點如下:
克服網絡延遲:它可以對入侵行為作實時響應。
減輕網絡負載:移動Agent入侵檢測系統采用分層結構,可以減少在網絡中傳遞的數據。
能異步自主地運行:由于中央控制器在入侵檢測系統的重要作用,它很容易成為攻擊的目標,成為瓶頸或單一失效點?;谝苿覣gent的入侵檢測系統在中央控制器失效或通信鏈路失效時,它仍可以繼續工作。
可以動態配置:移動Agent可以在網絡環境中動態分配,使網絡環境達到最佳配置。
支持平臺獨立性:移動Agent通常是獨立于計算機和傳輸層,而僅僅依賴于其運行環境。移動Agent為不同系統提供無縫系統集成的最優條件。
健壯性和容錯能力:移動Agent具有對非預期狀態和事件的應變能力,這使我們更容易創建健壯性和容錯性好的分布式系統。
可擴展性:移動Agent入侵檢測系統是一個具有高度可擴展性的系統。當向所監視的網絡中增加一些新的節點,它只需復制Agent,然后派遣到新增加的節點。它也可以動態升級,這對入侵檢測系統,特別是誤用入侵檢測系統,可以使入侵檢測保持最新的規則庫和最新的檢測算法。當有新的攻擊或新的檢測算法時,它不需要對整個系統修改或重新安裝,只需要寫相關最新檢測Agent,把它派遣到相關網絡節點即可,且不需要使入侵檢測系統停止運行。
在具有上述眾多優點的同時,基于移動Agent的入侵檢測系統也存在著一些缺點:
安全問題:使用移動Agent最明顯的缺點是把安全隱患引進網絡中,這是阻礙移動Agent技術廣泛使用的主要問題。
性能:入侵檢測系統面臨的最具有挑戰性的問題是識別心懷惡意的行為的速度。入侵檢測系統不僅僅需要快速檢測攻擊,也必須實時地處理這些系統事件。這種情況隨著網絡帶寬的加大,問題變得更加嚴重。移動Agent軟件一般將妨礙,而不是加速入侵檢測系統處理事件和檢測攻擊。
代碼規模:入侵檢測系統是一個復雜的軟件,執行入侵檢測服務的Agent包含大量代碼,如果這些代碼能在不同的操作系統上執行特殊的任務,這些代碼可能較大,這樣的Agent將限制IDS的功能,因為在不同的主機上傳送Agent需要很長時間,另外,這樣的傳送需要很火的計算和網絡資源。
知識庫的缺乏:大型企業網絡一般是由許多不同的硬件平臺組成的,運行不同的操作系統,每個系統有不同的配置和運行不同的應用程序。對移動Agent來說,對一個系統如何配置、數據是如何分類的做預先了解是很重要的。
開發代碼困難:移動Agent的開發具有軟件開發通常的軟件工程方法問題。而移動Agent比非移動Agent更復雜,這使設計和開發過程變得更加復雜,從而導致代碼的開發更加困難。
五、結束語
基于移動Agent技術的入侵檢測系統同傳統的入侵檢測系統相比,雖然有許多優點,但由于起步晚,還有許多需要進一步研究的領域。如追蹤攻擊者、收集攻擊信息和正劇、建立靈活的響應機制、路由策略和網絡安全策略。隨著移動Agent技術的發展,將會有越來越完善的基于移動Agent技術的入侵檢測系統產品出現。