郭廣豐 馬占飛
(內蒙古科技大學包頭師范學院 內蒙古 包頭 014030)
?
基于Multi-Agent和本體的分布式入侵檢測系統研究
郭廣豐馬占飛
(內蒙古科技大學包頭師范學院內蒙古 包頭 014030)
摘要入侵檢測系統IDS(Intrusion Detection System)經歷了近三十年的發展,虛警率高等問題一直困擾著用戶,其原因可以部分歸結為知識表示能力不足和IDS缺少協同工作。針對上述問題,融合Agent和本體技術,在此基礎上建立相應的入侵檢測本體知識庫,提出一種基于Multi-Agent和本體的分布式IDS系統。該系統采用以本體為核心的多層次、分布式體系結構,從功能上分為探測器層、協同分析器層、知識管理層,從結構上由知識管理Agent、主機入侵檢測Agent、網絡入侵檢測Agent、日志入侵檢測Agent以及其他入侵檢測Agent組成。各入侵檢測Agent間協作采用合同網模型和熟人模型的協作算法。經過實驗分析驗證,該系統一方面提高了各檢測器的協同工作能力,降低了虛警率,另一方面可以大大減少各檢測器的通信量,提高了其協作效率。
關鍵詞入侵檢測系統Multi-Agent本體協作算法合同網熟人模型
RESEARCH ON DISTRIBUTED INTRUSION DETECTION SYSTEM BASED ON MULTI-AGENT AND ONTOLOGY
Guo GuangfengMa Zhanfei
(Baotou Teachers College,Inner Mongolia University of Science and Technology,Baotou 014030, Inner Mongolia, China)
AbstractIntrusion detection system (IDS) has been experienced about 30 years,but some problems such as the high false positive rate have always been plaguing its users with the cause being partially attributed to the deficiency of knowledge representation and the IDS lacking collaborated works. In view of above questions,the paper proposes a Multi-Agent and ontology-based distributed IDS by integrating Agent with ontology technology,and on that basis constructing the corresponding knowledge base of intrusion detection ontology. The system adopts multi-level and distributed architecture with the ontology as core,and functionally it can be divided into three levels: probes,collaborative analysers and knowledge management,and structurally it consists of the Agents for knowledge management,host intrusion detection,network intrusion detection,log intrusion detection,and other intrusion detection Agents. The collaboration between Agents uses the collaboration algorithm combining the contract net model and the acquaintance coalition model. It is verified through experimental analysis that on the one hand this system improves the interoperability of each detector and reduces false positives; on the other hand it is able to greatly cut down the traffic of communication between detectors and raises the efficiency of collaboration.
KeywordsIntrusion detection systemMulti-AgentOntologyCollaboration algorithmContract netAcquaintance coalition model
0引言
自從入侵檢測的概念在20世紀80年代中期引入以來[1],入侵檢測系統IDS經歷了近三十年的發展,虛警率高等問題一直困擾著用戶。IDS部署后,每天產生大量的報警,其中有許多錯誤報警,運維人員疲于應付大量無效報警,報警信息嚴重過載,而對系統構成嚴重威脅的攻擊淹沒在大量報警信息中,容易被運維人員忽略。入侵檢測系統虛警率高的原因可以部分歸結為知識表示能力不足和IDS缺少協同工作[2,3]。
本體是一種知識表示技術,通過對概念的嚴格定義和概念之間的關系來確定概念之間的精確含義,表示共同認可的、可共享的知識[4]。本體技術近年來得到了長足的發展,在以邏輯描述語言為基礎的本體描述語言支持下,本體對特定領域中的概念間相互關系的表示能力得到充分發揮,被應用于很多研究領域[5-7],入侵檢測方面的研究人員也開始關注本體。Victor Raskin等人于2001年對本體在信息安全領域的可用性進行了研究,指出了本體可以將入侵事件的所有表象系統化并組織起來,從而可以大量減少所需描述的特征,提高入侵檢測系統的效率[8]。Jeffrey Undercoffe等人于2002年對本體在入侵檢測中的應用進行研究,但他建立本體時未考慮入侵響應問題,也沒有提出相應的入侵檢測模型[9]。李萬提出了一種擴展的語義Web規則語言XSWRL,提出了一種層次化混合型報警關聯知識模型并基于XSWRL做了實現[10]。
Agent具有自主性等特征,Multi-Agent技術為解決入侵檢測系統的分布式問題提供了有效的方法[11,12]。鑒于上述研究,本文提出一種基于Multi-Agent和本體的分布式IDS系統,并建立相應的入侵檢測本體知識庫,在此基礎上開發基于本體的入侵檢測系統,以解決現有IDS虛警率高及協同工作能力弱等問題。
1本體知識庫的構建
本體的引入為網絡安全方面的知識表示和知識共享提供了新的研究方法。基于本體的解決問題方法屬于知識工程范疇,需要大量領域知識來解決問題。本文在文獻[10]的基礎上,增加Agent協作本體,從攻擊模式、系統脆弱性、IT資產信息、Agent協作四個方面建模,其框架如圖1所示。

圖1 入侵檢測本體框架
入侵檢測本體中基本的類有協作信息(Collaboration)、攻擊(Attack)、IT資產(Assert)、脆弱性或漏洞(Vulnerabilities)、IT資產系統狀態(AssertState)、協作任務(Task)、報警融合及檢測Agent (Agent)、主機操作系統(OS)、主機進程(Process)等。其中:
? IT資產有兩個子類:網絡資產(NetworkAssert)、主機資產(HostAssert);
? IT資產系統狀態有兩個子類:網絡狀態(NetworktState)、主機狀態(HostState);
? 脆弱性或漏洞有兩個子類:網絡資產脆弱性(NetworktVulnerabilities)、主機脆弱性(HostVulnerabilities)。
它們之間有如下關系:
? IT資產系統狀態是攻擊本體的前提條件(preCoditon)或后續狀態(consequentState);
? IT資產是攻擊本體的攻擊對象(attackObject),IT資產系統狀態是IT資產的系統狀態(isStateOf);
? IT資產有脆弱性或漏洞(hasVulnerability);
? 協作本體(Collaboration)包含一個或多個任務(hasTask),每個任務有參與協作的Agent類型(askAgent)和需要向參與協作Agent查詢的某IT資產的各種狀態(askState);
? 攻擊行為之間存在整體-部分關系(hasPart)、前后關系(preAttack),用于報警信息的融合。
入侵攻擊利用系統的脆弱性,采用相應的方法入侵網絡設備、主機等IT資產對象,以達到攻擊目的。IT資產信息引入知識庫,根據其信息可以過濾掉指向無效IP或無效設備的攻擊,另外區分不同IT資產對象的安全級別,對安全級別要求高的對象優先檢測。引入IT資產系統狀態,作為攻擊行為的前提條件和后續狀態,進一步判定攻擊報警是否可信,可大大降低入侵檢測的虛警率。Agent協作本體的引入,實現了對協作檢測的刻畫,可大大提高Agent協作的效率和協作檢測的可信度。
2基于Multi-Agent和本體的IDS系統
在構建本體知識庫的基礎上,本文提出了基于Multi-Agent和本體的IDS系統(MAOIDS),其系統結構如圖2所示。

圖2 基于Multi-Agent和本體的IDS系統結構
該系統模型采用以本體為核心的多層次、分布式入侵檢測結構,其從功能上分為三層,即探測器層、協同分析器層、知識管理層;結構上是由知識管理Agent、主機入侵檢測Agent、網絡入侵檢測Agent、日志入侵檢測Agent以及其他入侵檢測Agent組成。
2.1功能模塊分析
各層的功能如下:
1) 探測器層
該層提供多種類型的探測器,分別從網絡、主機及其他設備收集原始數據。
2) 協同分析器層
該層為每一個探測器提供相應的分析器,每個分析器可以根據本體的知識,識別入侵行為,在需要時向其它分析器發送協同分析命令。每個協同檢測器與其相應的探測器組成一個入侵檢測Agent,如主機探測器與主機協同分析器組成主機入侵檢測Agent。每個協同分析器有局部本體知識庫,可獨立完成檢測任務,也可以與其他入侵檢測Agent協同工作。入侵檢測Agent可根據管理探測器的不同,自動將全局入侵檢測本體知識庫的相關數據緩存到本地,形成屬于自己的局部本體知識庫,減少大量的通信負擔。
3) 知識管理層
該層一方面維護本體知識庫,保持本體知識的一致性;另一方面,檢測到攻擊時進行報警,并采取相應的響應措施。該層包括知識庫更新組件、黑板、報警融合組件和報警控制臺,其中知識庫更新組件用于管理員維護和更新入侵檢測本體知識庫;黑板主要用于多個檢測器的協作,存放各Agent訪問地址、報警消息列表以及協作所需的數據;報警融合組件主要進行報警信息的合并;報警控制臺提供與網絡管理員的用戶接口,在屏幕上輸出報警或發送報警郵件等。由知識庫更新組件、黑板、報警融合組件和報警控制臺組成的知識管理Agent,完成協作數據轉發、報警融合、入侵檢測本體知識庫維護等功能。
2.2組織結構分析
基于Multi-Agent和本體的IDS系統由知識管理Agent和各類入侵檢測Agent組成。知識管理Agent充當Agent管理者的角色,維護著全局的入侵檢測本體知識庫,并提供了與管理員交互的接口。各類入侵檢測Agent,啟動時在知識管理Agent中注冊,并從其下載全局入侵檢測本體知識庫的相關數據到本地。下載知識庫后,各類入侵檢測Agent開始獨立工作,其探測器或收集器收集原始數據,其分析器根據本地的入侵檢測本體知識庫識別攻擊行為;當遇到復雜的檢測任務時,向其他入侵檢測Agent發起協作任務,根據一定的協作算法(見2.3節),共同完成檢測任務;檢測完成后,將確認后的報警信息發送給知識管理Agent。知識管理Agent中的報警融合組件對報警信息再次分析,合并有共同特征的報警,然后通過報警控制臺反饋給管理員。
2.3各入侵檢測Agent間協作
各入侵檢測Agent可獨立工作,處理復雜的檢測任務需與其它入侵檢測Agent協同工作。Agent之間采用FIPA ACL[13]規范進行消息傳遞,其content字段的內容使用OWL2[14]描述的本體格式填充,實現各Agent間數據及語義信息的交換。本文針對入侵檢測系統的特點,提出了合同網模型和熟人模型相結合的協商算法。
2.3.1合同網模型和熟人模型相結合的協商過程
多Agent任務協作需要經歷3個階段:任務分配、問題求解和結果評價。具體協商過程由發起協商的Agent發出任務,其余的Agent進行投標,針對每個任務確定一個中標Agent,由它執行該任務,并把執行結果反饋給發起協商的Agent,發起協商的Agent對執行結果進行評價。協商過程定義為一個四元組:。
A:所有IDS中Agent的集合,包含兩類角色:招標方是發起協商的Agent,投標方是參與協作的Agent;
T:需要協作完成的任務的集合;
Time:協商發起的時間;
Process:本文約定的協作過程,其過程如圖3所示。
1) 招標準備
招標方如果需要協作的任務,需把任務分解為原子任務T={t1,t2,…,tj,…,tn}(即可由一個Agent完成的任務),每個原子任務作為一個招標項目。
2) 發布招標公告

3) 投標
收到招標公告后,參與協作的Agent(記為Am)根據自己的處理能力進行自我評價,如果能力允許向招標方Ap發送投標信息(即投標書)。
4) 評標
招標方Ap收到投標書后,使用中標決策函數給每位投標方打分,選取得分最高的Agent為中標者,向其發送中標公告并簽訂合同。
5) 任務執行
中標Agent根據合同中約定的內容執行相應的任務。
6) 驗收
中標Agent任務執行完后,將結果反饋給招標方Ap,Ap對結果進行評價。
2.3.2熟人集評估
在圖3所示的發布招標公告階段,首先要針對當前任務tj進行熟人集評估。根據評估的情況,確定向哪些Agent發布招標公告。

圖3 協作過程的活動圖

定義1將Ap委托Am完成任務tj的頻繁程度,即親密度定義為:
(1)


因此,在發布招標公告階段,引入熟人模型,將大大減少協商時間和信息流量,提高系統效率。
2.3.3投標、中標決策函數
在圖3所示的發布招標公告、投標及評標階段涉及的相關定義及公式如下:
1) 招標書
在發布招標公告階段中,進行熟人集評估后,招標公告以招標書的形式(見定義2)向其他Agent發布。
定義2招標書的格式如下:
Ann(tj)=
2) 投標決策
在投標階段,參與協作的Am收到招標書后,首先要進行自我評價,根據自己的能力,選擇一部分協作任務投標。Am可能收到多個招標信息后,將任務按其優先級α從大到小組成一個隊列,依次估算每個任務的執行時間ET(tj)和預估tj執行時負載系數β,并判斷TA(tj)≦TA(Ao)ANDTO(tj)≦TO(Am)ANDET(tj) ≤MTANDβ≤E(最大負載系數)條件是否為真。如果條件成立發送投標書,發送后更新β,任務tj出隊列。當β>E時,本輪投標決策結束。
3) 投標書
在投標階段,進行投標決策后,參與協作的Am向發起協商的Ap發送投標書(見定義3)。
定義3投標書的格式如下:
Bid(tj)=
4) 中標決策函數
在評標階段階段,發起協商Ap收到投標書后,使用中標決策函數給每份投標書打分:
(2)
其中,APrice(Am,tj)表示對Am完成任務tj的評分值,K1和K2分別為執行效率評分和歷史業績評定的權重,ETm(tj) 表示投標書中Am承諾的任務tj的執行時間,MT(tj)表示招標書中任務tj的最大執行時間,P(Am)表示Am已完成任務的結果綜合評分。
3模型驗證及實驗數據分析
以“Code Red II”網絡蠕蟲病蟲的入侵檢測為例,在網絡安全實驗室機房進行了如下測試。
假設“Code Red II”蠕蟲病毒在服務器網段爆發,該網絡中部署了1個知識管理Agent、5個網絡入侵檢測Agent,并在15臺服務器上安裝了主機入侵檢測Agent組件,組成了基于Multi-Agent和本體的IDS系統(MAOIDS)。在進行實驗驗證時,將MAOIDS與Snort系統進行了比較和分析。
針對“Code Red II”網絡蠕蟲病毒傳播特征[15],建立了用OWL2描述的小規模本體知識庫,在入侵檢測本體框架的基礎上,增加RedCode2Attack類和Rule類,并根據“Code Red II”的特征,構建了網絡檢測器規則。
Declaration(Class(:Redcode2Attack))
SubClassOf(:Redcode2Attack:Attacks)
Declaration(NamedIndividual(:ruleRedCode2))
ClassAssertion(:DetectRule:ruleRedCode2)
ClassAssertion(:Redcode2Attack:ruleRedCode2)
DataPropertyAssertion(:rulestring:ruleRedCode2 "alert tcp any any ->$HOME_NET 80 (flags:PA; content:”/default.ida”; nocase; )"^^xsd:string)
在此基礎上,聲明2個IT資產系統狀態,其中hostState1用來表示主機有IIS進程,hostState2用來表示主機有IIS RedCode2漏洞。
Declaration(NamedIndividual(:hostState1))
ClassAssertion(:HostState:hostState1)
ObjectPropertyAssertion(:attributeObject:hostState1:IISProcess)
DataPropertyAssertion(:attributeName:hostState1 "hasProcess"^^xsd:string)
Declaration(NamedIndividual(:hostState2))
ClassAssertion(:HostState:hostState2)
ObjectPropertyAssertion(:attributeObject:hostState2:IISVulnerability)
DataPropertyAssertion(:attributeName:hostState2 "hasVulnerablility"^^xsd:string)
用于推理的Swrl[16]規則如下:
HostAssert(?y),Redcode2Attack(?x),hasState(?y,hostState1),hasState(?y,hostState2),destinationIP(?x,?a),ip(?y,?b),equal(?a,?b) -> attackConfirmState(?x," true"^^string)
HostAssert(?y),Redcode2Attack(?x),attackConfirmState(?x," true"^^string),destinationIP(?x,?a),ip(?y,?b),equal(?a,?b) -> attackObject(?x,?y)
檢測過程如下(以掃描192.168.1.1為例):
網絡入侵檢測Agent發現“Code Red II”蠕蟲病毒掃描了IP地址為192.168.1.1的這臺主機并觸發了相應的告警信息。首先查詢本地本體庫,判斷主機上是否運行有Microsoft IIS服務進程和有無IIS緩沖區溢出漏洞,網絡入侵檢測Agent發起協作,此任務的熟人集為空,先向知識管理Agent發送招標書,再由知識管理Agent向所有檢測Agent轉發此招標書;所有檢測Agent收到此招標書后,判斷是否有能力處理此任務;其中有一個主機監測器部署在192.168.1.1的這臺主機上,向網絡監測器Agent發送投標書,網絡入侵檢測Agent收到投標書后,綜合評定,確定該主機入侵檢測Agent為中標者。該主機入侵檢測Agent根據謂詞hasProcess(IISProcess)判斷主機上是否運行有Microsoft IIS服務進,直接將結果反饋給網絡入侵檢測Agent;如果謂詞返回True,則根據謂詞hasVulnerablility(IISRedCodeVulnerability)判斷是否存在IIS緩沖區溢出漏洞,將結果返回給網絡入侵檢測Agent。網絡入侵檢測Agent對此任務作出評價,將此主機監測入侵檢測Agent作為網絡入侵檢測Agent熟人集中的一員,將其訪問地址保存到本地;并根據任務結果,如果確認發生攻擊,將攻擊信息發送給知識管理Agent,知識管理Agent根據融合規則,如果滿足融合條件,將報警消息融合并發送給網絡管理員。如果再發生上述入侵事件,網絡入侵檢測Agent根據之前保存的訪問地址,直接向部署在192.168.1.1的主機入侵檢測Agent發送招標書。
在實驗1中,模擬了在不同網絡流量情況下, MAOIDS原型系統和Snort入侵檢測系統的報警情況。攻擊源主機在不同網絡流量情況下,在產生的背景流量中,隨機混入1500個“Code Red II”蠕蟲病毒攻擊包。在這1500個數據包中,其中有500個攻擊的目的主機無漏洞,屬于無效攻擊。其余的1000個有效攻擊數據包均勻地發送給三類主機:A類主機,安全級別最高,優先級系數為0.8~1;B類主機,安全級別次之,優先級系數為0.5~0.8;C類主機,安全級別最低,優先級系數在0.5以下。實驗結果如圖4和圖5所示。

圖4 兩種IDS系統的實驗結果

圖5 MAOIDS系統三類不同優先級主機的報警對比圖
從實驗1的結果看,本文提出的分布式入侵檢測系統MAOIDS能濾除虛警數據,降低虛警率。如圖4所示,當網絡流量小于40 Mbps時,系統工作穩定;當網絡流量激增到50 Mbps時,上述兩個IDS由于其檢測分析速度明顯延遲于網絡流速,漏報了小部分攻擊事件。而本文提出的MAOIDS,需要多個Agent協作完成部分檢測任務,其檢測分析速度下降稍明顯一些。
從實驗1的結果看,本文提出的分布式入侵檢測系統MAOIDS能區分不同安全級別的主機,能優先對高安全級別的主機的攻擊進行檢測。如圖5所示,當網絡流量小于40 Mbps時,漏報率都比較低;當網絡流量激增到50 Mbps時,其檢測分析速度明顯延遲于網絡流速,在這種情況下,可明顯看出MAOIDS優先對高安全級別的A類主機的攻擊進行檢測。
實驗2中,有5個網絡入侵檢測Agent和15個主機入侵檢測Agent參與完成協同檢測任務,每次實驗持續5分鐘,5分鐘內每分鐘發起固定次數的協同檢測任務,統計5分鐘內各Agent間平均交互的次數。親密度下限ER設為0.3,固定次數從5次一直遞增到30次,共進行了26次實驗。實驗結果如圖6所示。

圖6 兩種協作算法的實驗結果
從實驗2的結果看,經典的合同網算法[17]的協商通信代價遠遠高于本文提出的熟人模型和合同網模型的協作算法。本文的算法與經典的合同網算法相比,Agent間的平均交互次數降低了34.5%。
總體來看,在完備的本體知識庫支持下,本文提出的分布入侵檢測系統MAOIDS可有效減少誤報,即使在網絡流量較大的情況下,可保證對高安全級別的IT資產的攻擊優先檢測。采用結合熟人模型和合同網模型的協作算法,隨著Agent間協作的頻度增加,與經典的合同網算法相比,Agent間交互次數將明顯減少。
4結語
基于Multi-Agent和本體的IDS,采用結合熟人模型和合同網模型的協作算法,一方面提高了各檢測器的協同工作能力,降低虛警率,即使在網絡流量較大的情況下,可保證對高安全級別的IT資產的攻擊優先檢測;另一方面可以大大減少各檢測器的通信量,提高協作效率。但是由于本體知識庫的規模所限,測試只是局部的,今后還需要進一步完善。
參考文獻
[1] Denning DE. An intrusion detection model [J]. IEEE Transactions on Software Engineering,1987,13(2):222-232.
[2] Abdoli F,Kahani M. Advances in Computer and Information Sciences and Engineering [M]. Berlin: Springer,2008.
[3] Abdoli F,Kahani M. Computer Conference: CSICC 2009[C]//Proceedings of 14th International Computer Conference,Tehran,October 20-21,2009, New York: IEEE,c2009.
[4] Gruber T. A Translation Approach to Portable Ontology Specifications [J]. Knowledge Acquisition,1993,5(2):199-220.
[5] 王向輝,馮志勇. 語義Web服務自動組合定義、方法及驗證調查[J] . 計算機工程,2014,31(5):1292-1301.
[6] 王能干,王堅,凌衛青. 基于本體的突發事件應急服務模型研究[J]. 計算機與現代化,2014,29(1):194-200.
[7] 王前,馮亞軍,楊兆民,等. 基于本體的網絡攻擊模型及其應用[J]. 計算機科學,2010,37(6):114-117.
[8] Raskin V,Hempelmann C F,Triezenberg K E,et al. the New Security Paradigms Workshop: NSPW 2001[C]//Proceedings of the 2001 workshop on New security paradigms,New Mexico,September 11-13 ,2001,New York: ACM,c2001.
[9] Undercoffer J,Joshi A,Pinkston J. Recent Advances in Intrusion Detection[C]//RAID 2003: proceedings of 6th International Symposium,Pittsburgh,September 8-10,2003. Berlin: Springer,2003.
[10] 李萬. 基于本體的入侵報警關聯[D]. 北京:北京交通大學,2010.
[11] 張然,劉洋,尹毅鋒,等.基于Multi-Agent的入侵檢測動態協同機制研究[J]. 微電子學與計算機,2013,30 (8):57-62.
[12] 馬鑫,梁艷春,田野,等.基于免疫機理與合同網協議的多Agent入侵檢測系統[J]. 吉林大學學報:工學版,2011,41(1):176-181.
[13] FIPA. ACL Message Structure Specification [EB/OL]. (2012-12-3).http://www.fipa.org/specs/fipa00061/SC00061G.html.
[14] W3C. OWL 2 Web Ontology Language Document Overview (Second Edition) [EB/OL]. (2012-12-11) http://www.w3.org/TR/owl2-overview/.
[15] Steve Friedl. Analysis of the new "Code Red II" Variant [EB/OL]. (2011-8-22) http://www.unixwiz.net/techtips/CodeRedII.html.
[16] W3C. SWRL [EB/OL]. (2014-5-21) http://www.w3.org/Submission/2004/.SUBM-SWRL-20040521/.
[17] Smith,Reid G. The contract net protocol: High level communication and control in a distributed problem solver [J]. Computers,1980,29(12):1104-1113.
中圖分類號TP393.08
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.02.032
收稿日期:2014-10-08。國家自然科學基金項目(61163025);內蒙古高等學校科學技術研究項目(NJZY12200)。郭廣豐,講師,主研領域:計算機網絡應用技術,信息安全。馬占飛,教授。