摘 要:移動(dòng)Agent入侵檢測(cè)系統(tǒng)(Mobile Agent Intrusion Detection System,MAIDS)是一種基于Agent的入侵檢測(cè)系統(tǒng)。對(duì)MAIDS的描述采用SFT到CPN的轉(zhuǎn)化首先用SFT(Software Fault Tree)描述入侵行為,然后將SFT轉(zhuǎn)化為CPN(Colors Petri Nets)以建立入侵行為的描述模板,最后轉(zhuǎn)化成分布式Agent的實(shí)現(xiàn)。基于SFT、CPN和移動(dòng)Agent的分布式入侵檢測(cè)系統(tǒng)具有錯(cuò)誤少、數(shù)據(jù)量小等優(yōu)點(diǎn)。
關(guān)鍵詞:入侵檢測(cè);MAIDS;SFT;CPN
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2008)10-100-03
Distributed Instrusion Detection System Based on SFT,CPN and Mobile Agent
PAN Zengwei
(Faculty of Informatics Electronics,Zhejiang Sci-Tech University,Hangzhou,310018,China)
Abstract:The Mobile Agent Intrusion Detection System(MAIDS) is an Agent-based distributed Intrusion Detection System(IDS).The starting point of this paper is a description of intrusions expressed as SFT.Then the SFT is translated to CPN to build the description template of intrusion.Finally the CPN are implemented as distributed Agent.Distributed intrusion detection system based on SFT,CPN and mobile Agent has much advantages such as making less mistakes.The innovation is using the transform from SFT to CPN in the description of MAIDS.
Keywords:instrusion;MAIDS;SFT;CPN
隨著網(wǎng)絡(luò)技術(shù)的普及,Internet被應(yīng)用于各個(gè)領(lǐng)域,包括軍事、商業(yè)目的,一旦遭到攻擊,后果將是具有災(zāi)難性的。入侵檢測(cè)系統(tǒng)(IDS)是一種主動(dòng)的網(wǎng)絡(luò)安全防護(hù)措施,通過(guò)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)或計(jì)算機(jī)系統(tǒng)中的若干關(guān)鍵點(diǎn)主動(dòng)收集信息并對(duì)其進(jìn)行分析,從中識(shí)別針對(duì)計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)的非法攻擊。IDS不僅可以有效地檢測(cè)入侵,同時(shí)也可以分析出攻擊的來(lái)源。傳統(tǒng)的入侵檢測(cè)系統(tǒng)的模型是在網(wǎng)絡(luò)的不同網(wǎng)段上放置多個(gè)傳感器或探測(cè)器收集當(dāng)前網(wǎng)絡(luò)狀態(tài)信息,然后將這些信息傳送到中央控制臺(tái)進(jìn)行處理和分析,即集中式處理方法,這種方法加重了中央控制臺(tái)的負(fù)擔(dān),同時(shí)也大大增加了網(wǎng)絡(luò)數(shù)據(jù)量。
移動(dòng)Agent入侵檢測(cè)系統(tǒng)[1](MAIDS)是一種基于Agent的IDS,他區(qū)別于其他的IDSs因?yàn)樗脑O(shè)計(jì)、執(zhí)行和驗(yàn)證都是采用形式化方法,而且移動(dòng)Agent代碼(mobile Agent code)也是從入侵的形式化需求中產(chǎn)生的。MAIDS使用CPN(Colored Petri Net)和SFT(Software Fault Tree)兩種形式化方法。
1 采用技術(shù)
1.1 SFT
SFT是一種故障樹,是一種特殊的倒立樹狀邏輯因果關(guān)系圖,他將系統(tǒng)故障形成原因由整體到部分按樹的形狀排列[2]。一棵故障樹包括根結(jié)點(diǎn)、葉子結(jié)點(diǎn)和中間結(jié)點(diǎn),其中故障事件作為樹的根結(jié)點(diǎn),導(dǎo)致故障發(fā)生的基本事件作為樹的葉子結(jié)點(diǎn),中間的與門(AND gates)或者或門(OR gates)作為中間結(jié)點(diǎn),這些中間結(jié)點(diǎn)決定了基本事件的聯(lián)合發(fā)生是否可以產(chǎn)生導(dǎo)致根結(jié)點(diǎn)事件的發(fā)生。
在軟件系統(tǒng)中,通常是單獨(dú)的基本事件或者幾個(gè)基本事件結(jié)合導(dǎo)致故障的發(fā)生,所以故障樹是適用于軟件故障分析的。在進(jìn)行故障樹分析之前,需要廣泛收集并分析有關(guān)技術(shù)資料,建樹時(shí)首先確定故障事件,根據(jù)收集的技術(shù)資料將引起故障事件的全部必要而又充分的直接原因置于故障事件的下一層,再根據(jù)他們的邏輯關(guān)系用適當(dāng)?shù)倪壿嬮T連接故障事件和原因。最后遵循建樹規(guī)則逐級(jí)向下發(fā)展,直到所有最低一排原因事件都是底事件為止。但是SFT是一個(gè)靜態(tài)過(guò)程,他不能用來(lái)表示一些與時(shí)間序列相關(guān)的事件,所以需要在SFT中增加時(shí)間變量time和次序變量seq。
1.2 CPN
CPN通常用于建模復(fù)雜的、分布式的系統(tǒng),目前他已經(jīng)被應(yīng)用到很多問(wèn)題領(lǐng)域,如安全、網(wǎng)絡(luò)協(xié)議、互斥算法和一些錯(cuò)誤管理和系統(tǒng)安全領(lǐng)域[4]。CPN是一個(gè)雙向圖,他的結(jié)點(diǎn)包括place和transition。在place上的數(shù)據(jù)實(shí)體叫作“token”,他通過(guò)transition由一個(gè)place移動(dòng)到另一個(gè)place上。Transition過(guò)程中通過(guò)一些規(guī)則來(lái)管理帶有顏色的令牌,由若干個(gè)place通過(guò)輸入弧輸入到transition中,經(jīng)過(guò)transition的過(guò)程管理后通過(guò)輸出弧將結(jié)果輸?shù)侥康膒lace中。
一個(gè)CPN是一個(gè)6元組:N=
,其中P是一個(gè)有窮集合(N的庫(kù)所集合);T是一個(gè)有窮集合(N的變遷集合),并且和P不相交;C是顏色類集合;Cd為P∪T→C是顏色域的映射;
1.3 移動(dòng)Agent
移動(dòng)Agent是一個(gè)可以代表用戶完成指定的任務(wù)并且可以與其他Agent或資源交互的程序,他具有移動(dòng)性,所以他可以自主地從一臺(tái)主機(jī)遷移到另一臺(tái)主機(jī)上。移動(dòng)Agent系統(tǒng)一般都包括移動(dòng)Agent和移動(dòng)Agent平臺(tái)2個(gè)部分,移動(dòng)Agent通過(guò)移動(dòng)Agent平臺(tái)在網(wǎng)絡(luò)進(jìn)行遷移和其他操作,在一個(gè)主機(jī)上他可以與移動(dòng)Agent平臺(tái)和資源進(jìn)行交互以完成任務(wù);移動(dòng)Agent平臺(tái)為Agent提供安全、正確的運(yùn)行環(huán)境,實(shí)現(xiàn)移動(dòng)Agent的移動(dòng)、建立、安全控制、通信機(jī)制等。
2 MAIDS Agent系統(tǒng)
MAIDS Agent系統(tǒng)是由一個(gè)分析器和多個(gè)監(jiān)視器組成,每個(gè)監(jiān)視器都有一個(gè)本地?cái)?shù)據(jù)庫(kù)、一個(gè)Agent平臺(tái)和本地?cái)?shù)據(jù)資源分類器;分析器中的控制臺(tái)包括主機(jī)管理、Agent管理和告警顯示。他的設(shè)計(jì)思想由最底層的主機(jī)即監(jiān)視器收集相關(guān)數(shù)據(jù)并形成token;然后由移動(dòng)Agent到各個(gè)數(shù)據(jù)源查詢是否有滿足條件的token,滿足條件則將變遷后產(chǎn)生的新token輸入到層次處理中,最后查看層次處理是否有token輸出到告警庫(kù)所中,有則啟動(dòng)告警顯示。MAIDS的設(shè)計(jì)主要有4步:
(1) 用SFT詳細(xì)描述入侵行為。在進(jìn)行詳細(xì)描述以前,需要廣泛收集并分析有關(guān)技術(shù)資料;建樹時(shí)首先確定故障事件,再找出引起故障的原因,逐層向下分析;遇到和時(shí)間序列相關(guān)的事件,需要添加時(shí)間變量time和次序變量seq;
(2) 將SFT所描述的內(nèi)容轉(zhuǎn)化為CPN。通過(guò)利用CPN理論來(lái)分析入侵行為,建立所需的入侵檢測(cè)系統(tǒng)模型,網(wǎng)絡(luò)入侵的CPN的檢測(cè)模型可以方便地轉(zhuǎn)化為基于移動(dòng)Agent的分布式入侵檢測(cè)系統(tǒng)的實(shí)現(xiàn);
(3) 根據(jù)CPN生成具體執(zhí)行的Agent;
(4) 測(cè)試。
過(guò)程如圖1所示:
圖1 MAIDS的設(shè)計(jì)步驟
2.1 SFT和CPN模型的轉(zhuǎn)化對(duì)應(yīng)規(guī)則
SFT和CPN模型的差別很大,所以在轉(zhuǎn)化過(guò)程中需要統(tǒng)一的規(guī)則來(lái)協(xié)調(diào)[3]。SFT中有3類結(jié)點(diǎn):不受限制的AND結(jié)點(diǎn)、受限制的AND結(jié)點(diǎn)和OR結(jié)點(diǎn)。
2.1.1 不受限制的AND結(jié)點(diǎn)
SFT中不受限制的AND結(jié)點(diǎn)對(duì)應(yīng)于在CPN中的transition結(jié)點(diǎn)和transition輸出弧所指向的place結(jié)點(diǎn);AND結(jié)點(diǎn)中的n個(gè)輸入在CPN中即為n條輸入弧;輸入弧來(lái)自place(包括token source place和其他的place)。圖中表示了AND結(jié)點(diǎn)和CPN的轉(zhuǎn)化,圖2中4種情況的X和Y都表示為:X=1,if x∈Dx
0,otherwise,Y=1,if y∈Dy
0,otherwise 。AND結(jié)點(diǎn)中的X和Y表從與門輸入,得出結(jié)果Z,在不受限的情況下:Z=1,if (x∈Dx)∧(y∈Dy)
0,otherwise,而X和Y是transition的輸入token,Z則是通過(guò)transition規(guī)則管理后輸出的token。
2.1.2 受限制的AND結(jié)點(diǎn)
在一些情況下,AND結(jié)點(diǎn)之間的關(guān)系受到時(shí)間或者順序的限制。這些情況反應(yīng)在SFT中就是AND結(jié)點(diǎn)需要加上時(shí)間或者次序的限制。對(duì)應(yīng)于CPN就是為每個(gè)token加上時(shí)間或者次序變量。如果事件a比事件b要早發(fā)生,則事件a的token所帶的時(shí)間標(biāo)記比事件b的要小,2個(gè)事件不能夠帶相同的標(biāo)記。同樣,如果事件a比事件b要早發(fā)生,事件a的token的序列號(hào)要比事件b的要小。
(1) 先后事件。如圖2所示,time1和time2表示事件x和y的時(shí)間,SFT圖中的X和Y表示輸入與門,其中X和Y是獨(dú)立的,經(jīng)過(guò)與門后得出的Z需要滿足要求:
Z=1,if (x∈Dx)∧(y∈Dy)∧(time1 0,otherwise 而CPN中transition所設(shè)的條件是time1 (2) 順序事件。如圖2所示,seq1和seq2表示事件a和事件b的執(zhí)行順序號(hào),seq2=seq1+1表示a和b是順序執(zhí)行的。其中X和Y和先后事件的條件一樣,但是經(jīng)過(guò)與門以后得出的Z為: Z=1,if (x∈Dx)∧(y∈Dy)∧(seq1+1=seq2)0,otherwise 2.1.3 或結(jié)點(diǎn)(or nodes) 當(dāng)一個(gè)或結(jié)點(diǎn)的任何一個(gè)子結(jié)點(diǎn)滿足條件時(shí),結(jié)果即為真。SFT中的或結(jié)點(diǎn)對(duì)應(yīng)于CPN中的transition和place,或結(jié)點(diǎn)所帶的n個(gè)輸入在CPN中就是n個(gè)transition。圖2中的X和Y的定義和先后順序中定義一致,但經(jīng)過(guò)或門以后得出的:Z=1,if (x∈Dx)∨(y∈Dy) 0,otherwise 。 圖2 SFT到CPN模型的轉(zhuǎn)化規(guī)則 2.2 SFT向CPN的自動(dòng)轉(zhuǎn)化 根據(jù)上面提到的從SFT到CPN模版的轉(zhuǎn)化規(guī)則, SFT能夠用人工的方式轉(zhuǎn)化成CPN。Smruti.R.B在文獻(xiàn)中提出在XSL(Style Sheet Language)的支持下,SFT可以自動(dòng)地轉(zhuǎn)化會(huì)CPN。以下是SFT的自動(dòng)轉(zhuǎn)化過(guò)程: 用SFT工具來(lái)設(shè)計(jì)SFT。這一步中,用Visual XML Writer來(lái)設(shè)計(jì)SFT并為SFT XML設(shè)計(jì)DTD(Document Type Definition)。 用XSL將SFT XML轉(zhuǎn)化成CPN XML,這個(gè)轉(zhuǎn)化過(guò)程需要用到XSL轉(zhuǎn)化器,如Visual XML Writer。 用Design/CPN來(lái)驗(yàn)證自動(dòng)轉(zhuǎn)化的CPN,這一步可以對(duì)CPN進(jìn)行優(yōu)化,提高CPN的效率。 2.3 CPN的檢測(cè)模型轉(zhuǎn)化成分布式Agent的實(shí)現(xiàn) 2.3.1 CPN模型到分布式Agent的對(duì)應(yīng)規(guī)則 要將CPN模型轉(zhuǎn)化為分布式Agent實(shí)現(xiàn),首先要將CPN模型中的庫(kù)所和變遷分類,其中庫(kù)所包括葉子庫(kù)所、內(nèi)部庫(kù)所和警報(bào)庫(kù)所;變遷包括葉子變遷和內(nèi)部變遷。CPN模型中的元素和Agent之間存在一對(duì)一的關(guān)系: CPN中每個(gè)葉子庫(kù)所結(jié)點(diǎn),對(duì)應(yīng)產(chǎn)生庫(kù)所Agent; 每個(gè)內(nèi)部庫(kù)所結(jié)點(diǎn),只起到容器的作用,不產(chǎn)生相應(yīng)的Agent; 每個(gè)葉子變遷結(jié)點(diǎn),對(duì)應(yīng)產(chǎn)生移動(dòng)變遷Agent; 每個(gè)內(nèi)部變遷結(jié)點(diǎn),對(duì)應(yīng)產(chǎn)生靜態(tài)變遷Agent; 根結(jié)點(diǎn)不需要產(chǎn)生一個(gè)告警Agent,這個(gè)Agent由主控制臺(tái)產(chǎn)生。 3 系統(tǒng)框架 MAIDS由一個(gè)分析器和多個(gè)監(jiān)視器組成,每個(gè)監(jiān)視器都有一個(gè)本地?cái)?shù)據(jù)庫(kù)、一個(gè)Agent服務(wù)器和本地?cái)?shù)據(jù)資源分類器;分析器中的控制臺(tái)包括主機(jī)管理、Agent管理和報(bào)警顯示。 圖3 系統(tǒng)框架 葉子庫(kù)所和葉子變遷所對(duì)應(yīng)的Agent是通過(guò)控制臺(tái)的Agent管理器創(chuàng)建的,而其他庫(kù)所和變遷都是由Agent管理器在層次處理中本地創(chuàng)建的。葉子庫(kù)所Agent在每臺(tái)監(jiān)視器上都是相同的,他們是靜態(tài)的,不能移動(dòng)。葉子變遷具有移動(dòng)性,可以在監(jiān)視器之間循環(huán)移動(dòng)。其他位于中間層的Agent都是靜態(tài)的。 葉子庫(kù)所Agent定時(shí)從位于每臺(tái)監(jiān)視器上的本地?cái)?shù)據(jù)庫(kù)獲取數(shù)據(jù),查到相關(guān)數(shù)據(jù)后把他格式化,并以token的形式存儲(chǔ)。當(dāng)某個(gè)葉子變遷Agent移動(dòng)到一臺(tái)監(jiān)視器時(shí),他首先向源庫(kù)所查詢是否有符合變遷條件的token,如果有則把變遷中產(chǎn)生的token對(duì)象發(fā)送到目的庫(kù)所。 位于控制臺(tái)主機(jī)上的一般變遷定期查詢他的數(shù)據(jù)源,滿足條件就激發(fā)變遷并向目的庫(kù)所送出token對(duì)象,當(dāng)告警庫(kù)所Agent中出現(xiàn)token對(duì)那個(gè)時(shí),告警庫(kù)所Agent顯示告警信息。 4 結(jié) 語(yǔ) 引入SFT時(shí)前,通常專業(yè)人員系統(tǒng)掌握了整個(gè)入侵過(guò)程的流程,但不熟悉形式化建模工具,這樣直接生成CPN模型時(shí)難免會(huì)有疏漏,所以引入SFT技術(shù)可以增強(qiáng)整個(gè)建模過(guò)程的規(guī)范性;引入CPN技術(shù)后,系統(tǒng)充分利用各地資源進(jìn)行數(shù)據(jù)采集和令牌生成,以及逐層向上減少網(wǎng)上數(shù)據(jù)傳輸量和數(shù)據(jù)處理量,大大提高了系統(tǒng)檢測(cè)效率;對(duì)seq和time兩變量作為匹配限制條件極大地減少了錯(cuò)誤報(bào)警。 參 考 文 獻(xiàn) [1]Smruti R B.Towards the Automatic Generation of Mobile Agents for Intrusion Detection System [D].Iowa State University,2004. [2]Guy Helmer.A Software Fault Tree Approach to Requirements Analysis of an Intrusion Detection System[C].Indianapolis IN DSA:[s.n.],2001. [3]Guy Helmer.Software Fault Tree and Colored Petri Net Based Specification,Design and Implementation of Agent-based Intrusion Detection System[J].Requiremenfs Engineering,2000,7(4):207-220. [4]Claude Girault.Petri Nets for Systems Engineering[M].Berlinj Springer,2003. 作者簡(jiǎn)介 潘增偉 1986年出生,浙江溫州人。主要研究方向?yàn)橛?jì)算機(jī)編程、程序設(shè)計(jì)、檢測(cè)等。 注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。