專利名稱:基于數(shù)據(jù)包序列特征的irc僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)和檢測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信安全領(lǐng)域,特別是涉及基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)和檢測(cè)方法。
背景技術(shù):
僵尸網(wǎng)絡(luò)是一群被僵尸程序(bot)感染的僵尸主機(jī)(zombie)的集合,分布于家庭、企業(yè)、政府機(jī)構(gòu)等各種場(chǎng)合,接收來自僵尸控制者(botmaster或botherder)的指令,進(jìn)行DDoS、信息竊取、網(wǎng)絡(luò)釣魚、垃圾郵件、廣告濫點(diǎn)、非法投票等多種攻擊行為。由于攻擊手段豐富多樣、隱蔽性強(qiáng)、有能力發(fā)動(dòng)大規(guī)模攻擊、以經(jīng)濟(jì)利益為目的等特點(diǎn),僵尸網(wǎng)絡(luò)已成為黑客產(chǎn)業(yè)鏈中的一個(gè)重要環(huán)節(jié),受到新聞媒體、安全業(yè)界和學(xué)術(shù)機(jī)構(gòu)的廣泛關(guān)注。
根據(jù)命令與控制(Command and Control,簡(jiǎn)稱C&C)結(jié)構(gòu)的不同,僵尸網(wǎng)絡(luò)分為集中式和非集中式兩大類。IRC僵尸網(wǎng)絡(luò)屬于集中式C&C結(jié)構(gòu),它依賴于C&C服務(wù)器實(shí)現(xiàn)僵尸控制者與僵尸主機(jī)之間的通信,其結(jié)構(gòu)簡(jiǎn)單,易于部署,常采用IRC協(xié)議實(shí)現(xiàn)通信。IRC(Internet Relay Chat)協(xié)議由RFC 1459定義,是基于TCP協(xié)議的應(yīng)用層協(xié)議,其基本功能是使人們能夠利用IRC頻道(Cha皿el)實(shí)現(xiàn)相互之間的實(shí)時(shí)對(duì)話。主機(jī)感染IRC僵尸程序后,經(jīng)過NICK、 USER等一系列協(xié)議行為,加入到僵尸網(wǎng)絡(luò)控制者指定的C&C服務(wù)器頻道。同時(shí),僵尸控制者采用IRC客戶端軟件加入到同一個(gè)C&C服務(wù)器頻道,向各個(gè)僵尸主機(jī)發(fā)送自定義格式的控制命令,而僵尸主機(jī)在接收到控制命令之后會(huì)解析并執(zhí)行。基于IRC協(xié)議的C&C服務(wù)器為僵尸網(wǎng)絡(luò)提供了有效的通信方式。從攻擊者的角度,IRC僵尸網(wǎng)絡(luò)具有如下優(yōu)點(diǎn)1) IRC僵尸網(wǎng)絡(luò)功能強(qiáng)大豐富,仍能滿足黑客需求;2) IRC僵尸網(wǎng)絡(luò)技術(shù)門檻和成本低,各種黑客論壇和社區(qū)免費(fèi)提供大量IRC僵尸程序代碼的下載,很容易被各種技術(shù)水平參差不齊的人惡意利用;3)互聯(lián)網(wǎng)上的許多主機(jī)防護(hù)措施不到位,存在各種漏洞,許多用戶缺乏基本的安全防護(hù)意識(shí)和技術(shù);4)有些國(guó)家和地區(qū)網(wǎng)絡(luò)安全的相關(guān)法律法規(guī)不健全。因此,以IRC僵尸網(wǎng)絡(luò)為代表的集中式僵尸網(wǎng)絡(luò)給互聯(lián)網(wǎng)造成的威脅不容忽視。
IRC僵尸網(wǎng)絡(luò)和正常聊天同屬IRC協(xié)議的應(yīng)用。IRC僵尸網(wǎng)絡(luò)的會(huì)話內(nèi)容序列近似符合周期性,主要由于1)如果C&C服務(wù)器處于在線狀態(tài),一般情況下,IRC僵尸主機(jī)與其保持TCP連接,并在大部分時(shí)間內(nèi)如同僵尸般處于"靜靜發(fā)呆"狀態(tài),即僵尸主機(jī)與C&C服務(wù)器間僅采用"ACK-PING-PONG"的模式保持連接。2)如果C&C服務(wù)器處于離線狀態(tài),僵尸程序因連接不到指定的C&C服務(wù)器,而不停的按照固定時(shí)間間隔連接;3)存在一些IRC僵尸網(wǎng)絡(luò),其僵尸控制者本身為一程序,它按照固定的時(shí)間間隔向所有僵尸主機(jī)發(fā)送攻擊命令。
僵尸主機(jī)的這種周期性一般并非嚴(yán)格的周期性,主要原因在于1)僵尸控制者向僵尸主機(jī)發(fā)送攻擊命令時(shí)會(huì)打破周期性規(guī)律,但作為僵尸控制者的人對(duì)僵尸網(wǎng)絡(luò)的控制一般只占僵尸網(wǎng)絡(luò)生命周期的極小部分;2)網(wǎng)絡(luò)延時(shí)、數(shù)據(jù)包亂序、數(shù)據(jù)包重傳等不確定因素會(huì)造成周期性的小范圍變動(dòng)。由于正常的IRC聊天應(yīng)用會(huì)有較多的人參與到同一個(gè)廣播式聊天頻道中,而每一個(gè)人所發(fā)表的言論的長(zhǎng)度都是隨機(jī)的,這就導(dǎo)致對(duì)于正常的IRC聊天應(yīng)用,其周期性的"ACK-PING-PONG"數(shù)據(jù)包大小序列會(huì)被聊天所造成的大量隨機(jī)噪聲所淹沒,其會(huì)話內(nèi)容序列整體上沒有周期性的特征。
發(fā)明內(nèi)容
本發(fā)明公開了一種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)和檢測(cè)方法,基于IRC僵尸主機(jī)與C&C(Command&Contro1)控制服務(wù)器之間通信時(shí)的數(shù)據(jù)包大小序列的周期性和大小特征,通過識(shí)別獲取網(wǎng)絡(luò)出口處的IRC流量,判斷IRC會(huì)話的周期度和數(shù)據(jù)包大小均值來檢測(cè)IRC僵尸網(wǎng)絡(luò)。 本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的 —種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng),包括以下模塊
離線基礎(chǔ)數(shù)據(jù)獲取模塊本模塊負(fù)責(zé)從被監(jiān)控網(wǎng)絡(luò)出口流量鏡像的TCP流量(包括數(shù)據(jù)包內(nèi)容)中,利用IRC協(xié)議的NICK、 USER、 PASSWORD、 PRIVMSG、 PUBMSG、 NOTICE等協(xié)議關(guān)鍵特征字段對(duì)其進(jìn)行協(xié)議的離線內(nèi)容匹配,從中識(shí)別和發(fā)現(xiàn)基于IRC協(xié)議的服務(wù)器的IP地址和端口 ,并將這些信息寫入數(shù)據(jù)中心,建立IRC服務(wù)器的IP地址和端口數(shù)據(jù)庫,為在線數(shù)據(jù)實(shí)時(shí)分析模塊提供基礎(chǔ)的數(shù)據(jù)準(zhǔn)備; 在線數(shù)據(jù)實(shí)時(shí)分析模塊本模塊負(fù)責(zé)從IRC服務(wù)相關(guān)的TCP流量(與數(shù)據(jù)中心存放的IRC服務(wù)器IP地址和端口通信的所有TCP流量)中在線實(shí)時(shí)分析出IRC僵尸網(wǎng)絡(luò)命令與控制(Command&Contro1, C&C)服務(wù)器及相應(yīng)的被控IRC僵尸主機(jī);本模塊采用了 "基于已知特征的檢測(cè)"和"基于數(shù)據(jù)包序列特征的檢測(cè)"兩種僵尸網(wǎng)絡(luò)檢測(cè)策略;
首先,本模塊將利用已知的僵尸網(wǎng)絡(luò)C&C服務(wù)器黑白名單(由基于數(shù)據(jù)包序列特征的檢測(cè)部分生成并存放在數(shù)據(jù)中心)進(jìn)行IRC被控僵尸主機(jī)的檢測(cè)如果與C&C服務(wù)器白名單匹配,則與該C&C服務(wù)器通信的IRC客戶端為一個(gè)正常聊天用戶;若與C&C服務(wù)器黑名單匹配,則與該C&C服務(wù)器通信的IRC客戶端為一個(gè)被控IRC僵尸主機(jī);
其次,針對(duì)未能與C&C服務(wù)器黑白名單匹配的IRC服務(wù)相關(guān)的TCP流量,本模塊將繼續(xù)基于數(shù)據(jù)包序列特征進(jìn)行分析;將待檢測(cè)的原始TCP流量轉(zhuǎn)化為數(shù)據(jù)包大小序列,對(duì)每一個(gè)數(shù)據(jù)包大小序列進(jìn)行周期度和大小均值的計(jì)算,若同時(shí)滿足"周期度大于事先設(shè)定的閾值"和"大小均值小于事先設(shè)定的閾值",相應(yīng)的IRC客戶端被判定為IRC被控僵尸主機(jī),否則相應(yīng)的IRC客戶端被判定為IRC正常聊天用戶,其中周期度閾值的設(shè)置范圍為0. 5 0. 8,大小均值閾值的設(shè)置范圍為60 90字節(jié),同時(shí)基于這一結(jié)果,利用IRC服務(wù)器的IP地址和端口信息分別更新C&C服務(wù)器黑名單和C&C服務(wù)器白名單;
數(shù)據(jù)中心模塊數(shù)據(jù)中心存放三種數(shù)據(jù)C&C服務(wù)器黑名單、C&C服務(wù)器白名單、IRC僵尸網(wǎng)絡(luò)檢測(cè)結(jié)果,其中,C&C服務(wù)器黑名單存放僵尸網(wǎng)絡(luò)命令與控制服務(wù)器的IP地址和端口信息以及最后確認(rèn)時(shí)間,C&C服務(wù)器白名單存放IRC聊天服務(wù)器的IP地址和端口信息以及最后確認(rèn)時(shí)間,IRC僵尸網(wǎng)絡(luò)檢測(cè)結(jié)果存放已檢測(cè)出的IRC僵尸主機(jī)IP地址、對(duì)應(yīng)的C&C服務(wù)器信息及檢測(cè)時(shí)間; 檢測(cè)策略控制模塊對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"、"在線數(shù)據(jù)實(shí)時(shí)分析模塊"、"離線基礎(chǔ)數(shù)據(jù)提取模塊"三者進(jìn)行控制;其中,對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"的控制包括協(xié)議、IP地址范圍、存儲(chǔ)策略的控制;對(duì)"在線數(shù)據(jù)實(shí)時(shí)分析模塊"的控制包括對(duì)周期度閾值和大小均值閾值的設(shè)置;對(duì)"離線基礎(chǔ)數(shù)據(jù)提取模塊"的控制包括對(duì)IRC協(xié)議關(guān)鍵詞的增加、刪除、修改,其中周期度閾值的設(shè)置范圍為0. 5 0. 8,大小均值閾值的設(shè)置范圍為60 90字節(jié)。 上述功能模塊相互協(xié)作實(shí)現(xiàn)IRC僵尸網(wǎng)絡(luò)的檢測(cè)。 —種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)方法,采用以下操作步驟實(shí)現(xiàn)
步驟1 :設(shè)置檢測(cè)策略包括對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"、"在線數(shù)據(jù)實(shí)時(shí) 分析模塊"、"離線基礎(chǔ)數(shù)據(jù)提取模塊"三者的控制,對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"的控 制包括開始、停止、協(xié)議、IP地址范圍、存儲(chǔ)策略的控制;對(duì)"在線數(shù)據(jù)實(shí)時(shí)分析模塊"的控 制包括對(duì)周期度閾值和大小均值閾值的設(shè)置以及分析線程的設(shè)定;對(duì)"離線基礎(chǔ)數(shù)據(jù)提取 模塊"的控制包括對(duì)IRC協(xié)議關(guān)鍵詞的增加、刪除、修改; 步驟2 :出口流量鏡像將網(wǎng)絡(luò)出口處的交換機(jī)上將所有TCP流量進(jìn)行鏡像,獲取 所有的完整的TCP數(shù)據(jù)包(包括數(shù)據(jù)包應(yīng)用層負(fù)載),并以pc即文件的形式存儲(chǔ)在鏡像服 務(wù)器上,完成原始數(shù)據(jù)源獲取; 步驟3 :IRC協(xié)議識(shí)別利用NICK、USER、PASSWORD、PRIVMSG、PUBMSG、NOTICE等協(xié) 議關(guān)鍵特征對(duì)存儲(chǔ)在鏡像服務(wù)器上的PCAP文件進(jìn)行IRC協(xié)議的離線分析,從中識(shí)別和發(fā)現(xiàn) 基于IRC協(xié)議的服務(wù)器的IP地址和端口,將結(jié)果寫入數(shù)據(jù)中心,建立IRC服務(wù)器的IP地址 和端口數(shù)據(jù)庫,完成IRC協(xié)議的識(shí)別和發(fā)現(xiàn); 步驟4 :待測(cè)數(shù)據(jù)包提取由離線基礎(chǔ)數(shù)據(jù)提取模塊完成,從所有的原始數(shù)據(jù)中 提取用于檢測(cè)IRC僵尸網(wǎng)絡(luò)的所有數(shù)據(jù)包,從存儲(chǔ)在鏡像服務(wù)器上的pc即文件中實(shí)時(shí)提取 與IRC服務(wù)相關(guān)的所有流量(不包括數(shù)據(jù)包應(yīng)用層負(fù)載),即提取與IRC服務(wù)器的IP地址 和端口通信的所有數(shù)據(jù)包的網(wǎng)絡(luò)層和傳輸層數(shù)據(jù),作為待測(cè)數(shù)據(jù)包; 步驟5 :基于已知特征檢測(cè)IRC僵尸網(wǎng)絡(luò)由在線數(shù)據(jù)實(shí)時(shí)分析模塊完成,將基于 已知IRC僵尸網(wǎng)絡(luò)特征檢測(cè)IRC僵尸網(wǎng)絡(luò),將待測(cè)數(shù)據(jù)包中的IP地址和端口特征與已知特 征(C&C服務(wù)器黑白名單)進(jìn)行匹配,如果與C&C服務(wù)器白名單匹配,則與該C&C服務(wù)器白 名單通信的IRC客戶端為正常的聊天用戶,IRC客戶端的IP地址為IRC聊天客戶的IP地 址;若與C&C服務(wù)器黑名單匹配,則與該C&C服務(wù)器黑名單通信的IRC客戶端為IRC被控僵 尸主機(jī),IRC客戶端的IP地址為IRC被控僵尸主機(jī)的IP地址。若與C&C服務(wù)器黑白名單 均不匹配,則轉(zhuǎn)到步驟6; 步驟6 :基于數(shù)據(jù)包序列特征檢測(cè)在線數(shù)據(jù)實(shí)時(shí)分析模塊將基于IRC客戶端與 IRC服務(wù)器通信過程中的數(shù)據(jù)包大小序列特征檢測(cè)IRC僵尸網(wǎng)絡(luò),從待測(cè)數(shù)據(jù)包中提取不 同的IRC客戶端與IRC服務(wù)器通信過程中TCP會(huì)話的第21個(gè)到第120個(gè)數(shù)據(jù)包的大小序 列,并計(jì)算每一個(gè)序列的均值和周期度,周期度計(jì)算方法如下將整個(gè)數(shù)據(jù)包大小序列映 射到一個(gè)字符串S,通過查找長(zhǎng)度為L(zhǎng)的出現(xiàn)次數(shù)最多的不重疊重復(fù)子串R,計(jì)算R在整個(gè) 字符串S中的比重,通過比重即可衡量會(huì)話內(nèi)容序列的周期性程度,即周期度,若序列的均 值,即數(shù)據(jù)包大小均值<閾值,并且序列的周期度>閾值,則與服務(wù)器通信的客戶端為 IRC僵尸主機(jī),對(duì)應(yīng)的IRC服務(wù)器IP地址和端口為控制服務(wù)器的IP地址和端口 ,否則與IRC 服務(wù)器通信的客戶端為IRC聊天用戶,對(duì)應(yīng)的IRC服務(wù)器的IP和端口為IRC聊天服務(wù)器的 IP和端口,其中周期度的閾值范圍為0. 5 0. 8,大小均值的閾值范圍為60 90字節(jié);
步驟7 :已知特征更新若通過步驟6檢測(cè)出IRC僵尸網(wǎng)絡(luò),則將相應(yīng)的僵尸網(wǎng)絡(luò) C&C服務(wù)器的IP地址和端口加入到C&C服務(wù)器黑名單中,否則將相應(yīng)的IRC聊天服務(wù)器的 IP地址和端口加入到C&C服務(wù)器白名單中。形成的C&C服務(wù)器黑白名單存放在數(shù)據(jù)中心,為步驟5提供用于IRC僵尸網(wǎng)絡(luò)檢測(cè)的已知特征。 本發(fā)明是基于IRC僵尸主機(jī)與C&C(Command&Contro1)控制服務(wù)器之間通信時(shí)的 數(shù)據(jù)包大小序列的周期性和大小特征,通過識(shí)別獲取網(wǎng)絡(luò)出口處的IRC流量,判斷IRC會(huì)話 的周期度和數(shù)據(jù)包大小均值來檢測(cè)IRC僵尸網(wǎng)絡(luò)。本發(fā)明以IRC僵尸網(wǎng)絡(luò)為對(duì)象,采用已 知特征(基于序列特征生成)和序列特征分析相結(jié)合的策略。在序列特征分析方面,基于 IRC僵尸主機(jī)與C&C(Command&Contro1)服務(wù)器之間通信時(shí)會(huì)話的數(shù)據(jù)包大小序列的周期 性和均值特征,通過獲取網(wǎng)絡(luò)出口處的IRC流量,判斷IRC會(huì)話的周期度和數(shù)據(jù)包大小均值 來檢測(cè)IRC僵尸網(wǎng)絡(luò)。在已知特征方面,通過行為分析發(fā)現(xiàn)的已知IRC僵尸網(wǎng)絡(luò)C&C服務(wù) 器和IRC聊天服務(wù)器將分別作為黑、白名單,并依據(jù)序列特征分析的結(jié)果進(jìn)行實(shí)時(shí)更新。
本發(fā)明中的序列特征分析檢測(cè)方法利用了 IRC僵尸主機(jī)連接到C&C控制服務(wù)器之 后,保持連接卻較少發(fā)送數(shù)據(jù)包應(yīng)用層負(fù)載這一控制特征,基于后綴樹方法計(jì)算數(shù)據(jù)包序 列的周期度,設(shè)定周期度和數(shù)據(jù)包大小均值兩個(gè)閾值,可在IRC控制會(huì)話的前120個(gè)數(shù)據(jù)包 之內(nèi)實(shí)現(xiàn)IRC僵尸網(wǎng)絡(luò)的檢測(cè),即可在被IRC僵尸網(wǎng)絡(luò)控制之后的很短之間內(nèi)實(shí)現(xiàn)IRC僵 尸網(wǎng)絡(luò)的檢測(cè)。本發(fā)明的主要?jiǎng)?chuàng)新點(diǎn)在于通過度量IRC僵尸主機(jī)與C&C服務(wù)器之間通信過 程中數(shù)據(jù)包序列的周期度和均值,以區(qū)別IRC聊天應(yīng)用和IRC僵尸網(wǎng)絡(luò),從而達(dá)到IRC僵尸 網(wǎng)絡(luò)檢測(cè)的目的。
圖1是基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)的原理圖;
圖2為字符串S為"abcdabe"的后綴樹形式; 圖3為周期度計(jì)算實(shí)施例中字符串所形成的后綴樹,在具體實(shí)施方式
的步驟6中 有所說明。
具體實(shí)施例方式
參見圖l所示,一種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng),是由離線基礎(chǔ)
數(shù)據(jù)獲取模塊、在線數(shù)據(jù)實(shí)時(shí)分析模塊、數(shù)據(jù)中心和檢測(cè)策略控制模塊四部分構(gòu)成。
離線基礎(chǔ)數(shù)據(jù)獲取模塊負(fù)責(zé)從被監(jiān)控網(wǎng)絡(luò)出口流量鏡像的TCP流量(包括數(shù)據(jù)包 內(nèi)容)中,利用IRC協(xié)議的NICK、 USER、 PASSWORD、 PRIVMSG、 PUBMSG、 NOTICE等協(xié)議關(guān)鍵特 征字段對(duì)其進(jìn)行協(xié)議的離線內(nèi)容匹配,以從中識(shí)別和發(fā)現(xiàn)基于IRC協(xié)議的服務(wù)器的IP地址 和端口 ,并將這些信息寫入數(shù)據(jù)中心,建立IRC服務(wù)器的IP地址和端口數(shù)據(jù)庫,為在線數(shù)據(jù) 實(shí)時(shí)分析模塊提供基礎(chǔ)的數(shù)據(jù)準(zhǔn)備。 在線數(shù)據(jù)實(shí)時(shí)分析模塊負(fù)責(zé)從IRC服務(wù)相關(guān)的TCP流量(與數(shù)據(jù)中心存放的IRC 服務(wù)器IP地址和端口通信的所有TCP流量)中在線實(shí)時(shí)分析出IRC僵尸網(wǎng)絡(luò)命令與控制 (Command&Contro1, C&C)服務(wù)器及相應(yīng)的被控IRC僵尸主機(jī)。本模塊采用"基于已知特征 的檢測(cè)"和"基于數(shù)據(jù)包序列特征的檢測(cè)"兩種僵尸網(wǎng)絡(luò)檢測(cè)策略。 首先,本模塊利用已知的僵尸網(wǎng)絡(luò)C&C服務(wù)器黑白名單(由基于數(shù)據(jù)包序列特征 的檢測(cè)部分生成并存放在數(shù)據(jù)中心)進(jìn)行IRC被控僵尸主機(jī)的檢測(cè)如果與C&C服務(wù)器白 名單匹配,則與該C&C服務(wù)器通信的IRC客戶端為一個(gè)正常聊天用戶;若與C&C服務(wù)器黑名 單匹配,則與該C&C服務(wù)器通信的IRC客戶端為一個(gè)被控IRC僵尸主機(jī)。
其次,針對(duì)未能與C&C服務(wù)器黑白名單匹配的IRC服務(wù)相關(guān)的TCP流量,本模塊將 繼續(xù)基于數(shù)據(jù)包序列特征進(jìn)行分析。將帶檢測(cè)的原始TCP流量轉(zhuǎn)化為數(shù)據(jù)包大小序列,對(duì) 每一個(gè)數(shù)據(jù)包大小序列進(jìn)行周期度和大小均值的計(jì)算,若同時(shí)滿足"周期度大于事先設(shè)定 的閾值"和"大小均值小于事先設(shè)定的閾值",相應(yīng)的IRC客戶端被判定為IRC被控僵尸主 機(jī)。否則相應(yīng)的IRC客戶端被判定為IRC正常聊天用戶。周期度閾值默認(rèn)設(shè)置為0.5,大小 均值閾值默認(rèn)設(shè)置為80字節(jié)?;谶@一決策結(jié)果,利用IRC服務(wù)器的IP地址和端口信息 分別更新C&C服務(wù)器黑名單和C&C服務(wù)器白名單。 數(shù)據(jù)中心模塊存放三種數(shù)據(jù)C&C服務(wù)器黑名單、C&C服務(wù)器白名單、IRC僵尸網(wǎng)絡(luò) 檢測(cè)結(jié)果。其中,C&C服務(wù)器黑名單存放僵尸網(wǎng)絡(luò)命令與控制服務(wù)器的IP地址和端口信息 以及最后確認(rèn)時(shí)間,C&C服務(wù)器白名單存放IRC聊天服務(wù)器的IP地址和端口信息以及最后 確認(rèn)時(shí)間,IRC僵尸網(wǎng)絡(luò)檢測(cè)結(jié)果存放已檢測(cè)出的IRC僵尸主機(jī)IP地址、對(duì)應(yīng)的C&C服務(wù) 器信息及檢測(cè)時(shí)間。 檢測(cè)策略控制模塊實(shí)現(xiàn)對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"、"在線數(shù)據(jù)實(shí)時(shí)分析模 塊"、"離線基礎(chǔ)數(shù)據(jù)提取模塊"三者的控制。其中,對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"的控 制包括協(xié)議、IP地址范圍、存儲(chǔ)策略等的控制;對(duì)"在線數(shù)據(jù)實(shí)時(shí)分析模塊"的控制包括對(duì) 周期度閾值和大小均值閾值的設(shè)置;對(duì)"離線基礎(chǔ)數(shù)據(jù)提取模塊"的控制包括對(duì)IRC協(xié)議關(guān) 鍵詞的增加、刪除、修改。 —種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)方法,包括以下步驟 步驟1 :設(shè)置檢測(cè)策略。這部分由檢測(cè)策略控制模塊完成,設(shè)置基于數(shù)據(jù)包序列特
征的IRC僵尸網(wǎng)絡(luò)檢測(cè)方法的策略。 檢測(cè)策略控制模塊實(shí)現(xiàn)對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"、"在線數(shù)據(jù)實(shí)時(shí)分析模 塊"、"離線基礎(chǔ)數(shù)據(jù)提取模塊"三者的控制。其中,對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"的控 制包括開始、停止、協(xié)議、IP地址范圍、存儲(chǔ)策略等的控制;對(duì)"在線數(shù)據(jù)實(shí)時(shí)分析模塊"的 控制包括對(duì)周期度閾值和大小均值閾值的設(shè)置以及分析線程的設(shè)定;對(duì)"離線基礎(chǔ)數(shù)據(jù)提 取模塊"的控制包括對(duì)IRC協(xié)議關(guān)鍵詞的增加、刪除、修改。 檢測(cè)策略控制模塊與"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"、"在線數(shù)據(jù)實(shí)時(shí)分析模塊"、 "離線基礎(chǔ)數(shù)據(jù)提取模塊"三者之間的通信采用TCP socket方法,檢測(cè)策略控制模塊將向 "被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"、"在線數(shù)據(jù)實(shí)時(shí)分析模塊"、"離線基礎(chǔ)數(shù)據(jù)提取模塊"三者 發(fā)起主動(dòng)連接,基于push策略向三者發(fā)送控制策略。 檢測(cè)策略控制模塊向"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"發(fā)送控制策略的通信協(xié)議 格式為〈flag, proto, Mbytes, duration〉。其中,flag為0或l,O代表停止流量鏡像,1代 表開始流量鏡像;proto代表所采集的流量協(xié)議,此處默認(rèn)設(shè)置為TCP(為了本發(fā)明的擴(kuò)展 性,也可以根據(jù)需要設(shè)置為UDP) ;Mbytes代表每一個(gè)流量鏡像文件的大小,單位為兆字節(jié); duration代表每一個(gè)流量文件的最長(zhǎng)持續(xù)時(shí)間,單位為小時(shí);Mbytes和duration為或關(guān) 系。 檢測(cè)策略控制模塊向"在線數(shù)據(jù)實(shí)時(shí)分析模塊"發(fā)送控制策略的通信協(xié)議格式為 〈flag,periodicity,average_size,#thre£id>。其中,flag為0或l,O代表停止分析,1代表 開始分析;periodicity代表周期度閾值;average—size代表均值大小閾值,單位為字節(jié); 周期度的閾值可默認(rèn)設(shè)置為0.5,大小均值的閾值可默認(rèn)設(shè)置為80字節(jié)(這是因?yàn)橐话闱闆r下,IRC僵尸主機(jī)與其命令與控制服務(wù)器通信時(shí)的數(shù)據(jù)包大小序列的周期度大于0.5, 同時(shí),通信時(shí)TCP/IP應(yīng)用層的負(fù)載內(nèi)容較少,其數(shù)據(jù)包大小序列的大小均值小于80字節(jié))。 當(dāng)然,用戶也可根據(jù)需求進(jìn)行調(diào)整,周期度的閾值調(diào)整范圍為0. 5 0. 8,大小均值的閾值 的調(diào)整范圍為60 90字節(jié);針hread代表同時(shí)并發(fā)進(jìn)行在線實(shí)時(shí)分析的線程個(gè)數(shù),用戶可 根據(jù)數(shù)據(jù)量大小和實(shí)時(shí)性要求自行設(shè)置, 一般監(jiān)控一個(gè)C類型的網(wǎng)絡(luò)推薦默認(rèn)線程數(shù)目為 10。 檢測(cè)策略控制模塊向"離線基礎(chǔ)數(shù)據(jù)提取模塊"發(fā)送控制策略的通信協(xié)議格 式為〈#signature, (signaturel, direction), (signature2, direction2), …〉。 其 中,Signature代表本次檢測(cè)策略控制模塊向"離線基礎(chǔ)數(shù)據(jù)提取模塊"發(fā)送的特征個(gè) 數(shù),signaturel代表相應(yīng)的第1個(gè)特征,directionl代表signaturel的判定方向,即 若signatuel由服務(wù)器發(fā)向客戶端,則directionl取值為1,否則取值為0。以此類推。 Signature采用正則表達(dá)式的方法,例如,本發(fā)明默認(rèn)的IRC協(xié)議相關(guān)的signature包括五個(gè).a) (@〃J0IN( 〈any〉. +[~\s])\b〃 ,0);(2) (@〃J0IN( 〈any〉.+[~\s])\s+( 〈anyl>.+)\b",0);(3) (@〃.*NICK( 〈any〉. *)\n" ,0);(4) (@〃.*USER( 〈any>. *)\n〃 ,0);(5) (@〃PRIVMSG(. [~\s]+)\s+:( 〈any>.*)\n" ,0);步驟2:出口流量鏡像。這部分將完成原始數(shù)據(jù)源獲取。將網(wǎng)絡(luò)出口處的交換機(jī)
上將所有TCP流量進(jìn)行鏡像,獲取所有的完整的TCP數(shù)據(jù)包(包括數(shù)據(jù)包應(yīng)用層負(fù)載),并以pc即文件的形式存儲(chǔ)在鏡像服務(wù)器上。流量鏡 像的策略采用檢測(cè)策略控制模塊向"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"發(fā)送的控制策略。
步驟3 :IRC協(xié)議識(shí)別。這部分將完成IRC協(xié)議的識(shí)別和發(fā)現(xiàn)。利用NICK、 USER、 PASSW0RD、PRIVMSG、PUBMSG、N0TICE等協(xié)議關(guān)鍵特征對(duì)存儲(chǔ)在鏡像服務(wù)器上的pc即文件進(jìn) 行IRC協(xié)議的離線分析,從中識(shí)別和發(fā)現(xiàn)基于IRC協(xié)議的服務(wù)器的IP地址和端口,將結(jié)果 寫入數(shù)據(jù)中心,建立IRC服務(wù)器的IP地址和端口數(shù)據(jù)庫。 采用檢測(cè)策略控制模塊向"離線基礎(chǔ)數(shù)據(jù)提取模塊"發(fā)送的IRC協(xié)議signature數(shù) 據(jù),從步驟2所獲得的原始流量鏡像文件中識(shí)別IRC協(xié)議。識(shí)別方法為只要數(shù)據(jù)包應(yīng)用層 負(fù)載中含有與IRC協(xié)議signature數(shù)據(jù)匹配的內(nèi)容,則將該數(shù)據(jù)包判定為IRC協(xié)議相關(guān)的 數(shù)據(jù)包。然后,從該數(shù)據(jù)包中識(shí)別和發(fā)現(xiàn)IRC服務(wù)器IP地址和端口,方法如下若所匹配的 signature其direction取值為0,則提取對(duì)應(yīng)的數(shù)據(jù)包中的網(wǎng)絡(luò)層的目的IP地址和傳輸 層的目的端口作為IRC服務(wù)器IP地址和端口 ;若所匹配的signature其direction取值為 1,則提取對(duì)應(yīng)的數(shù)據(jù)包中的網(wǎng)絡(luò)層的源IP地址和傳輸層的源端口作為IRC服務(wù)器IP地址 和端口 。 最后,將IRC服務(wù)器IP地址和端口信息寫入數(shù)據(jù)中心。 步驟4 :待測(cè)數(shù)據(jù)包提取。這部分由離線基礎(chǔ)數(shù)據(jù)提取模塊完成,將從所有的原始 數(shù)據(jù)中提取用于檢測(cè)IRC僵尸網(wǎng)絡(luò)的所有數(shù)據(jù)包。從存儲(chǔ)在鏡像服務(wù)器上的pc即文件中 實(shí)時(shí)提取與IRC服務(wù)相關(guān)的所有流量(不包括數(shù)據(jù)包應(yīng)用層負(fù)載),即提取與IRC服務(wù)器的 IP地址和端口通信的所有數(shù)據(jù)包的網(wǎng)絡(luò)層和傳輸層數(shù)據(jù),作為待測(cè)數(shù)據(jù)包。
具體實(shí)施方案為從數(shù)據(jù)中心讀取IRC服務(wù)器IP地址和端口信息,然后遍歷所有 的原始流量,從中提取中與IRC服務(wù)器IP地址和端口發(fā)生通信的所有數(shù)據(jù)包,并將待測(cè)數(shù) 據(jù)包存放在鏡像服務(wù)器上。 步驟5 :基于已知特征檢測(cè)IRC僵尸網(wǎng)絡(luò)。這部分由在線數(shù)據(jù)實(shí)時(shí)分析模塊完成, 將基于已知IRC僵尸網(wǎng)絡(luò)特征檢測(cè)IRC僵尸網(wǎng)絡(luò)。 具體實(shí)施方案為將待測(cè)數(shù)據(jù)包中的IP地址和端口特征與已知特征(C&C服務(wù)器 黑白名單,由步驟6生成,系統(tǒng)第一次運(yùn)行時(shí)C&C服務(wù)器黑白名單為空,但隨著系統(tǒng)運(yùn)行,將 逐漸建立C&C服務(wù)器黑白名單)進(jìn)行匹配,如果與C&C服務(wù)器白名單匹配,則與該C&C服務(wù) 器白名單通信的IRC客戶端為正常的聊天用戶,IRC客戶端的IP地址為IRC聊天客戶的IP 地址;若與C&C服務(wù)器黑名單匹配,則與該C&C服務(wù)器黑名單通信的IRC客戶端為IRC被控 僵尸主機(jī),IRC客戶端的IP地址為IRC被控僵尸主機(jī)的IP地址。若與C&C服務(wù)器黑白名 單均不匹配,則轉(zhuǎn)到步驟6。 步驟6 :基于數(shù)據(jù)包序列特征檢測(cè)。這部分由在線數(shù)據(jù)實(shí)時(shí)分析模塊完成,將基于 IRC客戶端與IRC服務(wù)器通信過程中的數(shù)據(jù)包大小序列特征檢測(cè)IRC僵尸網(wǎng)絡(luò)。
具體實(shí)施方案為從待測(cè)數(shù)據(jù)包中提取每一個(gè)IRC客戶端與IRC服務(wù)器通信過程 中TCP會(huì)話的第21個(gè)到第120個(gè)數(shù)據(jù)包的大小序列,并計(jì)算每一個(gè)序列的均值和周期度, 若序列的均值,即數(shù)據(jù)包大小均值〈閾值S,并且序列的周期度〉P,則與IRC服務(wù)器通信的 客戶端為IRC僵尸主機(jī),對(duì)應(yīng)的IRC服務(wù)器IP地址和端口為控制服務(wù)器的IP地址和端口。 否則與IRC服務(wù)器通信的客戶端為IRC聊天用戶,對(duì)應(yīng)的IRC服務(wù)器的IP和端口為IRC聊 天服務(wù)器的IP和端口。 設(shè)數(shù)據(jù)包大小序列用(sl, s2,…,s100)表示,分別代表第21個(gè)到第120個(gè)數(shù)據(jù) 包的大小序列,單位為字節(jié),則顯然均值的計(jì)算方法為E i^,si。至此,關(guān)鍵問題是求解數(shù) 據(jù)包大小序列(sl,s2,…,s100)的周期度。周期度的求解流程為 1、通過數(shù)據(jù)處理,將數(shù)據(jù)包大小序列(sl,s2,…,s100)依次利用小寫字母a z 和大寫字母A Z,映射到一個(gè)字符串S。例如,依次利用小寫字母a z和大寫字母A Z,數(shù)據(jù)包大小序列"40, 60, 46, 70, 40, 60, 80,..."將映射為"abcdabe",這里40第一個(gè)出 現(xiàn),所以映射為a,60第二個(gè)出現(xiàn),所以映射為b,……,40第五次出現(xiàn)的時(shí)候,因?yàn)樵诘谝?次出現(xiàn)的時(shí)候已經(jīng)映射為a,所以此時(shí)40映射為a,……。 2、通過數(shù)據(jù)處理,將S轉(zhuǎn)化為后綴樹T。首先,列舉S的所有后綴,例如,若字符 串S為"abcdabe,,,貝U其所有的后綴為"abcdabe,,、"bcdabe,,、"cdabe,,、"dabe,,、"abe,,、 "be" "e"。若用"$"表示字符串結(jié)尾標(biāo)志,則字符串S為"abcdabe"可表示為"abcdabeS", 相應(yīng)的,其所有后綴變?yōu)?abcdabe$"、"bcdabe$"、"cdabe$"、"dabe$"、"abe$"、"be$" "e$"。 其次,遍歷所有后綴,發(fā)現(xiàn)所有后綴的第一個(gè)字母存在a、 b、 c、 d、 e五種情況,所以,根節(jié)點(diǎn) 的分支因子(branch factor,節(jié)點(diǎn)的子樹的個(gè)數(shù))為5,與根節(jié)點(diǎn)連接的5條邊分別代表字 母a、 b、 c、 d、 e,繼續(xù)遍歷,發(fā)現(xiàn)a之后均為b,故與根節(jié)點(diǎn)連接的邊a更新為ab,而以b、 c、 d、e開頭的后綴后面均不同,因此這些邊之后出現(xiàn)分叉,最終,將產(chǎn)生如圖2所示的后綴樹。 這樣,通過對(duì)字符串S的所有后綴進(jìn)行數(shù)據(jù)處理,將其轉(zhuǎn)換為后綴樹的形式存儲(chǔ)。
3、通過對(duì)后綴樹T的查找和搜索,尋找深度最大的(設(shè)為L(zhǎng))分叉(fork)節(jié)點(diǎn)N, 這里設(shè)分叉節(jié)點(diǎn)的分支因子(branch factor,節(jié)點(diǎn)的子樹的個(gè)數(shù))為branch_factor,那么從后綴樹的根節(jié)點(diǎn)R到分叉節(jié)點(diǎn)N的路徑所對(duì)應(yīng)的字串即為整個(gè)字符串S中的最長(zhǎng)重復(fù)字 串,用R表示。如圖2所示,所有的分叉節(jié)點(diǎn)(分支因子)大于2的節(jié)點(diǎn)中, 為深度最大 的分叉節(jié)點(diǎn)(因?yàn)閺母?jié)點(diǎn)到⑥的路徑ab長(zhǎng)度最長(zhǎng),為2)。所以,"abcdabe"的最長(zhǎng)重復(fù) 字串為"ab"。這里,branch—factor = 2, L = 2。 4、計(jì)算R在整個(gè)字符串S中的比重branch—factorXL/100,該比重即為序列的周 期度。所以,"abcdabe"的周期度為2X2/7 = 0. 57。(用7替換100,因?yàn)?abcdabe"總長(zhǎng) 度為7)。 這里通過一個(gè)序列長(zhǎng)度較短(長(zhǎng)度為10 < 100)的實(shí)施例來說明此過程。用戶可
在不付出創(chuàng)造性思維活動(dòng)的情況下,依照類似的過程,可實(shí)現(xiàn)數(shù)據(jù)包大小序列周期度的計(jì)
算。例如,某個(gè)數(shù)據(jù)包大小序列為 (60, 40, 71, 45, 60, 40, 71, 45, 60, 40) 首先將此序列映射為一個(gè)字符串序列,60用a替換,40用b替換,71用c替換,45 用d替換,如下 (a, b, c, d, a, b, c, d, a, b) W"sn(l《i《n)為字符串s^…Sn的第i個(gè)后綴(suffix),一個(gè)長(zhǎng)度為n的 字符串總共有n個(gè)后綴。則上述字符串的所有后綴總共10個(gè)(這里用$表示后綴的結(jié)束 標(biāo)志),分別為(a, b,d,a,b, c, d, a, b, $)(b, c,d,a,b,c, d, a, b, $)(c, d,a,b,d, a, b, $)(d, a,b,d,a, b, $)(a, b,d,a,b,$)(b, c,d,a,b,$)(c, d,a,b,$)(d, a,b,$)(a, b,$)(b,$) 將上述IO個(gè)原始字符串的后綴構(gòu)建原始字符串的后綴樹,如圖2所示。后綴樹 的構(gòu)建方法為遍歷以IO個(gè)后綴,將后綴的公共部分合并作為一條邊,若出現(xiàn)不同的情況 則做分叉處理。如圖3所示,0為深度最大的分叉節(jié)點(diǎn),其深度為其上行邊"cdab"的長(zhǎng)度, 即L = 4,相應(yīng)的branch—factor = 2。故周期度=branch—factorXL/100 = 2X4/10 = 0. 8(此例中原始字符串總長(zhǎng)度為10,所以將100替換為10)。 步驟7 :已知特征更新。若通過步驟6檢測(cè)出IRC僵尸網(wǎng)絡(luò),則將相應(yīng)的僵尸網(wǎng)絡(luò) C&C服務(wù)器的IP地址和端口加入到C&C服務(wù)器黑名單中,否則將相應(yīng)的IRC聊天服務(wù)器的 IP地址和端口加入到C&C服務(wù)器白名單中。形成的C&C服務(wù)器黑白名單存放在數(shù)據(jù)中心, 為步驟5提供用于IRC僵尸網(wǎng)絡(luò)檢測(cè)的已知特征。
權(quán)利要求
一種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng),其特征在于,包括以下模塊離線基礎(chǔ)數(shù)據(jù)獲取模塊,負(fù)責(zé)從被監(jiān)控網(wǎng)絡(luò)出口流量鏡像的TCP流量中,利用IRC協(xié)議的NICK、USER、PASSWORD、PRIVMSG、PUBMSG、NOTICE協(xié)議關(guān)鍵特征字段對(duì)其進(jìn)行協(xié)議的離線內(nèi)容匹配,從中識(shí)別和發(fā)現(xiàn)基于IRC協(xié)議的服務(wù)器的IP地址和端口,并將這些信息寫入數(shù)據(jù)中心,建立IRC服務(wù)器的IP地址和端口數(shù)據(jù)庫,為在線數(shù)據(jù)實(shí)時(shí)分析模塊提供基礎(chǔ)的數(shù)據(jù)準(zhǔn)備;在線數(shù)據(jù)實(shí)時(shí)分析模塊,負(fù)責(zé)從IRC服務(wù)相關(guān)的TCP流量中在線實(shí)時(shí)分析出IRC僵尸網(wǎng)絡(luò)命令與控制服務(wù)器及相應(yīng)的被控IRC僵尸主機(jī),本模塊利用已知的僵尸網(wǎng)絡(luò)C&C服務(wù)器黑白名單進(jìn)行IRC被控僵尸主機(jī)的檢測(cè),如果與C&C服務(wù)器白名單匹配,則與該C&C服務(wù)器通信的IRC客戶端為一個(gè)正常聊天用戶;若與C&C服務(wù)器黑名單匹配,則與該C&C服務(wù)器通信的IRC客戶端為一個(gè)被控IRC僵尸主機(jī);針對(duì)未能與C&C服務(wù)器黑白名單匹配的IRC服務(wù)相關(guān)的TCP流量,本模塊繼續(xù)基于數(shù)據(jù)包序列特征進(jìn)行分析,將待檢測(cè)的原始TCP流量轉(zhuǎn)化為IRC客戶端與IRC服務(wù)器通信過程中的數(shù)據(jù)包大小序列,對(duì)每一個(gè)數(shù)據(jù)包大小序列進(jìn)行周期度和大小均值的計(jì)算,若同時(shí)滿足“周期度大于事先設(shè)定的閾值”和“大小均值小于事先設(shè)定的閾值”,相應(yīng)的IRC客戶端被判定為IRC被控僵尸主機(jī),否則相應(yīng)的IRC客戶端被判定為IRC正常聊天用戶,其中周期度的閾值范圍為0.5~0.8,大小均值的閾值范圍為60~90字節(jié),基于這一結(jié)果,利用IRC服務(wù)器的IP地址和端口信息分別更新C&C服務(wù)器黑名單和C&C服務(wù)器白名單;數(shù)據(jù)中心模塊,數(shù)據(jù)中心存放三種數(shù)據(jù)C&C服務(wù)器黑名單、C&C服務(wù)器白名單、IRC僵尸網(wǎng)絡(luò)檢測(cè)結(jié)果,其中,C&C服務(wù)器黑名單存放僵尸網(wǎng)絡(luò)命令與控制服務(wù)器的IP地址和端口信息以及最后確認(rèn)時(shí)間,C&C服務(wù)器白名單存放IRC聊天服務(wù)器的IP地址和端口信息以及最后確認(rèn)時(shí)間,IRC僵尸網(wǎng)絡(luò)檢測(cè)結(jié)果存放已檢測(cè)出的IRC僵尸主機(jī)IP地址、對(duì)應(yīng)的C&C服務(wù)器信息及檢測(cè)時(shí)間;檢測(cè)策略控制模塊,對(duì)“被監(jiān)控網(wǎng)絡(luò)出口TCP流量鏡像”、“在線數(shù)據(jù)實(shí)時(shí)分析模塊”、“離線基礎(chǔ)數(shù)據(jù)提取模塊”三者進(jìn)行控制,其中,對(duì)“被監(jiān)控網(wǎng)絡(luò)出口TCP流量鏡像”的控制包括協(xié)議、IP地址范圍、存儲(chǔ)策略的控制;對(duì)“在線數(shù)據(jù)實(shí)時(shí)分析模塊”的控制包括對(duì)周期度閾值和大小均值閾值的設(shè)置,對(duì)“離線基礎(chǔ)數(shù)據(jù)提取模塊”的控制包括對(duì)IRC協(xié)議關(guān)鍵詞的增加、刪除、修改,所述周期度閾值的設(shè)置范圍為0.5~0.8,大小均值閾值的設(shè)置范圍為60~90字節(jié)。
2. —種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)方法,其特征在于,包括以下步驟步驟1 :設(shè)置檢測(cè)策略,包括對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"、"在線數(shù)據(jù)實(shí)時(shí)分析模塊"、"離線基礎(chǔ)數(shù)據(jù)提取模塊"三者的控制,對(duì)"被監(jiān)控網(wǎng)絡(luò)出口 TCP流量鏡像"的控制包括 開始、停止、協(xié)議、IP地址范圍、存儲(chǔ)策略的控制;對(duì)"在線數(shù)據(jù)實(shí)時(shí)分析模塊"的控制包括 對(duì)周期度閾值和大小均值閾值的設(shè)置以及分析線程的設(shè)定;對(duì)"離線基礎(chǔ)數(shù)據(jù)提取模塊"的 控制包括對(duì)IRC協(xié)議關(guān)鍵詞的增加、刪除、修改;步驟2 :出口流量鏡像,將網(wǎng)絡(luò)出口處的交換機(jī)上將所有TCP流量進(jìn)行鏡像,獲取所有 的完整的TCP數(shù)據(jù)包,并以pc即文件的形式存儲(chǔ)在鏡像服務(wù)器上;步驟3 :IRC協(xié)議識(shí)別,利用NICK、 USER、 PASSW0RD、 PRIVMSG、 PUBMSG、 NOTICE協(xié)議關(guān)鍵 特征對(duì)存儲(chǔ)在鏡像服務(wù)器上的pc即文件進(jìn)行IRC協(xié)議的離線分析,從中識(shí)別和發(fā)現(xiàn)基于IRC協(xié)議的服務(wù)器的IP地址和端口,將結(jié)果寫入數(shù)據(jù)中心,建立IRC服務(wù)器的IP地址和端 口數(shù)據(jù)庫;步驟4:待測(cè)數(shù)據(jù)包提取,通過離線基礎(chǔ)數(shù)據(jù)提取模塊從所有的原始數(shù)據(jù)中提取用于 檢測(cè)IRC僵尸網(wǎng)絡(luò)的所有數(shù)據(jù)包,從存儲(chǔ)在鏡像服務(wù)器上的pc即文件中實(shí)時(shí)提取與IRC服 務(wù)相關(guān)的所有流量,即提取與IRC服務(wù)器的IP地址和端口通信的所有數(shù)據(jù)包的網(wǎng)絡(luò)層和傳 輸層數(shù)據(jù),作為待測(cè)數(shù)據(jù)包;步驟5 :基于已知特征檢測(cè)IRC僵尸網(wǎng)絡(luò),通過在線數(shù)據(jù)實(shí)時(shí)分析模塊將待測(cè)數(shù)據(jù)包中 的IP地址和端口特征與已知特征進(jìn)行匹配,如果與C&C服務(wù)器白名單匹配,則與該C&C服 務(wù)器白名單通信的IRC客戶端為正常的聊天用戶,IRC客戶端的IP地址為IRC聊天客戶的 IP地址;若與C&C服務(wù)器黑名單匹配,則與該C&C服務(wù)器黑名單通信的IRC客戶端為IRC被 控僵尸主機(jī),IRC客戶端的IP地址為IRC被控僵尸主機(jī)的IP地址,若與C&C服務(wù)器黑白名 單均不匹配,則轉(zhuǎn)到步驟6 ;步驟6 :基于數(shù)據(jù)包序列特征檢測(cè),通過在線數(shù)據(jù)實(shí)時(shí)分析模塊將基于IRC客戶端與 IRC服務(wù)器通信過程中的數(shù)據(jù)包大小序列特征檢測(cè)IRC僵尸網(wǎng)絡(luò),從待測(cè)數(shù)據(jù)包中提取不 同的IRC客戶端與IRC服務(wù)器通信過程中TCP會(huì)話的第21個(gè)到第120個(gè)數(shù)據(jù)包的大小序 列,并計(jì)算每一個(gè)序列的均值和周期度,周期度計(jì)算方法如下通過數(shù)據(jù)處理,將整個(gè)數(shù)據(jù) 包大小序列映射到一個(gè)字符串S,通過查找長(zhǎng)度為L(zhǎng)的出現(xiàn)次數(shù)最多的不重疊重復(fù)子串R, 計(jì)算R在整個(gè)字符串S中的比重,通過比重即可衡量會(huì)話內(nèi)容序列的周期性程度,即周期 度,若序列的均值,即數(shù)據(jù)包大小均值<閾值,并且序列的周期度>閾值,則與IRC服務(wù)器 通信的客戶端為IRC僵尸主機(jī),對(duì)應(yīng)的IRC服務(wù)器IP地址和端口為控制服務(wù)器的IP地址 和端口,否則與IRC服務(wù)器通信的客戶端為IRC聊天用戶,對(duì)應(yīng)的IRC服務(wù)器的IP和端口 為IRC聊天服務(wù)器的IP和端口 ,其中周期度閾值的設(shè)置范圍為0. 5 0. 8,大小均值閾值的 設(shè)置范圍為60 90字節(jié);步驟7 :已知特征更新,若通過步驟6檢測(cè)出IRC僵尸網(wǎng)絡(luò),則將相應(yīng)的僵尸網(wǎng)絡(luò)C&C服 務(wù)器的IP地址和端口加入到C&C服務(wù)器黑名單中,否則將相應(yīng)的IRC聊天服務(wù)器的IP地 址和端口加入到C&C服務(wù)器白名單中,形成的C&C服務(wù)器黑白名單存放在數(shù)據(jù)中心,為步驟 5提供用于IRC僵尸網(wǎng)絡(luò)檢測(cè)的已知特征。
全文摘要
本發(fā)明公開了一種基于數(shù)據(jù)包序列特征的IRC僵尸網(wǎng)絡(luò)檢測(cè)方法,該方法通過離線基礎(chǔ)數(shù)據(jù)獲取模塊、在線數(shù)據(jù)實(shí)時(shí)分析模塊、數(shù)據(jù)中心和檢測(cè)策略控制模塊四部分協(xié)同工作完成IRC僵尸網(wǎng)絡(luò)的檢測(cè),其思想是利用IRC僵尸主機(jī)與C&C(Command & Control)控制服務(wù)器之間通信時(shí)的數(shù)據(jù)包大小序列的周期性和大小特征,通過識(shí)別獲取網(wǎng)絡(luò)出口處的IRC流量,判斷IRC會(huì)話的周期度和數(shù)據(jù)包大小均值來檢測(cè)IRC僵尸網(wǎng)絡(luò),本發(fā)明的主要?jiǎng)?chuàng)新點(diǎn)在于通過度量IRC僵尸主機(jī)與C&C服務(wù)器之間通信過程中數(shù)據(jù)包序列的周期度和均值,以區(qū)別IRC聊天應(yīng)用和IRC僵尸網(wǎng)絡(luò),從而達(dá)到IRC僵尸網(wǎng)絡(luò)檢測(cè)的目的。
文檔編號(hào)H04L29/06GK101741862SQ201010013660
公開日2010年6月16日 申請(qǐng)日期2010年1月22日 優(yōu)先權(quán)日2010年1月22日
發(fā)明者劉璐, 李劍鋒, 管曉宏, 趙雙, 鄭慶華, 陶敬, 馬小博 申請(qǐng)人:西安交通大學(xué)