摘 要:通過分析和研究大規模網絡入侵檢測的特點,采用規劃知識圖描述入侵者的攻擊意圖,在此基礎上提出了基于多Agent聯盟的大規模網絡入侵檢測系統的結構框架。通過對入侵者的攻擊意圖和策略分析,提出了聯盟系統中多Agent的工作分配和通信協作的方法。
關鍵詞:網絡安全; 入侵檢測; 多Agent聯盟
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)06-0115-03
0 引言
隨著計算機網絡的快速發展和廣泛應用,網絡規模日益增大,對網絡惡意攻擊所造成的損失也越來越大。大規模網絡的特點是節點眾多,分支復雜,數據流量大,并且包含多個網段,存在著異構的網絡環境和應用平臺,如此復雜的網絡環境必然導致入侵檢測的復雜性。另外,網絡入侵工具的日益智能化和復雜化也為入侵檢測帶來了很大的困難。最初的網絡入侵者一次攻擊中一般只采用一種攻擊手段。隨著網絡防范技術的進步和多重化,使得攻擊的難度增加。現在的入侵者在實施攻擊時往往同時采用多種入侵手段,以保證入侵的成功。這樣做還可以在攻擊實施的初期掩蓋攻擊的真實目的,使檢測攻擊的難度越來越大。大規模組合式、分布式入侵攻擊的檢測目前還沒有有效的方法和成熟的解決方案。
大規模網絡入侵有六大特點:
①廣泛分布的異構網絡環境;
②包含大量有噪聲和快速變化的數據;
③提供制定決策的信息不完整;
④需要探測的數據類型繁多;
⑤通信、協作控制困難;
⑥不斷變化的攻擊模式。
針對以上所列出的大規模網絡入侵的特點,智能化、分布式監視大規模網絡入侵的技術是當前入侵檢測領域研究的熱點。普度大學的COAST研究小組提出了分布式體系結構來研究入侵檢測問題,這種結構的優勢在于它的規模、高效、容錯性和易配置性[1]。University of California at Davis提出基于圖的入侵檢測系統(GrIDS)[2],其設計目標是檢測對網絡系統的大規模自動攻擊,通過行為圖描述了各主機之間的網絡行為,并通過聚合類似的入侵行為,報警或采取相應的措施。SRI International公司設計了EMERALD[3](Event Monitoring Enabling Response to Anomalous Live Disturbances)。該系統是一個用來檢測和追蹤大型網絡上的惡意行為的分布式工具套件。
1 入侵的基本攻擊過程分析
一般而言,入侵攻擊的邏輯步驟如下:
(1)使用網絡主機掃描工具確定目標主機的位置及一些基本信息;
(2)利用軟件漏洞進行攻擊,取得登錄賬號;
(3)提升賬號權利,獲得對主機的完全控制;
(4)清理現場,刪除攻擊痕跡;
(5)利用受害主機攻擊其他系統。
入侵一個系統可能有多種方法,但往往都是通過上述邏輯步驟或不同的工具軟件來達到其攻擊目的。入侵者的每一步攻擊可能使用不同的攻擊工具,并針對不同的主機系統,其方法和目的也會隨著入侵的進度有所改變。因此,在這些攻擊步驟中攻擊工具的不同組合就構成了一個很大的集合,使入侵檢測系統難以識別。由于使用單獨的步驟或工具很難達到入侵者的攻擊目的,入侵者通常會謹慎地采用一系列的邏輯步驟和工具來試探目標系統的環境,并利用漏洞進行攻擊。研究這一系列的邏輯步驟和工具的使用可以提示人們預先發現入侵者的異常行為和動機。
2 入侵者攻擊意圖的分析及描述[4]
為了能對入侵者的攻擊意圖進行描述,筆者采用了規劃識別知識圖方法。規劃識別知識圖[5]是一個非循環的與或圖,該與或圖由節點的集合組成。節點代表規劃(事件)。節點間均用連接符連接,用來表示一個父節點和它的一組后繼節點。每一個K-連接符表示從一個父節點指向其K個后繼節點。規劃知識圖的節點分為兩類,即與節點和或節點。每一個節點是與節點還是或節點是相對于其父節點而言的。具體地說,如果一個父節點的后繼是此父節點的具體化,這些具體化節點稱為或節點;如果一個父節點的后繼是一組“組成部分節點”,即此父節點與其后繼節點之間是整體與部分的關系時,這些組成部分節點稱為與節點,在圖中用圓弧標出。另外,由于網絡攻擊往往有一定的邏輯攻擊步驟,本文采用整數標記時間片的方法來表示規劃的各組成部分在規劃中出現的先后順序。為每個事件規定一個時間片,是為了進行時序的約束檢查。規劃知識圖的節點表示如圖1所示。
圖1 規劃知識圖的節點表示
在圖2所示入侵的規劃知識圖中,最上層節點代表入侵者的最終目標,低一層的節點代表為獲取上層節點或高一級目標而可選擇的子目標。葉節點表示在不同的網絡環境下產生的事件或子目標的實例化。通過規劃知識圖底部葉節點的一條虛線代表一個可能的攻擊趨勢,將這條虛線稱之為入侵檢測線,如果有單個的入侵步驟或工具被證實就填充該節點。在大多數情況下,這條虛線是不完整的,它代表的是一種入侵發展的概率趨勢。在圖2中,節點x代表本地系統重新檢查該節點的存檔數據以證實是否發生了入侵并給予重點監控。圖3給出了一個早期描述Flooding/Spoofing序列的可能表示。
圖2 一種可能的入侵趨勢圖3 Flooding/Spoofing中可能的入侵趨勢
3 基于多Agent聯盟的入侵檢測體系結構
通過對大規模網絡攻擊意圖的分析和描述,筆者建立了基于多Agent聯盟的分布開放式入侵檢測與響應架構,如圖4所示。該架構利用入侵者的攻擊意圖可驅動多個IDS進行通信協作,共同完成對入侵攻擊的預測。另外,由于現有的入侵檢測系統存在系統的互操作以及再利用問題,故采用Agent聯盟的形式可以有效地利用網絡資源,而且便于擴充。基于多Agent聯盟分布式入侵檢測與響應的系統由全局Agent和多個協調Agent構成,每個協調Agent負責本地自治IDS的攻擊意圖檢測。
在該Agent聯盟結構中,全局Agent執行意圖分析,預測入侵趨勢并制定決策策略;本地自治IDS的Agent執行對攻擊意圖的檢測,并報告給全局Agent。全局Agent根據本地Agent的報告確定規劃知識圖中的入侵檢測線,并對有疑問的節點給其本地Agent發布命令(如圖2中的x節點),由其本地Agent預先審計可能有問題的節點。這樣通過對入侵者的攻擊意圖分析,IDS的Agent便可在策略層上對攻擊進行識別。在這個層面上,攻擊的特征是由一系列邏輯相關的攻擊步驟——子目標來實現。這些子目標并非必要和完整的,每一個子目標代表的是在形成入侵期間需要完成的一種發展趨勢。這樣,入侵檢測系統的任務除了密切監視系統的破壞外,還可嘗試去識別這些子目標的目標及其發展趨勢。
圖4 大規模入侵監測系統中的Agent聯盟結構
大規模的網絡入侵通常呈現出多種形式,并且可能是來自異構平臺事件的組合。為了對具體目標的形式進行具體化,用理解本地事件格式的本地自治IDS的Agent,監視本地環境,檢驗本地上下文的信息,并匯報給全局Agent來作出決策。這樣,由于本地IDS的Agent可以很好地進行判斷和過濾噪聲數據,高信噪比的數據對入侵檢測的影響將會降低。
通過基于全局入侵檢測系統給定的入侵檢測線,大規模網絡入侵檢測系統中的Agent攜帶有入侵者的攻擊意圖,并根據對攻擊意圖的懷疑進行協商通信。這樣,各IDS的本地Agent就可以根據入侵檢測線來預測可能的攻擊,并精調自身系統的審計程序來預先查看相關的數據。如果證實有入侵發生,則報告給全局Agent。全局Agent接到報告后,融入這種新發現的知識,重新評估攻擊者的策略并發布下一步的命令,指示本地Agent繼續觀察數據和關注其入侵的最新進展。由于本地IDS將證實的子目標匯報給全局Agent,全局Agent可以從策略層上識別攻擊而不是去嘗試弄清大量的與本地數據有關的細節。對于全局入侵檢測系統Agent,數據噪聲對策略的制定不會產生較大的影響。
4 多Agent聯盟大規模網絡入侵檢測系統通信協商框架
筆者根據基于Agent聯盟的大規模入侵檢測系統的功能要求,建立了基于Internet/Intranet的分布式入侵檢測的Agent通信和協商結構框架,如圖5所示。
該框架中采用模塊框架構造方法,通過Internet/Intranet網,由網上各智能節點Agent組合而成,具有很好的可擴展性和通用性。其中,MA(Manager Agent)是Agent聯盟通信協商框架結構的核心,它負責調度和管理整個問題的解決過程。MA和各協調Agent間按知識語言KL中的協作交互語法和語義要求進行信息交換。
圖5 基于多Agent聯盟的通信協商框架
各子網中的每臺機器中均駐留一個主機監測Agent,以負責對相應機器注冊表內容進行變動和對系統目錄下文件(數目和內容)的變動情況進行監視;同時還在子網中設置一臺獨立機器,其上駐留一個協調Agent負責接收來自各主機監測Agent的個體決策和相關證據,并匯報給全局Agent;同時協調Agent負責將全局Agent下達的命令轉發給子網中的各主機Agent,由相應的子網主機預先審計本機的上下文信息。
為實現基于多Agent聯盟的大規模網絡入侵檢測系統問題求解的任務分配和協作交互,MA中除含有構成Agent的必要組成內容外,還將其DS的黑板劃分成具有一定的數據結構和控制結構的MS、AS、AI三個區:
(1) MS區(消息管理區) 存放各本地Agent發送給MA的異常入侵消息、各Agent的狀態信息及全局Agent發布的命令信息。
(2) AS區(任務分配區) 給Agent分配相應的任務,根據MS中全局Agent發布的命令信息給本地Agent分配任務。 (3) AI區(智能推理區) 存放各Agent的位置、網絡結構、檢測方式等信息,供MA分配任務時使用。AI區根據MS區Agent發來的消息和推理機來制定入侵檢測線。AI中信息來自于Agent的中心數據庫,當修改和增加Agent時,AI信息需要進行更新。
4.1 基于聯盟結構的多Agent通信與協作交互
在基于多Agent聯盟結構的大規模入侵檢測系統中,多Agent之間的協作主要通過全局Agent與本地協調Agent、本地協調Agent和各子網內部的Agent的通信來完成,其采用消息機制來實現。有兩種消息通信方式,即點對點方式和組廣播方式。每個消息都是一個六元組〈 From, to, msgType, replyWith, replyTo, msgContent〉。其中From是消息的發送者;To是消息的接收者,接收者可以是一個Agent,也可以是一組Agent;msgType是消息的類型;replyWith,當該消息項不為空時,表明該消息是需要應答的,當消息的接收者收到本消息后,需要應答,應答消息的replyTo和replyWith相同;replyTo,該項表明本消息是針對前一次消息replyWith的應答;msgContent的消息內容具體含義由消息的接收者根據消息的類型和相互的約定進行解釋。
消息的類型及內容與聯盟組織結構、Agent的功能、IDS的結構是緊密相關的。根據IDS系統中的需求,可以設計多種消息及相應的消息內容。通用消息可分為以下幾大類:
(1)聲明消息(Offer Message)。用于提供一個本地IDS所能提供的數據和服務類型,也向全局Agent提供任何可疑的事件。
(2)通知消息(Inform Message)。用于報告本地IDS的狀態,通知緊急狀態的出現。
(3)請求消息(Request Message)。需要消息的接收者應答數據消息,用于全局Agent給本地Agent發布對可疑事件觀察和證實的命令,或要求本地Agent提供具體懷疑事件的數據。
(4)應答消息(Reply Message)。對應請求數據消息的回答,用于本地Agent向全局Agent匯報具體的事件。
5 結束語
本文通過分析和研究大規模網絡入侵檢測的特點,采用規劃知識圖的方法來描述入侵者的攻擊意圖;在對攻擊者意圖分析的基礎上,確定大規模網絡入侵檢測的方法和系統的體系結構,提出了基于多Agent聯盟的大規模網絡入侵檢測系統的結構和框架,具有一定的通用性和可擴展性。通過對入侵者的攻擊意圖和策略的分析,確定了在大規模網絡入侵檢測系統中,采用基于攻擊意圖驅動各種IDS中的Agent進行協同工作的方法。這種方法可以有效過濾噪聲數據,減輕各種誘騙產生的誤導數據。最后對大規模網絡體系結構中多Agent聯盟協商通信的機制進行了初步的探索,下一步工作將側重于多Agent交互語言體系等方面的研究。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。