專利名稱:一種Email蠕蟲檢測方法
技術領域:
本發明涉及計算機網絡病毒檢測技術領域,具體涉及一種Email蠕蟲檢測方法。
背景技術:
Email蠕蟲是一種常見的計算機病毒。它是利用網絡進行復制和傳播,傳染途徑是 通過網絡和電子郵件。蠕蟲病毒是一種自包含的程序,它能拷貝其自身或自身的某些部分 并通過網絡傳播到其他的計算機系統中。 Email蠕蟲最大的特點就是能夠利用Email的方式進行主動自我傳播,主要體現 為兩種行為特征感染特征和連接特征。感染特征是指被監控節點出現了異常的主動連接 其他網絡節點的行為(如在一個單位時間段里面發送Email的數目超過預先設定的閾值); 連接特征是指被監控節點出現被感染節點或者可疑節點連接的行為。 近年來,Email蠕蟲逐漸成為一種主要的網絡攻擊手段,各種的Email蠕蟲程序 在網絡中廣泛傳播,如"Melissa"、"Love Letter"、"W32/Sircam"、"SoBig"、"MyDoom"、 "Bagle"、"Netsky"等等。大量無用的Email數據存在于整個網絡,直接導致了網絡數 據傳輸阻塞,嚴重地影響了郵件系統網絡的工作性能。對于Email蠕蟲的檢測和控制 成為石開究熱點之一。ZOUC, Gong W, T0WSLEY D. Feedback email worm defense system forenterprise networks[C]//Umass ECE Technical Report TR_04_CSE_05 :Umass, 2004.介紹了一種檢測方法稱為"反饋防御系統"(Feedback Defense System),它利用 了現有的入侵檢測軟件對于可疑郵件進行攔截,再采用虛擬的蜜罐系統進行分析檢測,該 方法對Ema i 1用戶有很好的保護作用,但是對于Ema i 1蠕蟲在網絡中轉播的主動控制, 效果不是很明顯。GUPTA A, SEKAR R. An approach for detecting self-propagating Email using anomalydetection[C]//Proceedings of Recent Advances in Intrusion Detection (RAID). Pittsburgh PA :Springer, 2003 :55-72.介紹了一種利用機器學習對網 絡異常流量進行監測的方法,能夠有效地減少檢測誤報率,但是該方法需要對網絡流量進 行統計,存在一定的檢測延遲性。HUSNA H,raiTHAKKITN區00NS,DANTU R. Traffic sh即ing of spam botnets[C]〃Proceedings of CCNC 2008, 5thlEEE丄as Vegas, NV :IEEE, 2008 : 786-787.提出了利用熵值來歸類垃圾郵件的方法,該方法通過對垃圾郵件的行為特征的分 析(如在一個單位時間段里面連續發送郵件的數量),利用熵值的大小來快速的區分垃圾 郵件和正常郵件,該歸類方法的精度取決于閾值的大小,對于防御者來說,很難找到一個合 適的閾值使檢測結果同時達到最小的假陽性(正常節點被檢測機制錯誤地歸類為感染節 點)和最小的假陰性(感染節點被檢測機制錯誤地歸類為正常節點)。
發明內容
針對現有技術存在的上述不足,本發明的目的在于提供一種能夠快速、及時地 檢測出蠕蟲的基于接觸跟蹤鏈的Emai 1蠕蟲檢測方法CTCBF (Contact-Tracing Chain BasedFramework)。
本發明的目的是這樣實現的一種Email蠕蟲檢測方法,包括如下步驟
a、單點檢測將單點檢測模塊配置在網關上,利用網關實現對單個節點異常SMTP 數據包的檢測,分析單個節點的感染特征,然后利用差分熵檢測出疑似Email蠕蟲的異常 節點; b、多點跟蹤檢測將多點跟蹤模塊配置在郵件服務器,通過分析單點檢測模塊檢 測出的異常節點之間的連接關系建立跟蹤鏈,并對每條跟蹤鏈進行跟蹤檢測,超過預設長 度的跟蹤鏈上的可疑節點被確定為感染節點。
進一步,所述單點檢測的具體步驟包括 al)利用網關接收SMTP數據包,在一個檢測時段內確定SMTP數據包分布序列V ;
a2)利用熵值算法對分布序列V求熵值; a3)確定閾值M,通過對每個終端用戶長時間發送Email的習慣,確定一個平均值 E,令M > E,將序列V超出閾值M部分定義為新序列V';
a4)利用熵值算法對分布序列V'求熵值;
a5)比較兩個熵值相似度,求取差分熵值DH ; a6)定義一個固定的相似度閾值,當差分熵DH小于此相似度閾值時,將被檢測網 絡節點認定為異常節點。 熵值計算能夠體現在一個時間段內發送郵件數目的分布情況,只要M設置合理, 可以作如下假設定義V'為異常郵件部分,相似度為一個時間段內總的郵件分布的熵值 和異常郵件分布的熵值相比較的結果,異常郵件數目越多,H(v')越高,DH越小,則相似度越高。 相似度閾值是劃分正常節點與異常節點的差分熵DH臨界值,它能夠體現單點檢
測的安全等級相似度閾值定義得越高,差分熵DH臨界值就相對增大,被認定為異常節點
的網絡節點數目相對增加,增強了系統的警惕性,則單點檢測的安全等級就越高。相似度閾
值可根據網絡安全等級的要求自由設置。
進一步,多點跟蹤檢測的具體步驟包括 bl)所有節點信息初始化,為每個節點開辟跟蹤鏈緩沖區,同時將所有節點初始化 為正常類型; b2)服務器等待接收網關信息; b3)基于單點檢測的節點A出現感染特征,檢測節點A的郵件地址和目標地址是否 為同一郵件服務器,如果不是屬于同一郵件服務器,則需要兩個郵件服務期相互交換關于 節點A的跟蹤鏈信息; b4)節點A如果是第一次出現感染特征,以該節點作為根節點建立跟蹤鏈;
b5)更新節點A跟蹤鏈緩沖區信息; b6)以遞歸的方法更新所有與節點A相關聯的節點緩沖區信息;
b7)另一節點B在接收到異常節點A發送的Email以后出現了同樣的感染特征,則 節點B作為節點A的子節點被加入跟蹤鏈,跟蹤鏈的長度增加一級,同時重復步驟b5和步 驟b6 ; b8)當跟蹤鏈長度達到設定閾值K的時候,該跟蹤鏈上的節點被確認為感染節點。
再進一步,閾值K采用動態設置,根據不同的網絡感染等級來動態地改變閾值K的大小,動態閾值調整具體步驟包括 ①根據跟蹤鏈單位時間段內增加的感染節點數目確定網絡的感染等級,將典型的
Email蠕蟲傳播周期分為三個傳播時間段初始期,上升期,飽和期; ②應用動態閾值算法,根據不同傳播時間段動態改變跟蹤鏈的閾值K ; ③將動態閾值K反饋給跟蹤模塊。
相比現有技術,本發明具有如下優點 1]將單點檢測模塊配置在網關上,將多點跟蹤模塊配置在郵件服務器上,這種分 布式的結構能夠減小郵件服務器負荷,提高檢測的效率。 2]單點檢測模塊和多點跟蹤模塊相對獨立,可以將其他的單點檢測手段作為一種 感染特征檢測手段應用到系統中,系統具有很好的兼容性。 3]由于本系統檢測基于對蠕蟲傳播過程的監控,所以能夠快速、及時地檢測出蠕 蟲的傳播行為。 4]利用跟蹤算法提高檢測精度,在單個節點感染特征的基礎上,通過分析節點之 間的連接特征,從而確定真正的感染節點;相對于目前普遍采用的一些單點檢測的方法,本 系統增加了跟蹤模塊減小的誤報率,提高了檢測精度。 5]由于跟蹤鏈的建立會使得檢測出現一定的延遲性,本系統采用了動態閾值的方 法平衡了檢測精度和檢測速度之間的關系。 6]該方法采用廣泛應用于傳染病檢測的接觸跟蹤法,通過建立跟蹤鏈對異常 的Email傳播過程進行監控,同時根據跟蹤鏈的狀態來確定Email蠕蟲感染節點,為未知 Email蠕蟲的檢測提供了一種新的模式。
圖1是本發明Email蠕蟲檢測方法的方框流程圖; 圖2是本發明的系統結構圖,其中,圖2(a)為Email蠕蟲傳播示意圖,圖2 (b)為 CTCBF檢測示意圖; 圖3被檢測網絡節點在檢測周期內的感染特征曲線圖;
圖4是被檢測網絡節點的差分熵分析柱狀圖;
圖5是本發明方法一種實施方式的跟蹤鏈建立過程示意圖;
圖6是不同的閾值K跟蹤檢測效果對比圖。
具體實施例方式
本發明系統結構如圖2所示,演示了節點A通過Email蠕蟲感染節點B、C、D的過 程,時間序列tl < t2 < t3. . . <tl3<tl4。在此過程中,網關1、網關2和網關3分別在 t2、t6、t11時刻向郵件服務器發送了異常節點信息,由于節點D相對于節點A、B、C,屬于不 同的郵件服務器,所以分別在t7, t12時刻,郵件服務器1和郵件服務器2交換了異常節點 信息。 參見圖l,本發明提供一種Email蠕蟲檢測方法CTCBF (Contact-Tracing Chain BasedFramework): a、單點檢測,利用單點檢測算法對于單個節點的感染特征進行檢測;具體方法是將單點檢測模塊配置在網關上,利用網關實現對單個節點異常SMTP數據包的檢測,分析單
個節點的感染特征,然后利用差分熵檢測出疑似Email蠕蟲的異常節點; b、多點跟蹤檢測,利用跟蹤算法提高檢測精度,在單個節點感染特征的基礎上,通
過分析節點之間的連接特征,從而確定真正的感染節點;具體方法是將多點跟蹤模塊配
置在郵件服務器,通過分析單點檢測模塊檢測出的異常節點之間的連接關系(兩點之間發
送Email的記錄)建立跟蹤鏈,并對每條跟蹤鏈進行跟蹤檢測,超過預設長度的跟蹤鏈上的
可疑節點被確定為感染節點。
1、單點檢領lj : 單點檢測的具體步驟是 al)利用網關接收SMTP數據包,在一個檢測時段內確定SMTP數據包分布序列V :
V(T) = 〈v(l), v(2),…,v(t),…,v(n)〉,其中,v(t)為在時間段t中被檢測節
點與外部節點建立的連接數,T為序列V的長度; a2)利用熵值算法對分布序列V求熵值根據香農定理,定義V (T)的熵值為 i/(7) = —wZ-
'max藝v"),l
log2
v(,)
max f>(/), 1 a3)確定閾值M,通過對每個終端用戶長時間發送Email的習慣,確定一個平均值
E,令M > E,將序列V超出閾值M部分定義為新序列V': V' (T' )=〈v' (l),v' (2),…,v' (t),…,v' (n)>, 其中,v' (t)為v(t)中超出預先設定的閾值M的連接數,S卩v' (t)=maX(0,
v(t)-M),T'為序列V'的長度; a4)利用熵值算法對分布序列V'求熵值由v' (t) = max(O, v(t)-M)得到 V' (T)的熵值為
i/(F')=-"》
max(0,v(/) —AQ 1 max (f: max(O, v(/) — A/), 1)
「log2
max(O,v(,)-M) max J X max(O, v(Z) - M), 1) a5)比較兩個熵值相似度,求取差分熵值DH :DH = H (v) _H (v'); a6)定義一個固定的相似度閾值,當差分熵DH小于此相似度閾值時,將被檢測網
絡節點認定為異常節點。 熵值計算能夠體現在一個時間段內發送郵件數目的分布情況,只要M設置合理, 我們可以作如下假設定義V'為異常郵件部分,相似度為一個時間段內總的郵件分布的 熵值和異常郵件分布的熵值相比較的結果,異常郵件數目越多,H(v')越高,DH越小,則相 似度越高。 相似度閾值是劃分正常節點與異常節點的差分熵DH臨界值,它能夠體現單點檢 測的 安全等級相似度閾值定義得越高,差分熵DH臨界值就相對增大,被認定為異常 節點的網絡節點相對增加,增強了系統的警惕性,則單點檢測的安全等級就越高。相似度閾 值可根據網絡安全等級的要求自由設置。 但僅通過單點檢測方法得到的可疑節點數與真實的感染節點數還有一定誤差。有 些正常節點被誤識別為異常節點,造成網絡節點假陽性;有些感染節點沒有被歸類識別異
7常節點,造成網絡節點假陰性。 假陽性和假陰性的數量高低與閾值M的大小有直接關系。當v(t) >> M的時候, DH —O,V(t)與V' (t)的相似度較高,假陽性的數量較高;當v(t) <<1的時候,011由正 常連接的序列分布決定,V(t)與V' (t)的相似度較低,就可能出現數量較高的假陰性。因 此,M的大小對差分熵的結果有影響,M越小,DH也就越小,V(t)與V' (t)的相似度越高, 假陽性數量越高。 M的值可以根據網絡狀況進行設置,但僅通過設置M值很難同時保證最低假陽性 和最低假陰性,從而檢測結果難免有一定誤差。而多點跟蹤檢測能在單點檢測的基礎上提 高檢測精度,將單點檢測與多點跟蹤結合,便能夠識別出假陽性的可疑節點,有效提高檢測 精度。所以,如果進一步進行多點跟蹤檢測,單點檢測就允許出現較高的假陽性,不妨將M 設置為一個較小的值。
2、多點跟蹤檢測 多點跟蹤檢測的目的是在假陽性較高的單點檢測機制的基礎上,利用跟蹤鏈提高 檢測精度。我們作如下定義 定義1 :網絡中的任意節點r G S都有可能與其他節點發生連接,并且成為任意跟 蹤鏈的根節點,所以每個節點設置s-i跟蹤鏈存儲空間。 定義2 :網絡中的任意節點i G S, i # r都有可能成為以r為根節點的跟蹤鏈節 點。任意節點狀態可表示為函數Ai = f(Ci(r), Li(r), Pi(r)), i G S, & (r)定義為節點i 的類型,Li(r)定義為節點i相對于根節點r的級數,Pjr)定義為節點i的父節點。
定義3 :根據網絡節點的行為特征,將節點劃分為4個類型正常類型(NS),連接 類型(CS),可疑類型(SS),感染類型(IS):
NS :沒有出現感染特征和連接特征。
CS :出現連接特征,但沒有出現感染特征。
SS:出現了感染特征。
IS :出現過感染特征,所在跟蹤鏈被確認為感染鏈。 在初始狀態下,Li (r) = -1表示節點i沒有被任何以r為根節點的跟蹤鏈節點感 染,當i = r時,b (r) = 0表示每個節點相對于自己都處于第0級,Pi = i將所有節點都 初始化為根節點,每個初始節點的類型被定義為NS。
多點跟蹤檢測的具體步驟是 bl)所有節點信息初始化,為每個節點開辟跟蹤鏈緩沖區,同時將所有節點初始化 為正常類型; b2)服務器等待接收網關信息; b3)基于單點檢測的節點A出現感染特征,檢測節點A的郵件地址和目標地址是否 為同一郵件服務器,如果不是屬于同一郵件服務器,則需要兩個郵件服務期相互交換關于 節點A的跟蹤鏈信息; b4)節點A如果是第一次出現感染特征,以該節點作為根節點建立跟蹤鏈;
b5)更新節點A跟蹤鏈緩沖區信息; b6)以遞歸的方法更新所有與節點A相關聯的節點緩沖區信息; b7)另一節點B在接收到異常節點A發送的Email以后出現了同樣的感染特征,則節點B作為節點A的子節點被加入跟蹤鏈,跟蹤鏈的長度增加一級,同時重復步驟b5和步 驟b6 ; b8)當跟蹤鏈長度達到設定閾值K的時候,該跟蹤鏈上的節點被確認為感染節點。
在多點跟蹤檢測中,閾值K可采用動態設置,根據不同的網絡感染等級來動態地 改變閾值K的大小 ①根據跟蹤鏈單位時間段內增加的感染節點數目確定網絡的感染等級,將典型的 Email蠕蟲傳播周期分為三個傳播時間段初始期,上升期,飽和期。定義AI為單位時間 段內增加的感染節點數目,用AI體現網絡的感染等級。 初始期感染的數目不多,被感染節點增長的速度不快,AI比較小,網絡感染等 級低。 上升期感染的數目逐漸增多,被感染的節點增長速度急劇加快,AI迅速增大, 網絡感染等級增加。
飽和期感染的數目增加的速度減慢,A I逐漸減小,網絡感染等級逐漸降低。
動態設置閾值K的優勢體現于在網絡感染等級較低的時候采用較大的閾值K以 提高跟蹤鏈的精度,減少誤報率;在網絡感染等級較高的時候采用較小的閾值K以提高跟 蹤鏈的速度,減少更多節點被感染的可能性。 ②應用動態閾值算法,根據不同傳播時間段動態改變跟蹤鏈的閾值K,動態閾值算 法定義為ii:(, + l)-min(max^(0^^,i^丄^j , 其中,AI(t)為當前傳播時間段增加的感染節點數目,AI(t+l)為下一傳播時間 段增加的感染節點數目,K(t)為當前傳播時間段設定的閾值,K(t+l)為下一傳播時間段的 閾值,Kmin和Kmax分別為閾值K的上限閾值和下限閾值。
③將動態閾值K反饋給跟蹤模塊。 下面結合附圖和具體實施方式
對本發明作進一步說明。
實施例
1、單點檢測 利用單點檢測法檢測一個網絡節點的感染特征。該實施例中,整個檢測周期被劃 分為4個時間段T1、 T2、 T3、 T4,每個時間段設置的時長為160秒,被檢測節點各時間段的 感染特征曲線參見圖3 ;分別取閾值M = 100、200和300,利用差分熵對4個時間段的數據 進行計算,計算結果參見圖4。
2、多點跟蹤檢測 跟蹤鏈建立過程參見圖5 :設置M = 2, tl < t2 < t3,初始狀態下,每個節點處于 類型NS,圖中箭頭代表異常連接,虛線代表沒有連接,Li代表節點i的級數。圖中存在兩條 跟蹤鏈,節點1,2,3構成鏈l,節點5,4構成鏈2。 tl時刻,節點1和節點5出現了感染特 征,分別與節點2和節點4發生了連接關系,將節點1和節點5分別作為兩條跟蹤鏈的根節 點,則b = L5 = O,類型由NS變為SS,節點2和節點4的類型由NS變為CS ;t2時刻,節點2 出現了感染特征,并且與節點3發生了連接關系,節點2的類型由CS變為SS,同時L2 = 1, 節點3的類型由NS變為CS ;t3時刻,節點3出現了感染特征,連接了節點4,則L3 = 2,同時節點3的類型由CS變為SS,跟蹤鏈1中的類型為SS的節點數目達到了閾值M,所以跟蹤 鏈1被確認為感染鏈,鏈上的節點被確定為感染節點,節點1,2,3的類型由SS變為IS。跟 蹤鏈2的長度由于沒有達到閾值M,所以不能被確認為感染鏈。節點6為孤立節點,既沒有 出現連接特征也沒有出現感染特征,所以保持類型為NS。 為進一步體現閾值K對多點跟蹤監測的影B向,分別取閾值K = 4、11和動態設置, 對被檢測跟蹤鏈進行跟蹤檢測,檢測效果圖參見圖6 ;從圖中能夠看到,采用動態設置閾值 K的跟蹤檢測效果更好。 最后說明的是,以上實施例僅用以說明本發明的技術方案而非限制,盡管參照較 佳實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技 術方案進行修改或者等同替換,而不脫離本發明技術方案的宗旨和范圍,其均應涵蓋在本 發明的權利要求范圍當中。
10
權利要求
一種Email蠕蟲檢測方法,其特征在于,包括如下步驟a、單點檢測將單點檢測模塊配置在網關上,利用網關實現對單個節點異常SMTP數據包的檢測,分析單個節點的感染特征,然后利用差分熵檢測出疑似Email蠕蟲的異常節點;b、多點跟蹤檢測將多點跟蹤模塊配置在郵件服務器,通過分析單點檢測模塊檢測出的異常節點之間的連接關系建立跟蹤鏈,并對每條跟蹤鏈進行跟蹤檢測,超過預設長度的跟蹤鏈上的可疑節點被確定為感染節點。
2. 根據權利要求1所述的Email蠕蟲檢測方法,其特征在于,所述步驟a中,單點檢測 的具體步驟包括al)利用網關接收SMTP數據包,在一個檢測時段內確定SMTP數據包分布序列V ; a2)利用熵值算法對分布序列V求熵值;a3)確定閾值M,通過對每個終端用戶長時間發送Email的習慣,確定一個平均值E,令 M^E,將序列V超出閾值M部分定義為新序列V'; a4)利用熵值算法對分布序列V '求熵值; a5)比較兩個熵值相似度,求取差分熵值DH;a6)定義一個固定的相似度閾值,當差分熵DH小于此相似度閾值時,將被檢測網絡節 點認定為異常節點。
3. 根據權利要求1所述的Email蠕蟲檢測方法,其特征在于,所述步驟b中,多點跟蹤 檢測的具體步驟包括bl)所有節點信息初始化,為每個節點開辟跟蹤鏈緩沖區,同時將所有節點初始化為正 常類型;b2)服務器等待接收網關信息;b3)基于單點檢測的節點A出現感染特征,檢測節點A的郵件地址和目標地址是否為同 一郵件服務器,如果不是屬于同一郵件服務器,則需要兩個郵件服務期相互交換關于節點A 的跟蹤鏈信息;b4)節點A如果是第一次出現感染特征,以該節點作為根節點建立跟蹤鏈; b5)更新節點A跟蹤鏈緩沖區信息;b6)以遞歸的方法更新所有與節點A相關聯的節點緩沖區信息;b7)另一節點B在接收到異常節點A發送的Email以后出現了同樣的感染特征,則節 點B作為節點A的子節點被加入跟蹤鏈,跟蹤鏈的長度增加一級,同時重復步驟b5和步驟 b6 ;b8)當跟蹤鏈長度達到設定閾值K的時候,該跟蹤鏈上的節點被確認為感染節點。
4. 根據權利要求3所述的Email蠕蟲檢測方法,其特征在于,所述閾值K采用動態設 置,根據不同的網絡感染等級來動態地改變閾值K的大小① 根據跟蹤鏈單位時間段內增加的感染節點數目確定網絡的感染等級,將典型的 Email蠕蟲傳播周期分為三個傳播時間段初始期,上升期,飽和期;② 應用動態閾值算法,根據不同傳播時間段動態改變跟蹤鏈的閾值K ;③ 將動態閾值K反饋給跟蹤模塊。
5. 根據權利要求4所述的Email蠕蟲檢測方法,其特征在于,所述動態閾值算法為<formula>formula see original document page 3</formula>其中,AI(t)為當前傳播時間段增加的感染節點數目,AI(t+l)為下一傳播時間段 增加的感染節點數目,K(t)為當前傳播時間段設定的閾值,K(t+l)為下一傳播時間段的閾 值,Kmin和Kmax分別為閾值K的上限閾值和下限閾值。
全文摘要
本發明提供一種Email蠕蟲檢測方法CTCBF(Contact-Tracing Chain Based Framework基于接觸跟蹤鏈的檢測機制)。該方法首先利用差分熵的方法對網絡節點的異常發送Email行為進行檢測,再通過異常節點之間的連接關系利用跟蹤算法建立跟蹤鏈,當跟蹤鏈的長度達到一定閾值的時候,鏈上的可疑節點被確認為感染節點;針對閾值的不確定性,本發明提出了一種動態閾值的方法,根據不同的網絡感染等級來動態的改變閾值大小。該方法能夠快速、準確地檢測出蠕蟲的傳播行為,同時為未知Email蠕蟲的檢測提供了一種新的模式。
文檔編號G06F21/00GK101764838SQ200910250848
公開日2010年6月30日 申請日期2009年12月30日 優先權日2009年12月30日
發明者仲元紅, 周建林, 曾孝平, 熊東, 黃智勇 申請人:重慶大學