朱 暉,李偉華,史豪斌
西北工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,西安710129
隨著P2P 技術(shù)的發(fā)展和基于P2P 應(yīng)用的日漸增多,P2P流量已經(jīng)占據(jù)互聯(lián)網(wǎng)流量的70%,網(wǎng)絡(luò)蠕蟲找到了一種新的傳播途徑,得以相較于以往的傳統(tǒng)網(wǎng)絡(luò)蠕蟲更為快速和隱蔽地傳播。Zhou等[1]正式提出P2P 蠕蟲為通過發(fā)掘漏洞,利用P2P 網(wǎng)絡(luò)拓?fù)浼捌湫再|(zhì)進(jìn)行自主擴(kuò)散的蠕蟲。并且指出,利用P2P 網(wǎng)絡(luò)拓?fù)溥M(jìn)行傳播的P2P 蠕蟲免去了在網(wǎng)絡(luò)上大規(guī)模隨機(jī)掃描的過程,因此攻擊流量能夠方便地隱藏于P2P 流量中,使得傳播更加隱蔽,攻擊更加精確和高效,目前絕大多數(shù)針對掃描型蠕蟲的防御機(jī)制都難以有效控制這種新型蠕蟲。由于P2P 協(xié)議著重于性能,而相對忽視了對P2P 網(wǎng)絡(luò)的管理,以及P2P 軟件的多樣性,所以協(xié)議或者軟件的安全漏洞難以避免。一旦有漏洞被別有用心的黑客利用,數(shù)千萬的P2P 用戶主機(jī)安全將受到嚴(yán)重威脅,因此針對P2P 蠕蟲傳播檢測和遏制的研究迫在眉睫。
按照傳播方式P2P 蠕蟲一般分為三類[2]:主動(dòng)型P2P 蠕蟲(Proactive P2P Worm)、反應(yīng)型P2P 蠕蟲(Reactive P2P Worm)和被動(dòng)型P2P 蠕蟲(Passive P2P Worm)。主動(dòng)型和反應(yīng)型P2P 蠕蟲都是利用P2P 協(xié)議或者P2P 客戶端的漏洞主動(dòng)攻擊對等機(jī)的方式進(jìn)行傳播。兩者的區(qū)別在于:主動(dòng)型P2P 蠕蟲會(huì)通過P2P 協(xié)議主動(dòng)獲取大量的節(jié)點(diǎn)信息表,并主動(dòng)攻擊這些節(jié)點(diǎn);而反應(yīng)型P2P蠕蟲當(dāng)且僅當(dāng)受感染主機(jī)與對等機(jī)有正常連接時(shí)候才進(jìn)行傳播,這樣蠕蟲流量隱藏于正常的P2P 數(shù)據(jù)流中,隱蔽性較好,但是傳播速度比主動(dòng)型P2P 蠕蟲稍慢。被動(dòng)型P2P 蠕蟲將自己偽裝成當(dāng)前流行的資源,誘使用戶下載并執(zhí)行,與傳統(tǒng)的蠕蟲傳播方式有較大的區(qū)別,更類似于一種社會(huì)工程學(xué)攻擊。其傳播依賴于用戶主動(dòng)下載,所以傳播速度相對上兩種蠕蟲最慢,也沒有任何異常的網(wǎng)絡(luò)流量,最難在其傳播階段被檢測到。
理想的蠕蟲傳播模型可以為監(jiān)控蠕蟲傳播,進(jìn)而限制、消滅蠕蟲提供一個(gè)有力的參考。在長期的研究中發(fā)現(xiàn),網(wǎng)絡(luò)蠕蟲的擴(kuò)散與生物學(xué)病毒的擴(kuò)散有許多相似之處,由于對后者的研究相對成熟,所以很多網(wǎng)絡(luò)蠕蟲傳播模型借鑒于生物學(xué)傳播模型,如SI(Susceptible-Infection)模 型、SIS(Susceptible-Infection-Susceptible)[3]模 型、SIR(Susceptible-Infection-Removed)模型、雙因素(Two Factor)模型[4]等等。
以上蠕蟲傳播模型主要適用于Internet 上的普通蠕蟲傳播。對于P2P 網(wǎng)絡(luò)上的蠕蟲傳播有人基于雙因素模型并結(jié)合P2P 網(wǎng)絡(luò)的特性,提出了四因素(Four Factor)[5]模型,總結(jié)了影響主動(dòng)P2P 蠕蟲傳播的4 個(gè)因素:首先是用戶和ISP 采取的蠕蟲對抗措施;其次是P2P 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);再次是網(wǎng)絡(luò)中節(jié)點(diǎn)配置的差異程度;最后是攻防策略。
基于蠕蟲特征碼的檢測技術(shù)是根據(jù)蠕蟲在傳播時(shí)發(fā)出大量相似報(bào)文,將這些相似的數(shù)據(jù)作為特征碼。
基于用戶正常網(wǎng)絡(luò)行為的分析[6]是通過對用戶網(wǎng)絡(luò)行為的學(xué)習(xí)建立用戶的習(xí)慣列表,將未知的通信行為作為蠕蟲傳播的依據(jù)。
基于連接變化點(diǎn)的檢測方法CCD(Connection Changepoint based Detection)[7]通過監(jiān)測P2P 節(jié)點(diǎn)的入站或者出站連接數(shù),認(rèn)為突然的連接數(shù)變化可能代表著潛在的蠕蟲活動(dòng)。
縱觀以上這些方法,發(fā)現(xiàn)基于特征碼的檢測技術(shù)對已知并提取特征碼的蠕蟲傳播的檢測比較有效,對于未知的蠕蟲無能為力。基于用戶正常網(wǎng)絡(luò)行為的分析檢測方法,因?yàn)橛脩艟W(wǎng)絡(luò)行為具有不確定性,所以此方法誤報(bào)率較高。CCD 檢測方法只檢測節(jié)點(diǎn)的入站和出站連接,對節(jié)點(diǎn)行為的刻畫稍顯粗略,導(dǎo)致難以在檢測率和檢測速度以及漏檢率上同時(shí)達(dá)到相對優(yōu)秀的結(jié)果。而且CCD 檢測對整個(gè)網(wǎng)絡(luò)的全局連接進(jìn)行統(tǒng)計(jì),檢測時(shí)計(jì)算壓力完全由幾個(gè)主要的服務(wù)器或者網(wǎng)絡(luò)上的路由器負(fù)擔(dān),與P2P 網(wǎng)絡(luò)分散式的處理信息管理網(wǎng)絡(luò)的初衷相背。由此在以上分析的基礎(chǔ)上,提出一種基于節(jié)點(diǎn)行為的主動(dòng)P2P 蠕蟲檢測方法。
主動(dòng)P2P 蠕蟲不需要大規(guī)模的掃描網(wǎng)絡(luò),僅利用P2P網(wǎng)絡(luò)即可向鄰居節(jié)點(diǎn)實(shí)施攻擊,目標(biāo)是用最快的傳播速度感染所有的易感節(jié)點(diǎn)。所以它必然需要采取積極、貪婪的傳播算法,即首先在嘗試感染完鄰居節(jié)點(diǎn)之余,進(jìn)一步擴(kuò)充P2P 路由表信息,只有這樣最大化地利用被感染的節(jié)點(diǎn)的計(jì)算能力和網(wǎng)絡(luò)資源,主動(dòng)P2P 蠕蟲才能更快速地傳播。因此,被感染的節(jié)點(diǎn)會(huì)向網(wǎng)絡(luò)中發(fā)送大量的資源搜索和聯(lián)系人查找信息,以獲取更多的P2P 節(jié)點(diǎn)信息,并實(shí)施攻擊。
主動(dòng)P2P 蠕蟲在獲取到大量P2P 網(wǎng)絡(luò)節(jié)點(diǎn)信息并實(shí)施攻擊時(shí),必然會(huì)導(dǎo)致出站連接的增加。而且這種連接與正常的資源請求連接不同,攻擊節(jié)點(diǎn)只需要與被攻擊節(jié)點(diǎn)建立短暫的連接,隨著攻擊的結(jié)束即斷開與目的節(jié)點(diǎn)的持續(xù)連接,即可完成一次攻擊嘗試。這種大量、短暫的出站連接是主動(dòng)P2P 蠕蟲進(jìn)行傳播的典型特征。
為了后面表述方便,現(xiàn)在對長連接以及短連接進(jìn)行定義。
定義1(長連接LTL(Long-Time Link))P2P 網(wǎng)絡(luò)中兩節(jié)點(diǎn)之間,為了完成P2P 網(wǎng)絡(luò)預(yù)訂任務(wù)(如資源傳輸、任務(wù)分配等),所建立的長時(shí)間的連接。
定義2(短連接STL(Short-Time Link))除了LTL 以外的,P2P 網(wǎng)絡(luò)中兩節(jié)點(diǎn)之間的所有信息傳輸動(dòng)作(包括未真正建立連接的協(xié)議)。其中又分為短出站連接STOL(Short-Time Outbound Link)和短入站連接STIL(Short-Time Inbound Link)。
基于以上分析,提出一種基于節(jié)點(diǎn)行為的主動(dòng)P2P 蠕蟲檢測方法PBD。上文分析的資源搜索信息、聯(lián)系人查找信息和攻擊流量都屬于STOL,所以通過檢測STOL 的數(shù)量變化可以發(fā)現(xiàn)P2P 蠕蟲的傳播。對于STOL 數(shù)量變化問題,可以應(yīng)用連續(xù)檢測問題的解決方法予以解決。連續(xù)監(jiān)測問題是對于連續(xù)的觀測量,如果有一個(gè)變化發(fā)生后要盡快地把這種變化檢測出來。由于P2P 網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量龐大,所以采用平均運(yùn)行長度相對較短的CUSUM 算法[8],檢測主動(dòng)P2P 蠕蟲的傳播。
在對P2P 軟件的正常使用過程中,節(jié)點(diǎn)加入P2P 網(wǎng)絡(luò)、資源搜索、資源發(fā)布和聯(lián)系人查找請求所產(chǎn)生的連接都可以歸于STOL。通過對P2P 協(xié)議的分析,可知節(jié)點(diǎn)加入P2P網(wǎng)絡(luò)和資源發(fā)布為P2P 軟件自動(dòng)或者長周期性地進(jìn)行,只會(huì)小規(guī)模產(chǎn)生STOL,正常情況下下一次產(chǎn)生此類信息與上一次沒有任何關(guān)聯(lián),所以不可能通過積累而產(chǎn)生誤報(bào)。資源搜索和聯(lián)系人查找請求是由用戶搜索或者開始下載資源所產(chǎn)生的,在用戶正常的使用情況下,也不會(huì)大量持續(xù)產(chǎn)生STOL,在之后的參數(shù)選擇中通過合理設(shè)置參數(shù),也不會(huì)產(chǎn)生誤報(bào)。
首先,將時(shí)間劃分為長度相同的離散觀測窗口,表示為Δn ,n=1,2,…在第n 個(gè)觀測窗口觀測到的整個(gè)P2P 網(wǎng)絡(luò)上的短出站連接STOL 數(shù)量表示為一個(gè)隨機(jī)序列C={cn}n∈N。希望在E(C)變化的時(shí)刻,通過檢測隨機(jī)序列C的CUSUM 統(tǒng)計(jì)量得知這個(gè)變化,從而確定主動(dòng)P2P 蠕蟲的傳播。
令x1,x2,…,xθ為獨(dú)立同分布N(0,1)變量,而xθ+1,xθ+2,…為獨(dú)立同分布N(δ,1)變量,其中變點(diǎn)θ位置,對一列給定觀測值xθ+1,xθ+2,…,xn,備擇假設(shè)θ=ν(ν<n)對原假設(shè)θ=∞(無變點(diǎn))的對數(shù)似然比統(tǒng)計(jì)量為:
因?yàn)?,目?biāo)是檢測出P2P 節(jié)點(diǎn)短連接的異常增大,即已知是單向檢測問題,δ>0,則對上述對數(shù)似然比統(tǒng)計(jì)量等價(jià)于下述統(tǒng)計(jì)量:
經(jīng)過變換可以得到Zn的遞推公式[8]:
由于未知P2P 蠕蟲的攻擊強(qiáng)度、傳播能力是未知的,而且P2P 網(wǎng)絡(luò)也處于發(fā)展和變化之中,所以難以事先知道δ的取值??梢圆捎靡粋€(gè)不定參數(shù)k 代替δ/2,從而得到更一般的CUSUM 統(tǒng)計(jì)量:
假設(shè)事先選定一個(gè)門限值h(h>0),如果Zi≤h ,i=1,2,…,n,說明在到時(shí)刻n 為止的過程中沒有證據(jù)顯示P2P節(jié)點(diǎn)STOL 數(shù)量異常增多,檢測繼續(xù)。若Zi≤h(i=1,2,…,n-1),且Zn>h,則表示檢測到P2P 節(jié)點(diǎn)STOL 數(shù)量異常增多,可能該節(jié)點(diǎn)已經(jīng)被P2P 蠕蟲感染,并且正在向外界傳播蠕蟲。記τn為檢測到主動(dòng)P2P 蠕蟲的運(yùn)行時(shí)間:
主動(dòng)P2P 蠕蟲攻擊檢測系統(tǒng)有三個(gè)關(guān)鍵的指標(biāo):第一個(gè)是誤報(bào)率;第二個(gè)是漏報(bào)率;第三個(gè)是檢測時(shí)間。這三者是相互矛盾的,不可能使三個(gè)指標(biāo)同時(shí)達(dá)到最優(yōu),所以參數(shù)的選擇必須有所取舍。
CUSUM統(tǒng)計(jì)式(3)由兩個(gè)參數(shù)(h,k)決定,其中h稱為門限值(Decision Boundary),k稱為信念值(Reference Value)。選擇的標(biāo)準(zhǔn)是用平均運(yùn)行長度ARL,在ARL0滿足設(shè)定要求的條件下選擇使ARL1盡可能小的(h,k)對。這里ARL0=E(τn|網(wǎng)絡(luò)處于受控狀態(tài)),ARL1=E(τn|網(wǎng)絡(luò)開始就處于蠕蟲傳播狀態(tài)),其中τn如式(4)所定義,為檢測到攻擊的時(shí)間。
首先,定義攻擊反應(yīng)時(shí)間ρ如下:
其中τs為攻擊開始的時(shí)間。
對于參數(shù)k的選擇,Hawkins[9]研究指出,若要求CUSUM在受控狀態(tài)下的ARL0滿足一定的條件下而在某個(gè)δ處的ARL1達(dá)到最小,則應(yīng)取k=E(C)+δ/2,但是實(shí)際難以真正準(zhǔn)確知道某個(gè)主動(dòng)P2P 蠕蟲的傳播對P2P 網(wǎng)絡(luò)的影響。若δ和k取值過小,則會(huì)導(dǎo)致過高的誤報(bào)率。因?yàn)镻2P蠕蟲若不能在初期廣泛快速傳播,使得用戶有足夠的時(shí)間來應(yīng)對,其難以對整個(gè)P2P 網(wǎng)絡(luò)造成大的破壞,所以一定的低速P2P蠕蟲的漏報(bào)是可以容許的。綜上所述,參數(shù)k 應(yīng)該在ARL0滿足設(shè)定要求前提下,盡可能取值小一些,以期盡可能檢測出更多的主動(dòng)P2P 蠕蟲活動(dòng)。
在實(shí)驗(yàn)中發(fā)現(xiàn)對于所有的節(jié)點(diǎn)設(shè)定相同的k 難以獲得滿意的結(jié)果。因?yàn)镻2P 節(jié)點(diǎn)的網(wǎng)絡(luò)條件具有很大的差別,所以傳播蠕蟲的能力也有很大的差異性,導(dǎo)致傳播蠕蟲時(shí)偏移量δ也各不相同。根據(jù)不同的網(wǎng)絡(luò)條件和不同的鄰居節(jié)點(diǎn)數(shù)量的節(jié)點(diǎn)設(shè)置不同的偏移量,能更好地檢測到主動(dòng)P2P 蠕蟲的傳播。
同時(shí)參數(shù)k 是由于蠕蟲傳播,導(dǎo)致E(C)向上偏移所得,可以記k為:
其中α為一個(gè)正數(shù),稱為偏移率。
由于蠕蟲傳播所導(dǎo)致的均值偏移預(yù)期為δ,所以cn=E(C)+δ。
可以得知在蠕蟲的傳播階段,Zn-Zn-1即每輪檢測CUSUM 統(tǒng)計(jì)量的增量為αE(C)。門限值h 從邏輯上可以理解為是由每輪的CUSUM 統(tǒng)計(jì)量增量經(jīng)過攻擊反應(yīng)時(shí)間ρ所累積出的,因此門限值h 可以記為:
當(dāng)攻擊反應(yīng)時(shí)間ρ設(shè)定得小的時(shí)候,可能導(dǎo)致過高的誤判率;反之將攻擊反應(yīng)時(shí)間設(shè)定過大又需要很長的時(shí)間才能檢測到蠕蟲的傳播。
最后,E(C)可以由實(shí)驗(yàn)預(yù)先得知,并根據(jù)觀測到的結(jié)果實(shí)時(shí)進(jìn)行修正。主動(dòng)P2P 蠕蟲可能降低傳播速度,以躲避系統(tǒng)的檢測,但是系統(tǒng)觀測到的E(C)將不可避免地高于傳播前的狀態(tài),所以E(C)的提高也可以作為一個(gè)系統(tǒng)檢測主動(dòng)P2P蠕蟲的輔助因素。對于傳播速度較慢的P2P蠕蟲,也可以通過檢測E(C)的變化而得知。
P2P 網(wǎng)絡(luò)由不同的信息處理能力、貢獻(xiàn)率和網(wǎng)絡(luò)帶寬的節(jié)點(diǎn)組成,將信息處理能力強(qiáng)、貢獻(xiàn)率高以及網(wǎng)絡(luò)帶寬大的節(jié)點(diǎn)稱為超級節(jié)點(diǎn)。超級節(jié)點(diǎn)不僅是P2P 網(wǎng)絡(luò)正常運(yùn)轉(zhuǎn)的基礎(chǔ),在受到主動(dòng)P2P 蠕蟲攻擊時(shí),它們的安全也是能否遏制主動(dòng)P2P 蠕蟲快速傳播的關(guān)鍵。因此,為了既能充分利用超級節(jié)點(diǎn)的處理能力,又能重點(diǎn)保護(hù)超級節(jié)點(diǎn)的安全,提出了PPWDS。
圖1 主動(dòng)P2P 蠕蟲檢測系統(tǒng)
如圖1 所示,PPWDS 分為兩層:(1)基本P2P 層BPL(Base P2P Layer),即設(shè)計(jì)要保護(hù)的P2P 層。本層的節(jié)點(diǎn)根據(jù)二元組(IP,Port)對每個(gè)節(jié)點(diǎn)進(jìn)行編號,而且系統(tǒng)將阻止相同的IP 地址以不同的端口號加入網(wǎng)絡(luò),這樣每個(gè)節(jié)點(diǎn)都可以得到一個(gè)惟一的編號。(2)上層P2P 層TPL(Top P2P Layer),是由底層P2P 網(wǎng)絡(luò)超級節(jié)點(diǎn)組成的新的結(jié)構(gòu)化P2P網(wǎng)絡(luò),組織方法可以采用Pastry、CAN、Chord 等。BPL 節(jié)點(diǎn)根據(jù)自身在BPL 的位置,從屬于多個(gè)附近的超級節(jié)點(diǎn),即TPL 節(jié)點(diǎn),這樣不僅可以抵抗TPL 節(jié)點(diǎn)正?;蛘卟徽5碾x線,還能防止某一個(gè)TPL 節(jié)點(diǎn)被蠕蟲感染,偽造以及隱匿整個(gè)下層網(wǎng)絡(luò)的信息。
PPWDS 對流量數(shù)據(jù)的處理分為以下4 步:
(1)BPL 節(jié)點(diǎn)收集自身節(jié)點(diǎn)的網(wǎng)絡(luò)信息,包括節(jié)點(diǎn)自身的長連接和短入站連接、短出站連接的連接對象編號和連接數(shù)量等。
(2)BPL 節(jié)點(diǎn)將收集的節(jié)點(diǎn)信息直接或者通過其他節(jié)點(diǎn)上傳給上級的TPL 節(jié)點(diǎn)。TPL 節(jié)點(diǎn)根據(jù)得到的信息執(zhí)行檢測算法,檢測是否有節(jié)點(diǎn)正在傳播主動(dòng)P2P 蠕蟲。
(3)TPL 節(jié)點(diǎn)收到BPL 節(jié)點(diǎn)信息并執(zhí)行檢測后,首先將信息共享到附近的TPL節(jié)點(diǎn),防止自身突然離線造成的損失,其次還要將信息共享到連接對象所屬的上層TPL 節(jié)點(diǎn),目的在于防止感染P2P蠕蟲的節(jié)點(diǎn)偽造或者隱匿自身信息。
(4)TPL 根據(jù)檢測結(jié)果,對出現(xiàn)異常的BPL 節(jié)點(diǎn)直接或者間接進(jìn)行處理。
利用P2P 仿真工具PeerSim 對P2P 網(wǎng)絡(luò)進(jìn)行模擬,在此基礎(chǔ)上對PBD 檢測主動(dòng)P2P 蠕蟲進(jìn)行了一系列的實(shí)驗(yàn)。任取一個(gè)P2P 節(jié)點(diǎn)作為蠕蟲傳播起點(diǎn),并對各種不同的參數(shù)各進(jìn)行了50 次模擬實(shí)驗(yàn)。
圖2 是α和ρ分別取3、4、5 的蠕蟲傳播以及PBD 的檢測結(jié)果。根據(jù)文獻(xiàn)[10]所測量的KAD 網(wǎng)絡(luò),設(shè)定α=4 時(shí),經(jīng)過實(shí)驗(yàn)系統(tǒng)沒有產(chǎn)生過誤報(bào),可以使得ARL0達(dá)到預(yù)定的要求。檢測系統(tǒng)PBD 平均經(jīng)過三個(gè)時(shí)間間隔第一次檢測到蠕蟲的傳播,此時(shí)P2P 網(wǎng)絡(luò)的感染率在3%~10%,滿足。但是可以明顯看出,在一段時(shí)間后,PBD 檢測時(shí)延明顯變大。原因在于設(shè)定節(jié)點(diǎn)擁有的鄰居越少,傳播蠕蟲的速度越慢,所以此類節(jié)點(diǎn)傳播蠕蟲時(shí)的偏移率要明顯小于擁有大量鄰居的節(jié)點(diǎn),需要相對更長的時(shí)間才能檢測到這類節(jié)點(diǎn)的異常狀態(tài)。
圖2 固定α和ρ參數(shù)檢測結(jié)果
對比α=4,ρ=4 的數(shù)據(jù),可以看出α=3,ρ=3 時(shí)檢測速度有了極大的提高,幾乎在傳播的時(shí)刻就能立刻檢測到P2P蠕蟲的傳播。但是在實(shí)驗(yàn)中,可以發(fā)現(xiàn)檢測到的蠕蟲傳播數(shù)量甚至大于真實(shí)的蠕蟲傳播數(shù)量,明顯有誤報(bào)的情況發(fā)生。而且經(jīng)過實(shí)驗(yàn),系統(tǒng)可能在P2P 節(jié)點(diǎn)上線并帶有大量未完成的下載任務(wù)情況下,以及P2P 節(jié)點(diǎn)有比較大量的搜索請求時(shí)產(chǎn)生誤報(bào)。通過α=5,ρ=5 的檢測曲線,可以看出檢測的時(shí)間間隔相比前兩者有明顯增加。以上實(shí)驗(yàn)完全印證了之前的分析,即α、ρ取值大小與檢測的速度呈現(xiàn)出正相關(guān)的關(guān)系。
對于變換參數(shù),記α=α基數(shù)+節(jié)點(diǎn)度系數(shù)×節(jié)點(diǎn)度數(shù)。圖3 是在ρ=4 的基礎(chǔ)上,分別取α基數(shù)為2、2.5、3 以及節(jié)點(diǎn)度系數(shù)為0.05、0.15 的蠕蟲傳播,以及PBD 的檢測結(jié)果。在α基數(shù)取值為2,節(jié)點(diǎn)度系數(shù)取0.05 時(shí),較小的節(jié)點(diǎn)在進(jìn)行資源搜索、聯(lián)系人查找時(shí),會(huì)產(chǎn)生誤報(bào)。加大節(jié)點(diǎn)度系數(shù)至0.15,誤報(bào)的情況仍然未能解決,繼續(xù)增大節(jié)點(diǎn)度系數(shù)系統(tǒng)檢測速度會(huì)急劇降低,所以α基數(shù)不能設(shè)置得過小。稍微加大α基數(shù)后,實(shí)驗(yàn)系統(tǒng)在α=2.5+0.05×節(jié)點(diǎn)度數(shù)以及α=3.0+0.05×節(jié)點(diǎn)度數(shù)情況下均沒有產(chǎn)生過誤報(bào),也可以使得ARL0達(dá)到預(yù)定的要求。但是α基數(shù)設(shè)置越小,檢測到蠕蟲傳播的速度越快,越能及時(shí)獲得P2P 蠕蟲傳播的及時(shí)情況。所以在使得ARL0達(dá)到預(yù)定要求的情況下,盡量選取小的α基數(shù)能獲得更好的檢測效果。而節(jié)點(diǎn)度系數(shù)的作用在于能夠使用相對于固定參數(shù)的α更小的α基數(shù),而不會(huì)因?yàn)橘Y源搜索、聯(lián)系人查找等正常的P2P 行為產(chǎn)生誤報(bào)。
圖3 變換α和ρ參數(shù)檢測結(jié)果
對于變換參數(shù)的檢測方法,系統(tǒng)同樣能在蠕蟲開始傳播的三個(gè)時(shí)間間隔后檢測到蠕蟲的傳播,此時(shí)P2P 網(wǎng)絡(luò)的感染率依舊處于3%~15%之間,但是對于節(jié)點(diǎn)度數(shù)較小的節(jié)點(diǎn)傳播蠕蟲檢測速度也有很大的提高,可以及時(shí)準(zhǔn)確地掌握整個(gè)P2P 網(wǎng)絡(luò)的情況。因此可以認(rèn)為,變換參數(shù)的PBD 檢測方法相對于固定參數(shù)的檢測方法更為優(yōu)秀。
實(shí)驗(yàn)中還發(fā)現(xiàn)PBD 方法的一個(gè)缺點(diǎn),也是大部分與連接點(diǎn)相關(guān)的方法共同的缺點(diǎn),即如果有某個(gè)節(jié)點(diǎn)惡意發(fā)送大量的資源搜索信息和聯(lián)系人查找信息,系統(tǒng)會(huì)產(chǎn)生誤報(bào)。因?yàn)橛袗阂庑袨榈墓?jié)點(diǎn)較少,也不具有傳播性,PPWDS 檢測到僅有個(gè)別的節(jié)點(diǎn)有傳播P2P 蠕蟲的可能,可以認(rèn)為P2P 網(wǎng)絡(luò)安全沒有P2P 蠕蟲的傳播。
對比CCD 檢測方法,兩者檢測到蠕蟲時(shí)的節(jié)點(diǎn)感染率分別為CCD 的2%~19%和3%~10%,可以認(rèn)為兩個(gè)檢測方法的檢測速度相差不大。這里CCD 不存在誤檢率,經(jīng)過實(shí)驗(yàn),可以認(rèn)為在一個(gè)穩(wěn)定、成熟的P2P 網(wǎng)絡(luò)中CCD 方法誤檢率幾乎為零。但是在一個(gè)快速發(fā)展或者不成熟的P2P 網(wǎng)絡(luò)中,CCD 可能由于P2P 網(wǎng)絡(luò)上某種流行資源的發(fā)布而使得整個(gè)網(wǎng)絡(luò)的流量陡增,從而使網(wǎng)絡(luò)上的持續(xù)連接在一個(gè)相對較長的時(shí)間內(nèi)保持較高的狀態(tài),而導(dǎo)致誤報(bào)。這種流行資源的發(fā)布,網(wǎng)絡(luò)上節(jié)點(diǎn)的搜索量會(huì)增大,但是不會(huì)有持續(xù)的搜索在某一個(gè)節(jié)點(diǎn)上發(fā)生,同時(shí)PBD 忽略時(shí)間較長連接,不會(huì)對此種狀況產(chǎn)生誤報(bào)。
本文采用了CUSUM 算法來檢測P2P 網(wǎng)絡(luò)中節(jié)點(diǎn)的行為,通過檢測節(jié)點(diǎn)的出站短連接的變化情況,來獲知整體P2P 網(wǎng)絡(luò)是否有蠕蟲傳播以及蠕蟲傳播的及時(shí)信息。該算法相比僅僅檢測節(jié)點(diǎn)連接情況的算法,能得到相同的準(zhǔn)確率和更低的誤報(bào)率,在檢測系統(tǒng)的結(jié)構(gòu)上也符合P2P 的初衷。在提出算法的基礎(chǔ)上,還設(shè)計(jì)了一個(gè)主動(dòng)P2P 蠕蟲檢測系統(tǒng),該系統(tǒng)不僅適用于主動(dòng)P2P 蠕蟲的檢測,還能適用于其他類型的P2P 蠕蟲檢測。接下來的工作,其一就是研究其他類型的P2P 蠕蟲傳播特征,使該系統(tǒng)的適用范圍更加廣泛;其二是研究該系統(tǒng)在遏制P2P 蠕蟲傳播時(shí)能起到的作用。
[1] Zhou Lidong,Zhang Lintao,McSherry F.A first look at peerto-peer worms:threats and defenses[C]//Proceedings of the 4th International Workshop on Peer-to-Peer Systems,2005:24-35.
[2] Chen Guanling,Gray R S.Simulating non-scanning worms on peer-to-peer networks[C]//Proceedings of the 1st International Conference on Scalable Information Systems,InfoScale’06.New York,NY,USA:ACM,2006.
[3] Wang Yang,Wang Chenxi.Modeling the effects of timing parameters on virus propagation[C]//Proceedings of the ACM Workshop on Rapid Malcode(WORM’03).New York,NY,USA:ACM,2006.
[4] Zou Changchun,Gong Weibo.Code red worm propagation modeling and analysis[C]//Proceedings of the 9th ACM Conference on Computer and Communications Security(CCS’02).Washington DC,USA:ACM,2002.
[5] Zhang Xiaosong,Chen Ting.Proactive worm propagation modeling and analysis in unstructured peer-to-peer networks[J].Zhejiang Univ-Sci C(Comput and Electron),2010,11(2):119-129.
[6] 王平,方濱興,云曉春.基于用戶習(xí)慣的蠕蟲的早期發(fā)現(xiàn)[J].通信學(xué)報(bào),2006(2):56-65.
[7] 張治江.主動(dòng)P2P 蠕蟲的檢測與防御技術(shù)研究[D].武漢:華中科技大學(xué),2009.
[8] 濮曉龍.關(guān)于積累和(CUSUM)檢驗(yàn)的改進(jìn)[J].應(yīng)用數(shù)學(xué)學(xué)報(bào),2003,26(2):226-241.
[9] Hawkins D M.Cumulative sum charts and charting for quality improvement[M].New York:Springer-Verlag,1997:31-32.
[10] 余杰.P2P 網(wǎng)絡(luò)測量與安全關(guān)鍵技術(shù)研究[D].長沙:國防科技大學(xué),2010.