樊郁徽,徐寧
(淮南師范學(xué)院,安徽 淮南 232038)
綜合特征行為的P2P僵尸網(wǎng)絡(luò)的檢測算法
樊郁徽,徐寧
(淮南師范學(xué)院,安徽 淮南 232038)
通過對基于P2P協(xié)議的僵尸主機(jī)的運(yùn)行機(jī)制的研究,將其生存周期劃分為三個(gè)特征階段,綜合每個(gè)階段P2P僵尸主機(jī)所表現(xiàn)出的不同特征行為,提出綜合特征行為的P2P僵尸網(wǎng)絡(luò)的檢測算法。通過對捕獲的網(wǎng)絡(luò)出口流量采取離線檢測與在線檢測相結(jié)合的方法,逐層分步對P2P僵尸主機(jī)進(jìn)行篩檢并定位,能夠有效降低誤報(bào)率,并將處于攻擊階段的P2P僵尸主機(jī)進(jìn)行及時(shí)隔離,降低P2P僵尸網(wǎng)絡(luò)的危害。
P2P;僵尸網(wǎng)絡(luò);特征行為
中國上網(wǎng)用戶數(shù)已經(jīng)達(dá)到4.5億,但中國國家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心(CNCERT)發(fā)布的《2010年中國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報(bào)告》稱2010年僵尸網(wǎng)絡(luò)控制服務(wù)器IP總數(shù)為13782個(gè)。其中,境內(nèi)僵尸網(wǎng)絡(luò)控制服務(wù)器IP數(shù)量為7251個(gè),境外僵尸網(wǎng)絡(luò)控制服務(wù)器IP數(shù)量為 6531個(gè)。2010年僵尸網(wǎng)絡(luò)受控主機(jī)IP總數(shù)為5622023個(gè)。其中,境內(nèi)僵尸網(wǎng)絡(luò)受控主機(jī)IP數(shù)量為470120個(gè),境外僵尸網(wǎng)絡(luò)受控主機(jī)IP數(shù)量為5151903個(gè)[1]。由僵尸網(wǎng)絡(luò)而引發(fā)的在網(wǎng)絡(luò)上竊密、發(fā)動(dòng)DDoS攻擊和發(fā)送大量的垃圾郵件等方面,對政府部門、商業(yè)機(jī)構(gòu)以及普通用戶造成了嚴(yán)重危害,成為影響互聯(lián)網(wǎng)安全的重要因素。
構(gòu)成僵尸網(wǎng)絡(luò)的命令與通信機(jī)制大概分為三種形式:(1)傳統(tǒng)的基于IRC協(xié)議的僵尸網(wǎng)絡(luò);(2)基于HTTP協(xié)議的僵尸網(wǎng)絡(luò);(3)基于P2P協(xié)議的僵尸網(wǎng)絡(luò)?;贗RC協(xié)議的僵尸網(wǎng)絡(luò)使用的端口由于容易受到防火墻的過濾而導(dǎo)致其無法正常通信,基于HTTP協(xié)議的僵尸網(wǎng)絡(luò)的控制與通信流量雖然能夠輕易地穿透防火墻,但也存在弱點(diǎn),即控制者在發(fā)布控制命令后,控制命令被發(fā)送到服務(wù)器的網(wǎng)頁上,僵尸主機(jī)并不能馬上接收到該命令,而只有當(dāng)僵尸主機(jī)按照預(yù)先的設(shè)定定期或者周期性地去訪問服務(wù)器的相關(guān)網(wǎng)頁時(shí),才能獲取該命令,因此這種僵尸網(wǎng)絡(luò)在可控性和實(shí)時(shí)性方面相對較弱。相對基于IRC和基于HTTP的僵尸網(wǎng)絡(luò)的命令與控制機(jī)制,基于P2P的僵尸網(wǎng)絡(luò)的命令與控制機(jī)制具有較強(qiáng)的抗打擊性和隱蔽性,當(dāng)僵尸網(wǎng)絡(luò)中的部分幾個(gè)僵尸主機(jī)被破獲并不會對整個(gè)僵尸網(wǎng)絡(luò)帶來毀滅性打擊。
僵尸網(wǎng)絡(luò)發(fā)展到現(xiàn)階段,相關(guān)技術(shù)己經(jīng)比較成熟。不同的僵尸網(wǎng)絡(luò)可以選擇不同控制與命令架構(gòu),采用多種不同的協(xié)議來進(jìn)行通信,可以是公開協(xié)議或自制的私有協(xié)議;此外由于攻擊的目標(biāo)不同,僵尸網(wǎng)絡(luò)在設(shè)計(jì)時(shí)選用的攻擊模塊也呈現(xiàn)多樣性的發(fā)展。相應(yīng)地,現(xiàn)在針對僵尸網(wǎng)絡(luò)的檢測方法也非常多。根據(jù)檢測方法的不同特點(diǎn),可以從多方面對已有的僵尸網(wǎng)絡(luò)檢測方法進(jìn)行分類。最早的僵尸網(wǎng)絡(luò)是基于公開的IRC協(xié)議構(gòu)造的,隨之就出現(xiàn)了一些對這一類僵尸的檢測方法;基于HTTP協(xié)議以及P2P協(xié)議的僵尸網(wǎng)絡(luò)的出現(xiàn),檢測方法也逐漸變成與協(xié)議無關(guān)。
目前針對P2P的僵尸網(wǎng)絡(luò)的檢測還沒有一種適用面較廣、通用性較強(qiáng)的檢測方法,這主要是由于不同的P2P僵尸網(wǎng)絡(luò)表現(xiàn)出了較強(qiáng)的個(gè)性化差異。面對這類的僵尸網(wǎng)絡(luò)的快速發(fā)展,如何進(jìn)行有效的檢測成為現(xiàn)階段僵尸網(wǎng)絡(luò)研究的一個(gè)重要方向。
根據(jù)研究發(fā)現(xiàn)感染了P2P僵尸病毒的主機(jī)在其生存的不同時(shí)期內(nèi)的呈現(xiàn)出不同的流量特征,據(jù)此可以將P2P僵尸網(wǎng)絡(luò)分為初始階段、發(fā)呆階段和攻擊階段[2]。在初始階段中主機(jī)感染P2P僵尸網(wǎng)絡(luò)程序后,通過網(wǎng)絡(luò)搜索并加入到該P(yáng)2P僵尸的網(wǎng)絡(luò)中,經(jīng)歷了注入、感染、加入僵尸網(wǎng)絡(luò)、下載二進(jìn)制僵尸升級程序等過程。在這一階段P2P僵尸網(wǎng)絡(luò)會產(chǎn)生大量具有明顯特征的網(wǎng)絡(luò)數(shù)據(jù),如連接數(shù)很多、連接成功率低等特點(diǎn),可以針對這些網(wǎng)絡(luò)特征進(jìn)行檢測。發(fā)呆階段的僵尸主機(jī)在接入其僵尸網(wǎng)絡(luò)后開始與其對等結(jié)點(diǎn)進(jìn)行連接,與所在的僵尸網(wǎng)絡(luò)只保持了簡單的通信和連接,而不發(fā)生其他行為。發(fā)呆階段在僵尸網(wǎng)絡(luò)的生存周期中存在的時(shí)間最長,由于該階段僵尸主機(jī)并沒有產(chǎn)生過多的具有特征行為的流量數(shù)據(jù),所以檢測起來具有一定的難度,而且發(fā)生誤報(bào)的比例也較大。當(dāng)僵尸主機(jī)處于攻擊階段時(shí),會接收到P2P僵尸網(wǎng)絡(luò)控制者的指令,然后開始進(jìn)行網(wǎng)絡(luò)攻擊或破壞活動(dòng),如對指定目標(biāo)進(jìn)行DDOS攻擊、竊取當(dāng)前主機(jī)的資料、大量發(fā)送垃圾電子郵件等行為,其中DDOS攻擊和發(fā)送垃圾電子郵件的行為具有明顯的流量特征,檢測起來也相對較容易。
通過以上分析發(fā)現(xiàn)P2P僵尸主機(jī)在不同的階段存在著以下特點(diǎn):
(1)ICMP報(bào)文異常。當(dāng)感染P2P僵尸程序的主機(jī)在接入本地網(wǎng)絡(luò)后,會隨機(jī)地向該P(yáng)2P僵尸網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行連接,請求加入到該僵尸網(wǎng)絡(luò)中,由于大量的目的節(jié)點(diǎn)可能不可達(dá),因此會出現(xiàn)大量的找不到目的地址的異常的ICMP報(bào)文錯(cuò)誤。(初始階段)
(2)ARP異常請求。由于P2P僵尸程序內(nèi)部存在有多個(gè)固定連接節(jié)點(diǎn)地址,僵尸主機(jī)在初始階段會向這些節(jié)點(diǎn)的IP地址發(fā)送ARP請求報(bào)文,導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)大量的ARP協(xié)議報(bào)文。(初始階段)
(3)主機(jī)端口連接建立速率。由于P2P僵尸主機(jī)在初始階段時(shí),會同時(shí)向很多的對等節(jié)點(diǎn)發(fā)起連接,但與其中大量的對等節(jié)點(diǎn)的連接并不成功,因此通過檢測主機(jī)間連接成功率也可以作為發(fā)現(xiàn)僵尸主機(jī)的方法。(初始階段)
(4)特定時(shí)間段內(nèi)的數(shù)據(jù)包大小相似。感染同一P2P僵尸病毒的主機(jī)在同一時(shí)段表現(xiàn)出的行為特征也基本一致,因?yàn)楫?dāng)僵尸程序在后臺自動(dòng)運(yùn)行后,會主動(dòng)與其他僵尸主機(jī)進(jìn)行通信,而不受該主機(jī)的使用者控制,所有這些主機(jī)之間的數(shù)據(jù)通信在一段時(shí)間內(nèi)所產(chǎn)生數(shù)據(jù)包應(yīng)該大小相似。(發(fā)呆階段)
(5)內(nèi)外網(wǎng)相同連接。通過檢測發(fā)現(xiàn),內(nèi)網(wǎng)感染P2P僵尸網(wǎng)絡(luò)的主機(jī)之間的通信連接呈現(xiàn)出聚集的特征。內(nèi)網(wǎng)中感染了同一僵尸病毒的部分主機(jī)與外網(wǎng)對等的控制結(jié)點(diǎn)的通信連接呈現(xiàn)出聚集的特征,對于內(nèi)網(wǎng)中感染不同僵尸病毒的主機(jī),在內(nèi)網(wǎng)和外網(wǎng)都有與之對等的控制結(jié)點(diǎn)的情況與上述的情況類似。(發(fā)呆階段或者攻擊階段)
(6)SMTP報(bào)文和DDos攻擊。一些僵尸主機(jī)在收到控制者的攻擊指令后會在短時(shí)間內(nèi)建立大量的SMTP連接并且發(fā)送大量垃圾電子郵件,還有一些僵尸主機(jī)會對指定的目標(biāo)地址發(fā)送DDos攻擊,根據(jù)這些網(wǎng)絡(luò)行為特點(diǎn)可以檢測出相應(yīng)P2P僵尸主機(jī)。(攻擊階段)
綜合上文的分析,并從中選取僵尸主機(jī)在各個(gè)階段的明顯的行為特征,可以得到如下結(jié)論:
(1)初始階段:僵尸主機(jī)產(chǎn)生大量ICMP錯(cuò)誤報(bào)文,且連接成功率低。
(2)發(fā)呆階段:僵尸主機(jī)與大量連接節(jié)點(diǎn)發(fā)生大小相似的通信量。
(3)攻擊階段:僵尸主機(jī)產(chǎn)生大量SMTP數(shù)據(jù)包或產(chǎn)生大量TCP SYN的數(shù)據(jù)包。
根據(jù)上文中得出的僵尸主機(jī)的特征行為,對網(wǎng)絡(luò)中的流量進(jìn)行采樣,按照僵尸主機(jī)的生存周期分步分析,逐層篩檢,最后確定僵尸主機(jī)。采用這種算法進(jìn)行僵尸主機(jī)的檢測,在很大程度上能降低檢測的誤報(bào)率。
算法的設(shè)計(jì)分為兩步:離線檢測階段和在線檢測階段。離線檢測階段定時(shí)捕獲出口流量數(shù)據(jù),并根據(jù)僵尸主機(jī)的初始階段和發(fā)呆階段的行為特征進(jìn)行離線分析,以連接成功率低和與大量連接節(jié)點(diǎn)產(chǎn)生相似通信量作為兩個(gè)階段的行為特征進(jìn)行檢測,獲得疑似僵尸主機(jī)的黑名單,但考慮到誤報(bào)原因,并不對其中的主機(jī)進(jìn)行隔離處理。在線檢測階段主要針對僵尸主機(jī)的攻擊行為進(jìn)行檢測,這也是僵尸主機(jī)產(chǎn)生危害的階段,主要行為表現(xiàn)為產(chǎn)生大量SMTP連接發(fā)送垃圾郵件,或產(chǎn)生大量TCP SYN數(shù)據(jù)包進(jìn)行DDos攻擊,在這一階段檢測出的主機(jī)若存在于疑似黑名單中則可確定其為僵尸主機(jī),將其地址加入到確診黑名單,并可對其進(jìn)行隔離處理。
在線檢測階段檢出的處于攻擊階段的僵尸主機(jī)可能并沒有出現(xiàn)在疑似黑名單中,但通過長期、定時(shí)的離線、在線檢測,就可以彌補(bǔ)這一缺陷。對于疑似黑名單和確診黑名單中的主機(jī)地址需要定期重置或及時(shí)清理,以避免出現(xiàn)誤報(bào)情況。
按照設(shè)計(jì)思路,將整個(gè)流程分為2個(gè)步驟來進(jìn)行:離線檢測階段獲得疑似僵尸主機(jī)黑名單;在線檢測階段將確診僵尸主機(jī)黑名單并將處于攻擊階段的僵尸主機(jī)隔離。4.2.1離線檢測階段
(1)定義采集流量數(shù)據(jù)的周期T,將采集的流量數(shù)據(jù)進(jìn)行離線分析。
(2)將采集到的流量數(shù)據(jù),按照源地址(Srcip)、目的地址(Dstip)、協(xié)議類型(Protocol)、數(shù)據(jù)包發(fā)送時(shí)間(Times)和數(shù)據(jù)包字節(jié)數(shù)(Bytes)建立數(shù)據(jù)流集合。
(3)定義滑動(dòng)時(shí)間窗口(Time=100s),將數(shù)據(jù)流集合中的數(shù)據(jù)按滑動(dòng)時(shí)間窗口分割,并以源地址為篩選依據(jù)建立源地址連接子集。
(4)比照疑似黑名單中的源IP地址,若源IP地址已存在,則轉(zhuǎn)到下一條連接子集。
(5)計(jì)算該源地址收到的連接成功數(shù)據(jù)包數(shù)量與發(fā)送的請求連接數(shù)據(jù)包數(shù)量之比,即連接成功率,若該值處于較低的水平(在0~0.1之間)[3],則反應(yīng)出該源地址與外部目的地址連接成功率不高,存在疑似僵尸主機(jī)行為,并且該地址的主機(jī)可能處于僵尸網(wǎng)絡(luò)活動(dòng)周期的初始階段。
(6)在該數(shù)據(jù)采集周期內(nèi),延時(shí)一個(gè)滑動(dòng)時(shí)間窗口,對該源地址成功建立的連接進(jìn)行會話量統(tǒng)計(jì),若存在大量通信量大小類似的連接,則可進(jìn)一步判斷該源地址的主機(jī)可能處于僵尸網(wǎng)絡(luò)活動(dòng)周期的發(fā)呆階段,并將該主機(jī)的IP地址及MAC地址加入到疑似黑名單中進(jìn)行觀察。
(7)重復(fù)執(zhí)行第(4)—(6)步,獲取疑似僵尸網(wǎng)絡(luò)的源IP地址和源MAC地址黑名單。
4.2.2 在線檢測階段
(1)對出口流量中的SMTP數(shù)據(jù)包和TCP SYN數(shù)據(jù)包進(jìn)行篩檢,將采集的流量數(shù)據(jù)分成兩個(gè)數(shù)據(jù)流集合。
(2)定義滑動(dòng)時(shí)間窗口,將數(shù)據(jù)流集合中的數(shù)據(jù)分別按照時(shí)間窗口分割,并分別以源IP地址為篩選依據(jù)建立兩個(gè)連接子集。
(3)分別計(jì)算兩個(gè)子集中的SMTP連接數(shù)和TCP SYN數(shù)據(jù)包數(shù)量,以源IP地址作為篩選依據(jù)。若其一值超過許可范圍 (SMTP連接數(shù)大于 10,TCP SYN請求數(shù)大于50),則將該源IP地址與疑似僵尸網(wǎng)絡(luò)黑名單比對,若存在,則判定為僵尸主機(jī)并加入確診黑名單。
(4)重復(fù)執(zhí)行步驟(3)。
通過上述算法的設(shè)計(jì),在檢測P2P僵尸網(wǎng)絡(luò)主機(jī)時(shí)利用離線檢測和在線檢測相結(jié)合的辦法,可以大為減輕檢測平臺的負(fù)載。離線檢測階段可以按時(shí)間周期分步實(shí)施,從而獲取到疑似僵尸主機(jī)的黑名單,而在線檢測階段只需抓取SMTP和SYN數(shù)據(jù)流量并分析,這一部分的協(xié)議流量在整個(gè)網(wǎng)絡(luò)出口處所占比重很小,因此執(zhí)行效果較好,特別是在出口流量很大的網(wǎng)絡(luò)中,實(shí)施難度較小。根據(jù)該算法獲得的僵尸主機(jī)都必須在攻擊階段被確診,因此可能有大量的僵尸主機(jī)并沒有處在攻擊階段而被漏報(bào),但考慮到僵尸主機(jī)產(chǎn)生的危害主要是處在攻擊階段,如果能在攻擊階段將其檢出并隔離,對降低僵尸網(wǎng)絡(luò)的危害是有很大好處的。
[1]國家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心.2010年網(wǎng)絡(luò)安全狀況綜述[EB/OL].http://www.cert.org.cn/UserFiles/File/2010annual%20report1.pdf
[2]柴勝,胡亮,梁波.一種p2p Botnet在線檢測方法研究[J].電子學(xué)報(bào),2010,(4):906-912
[3]劉建波.基于流量分析的P2P僵尸網(wǎng)絡(luò)檢測[J].計(jì)算機(jī)與數(shù)字工程,2011,(3):90-91
TP393
A
1009-9530(2012)03-0033-03
2011-11-10
安徽省高校自然科學(xué)基金資助項(xiàng)目(KJ2012Z363);淮南師范學(xué)院自然科學(xué)項(xiàng)目(2010LK17)
樊郁徽(1976-),男,淮南師范學(xué)院網(wǎng)絡(luò)信息中心講師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。
淮南師范學(xué)院學(xué)報(bào)2012年3期