專利名稱:一種檢測僵尸網絡的方法及其系統的制作方法
技術領域:
本技術屬于計算機安全領域,具體的說是一種在互聯網中檢測和尋找僵尸網絡的存在 的方法及其系統。
背景技術:
僵尸網絡(Botnet)是指采用一種或多種傳播手段,將大量主機感染bot程序(僵尸程 序),從而在控制者和被感染主機之間所形成的一個可一對多控制的網絡。在僵尸網絡的概念中有這樣幾個關鍵詞。"bot程序"是robot的縮寫,是指實現惡意 控制功能的程序代碼;"僵尸計算機"就是被植入bot的計算機;"控制服務器(Control Server)"是指控制和通信的中心服務器;"僵尸網絡控制者計算機"是指通過向控制服 務器發(fā)送指令,由控制服務器將這些指令轉發(fā)給僵尸計算機,從而達到遠程控制僵尸計算 機目的的計算機。大部分的僵尸網絡是基于IRC (因特網中繼聊天)協議進行控制的僵尸 網絡,及通過IRC聊天服務的服務器進行控制的僵尸網絡。僵尸網絡是互聯網上受到黑客集中控制的一群計算機,往往被黑客用來發(fā)起大規(guī)模的 網絡攻擊,如分布式拒絕服務攻擊(DDOS)、海量垃圾郵件等。這是一種一對多的控制 關系,正是這種拓撲關系的原因,使得攻擊者能夠以極低的代價高效地控制大量的資源為 其服務。針對目前的僵尸網路狀況,目前的檢測和防范手段還處于探索研究階段,主要有以下 幾種反病毒廠商以僵尸網絡中的bot程序為檢測和防御目標,分析截獲的bot程序,提取 特征碼,添加到病毒庫中,為終端用戶提供檢測和防御bot程序感染的服務,然而這種方 式的防御,只能幫助安裝了殺毒軟件的用戶清除其自身計算機上的bot程序。從僵尸網絡 的整體網絡上來看,這種方法只能清除僵尸網絡中某些節(jié)點上的bot程序,而不能針對整 個僵尸網絡的威脅,提供整體的防御方案。某些蜜罐項目組和研究機構,通過蜜罐技術截獲bot程序樣本后,通過逆向分析技術, 對bot程序中的IRC服務器的ip、用戶名、密碼等信息進行分析,進而進一步跟蹤目標僵 尸網絡。該方法在學術界研究僵尸網絡的過程中發(fā)揮了很大的作用,但由于逆向分析及進一步的跟蹤分析的工作量非常大,很難完全應用到工程實踐中。通過監(jiān)控IRC服務器上的各頻道及其中的用戶的行為來識別僵尸網絡,其中的特征在 于長時間發(fā)呆和快速加入。具體來說就是僵尸網絡頻道中的各用戶存在著三個比較明顯 的行為特征, 一是通過蠕蟲傳播的僵尸程序,大量的被其感染的計算機會在短時間內加入 到同一個IRC服務器中;二是僵尸計算機一般會長時間在線;三是僵尸計算機作為一個IRC 聊夭的用戶,在聊天頻道內長時間不發(fā)言,保持空閑。第一種特征屬于快速加入,第二三 種特征屬于長時間發(fā)呆。該方法還處于學術研究階段,還未能實際實用,另外該方法必須 在己經掌握的IRC服務器上加設相關監(jiān)控設備來完成, 一方面會影響服務器效率;另一方面很難完全監(jiān)控。因為很大一部分僵尸網絡的IRC服務器,并非使用提供公共服務的IRC, 而是控制者先攻擊控制一臺計算機,再在這臺計算機上加設自己的IRC服務器。這種情況 下通過監(jiān)控IRC服務器的方法,就很難起到好的效果。
發(fā)明內容
針對僵尸網絡檢測和防御的現狀,為了更好的檢測和防御僵尸網絡給互聯網帶來的威 脅,本發(fā)明提出了一個針對整個僵尸網絡的識別方法,與傳統方法中注重僵尸網絡中單個 節(jié)點的防御相比本發(fā)明更注重在互聯網范圍內對整個僵尸網絡的識別和解除整個僵尸網 絡對網洛安全的威脅。本發(fā)明提供了一種能檢測到完整僵尸網絡、并能進行主動防御的方法和系統。 本發(fā)明分以下幾個模塊來實現功能1、 網絡數據解析模塊該模塊實現的功能是對網絡上截獲的大量數據按照tcp/ip的網 絡構架進行解析,將網絡中承載僵尸網絡通訊的IRC等協議的數據提取出來,交給"僵尸 網絡數據識別模塊";其他的無效數據不做處理。2、 僵尸網絡數據識別模塊該模塊的功能是根據僵尸網絡數據特征庫中的特征碼, 從已經截獲的IRC協議數據中尋找僵尸網絡數據包。將找到的僵尸網絡數據包信息轉交給"僵尸網絡數據深度挖掘模塊"進行進一步的處理。3、 僵尸網絡數據深度挖掘模塊該模塊的功能是對"僵尸網絡數據識別模塊"識別 出的僵尸網絡通信數據進行進一步的分析,具體的方法是-根據IRC數據包中的頻道信息,將單獨的控制信息關聯起來,形成網狀信息;再根據 僵尸網絡通信數據包的源IP和目的IP等信息分析出僵尸網絡中的僵尸計算機、控制服務器、以及僵尸網絡的終極控制者,從而描繪出整個僵尸網絡的拓撲結構。(1) 根據各僵尸網絡數據包中的頻道關鍵字信息,將來自同一個僵尸網絡的數據包 相互關聯起來。依據是同一個僵尸網絡的被控端會在同一個IRC聊天頻道中。(2) 分析同一個僵尸網絡數據包中的源IP信息和端口信息以及目的IP信息和端口信 息,來尋找IRC僵尸網絡服務器的IP及物理位置。尋找方法是對同一個僵尸網絡中的 數據包的IP進行分析,如果發(fā)現同一個IP的計算機,跟其它的所有或大部分計算機都有 數據通信(即與同一個IP的計算機A進行數據通信的計算機數量超過設定比例閾值H), 那么該IP計算機很可能是IRC僵尸網洛的服務器;可以再通過端口信息進一步驗證,如 果該IP的計算機與其他計算機通信的本地端口號都使用同一個端口號,遠程端口號使用不 同的端口號,則可以進一步確認。(3) 尋找僵尸網絡的控制者,找到僵尸網路的服務器后,剩下的這些IP地址信息,只有兩個可能, 一個是僵尸網絡的被控端,這些IP中的大部分會是被控端IP;剩下的可 能還有僵尸網絡的控制者,關于控制者的尋找比較困難,主要采取的手段是對僵尸網絡中 的通信數據進行解析,方法如下a) 尋找其他剩下的IP向(2)中找到的IRC僵尸網絡服務器發(fā)送的數據包,而不是 IRC僵尸網絡服務器向其他剩下的IP計算機發(fā)送的數據包。b) 對a)中找到的數據包進一步解析,尋找向IRC僵尸網絡服務器發(fā)送控制指令的數 據包,而不是向僵尸網絡服務器發(fā)送執(zhí)行指令狀況的數據包。其中b)中找到的數據包的源IP就是僵尸網絡控制者計算機的IP,而其他的IP地址 則為僵尸網絡中被控端的IP地址。注僵尸網絡中一個指令的完整的發(fā)布過程是這樣的,僵尸網絡的控制端會向"IRC 僵尸網絡服務器"發(fā)送控制指令,如指令".login Steven 123456 "表示登錄到該僵尸網絡 中,并通過用戶名"Steven",和密碼"123456"獲取該僵尸網路的控制權;僵尸網絡服 務器收到該數據后,會向各被控端轉發(fā)該指令;被控端收到指令后,執(zhí)行相應的動作,以 login指令為例,被控端會驗證該控制端是否是真正的控制者,并向IRC僵尸網絡服務器發(fā) 送相應的指令執(zhí)行狀況信息,如返回"Password accepted."表示驗證成功;IRC僵尸網絡 服務器收到被控端相應的返回信息后,會將該信息轉發(fā)給所有的被控端和僵尸網絡的控制 者。(4) 評估僵尸網絡的規(guī)模,即僵尸網絡中被控端的數量,使用的方法有兩個。a)對截獲的僵尸網絡的數據包的所有IP地址進行統計,去掉已經分析出來的IRC僵尸網絡服務器和僵尸網絡的控制者,剩下的所有IP地址,便是都是僵尸網絡的被控端。統 計其數量,來推測僵尸網絡中被控端的數量。b)對整個僵尸網絡中的通信數據進行分析,統計其中的用戶名信息中用戶名的數量, 來獲得僵尸網絡被控端的數量。綜合運用兩種統計方法,去掉其中重復統計了的僵尸網絡被控端,剩下的數量便是僵 尸網絡的真實規(guī)模。(5)評估該僵尸網絡的行為。通過對數據包中的指令進行分析來獲取控制者控制僵 尸網絡的行為信息。如".loginsteven 123456"我們可以知道,控制者當時的行為是登錄到僵尸網絡上, 并獲取僵尸網絡的控制權,其用戶名是steven,密碼是1234564、 僵尸網絡新特征搜集模塊該模塊的功能是對由"僵尸網絡數據深度挖掘模塊" 分析出的完整的各個僵尸網絡的通信數據的內容進行比對,找到這些通信內容中新出現的 或目前系統未掌握的關鍵性字符,來豐富現有的僵尸網絡數據特征庫。新關鍵性字符的搜集方法為在已經通過"頻道"等特征確定是僵尸網絡的數據包中,尋找發(fā)現新的控制指令;或者在眾多返回的"指令執(zhí)行狀況信息"中尋找某一個字符串頻 繁重復出現的次數或比例超過設定閾值的字符串,而該字符串并不屬于已知的關鍵性字符。5、 僵尸網絡分析報告生成模塊該模塊的功能是根據"僵尸網絡數據深度挖掘模塊" 的分析結果,生成分析報告。主要內容包括尋找到的各僵尸網路的規(guī)模(被控端b0t的 數量),服務器的位置、被控端的具體位置分布,控制者的位置,用戶名稱,控制密碼,僵尸網絡的行為(是在進行DDOS攻擊,還是在不斷掃描其他電腦的漏洞)。6、 僵尸網絡主動防御模塊主要功能是根據"僵尸網絡數據深度挖掘模塊"深度挖 掘出來的僵尸網絡的有效信息(主要是控制者的用戶名、控制密碼等信息),實施主動出 擊的策略,對檢測到的僵尸網絡實施主動控制,主要方法是以控制者的身份進入到僵尸網 絡中,獲得僵尸網絡的控制權后,給被控端發(fā)送返回被控端自身信息的指令來獲得被控端 的規(guī)模信息;發(fā)布停止攻擊的指令來對正在進行的攻擊實施主動防御;發(fā)布銷毀被控端bot程序的指令,來徹底銷毀整個僵尸網絡。發(fā)明的優(yōu)點與積極效果本發(fā)明為一種全新思路的對僵尸網絡進行檢測和防御的方法,與傳統側重于消滅被控端計算機上的僵尸程序的方法相比,本技術有以下優(yōu)勢1、 整體防御效果更好本技術的防御對象不在于一個個單獨的僵尸網絡程序,而是整個僵尸網絡,可以對整 個僵尸網絡進行整體的分析和防御,防御效果更好,防御范圍廣,效率更高。2、 對僵尸網絡的新變種的防御效果更高傳統的僵尸程序的識別主要使用的是基于特征碼的識別,只要僵尸程序稍有變化,其 原有特征碼就極有可能失效,必須重新分析新的特征碼。而與特征碼相比,通信協議相對 而言會更穩(wěn)定,長期不會變化。如果說僵尸程序中特征碼的變化周期是以天為單位的,那 么通訊協議的變化周期則是以月為單位的,甚至是以季度為單位的。3、 應對變種的效率更高針對出現的僵尸網絡的變種,在傳統的防御方法病毒工程師必須對新僵尸程序做重新 的分析,而本發(fā)明使用的技術,新變種的僵尸網絡的通信協議中只要有一個通信關鍵字沒 有改變,本技術就可以有效的對該僵尸網絡進行識別防御。并且再此基礎上有很好的自我 學習能力,具體表現在當根據未變化的通信關鍵字識別出僵尸網絡后,還會根據通信中的 數據,尋找其他變化的關鍵字,并放入特征庫。 4、防御更為有效傳統的僵尸網絡防御方法主要是依靠被控端計算機上的殺毒軟件對僵尸程序進行刪 除,由于僵尸程序自身會帶一些反刪除的功能,很多時候并不是很有效。即使成功刪除了 僵尸程序,也只是清除了單個被控端計算機上的僵尸程序,對整個僵尸網絡的防御并不十 分有效。而本技術在僵尸網絡的防御方面主要采取基于整個僵尸網絡的主動防御方法,即以僵 尸網絡控制者的身份向整個僵尸網絡的被控端發(fā)布銷毀自身的指令,從而銷毀整個僵尸網絡。5、溯源性更好采用傳統的方法,只能掌握有限的被控端和IRC僵尸網路服務器的信息,很難找到僵 尸網絡的幕后控制者,不利于僵尸網絡的根治;而本發(fā)明技術可以通過分析僵尸網絡的通 信數據,有效的找到僵尸網絡的控制者的IP地址,進而從物理位置上定位控制者。
圖l、僵尸網絡的分布示意圖;圖2、僵尸網絡識別系統整體構架圖。
具體實施方式
-1、 部署位置將本設備部署到互聯網的省際出口位置,將流入和流出省級出口的數據進行旁路后, 將旁路的數據接入本設備。2、 數據處理過程-(1) 旁路的數據流入"網絡數據解析模塊"模塊,該模塊將數據按照TCP/IP的網絡 協議構架進行解析,將網絡中的IRC協議的數據提取出來,轉交給"僵尸網絡數據識別模 塊",其他數據不做處理丟掉。(2) 由"僵尸網絡數據識別模塊"加載僵尸網絡通訊數據特征庫中的特征碼,用這 些特征碼與"網絡數據解析模塊"解析出來的IRC協議的數據進行對比,從而找到僵尸網 絡數據包。將找到的僵尸網絡數據包,以及解析出來的源IP和目的IP,源端口號和目的 端口號,包含將僵尸網絡指令等信息一起傳遞給"僵尸網絡數據深度挖掘模塊"。(3) 在由"僵尸網絡數據識別模塊"截獲了大量的僵尸網絡數據包之后,"僵尸網 絡數據深度挖掘模塊"開始對這些截獲的僵尸網絡數據進行深度的分析,從而挖掘出以下 的信息為該僵尸網絡服務的僵尸網絡服務器的信息,控制該僵尸網絡的僵尸網絡控制者 的信息,被控制僵尸網絡被控端的信息,屬于該僵尸網絡的通信數據但關鍵字沒有覆蓋的 信息,以及僵尸網絡的規(guī)模的信息等,從而描繪出整個僵尸網絡的拓撲結構。(4) 獲得了該僵尸的大量信息后,調用"僵尸網絡新特征搜集模塊"來挖掘目前還 未掌握的新的僵尸網絡關鍵字,并將這些關鍵字放入僵尸網絡數據特征庫。(5) 之后調用"僵尸網絡分析報告生成模塊"將前面幾個模塊分析出來的關于僵尸 網絡的信息以分析報告的形式展現給用戶。(6) 根據已經獲得的關于特定的一個僵尸網絡的信息,在必要的時候可以選擇調用 "僵尸網絡主動防御模塊"進行主動的防御。主要手段有奪取僵尸網絡的控制權;終止該僵尸網絡正在發(fā)起的某種進攻;對整個僵尸網絡進行徹底摧毀。
權利要求
1.一種檢測僵尸網絡的方法,其步驟為1)從網絡數據包中提取出IRC協議數據;2)將協議數據與數據特征庫中的特征碼進行匹配,獲取僵尸網絡數據包;3)對僵尸網絡數據包進行劃分,將來自同一僵尸網絡的僵尸網絡數據包相互關聯起來;4)根據劃分后的僵尸網絡數據包確定出同一僵尸網絡中的控制服務器、僵尸計算機、僵尸網絡控制計算機,得到該僵尸網絡的拓撲結構。
2. 如權利要求1所述的方法,其特征在于根據所述僵尸網絡數據包中的頻道關鍵字信息對各僵尸網絡數據包進行劃分。
3. 如權利要求1所述的方法,其特征在于根據所述僵尸網絡數據包確定控制服務器的位置分布、僵尸計算機的規(guī)模和位置分布、控制計算機的位置分布、控制者的用戶名和 控制密碼、僵尸網絡行為,生成一分析報告。
4. 如權利要求1或2或3所述的方法,其特征在于所述控制服務器的獲取方法為1) 設定一比例閾值H;2) 搜索一 IP計算機A,其中與該IP計算機A進行數據通信的計算機數量占該僵尸網絡計算機總數量的比例超過設定比例閾值H,則所述計算機A為控制服務器;3) 對所述控制服務器進行進一步驗證,其方法為如果所述計算機A與其它計算機 通信的本地端口號相同,而遠程端口號不同,則確認所述計算機A為控制服務器。
5. 如權利要求1或2或3所述的方法,其特征在于所述僵尸網絡控制計算機的獲取方法為搜索非所述控制服務器的其它IP計算機中向所述控制服務器發(fā)送控制指令數據包的IP計算機,確定該計算機為僵尸網絡控制計算機。
6. 如權利要求1或2或3所述的方法,其特征在于所述僵尸計算機的規(guī)模統計方法為統計所有僵尸網絡數據包的IP地址數目為S,利用S減去所述控制服務器的IP地址 數目和所述僵尸網絡控制計算機的IP地址數目之后的值為所述僵尸計算機的規(guī)模;或者統計僵尸網絡通信數據中的所有用戶名的數量,確定所述僵尸計算機的規(guī)模。
7. 如權利要求1所述的方法,其特征在于從僵尸網絡數據包中提取新關鍵字并將其加入到所述數據特征庫中,其方法為從所述僵尸網絡數據包中提取新的控制指令并將其 加入到所述數據特征庫中;或者從返回的指令執(zhí)行狀況信息中尋找某一個字符串,其 重復出現的次數或比例超過設定閾值,則將該字符串加入到所述數據特征庫中。
8. 如權利要求3所述的方法,其特征在于根據所述分析報告進行主動防御,其方法為首先根據所述控制者的用戶名和控制密碼獲取僵尸網絡的控制權;然后發(fā)布停止攻擊 指令,或者發(fā)布摧毀僵尸計算機中bot程序的指令。
9. 一種檢測僵尸網絡的系統,其包括網絡數據解析模塊、僵尸網絡數據識別模塊、僵尸網絡數據深度挖掘模塊;其特征在于所述網絡數據解析模塊用于對網絡上截獲的大量數據進行解析,將網絡中承載僵 尸網絡通訊的IRC協議的數據提取出來,交給僵尸網絡數據識別模塊;所述僵尸網絡數據識別模塊用于根據僵尸網絡數據特征庫中的特征碼,匹配已經 截獲的IRC協議數據,尋找僵尸網絡數據包并將其交給僵尸網絡數據深度挖掘模塊;所述僵尸網絡數據深度挖掘模塊用于根據僵尸數據包中的頻道信息,將單獨的控 制信息關聯起來,形成網狀信息;再根據僵尸網絡數據包得出僵尸網絡中的僵尸計算 機、控制服務器以及僵尸控制計算機,得到整個僵尸網絡的拓撲結構。
10. 如權利要求9所述的系統,其特征在于所述系統還包括僵尸網絡新特征搜集模塊、僵 尸網絡分析報告生成模塊、僵尸網絡主動防御模塊所述僵尸網絡新特征搜集模塊用于查找所述僵尸網絡數據深度挖掘模塊得出的 僵尸網絡通信數據的內容中新出現的或目前系統未掌握的關鍵性字符,并將其加入到 所述僵尸網絡數據特征庫;所述僵尸網絡分析報告生成模塊用于根據所述僵尸網絡數據深度挖掘模塊的分 析結果,生成分析報告,所述分析報告包括控制服務器的位置、僵尸網路的規(guī)模、 僵尸計算機的位置分布、僵尸控制計算機的位置分布、控制者的用戶名稱及控制密碼、 僵尸網絡的行為;所述僵尸網絡主動防御模塊用于根據所述僵尸網絡數據深度挖掘模塊得出的控 制者用戶名及控制密碼對檢測到到僵尸網絡實施主動控制。
全文摘要
本發(fā)明公開了一種檢測僵尸網絡的方法及其系統,屬于計算機安全領域。本發(fā)明的方法為首先從網絡數據包中提取出IRC協議數據;然后將協議數據與數據特征庫中的特征碼進行匹配,獲取僵尸網絡數據包;對僵尸網絡數據包進行劃分,將來自同一僵尸網絡的僵尸網絡數據包關聯起來;最后根據劃分后的僵尸網絡數據包確定出同一僵尸網絡中的控制服務器、僵尸計算機、僵尸網絡控制計算機,從而描繪出該僵尸網絡的拓撲結構。本發(fā)明的系統包括網絡數據解析模塊、僵尸網絡數據識別模塊、僵尸網絡數據深度挖掘模塊。與現有技術相比,本發(fā)明可以對整個僵尸網絡進行整體的分析和防御,防御效果更好、防御范圍更廣、效率更高、溯源性更好。
文檔編號G06F17/30GK101404658SQ20081022545
公開日2009年4月8日 申請日期2008年10月31日 優(yōu)先權日2008年10月31日
發(fā)明者安丙春 申請人:北京銳安科技有限公司