廖善良,來(lái)嘉哲,楊 帆
(裝備學(xué)院,北京 101416)
隨著信息技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)逐漸成為當(dāng)今“信息社會(huì)”的重要基礎(chǔ)設(shè)施,同時(shí)帶來(lái)了新的問(wèn)題——信息安全問(wèn)題。網(wǎng)絡(luò)攻擊是引發(fā)網(wǎng)絡(luò)安全問(wèn)題的最重要因素,其中分布式拒絕服務(wù)攻擊是網(wǎng)絡(luò)攻擊中最普遍最有威脅度的攻擊方式之一,Penemon研究所最新的一項(xiàng)研究顯示,在2012年有64%的金融機(jī)構(gòu)遭遇過(guò)至少一次的DDoS攻擊。因此做好網(wǎng)絡(luò)安全防御工作意義重大。
盡管對(duì)于網(wǎng)絡(luò)攻擊防御的研究很多,但是由于網(wǎng)絡(luò)攻擊的復(fù)雜性、分布性、不可重現(xiàn)性等特點(diǎn),很難做好網(wǎng)絡(luò)防御。通過(guò)網(wǎng)絡(luò)建模仿真重現(xiàn)網(wǎng)絡(luò)攻擊過(guò)程,對(duì)于研究網(wǎng)絡(luò)攻擊的原理以及做好網(wǎng)絡(luò)安全防御具有重要意義。但是傳統(tǒng)的網(wǎng)絡(luò)攻擊防御建模方法已很難滿足現(xiàn)在的需要,因此找尋更加有效的建模方法迫在眉睫。多Agent(Multi-Agent System,MAS)建模技術(shù)綜合發(fā)展了分布式技術(shù)和面向?qū)ο蠹夹g(shù),具有更高的智能性和靈活性,特別適合處理復(fù)雜和難以預(yù)測(cè)的問(wèn)題。它為網(wǎng)絡(luò)攻擊建模和仿真提供了一個(gè)嶄新的途徑,對(duì)于提高網(wǎng)絡(luò)防御及信息安全具有重要意義。
針對(duì)復(fù)雜系統(tǒng)問(wèn)題研究的需求,美SFI(Santa Fe Institute)學(xué)者提出了一種新思想——Agent。20世紀(jì)90年代以來(lái),Agent已成為計(jì)算機(jī)和人工智能領(lǐng)域研究的重要前沿。Agent技術(shù)綜合發(fā)展了分布式技術(shù)和面向?qū)ο蠹夹g(shù),具有更高的智能性和靈活性,特別適合處理復(fù)雜、分布和難以預(yù)測(cè)的問(wèn)題。在各個(gè)不同領(lǐng)域和學(xué)科中,Agent具有不用的含義。一般認(rèn)為,Agent是一個(gè)能夠感知外界環(huán)境,并具有自主行為能力的、以實(shí)現(xiàn)其設(shè)計(jì)為目標(biāo)的自治系統(tǒng)[1]。Agent一般具有自治性、反應(yīng)性、社會(huì)能力、主動(dòng)性等特性。從Agent的結(jié)構(gòu)出發(fā),單個(gè)Agent的結(jié)構(gòu)[2]通常分為慎思型Agent、反應(yīng)型Agent和混合型Agent。Agent基本結(jié)構(gòu)如圖1所示。
圖1 Agent的基本結(jié)構(gòu)
單個(gè)Agent受其資源和能力的限制,無(wú)法適應(yīng)大規(guī)模復(fù)雜問(wèn)題的求解,多Agent系統(tǒng)為解決上述問(wèn)題提供了一個(gè)較為有效的方法和技術(shù)途徑。多Agent系統(tǒng)[3]指的是由多個(gè)相互作用的Agent構(gòu)成,能夠共同完成一定任務(wù)的系統(tǒng)。這些Agent成員之間相互協(xié)作,相互服務(wù),共同完成一個(gè)任務(wù),其協(xié)作求解能力超過(guò)了單個(gè)Agent。MAS能夠利用并行分布式處理技術(shù)和模塊化設(shè)計(jì)思想,把復(fù)雜適應(yīng)系統(tǒng)劃分成相對(duì)獨(dú)立的Agent子系統(tǒng),通過(guò)Agent之間的合作與競(jìng)爭(zhēng)來(lái)完成對(duì)復(fù)雜問(wèn)題的求解。
多Agent建模仿真是一種由底向上的建模方法,采用Agent相關(guān)技術(shù)將Agent作為系統(tǒng)的抽象單位,建立個(gè)體Agent模型,并將建立的多個(gè)個(gè)體Agent模型組合成整個(gè)系統(tǒng)的系統(tǒng)模型?;贏gent模型建模思想為:
1)Agent是建模的基本單位。在建模過(guò)程中,將系統(tǒng)的實(shí)體抽象成Agent,抽象的Agent在行為和狀態(tài)等方面能夠和實(shí)體保持一致。
2)智能型。Agent的智能型是保證個(gè)體Agent功能智能的前提。
3)Agent之間的交互關(guān)系。Agent之間的交互是實(shí)現(xiàn)個(gè)體Agent之間進(jìn)行信息交換和相互服務(wù)的基礎(chǔ),A-gent之間的交互是通過(guò)通信來(lái)實(shí)現(xiàn)的。
用MAS建模方法對(duì)復(fù)雜系統(tǒng)進(jìn)行建模,一般是都是本著由簡(jiǎn)單到復(fù)雜,由易到難的原則進(jìn)行建模。具體的實(shí)現(xiàn)可以由復(fù)雜系統(tǒng)的粗粒度到細(xì)粒度;由單處理器到分布式仿真;由較少的Agent數(shù)量到大量的A-gent仿真。
建立基于多Agent建模仿真技術(shù)的基本步驟(如圖2)包括:系統(tǒng)結(jié)構(gòu)分析、模型框架設(shè)計(jì)、模型建立、仿真及結(jié)果分析四大步驟。
1)系統(tǒng)結(jié)構(gòu)分析
首先對(duì)所要研究的目標(biāo)系統(tǒng)進(jìn)行分析,明確仿真的目標(biāo)和要求。然后根據(jù)對(duì)系統(tǒng)的實(shí)體和功能進(jìn)行劃分,把系統(tǒng)中的各種實(shí)體映射為仿真系統(tǒng)中的Agent,并將分解后的功能分配給相應(yīng)的Agent。主要目的是根據(jù)仿真目標(biāo)建立合適的整體行為表示,對(duì)目標(biāo)系進(jìn)行劃分。
2)模型框架設(shè)計(jì)
根據(jù)系統(tǒng)結(jié)構(gòu)分析的結(jié)果分析問(wèn)題,并且分配任務(wù)給Agent,決定參與系統(tǒng)運(yùn)行需要的Agent的數(shù)量及種類,建立模型的體系結(jié)構(gòu)。
3)建立模型
根據(jù)所構(gòu)建的體系結(jié)構(gòu)構(gòu)建復(fù)雜系統(tǒng)的物理模型及交互模型(包括各類Agent的實(shí)體模型以及各類A-gent之間的交互模型)。對(duì)于系統(tǒng)中的各個(gè)Agent,根據(jù)其智能性的高低分析和設(shè)計(jì)Agent的基本結(jié)構(gòu)。多Agent系統(tǒng)中的Agent之間通過(guò)交互和協(xié)調(diào)達(dá)到任務(wù)求解的目的,因此需要描述Agent的社會(huì)關(guān)系,如Agent的協(xié)調(diào)、協(xié)作、交互等。
圖2 多Agent建模仿真流程
4)仿真及結(jié)果分析
整個(gè)MAS建模過(guò)程是采用自底向上的設(shè)計(jì)方法,首先定義單個(gè)Agent,然后再對(duì)MAS集成。對(duì)建立的系統(tǒng)模型,確定模型的參數(shù),選擇合適的仿真技術(shù)和編程語(yǔ)言實(shí)現(xiàn)仿真;根據(jù)仿真結(jié)果對(duì)仿真模型和參數(shù)進(jìn)行修改和調(diào)整;進(jìn)行仿真實(shí)驗(yàn),最后分析實(shí)驗(yàn)結(jié)果。
選取網(wǎng)絡(luò)防御中分布式拒絕服務(wù)攻擊防御作為建模仿真對(duì)象進(jìn)行建模仿真研究。要想做好網(wǎng)絡(luò)防御,首先要了解和掌握攻擊的原理和過(guò)程,探究不同的因素對(duì)于網(wǎng)絡(luò)攻擊結(jié)果的影響,進(jìn)而才能有效地進(jìn)行防御。
分布式拒絕服務(wù)攻擊[4](DDoS attack-Distributed Deny Of Service attack)是攻擊者采用分布式技術(shù),通過(guò)控制多臺(tái)計(jì)算機(jī)(又叫僵尸機(jī))對(duì)一個(gè)或多個(gè)受害者(目標(biāo))同時(shí)發(fā)動(dòng)拒絕服務(wù)攻擊。DDoS攻擊是一種典型的網(wǎng)絡(luò)攻擊方式,其過(guò)程[5]一般包括以下幾個(gè)步驟:掃描探測(cè)網(wǎng)絡(luò)、構(gòu)建攻擊網(wǎng)、安裝攻擊程序、發(fā)動(dòng)攻擊四個(gè)步驟。攻擊者要發(fā)動(dòng)DDoS攻擊,必須要控制大量的主機(jī)組成DDoS攻擊網(wǎng)絡(luò)。攻擊者首先對(duì)遠(yuǎn)程網(wǎng)絡(luò)主機(jī)進(jìn)行漏洞掃描,利用主機(jī)上的一些漏洞,攻擊者可以獲得這些主機(jī)的控制權(quán),并在其中植入DDoS攻擊軟件以控制其發(fā)動(dòng)攻擊。這些受控主機(jī)由植入的DDoS攻擊軟件功能的不同而構(gòu)成層次結(jié)構(gòu)網(wǎng)絡(luò)。DDoS攻擊過(guò)程如圖3所示。
圖3 DDoS攻擊過(guò)程
NetLogo是一個(gè)用來(lái)對(duì)自然和社會(huì)現(xiàn)象進(jìn)行仿真的可編程建模環(huán)境,它是由Uri Wilensky在1999年發(fā)起的,由連接學(xué)習(xí)和計(jì)算機(jī)建模中心(Center for Connected Learning and Computer-Based Modeling,CCL)負(fù)責(zé)持續(xù)開發(fā),目的是為科學(xué)研究和教育提供易用且強(qiáng)大的計(jì)算機(jī)輔助工具,特別適合對(duì)復(fù)雜網(wǎng)絡(luò)進(jìn)行建模仿真。
NetLogo自帶 turtle、patch、link等多種類型的 A-gent,建模人員能夠向成百上千獨(dú)立運(yùn)行的Agent發(fā)出指令,這就使得探究復(fù)雜系統(tǒng)尤其是復(fù)雜網(wǎng)絡(luò)中的各元素(節(jié)點(diǎn))之間的相互關(guān)系成為可能。NetLogo的底層是用java編程語(yǔ)言實(shí)現(xiàn)的,可以在所有的主流平臺(tái)上運(yùn)行,也可以作為Java Applets在瀏覽器中運(yùn)行。
目前的防御方法多種多樣,要建立包括所有防御類型的模型是不大可能,在這里我們只是針對(duì)過(guò)濾類型的防御方法進(jìn)行建模。DDoS防御模型中的Agent主要包括以下幾種類型:網(wǎng)絡(luò)信息收集Agent,網(wǎng)絡(luò)信息處理A-gent,攻擊檢測(cè) Agent,過(guò)濾器 Agent,攻擊調(diào)查 Agent。模型中各類Agent成員的功能及其基本結(jié)構(gòu)如下。
1)網(wǎng)絡(luò)信息收集Agent
收集網(wǎng)絡(luò)中的數(shù)據(jù)包信息以及統(tǒng)計(jì)流向被保護(hù)目標(biāo)的數(shù)據(jù)。Agent具有計(jì)算流量大小,判斷出能產(chǎn)生最大流量的節(jié)點(diǎn)地址等功能。其基本結(jié)構(gòu)如圖4所示。
圖4 網(wǎng)絡(luò)信息收集Agent基本結(jié)構(gòu)
網(wǎng)絡(luò)信息收集模式指定網(wǎng)絡(luò)信息收集需要收集什么樣的網(wǎng)絡(luò)信息,它可以根據(jù)網(wǎng)絡(luò)信息處理的消息進(jìn)行更新。數(shù)據(jù)庫(kù)用來(lái)存儲(chǔ)收集到的網(wǎng)絡(luò)狀態(tài)信息??刂颇K用來(lái)控制前面兩個(gè)模塊,并能發(fā)送信息給其他Agent。
2)網(wǎng)絡(luò)信息處理Agent
網(wǎng)絡(luò)信息處理Agent具有學(xué)習(xí)的能力,能夠處理數(shù)據(jù)包信息和創(chuàng)建正常流量模型。模擬開始后,網(wǎng)絡(luò)信息處理Agent把當(dāng)前的網(wǎng)絡(luò)流量與正常流量模型進(jìn)行分析比較,獲得異常流量產(chǎn)生的節(jié)點(diǎn)地址,并發(fā)送給攻擊檢測(cè) Agent。其基本結(jié)構(gòu)與網(wǎng)絡(luò)信息收集 Agent類似。
3)攻擊檢測(cè)Agent
攻擊檢測(cè)Agent的功能是根據(jù)從網(wǎng)絡(luò)信息收集A-gent與網(wǎng)絡(luò)信息處理Agent發(fā)來(lái)的數(shù)據(jù)來(lái)判斷是否具有DDoS攻擊。如果判斷有DDoS攻擊,則把從網(wǎng)絡(luò)信息收集Agent與網(wǎng)絡(luò)信息處理Agent接到的攻擊源地址列表發(fā)送給攻擊檢測(cè)Agent和過(guò)濾器Agent。攻擊檢測(cè)Agent的結(jié)構(gòu)簡(jiǎn)單,主要是有一個(gè)攻擊判斷模塊。
4)過(guò)濾器Agent
過(guò)濾器Agent的功能是根據(jù)攻擊檢測(cè)Agent的數(shù)據(jù)進(jìn)行過(guò)濾或者采取其他防御措施。
5)攻擊調(diào)查Agent
攻擊調(diào)查Agent的功能是追蹤并打敗攻擊Agent。當(dāng)收到從攻擊檢測(cè)Agent傳來(lái)的信息后攻擊調(diào)查Agent檢驗(yàn)攻擊Agent所在節(jié)點(diǎn)的IP地址并試圖打敗它們。
DDoS防御系統(tǒng)的交互模型主要描述防御實(shí)體A-gent之間的交互關(guān)系,主要包括通信交互和協(xié)作交互,對(duì)應(yīng)到模型中就是各Agent之間的通信關(guān)系和協(xié)作關(guān)系。
DDoS防御模型中的Agent主要通過(guò)發(fā)送狀態(tài)信息、攻擊信息等方式進(jìn)行通信和交互,交互關(guān)系如圖5所示。
圖5 DDoS攻擊模型的交互關(guān)系
網(wǎng)絡(luò)信息收集Agent收集網(wǎng)絡(luò)狀態(tài)信息并發(fā)送給網(wǎng)絡(luò)信息處理Agent,網(wǎng)絡(luò)信息處理Agent告訴網(wǎng)絡(luò)信息收集Agent需要收集哪些狀態(tài)信息,將接收到的信息與正常網(wǎng)絡(luò)模型進(jìn)行比較,并將比較結(jié)果發(fā)送給攻擊檢測(cè)Agent,由攻擊檢測(cè)Agent判斷是否發(fā)生了 DDoS攻擊。如果有攻擊,攻擊檢測(cè)Agent將攻擊源信息發(fā)送給攻擊調(diào)查Agent和過(guò)濾器Agent。過(guò)濾器Agent根據(jù)攻擊源信息對(duì)數(shù)據(jù)包進(jìn)行控制,攻擊調(diào)查Agent對(duì)攻擊源進(jìn)行追蹤。
在MAS系統(tǒng)中,如何實(shí)現(xiàn)Agent之間的通信至關(guān)重要,Agent通信語(yǔ)言是實(shí)現(xiàn)Agent通信的關(guān)鍵,它所表達(dá)的交互信息主要包括命令、請(qǐng)求、告知等。Agent通信語(yǔ)言目前主要有KQML、FIPA等。KQML是目前使用較為廣泛的基于言語(yǔ)行為理論的Agent通信語(yǔ)言。作為一種層次結(jié)構(gòu)語(yǔ)言具有三層結(jié)構(gòu):內(nèi)容層、通信層和消息層。具體含義如表1所示。
表1 KQML語(yǔ)言的三層結(jié)構(gòu)
本文應(yīng)用KQML消息傳遞方式,根據(jù)Agent之間消息規(guī)范可以定義Agent的消息格式為:
其中Sender-ID為發(fā)送方Agent的 ID號(hào),Receiver-ID為接收方Agent的ID號(hào),Context為通信的內(nèi)容。
例如本文給出一條防御方法的消息,可以寫為:
防御方法可以是過(guò)濾也可以是流量控制,根據(jù)防御的具體情況而定。此外,還有防御強(qiáng)度、防御節(jié)點(diǎn)地址等消息,在這里由于篇幅受限就不做一一介紹了。
3.5.1 仿真系統(tǒng)實(shí)現(xiàn)
Netlogo平臺(tái)提供了三種仿真構(gòu)件:patches、turtles、observer,turtles是具有一定屬性和行為能力的構(gòu)件,在由patches構(gòu)成的仿真環(huán)境中它可以按照既定的規(guī)則自由移動(dòng),與patches發(fā)生相互作用,實(shí)現(xiàn)對(duì)現(xiàn)實(shí)世界的模擬,observer則是對(duì)仿真過(guò)程進(jìn)行監(jiān)控。在此基礎(chǔ)上,結(jié)合上面建立的實(shí)體模型,建立了基于Netlogo的DDoS攻擊防御仿真系統(tǒng)。主界面如圖6所示。
圖6 界面初始狀態(tài)
參數(shù)設(shè)定:可以用來(lái)調(diào)整此系統(tǒng)中的節(jié)點(diǎn)(主機(jī))數(shù)量以及拓?fù)浣Y(jié)構(gòu);設(shè)定起始時(shí)刻各種類型主機(jī)的數(shù)量、感染率以及獲得免疫的概率等。
變化曲線:是用來(lái)顯示各種類型主機(jī)數(shù)量在整個(gè)仿真過(guò)程中所占的主機(jī)總數(shù)的百分比。
動(dòng)態(tài)顯示:更加直觀地顯示每一時(shí)刻受攻擊主機(jī)的情況。
開關(guān)按鈕:控制每次仿真的啟停。
3.5.2 仿真實(shí)例與結(jié)果分析
假定某一小型網(wǎng)絡(luò)中主機(jī)總數(shù)為N=500,起初被感染主機(jī)數(shù)n0=12臺(tái),為了方便仿真將網(wǎng)絡(luò)節(jié)點(diǎn)的平均值設(shè)定為6。
為了能直觀地反應(yīng)出網(wǎng)絡(luò)防御的重要性和有效性,本文進(jìn)行兩次仿真實(shí)驗(yàn),第一次是DDoS攻擊后不加過(guò)濾防御措施,只靠其他防御措施防御;第二次是在攻擊后一段時(shí)間增加防御措施。
仿真1:
網(wǎng)絡(luò)攻擊開始后,隨著網(wǎng)絡(luò)攻擊的延續(xù),受攻擊的主機(jī)越來(lái)越多,感染主機(jī)也越來(lái)越多。在攻擊者攻擊網(wǎng)絡(luò)之前,每臺(tái)主機(jī)都處于易感狀態(tài),因此,很多主機(jī)受到攻擊后都被感染,而且感染越來(lái)越快。
攻擊持續(xù)一段時(shí)間后,由于大部分主機(jī)在受到攻擊后采取了一系列的補(bǔ)救措施,使得感染主機(jī)狀態(tài)調(diào)整為免疫狀態(tài),直至最后一臺(tái)感染主機(jī)變?yōu)槊庖摺?/p>
該小型網(wǎng)絡(luò)受到攻擊后,各類主機(jī)所占的比例曲線圖如圖7所示。
圖7 各類主機(jī)所占的比例曲線圖(一)
由圖7可知,從攻擊開始到DDoS攻擊結(jié)束,最后網(wǎng)絡(luò)中的主機(jī)只有兩種狀態(tài),易感狀態(tài)和免疫狀態(tài)。免疫狀態(tài)占55%左右,易感狀態(tài)占45%左右。并且感染主機(jī)比例最多達(dá)到59%左右。
仿真2:
在相同網(wǎng)絡(luò)結(jié)構(gòu)(包括主機(jī)數(shù)量、網(wǎng)絡(luò)節(jié)點(diǎn)、拓?fù)浣Y(jié)構(gòu)等)情況下,在t=138時(shí),根據(jù)檢測(cè)到的信息分析,判斷有DDoS攻擊,攻擊檢測(cè)Agent將攻擊源信息發(fā)送給攻擊調(diào)查Agent和過(guò)濾器Agent。過(guò)濾器Agent根據(jù)攻擊源信息對(duì)數(shù)據(jù)包進(jìn)行控制,攻擊調(diào)查Agent對(duì)攻擊源進(jìn)行追蹤。
對(duì)比圖7可以發(fā)現(xiàn)圖8受攻擊主機(jī)數(shù)量明顯減少,尤其是從t=138之后,受攻擊感染主機(jī)比例大幅降低,并且最高感染比例在48%左右,明顯少于未加過(guò)濾防御之前的59%。主要原因是過(guò)濾器過(guò)濾掉了部分的攻擊包,起到了一定的防御效果。由于仿真圖中曲線代表的是各類主機(jī)的當(dāng)時(shí)所占比例的曲線,在圖7中由于沒(méi)有防御措施情況下,感染主機(jī)數(shù)量及比例比圖8的要高,這就導(dǎo)致圖7中易感主機(jī)的比例會(huì)低于圖8;圖7中的感染主機(jī)多,到最后圖7中免疫的主機(jī)必然多,比例也就會(huì)高于圖8。
圖8 各類主機(jī)所占的比例曲線圖(二)
本文在網(wǎng)絡(luò)防御理論的基礎(chǔ)上,通過(guò)多Agent建模仿真方法,以典型的網(wǎng)絡(luò)防御為建模對(duì)象,建立了基于多Agent的DDoS防御模型。通過(guò)各類Agent的物理模型、交互模型等機(jī)制來(lái)建立了此模型,在一定程度上解決了網(wǎng)絡(luò)系統(tǒng)準(zhǔn)確建模的困難。然后在Netlogo平臺(tái)上進(jìn)行仿真,通過(guò)設(shè)定各類Agent的主要屬性參數(shù)等來(lái)完成了此模型的仿真。通過(guò)仿真結(jié)果分析,驗(yàn)證了多Agent建模方法用于網(wǎng)絡(luò)防御建模的可行性,提高了網(wǎng)絡(luò)系統(tǒng)建模的有效性,為后續(xù)的多Agent建模方法的研究提供了方法指導(dǎo),對(duì)網(wǎng)絡(luò)系統(tǒng)建模與仿真具有借鑒意義。
[1] Wooldridge M,Jennings N R.Intelligent Agent:Theory and Practice[J].Knowledge Engineering Review,1995,10(2):115-152.
[2] 廖守億.復(fù)雜系統(tǒng)基于多Agent的建模與仿真方法研究及應(yīng)用[D].長(zhǎng)沙:國(guó)防科技大學(xué)博士學(xué)位論文,2004:6-8.
[3] 葉超群.多Agent復(fù)雜系統(tǒng)分布仿真平臺(tái)中的關(guān)鍵技術(shù)研究[D].長(zhǎng)沙:國(guó)防科技大學(xué)博士學(xué)位論文,2006:19-20.
[4] 李目海.基于流量的分布式拒絕服務(wù)攻擊檢測(cè)[D].上海:華東師范大學(xué)博士學(xué)位論文,2010:16-17.
[5] 荊一楠.分布式拒絕服務(wù)攻擊中攻擊源追蹤的研究[D].上海:復(fù)旦大學(xué)博士學(xué)位論文,2006:9-11.