白 濤,劉成龍,曲 武,王 震
(1.國網河北省電力公司信息通信分公司,石家莊050021;2.北京啟明星辰信息安全技術有限公司核心研究院,北京100193;3.清華大學計算機科學與技術系,北京100084)
基于網絡流量異常的僵尸網絡受控主機檢測研究
白 濤1,劉成龍1,曲 武2,3,王 震1
(1.國網河北省電力公司信息通信分公司,石家莊050021;2.北京啟明星辰信息安全技術有限公司核心研究院,北京100193;3.清華大學計算機科學與技術系,北京100084)
大規模僵尸網絡已成為當前互聯網的主要威脅之一,僵尸網絡流量自動檢測技術對于互聯網服務提供商和大型企業網監控非常重要。為此,提出一種基于網絡流量異常的僵尸網絡實時檢測算法,通過將網絡流量組織成主機網絡流量圖譜和主機關系鏈,并提取內在命令與控制通信特征檢測僵尸網絡,同時實現BotScanner檢測系統。使用4個主流的僵尸惡意代碼家族訓練BotScanner,采用模擬網絡流量和真實網絡流量數據集進行測試。實驗結果表明,在無需深度包解析的情況下,BotScanner僵尸網絡檢測系統能夠獲得較高的平均檢測率和較低的誤報率。在數據量較大的交換機上,BotScanner能夠有效地進行實時檢測,驗證了提出算法用于僵尸網絡檢測方面的可行性。
異常檢測;僵尸網絡;網絡流量;實時檢測;惡意代碼
對抗惡意軟件的行為已持續近幾十年,新的攻擊和防御技術周而復始的互動。在這場攻防戰中,僵尸網絡是最主要的網絡安全威脅之一。在僵尸惡意代碼設計中,當前的趨勢是利用P2P網絡架構進行C&C(Command&Control)通信,并且使用最新的加密和混淆技術,這大大降低了僵尸網絡被檢測到的可能性。僵尸網絡常在控制者指揮下發起大規模網絡攻擊,如發送大量垃圾郵件、向網站實施分布式拒絕服務攻擊(Distributed Denial of Service,DDoS)、偷竊敏感數據、傳播惡意代碼等。其中,DDoS和發送大量垃圾郵件可以通過對網絡流量進行分析,檢測相對容易。而對于敏感信息竊取和網絡間諜,檢測更為困難。
為解決上述問題,本文提出基于Netflow異常的僵尸網絡檢測方法,并實現了基于該方法的僵尸網絡檢測系統BotScanner,通過監控網絡流量進行僵尸網絡受控主機檢測。
BotScanner系統利用C&C通信的觀測結論進行檢測,即對于特定的僵尸網絡家族往往具有一定C&C通信模式。也就是說,同一個家族的僵尸惡意軟件會發送相似請求命令流量,同時以一種特別的格式上傳受控主機的信息。而且,對于命令和控制結構的重復連接常常遵循一定的時序模式。對于不同的僵尸惡意代碼家族,BotScanner可以通過建立多個模型進行檢測。最后,在可控的沙箱或虛擬機環境中,執行同屬于一個家族的僵尸惡意代碼實例并將原始流量存儲到Hadoop分布式文件系統(Hadoop Distributed File System,HDFS)中,BotScanner將會從原始流量中提取自定義的Netflow信息。該過程是BotScanner針對企業網設計的,對于互聯網服務提供商(Internet Service Provider,ISP)用戶,該過程使用的是來自交換機或路由器的標準Netflow信息(自定義的Netflow信息和標準的Netflow信息在本文統稱為(UD)Netflow)。下一步,BotScanner將使用(UD)Netflow進行建模。檢測模型將被用來分析未知網絡流量。當流量匹配該模型時,BotScanner將標記對應該流量的主機IP被僵尸惡意代碼感染,與之通信的主機可能是僵尸網絡的C&C服務器。
在建模和檢測過程中,為了應對大流量的分析要求,BotScanner系統采用的檢測算法可以使用交換機吐出的Netflow流量進行檢測。基于這種設計,BotScanner系統可以彈性地支持較大的流量。在企業邊界部署,可以通過提取自定義的Netflow信息進行檢測,在ISP主干網上可以使用交換機或路由器生成的標準Netflow進行檢測。此外,BotScanner系統使用了(UD)Netflow信息,并提取了更為顯著的特征,這些特征與以往不同,實現了之前設計的目標。在檢測階段,BotScanner系統能夠檢測個人主機的僵尸軟件感染,卻無需關聯多個主機的行為,但BotSniffer,BotM iner和TAMD等系統則必須要采用關聯行為。而且,這些系統依賴噪音行為,例如垃圾郵件和DDoS行為,而這類行為妨礙了偷竊類僵尸惡意軟件的檢測。盡管當前存在的許多系統都允許檢測主機僵尸惡意軟件感染,但該類檢測方法通常使用的是深度包解析方法。此類方法特征提取階段時間代價較大,僅適用于企業千兆網絡環境,難以應用到萬兆企業環境(丟包嚴重),更難以應用于ISP客戶環境。與此相反,BotScanner系統采用以下方式提高檢測性能,即使用更高層次的(UD)Netflow信息,根據網絡流量情況可選地分析負載流量,而且提取的(UD)Netflow無需深層次分析流量,故對于信道加密并不敏感。為了驗證BotScanner系統的檢測能力,本文使用4個僵尸網絡家族利用BotScanner系統生成檢測模型。這些僵尸網絡家族在當前網絡中是活躍的,BotScanner系統利用了不同僵尸惡意代碼家族的傳播方式和C&C通信策略。實驗結果表明,BotScanner系統能夠以較高的精度檢測僵尸惡意代碼,并能夠以較低的誤報率產生預期的檢測結果。
僵尸網絡本質上是一種新型的攻擊方式,其來源通常是傳統的惡意代碼,例如蠕蟲、木馬、偷竊工具、間諜工具、后門工具等。第一個具有僵尸網絡特性的惡意代碼PrettyPark于1999年在互聯網上被發現。僵尸網絡快速傳播并成為互聯網最重要的安全隱患之一是從2002年開始的,主要是2種僵尸網絡惡意代碼的開源,Agobot和SDbot,導致了普通用戶也可通過開源的代碼從事非法活動。在2005年,文獻[1]首次對僵尸網絡給出了被一致認可的定義:僵尸網絡是可被攻擊者遠程控制的受控主機所組成的網絡。隨著僵尸網絡的快速發展,許多新的惡意代碼技術都被融合到僵尸網絡中,包括Rootkit技術、惡意郵件傳播技術、加殼和變形技術、蠕蟲主動傳播技術等,這些技術的融入使得僵尸網絡攻擊手段更加多樣,傳播更為隱蔽,檢測難度更大。2008年,文獻[2]也對僵尸網絡給出了定義:僵尸網絡是攻擊者出于惡意目的,傳播僵尸程序控制大量主機,并通過一對多的命令與控制信道所組成的網絡。該定義將僵尸網絡區別于其他攻擊方式的基本特性是使用一對多的命令與控制機制。此外,該定義也強調了僵尸網絡的惡意性以及具備的網絡傳播特性。
僵尸網絡的核心特性就是其C&C機制,即命令與控制機制。當前,主流的僵尸網絡主要使用3種命令與控制機制,即基于3種協議的C&C機制,分別為利用IRC協議的C&C機制,利用HTTP協議的C&C機制,以及利用P2P協議的C&C機制。目前,僵尸網絡已經成為互聯網最大的安全威脅之一。同時,由于僵尸網絡本身的特性,已經成為DDoS、敏感信息偷竊、垃圾郵件發送等攻擊的高效手段。為了應對僵尸網絡的攻擊手段,安全研究人員已經在僵尸網絡檢測領域展開了深入的研究工作。
在僵尸網絡檢測領域,基于網絡的僵尸主機檢測研究主要包括2個主要方向,垂直關聯檢測和水平關聯檢測。在垂直關聯檢測中,為了評估主機受惡意代碼感染的情況,通過主機流量分析檢測掃描、垃圾郵件和C&C通信等惡意操作。例如,BotHunter系統[3]利用簽名檢測和異常檢測組件對一個典型的感染生命周期進行監測。文獻[4-5]分別基于IRC的網絡流量中僵尸主機頻繁使用的昵稱模式進行建模和檢測。然而,這些技術僅僅適用于特定的僵尸網絡結構,或者依賴于出現一種特定的僵尸惡意程序感染生命周期。而且,大多數檢測技術依賴于噪聲行為,例如掃描、垃圾郵件或是DDoS攻擊流量。文獻[6-7]通過自動分析受感染主機的行為,生成檢測簽名。這些方法的核心思想是,受控主機收到C&C服務器的命令,以一種特定的方式進行回復,該過程能夠提取簽名。盡管這些方法都表明能夠獲得較高的檢測率和有限的誤報率,但其局限性在于它們都要求深度包解析,對于加密的C&C通信無能為力。文獻[8]展現了一種方法,該方法主要研究對象是臨時訪問關系,并提出了目標原子和持久性的概念。目標原子之間使用一種通用的服務或Web地址進行通信,構成了目標原子組。而持久性是對目標原子組的臨時規律性進行多重粒度的評估。其核心思想是使用每個主機一段時間的初始化連接進行訓練,然后將結果分組到目標原子組。隨后,一段時間內固定一致的目標原子組構成了白名單,與白名單相比出現較少的連接將被記為異常,以此識別一個C&C服務器。第2個方向是來自多臺主機的網絡事件水平關聯,這些事件通常被包含在相似的、惡意的通信中。文獻[9-12]的工作都是圍繞此展開的。除了文獻[12]的工作是針對IRC分析的,其他3個系統的檢測原理都與僵尸網絡結構無關,故對于Pull,Push和P2P僵尸網絡也是有效的。然而,不同主機之間的關聯行為至少在同一個監控網絡中需要存在2臺主機,且感染同一種僵尸惡意代碼。因此,這些技術對于單個主機的感染無能為力。此外,這些檢測技術要求能夠觀測到一些噪音行為,即根據噪音進行檢測。但是,與過去幾年相比,低速、低噪音和利益驅動的僵尸網絡行為正在增多。另外一種檢測P2P僵尸網絡的方式是以FoE方法[13-16]、BotSuer檢測系統[17]、Botnet在線監控和離線檢測方法[18]、基于非監督學習的Botnet檢測方法[19]、基于網絡行為Botnet檢測方法[20]為代表。這種方式利用僵尸網絡潛在的通信架構進行檢測。BotGrep利用指定的分布式哈希表交互行為進行檢測,BotTrack和 BotFinder兩個系統都是利用NetFlows數據進行通信異常檢測,但是統計方法不同。對于FoE方法,無需進行包深度解析,僅需要進行交互式通信圖譜計算檢測。然而,除了BotFinder系統,其他系統都是利用蜜罐捕獲僵尸惡意樣本,然后通過監控僵尸惡意程序之間的通信定位網絡中其他的受控主機。該方案要求蜜罐中存在一個活躍的僵尸源,在實際使用中往往受限。BotFinder方法同樣需要利用蜜罐捕獲僵尸惡意樣本。但該方法使用沙箱或虛擬機執行,為其運行行為和通信行為建模作最后檢測。文獻[21]對Botnet檢測的方法和發展趨勢進行了綜述,并提出了獨特的見解。以上這些方案中提到的方法為本文提出的BotScanner系統提供了非常好的借鑒思路。
通過比較當前流量的(UD)Netflow統計特征與僵尸網絡歷史流量(UD)Netflow行為特征,BotScanner可以通過流量檢測主機感染的僵尸惡意代碼。在此過程中,BotScanner包含2個階段,即訓練階段和檢測階段。在訓練過程中,基于機器學習算法,BotScanner學習不同僵尸網絡家族的C&C通信特征。然后,BotScanner使用這些特征建立檢測模型來識別相似的流量。在檢測過程中,這些模型被用來檢測網絡流量。由于訓練過程中充分考慮了加密C&C通信問題,BotScanner能夠識別潛在的僵尸程序感染,即使僵尸程序使用了加密的C&C通信方法。
4.1 系統架構
圖1描述了訓練階段和檢測階段所包含的步驟:BotScanner需要獲取(UD)Netflow作為輸入。在訓練階段,BotScanner通過在沙箱或虛擬機中執行僵尸程序樣本,捕獲這些樣本產生的流量,并提取(UD)Neflow特征(或利用路由器、交換機上的Netflow特征)。BotScanner構造主機關系鏈和主機(UD)Netflow圖譜。通過主機關系鏈構造可信主機關系鏈特征。此外,根據每個主機(UD)Netflow圖譜,提取7個統計特征,分別為主機(UD)Netflow圖譜中的2個流之間的平均間隔、平均流持續時長、平均流大小、對于流起始時間的傅里葉變換、IP地址熵、上下行流量比、流量負載熵。最后,BotScanner利用前文提到的8個特征建立模型。在模型建立過程中,BotScanner使用聚類算法處理觀測到的特征值集合。由于需要檢測多種僵尸網絡,而且各類僵尸網絡特征相關性難以判別,因此每類特征將分別進行建模。例如,一個僵尸網絡家族可能在C&C通信上表現出相似的周期性,但是每個連接卻傳輸了不同大小的流負載。多個特征聚類的聯合將形成BotScanner的最終僵尸網絡監測模型。

圖1 BotScanner系統架構
在檢測階段,BotScanner可以接受不同粒度的數據,即可以選擇8類特征的若干種,這些特征既可以來自于標準的Netflow設備,例如交換機、路由器等,也可以來自用戶使用自定義的(UD)Netflow特征提取。不同的粒度對應不同的應用場景,也對應不同的檢測精度和誤報率。使用(UD)Netflow特征的BotScanner多部署在流量相對不大的局域網內,這是由于(UD)Netflow特征提取時間代價較高,流量過大造成丟包嚴重,導致(UD)Netflow特征不準確。BotScanner使用訓練階段建立的模型進行僵尸網絡監測。而使用標準Netflow特征的BotScanner多部署于骨干網,檢測精度比(UD)Netflow特征相對低,誤報率相對高。值得注意的是,BotScanner可選輸入數據粒度的特點,使得BotScanner不依賴于網絡流量的負載信息,卻可以產生接近的檢測精度和誤報率。
在訓練階段,僵尸家族樣本在沙箱或虛擬機這類可控環境下執行,所有的網絡流量都將被捕獲和記錄。該階段需要正確地分類僵尸惡意樣本,即同一家族的不同樣本需要統一分析。在僵尸樣本分類過程中,BotScanner使用動態檢測和靜態檢測相結合,選用業界知名的檢測和標注系統Anubis和VirusTotal,分別用于動態檢測和靜態檢測。當然,不正確的分類肯定會存在,這可能會影響生成檢測模型的質量。但后期的實驗結果表明,BotScanner對于訓練數據集中的噪音具有一定程度的容錯性。
4.2 Netflow監控
如果標準的Netflow數據可用,BotScanner可以直接使用。否則,BotScanner需要將捕獲到的網絡數據包,按照正確的順序重組成流。對于每個連接,連接起始時間、結束時間、傳輸的字節數、數據包數、上下行流量比、流量負載熵等特征將被提取。BotScanner的網絡流量重組模塊將會輸出與Netflow相似的特征,根據用戶的需求也可以輸出一些額外的特征。對于進一步的處理流程,BotScanner將會處理這些(UD)Netflow數據。
4.3 檢測特征提取
4.3.1 主機訪問關系鏈
集中式僵尸網絡,主要是具有IRC協議和HTTP協議的僵尸網絡為主,為防止單點故障通常采用多個C&C服務器,同時多個C&C服務器的IP地址對應一個域名。受控主機通常使用Heartbeat技術與這些C&C服務器保持連接。分布式僵尸網絡,主要以基于P2P協議的C&C為主,沒有單點的C&C服務器問題,通常采用發布和訂閱方式進行消息通信。僵尸網絡控制者發送控制或者命令,受控主機以一定模式向其相鄰節點發送心跳信息。此外,受控主機也通常以一定模式連接相鄰節點以交換心跳消息。在分布式僵尸網絡中,每個受控主機都維護一個相鄰節點列表,并以一定模式與名單中的節點進行通信,即不斷與同一組節點進行通信。在上述僵尸網絡模型中,每個受控主機維護一個相鄰節點列表,通過一定模式訪問名單中的僵尸節點以獲取控制和命令信息。大部分僵尸網絡符合上述模型,主機關系鏈主要描述此類僵尸網絡。受控主機連接其鄰居名單中前后相鄰節點的流總是“相繼出現”,即一個流先出現,另一個流緊跟前一個出現,這些流具有前驅后繼的特征,BotScanner系統稱之為“主機關系鏈”,如圖2所示。

圖2 主機關系鏈
根據關系鏈中流的個數不同,分為二級和多級關系鏈。二級關系鏈指前后2個流的前驅后繼關系,多級關系鏈指前后多個流的前驅后繼關系。相比之下,合法用戶的網絡行為較為隨機,幾乎不會呈現明顯的關系鏈。因此,BotScanner系統通過提取流間的關系鏈識別C&C流量,從而檢測出僵尸主機。
4.3.2 主機Netflow圖譜
主機(UD)Netflow圖譜和主機關系鏈是BotScanner系統最為核心的2個概念,主機關系鏈在上文已經描述。在BotScanner系統中,Netflow圖譜是2個網絡節點間(主機&端口)時序的流序列。圖3顯示了不同形狀的Netflow圖譜。例如NG-4使用431端口,從主機H1到H4顯示了高度的規律行為。這種規律性使得BotScanner能夠提取Netflow圖譜的統計特征。在Netflow圖譜NG-4中,接近常量的流之間時間間隔和持續時間,使用這2個特征能夠精確描述整個NG-4圖譜。為了獲得更為有意義的統計數據,BotScanner需要Netflow圖譜包含一定量的連接參數,即min,在BotScanner原型中,30≤min≤70。 Netflow圖譜的最小長度是與僵尸網絡實際通信一致的,即C&C網絡通信通常包含多個主機與C&C服務器之間的連接。在自動分析僵尸惡意樣本過程中,最主要的挑戰是如何區分惡意C&C通信與正常C&C通信,在訓練過程中,正常C&C通信為噪音數據。

圖3 主機Netflow圖譜
4.3.3 檢測特征提取
主機Netflow關系鏈構建之后,BotScanner提取主機關系鏈特征,即是否具有二級關系鏈和多級特征,該特征較為簡單,上文已經描述完畢。對于主機Netflow圖譜,為了分類圖譜中的子序列,BotScanner處理每個圖譜抽取統計特征。BotScanner主要聚焦于以下7個統計特征,分別為主機(UD)Netflow圖譜中2個流之間的平均間隔、平均流持續時長、平均流大小、流起始時間的傅里葉變換、IP地址熵、上下行流量比、流量負載熵,具體描述如下:
(1)平均間隔:在主機Netflow圖譜中,2個流子序列之間起始的時間間隔。僵尸主控節點必須保證其所控節點能夠接收到新的控制與命令。通常,從C&C服務器到受控僵尸主機之間的通信采用Push模式是不可能的。其原因是,許多受控僵尸主機是在私有網絡中,并處于網絡地址轉換設備NAT后面,或者是還沒有注冊到C&C服務器上。假設大部分受控僵尸主機與C&C服務器之間通信都使用一個常量的時間間隔(或者一個固定范圍的隨機值),這將致使通信中可檢測周期性。對于這類通信模式,僵尸主控節點必須平衡僵尸網絡的可擴展性、靈活性和C&C服務器連接被檢測到的風險。正如前文所提,一些僵尸網絡變種為規避特征提取和惡意代碼檢測系統,開始采用隨機和合法連接。其他方法,例如每天定時連接也遭遇到主機時鐘不同步的問題。而且,僵尸惡意代碼作者可以通過精心設計惡意代碼使其不顯示周期行為。但是,模仿隨機和合法通信是相當困難的,而且也是可檢測的。基于對于不同的僵尸惡意代碼家族的觀察,當前大部分僵尸惡意代碼都符合上述假設,同時表現出松散的周期C&C通信特征。
(2)平均持續時長:在主機Netflow圖譜中,每個流子序列持續時間的均值。通常情況下,受控僵尸主機沒有收到新命令的情況下,大部分通信僅包含簡單的握手信息,即受控僵尸主機請求新命令,C&C服務器返回沒有新命令。因此,在主機Netflow圖譜中,該過程的持續時間是相近的。
(3)平均流大小:在主機Netflow圖譜中,平均流大小包含2個子特征,分別為平均源字節數和平均目標字節數。通過使用源和目標字節數切分2個方向的通信,能夠將請求信道與命令傳輸區分開。也就是說,請求更新信息可能總是相同的大小,但來自C&C服務器包含真實數據是可變的。因此,主機Netflow圖譜可能包含許多具有相同源字節數的流子序列。相似的判斷也可應用到目標字節數,例如,來自C&C服務器的響應具有固定的格式。
(4)流起始時間的快速傅里葉變換[15]:為檢測潛在的C&C通信規律,使用快速傅里葉變換(Fast Fourier Transform,FFT)算法處理C&C通信的二進制抽樣。在此過程中,對主機Netflow圖譜進行抽樣,每個子序列起始位置設定為1,子序列中間位置則設定為0。通過這種方式,一個主機Netflow圖譜被映射為一個二進制序列。為計算高質量的FFT,使用Netflow圖譜中最小時間間隔的1/4作為抽樣間隔,避免欠采樣問題。盡管如此,若存在2個流子序列之間距離非常小,其他流子序列之間距離非常大,該抽樣方法將會產生大量的數據點。在此情況下,需要限制單個Netflow圖譜中包含的采樣點數為65 536,即216,同時接受輕微欠采樣情況。在使用該值的情況下,FFT是最快的,而且實驗中僅有少量數據點被欠采樣成單一的點。更為精確的描述如下,即對于觀測到的C&C圖譜,12%顯示欠采樣,但是僅平均1%的起始時間被抽樣到了一個采樣點。下一步,為抽取最重要的頻率特征,需要計算主機Netflow圖譜FFT的功率譜密度(Power Spectral Density,PSD)。FFT的峰值對應時間周期性,并且對于主機Netflow圖譜中大跨度的間隔具有耐受性。在實際測試環境中,僵尸網絡惡意代碼的C&C服務器通信是周期性的,然后會停滯一段時間。在一定的時間窗口內,當惡意代碼作者設計可隨機變化的C&C通信頻率的僵尸代碼,這種隨機變化將會降低FFT的峰值。然而,FFT的峰值仍然保持可檢測和同樣的頻率,因此可以通過FFT的峰值檢測僵尸網絡通信。
(5)IP地址熵:同一網絡的一定范圍內,計算正常流量中(UD)Netflow五元組的IP地址熵,熵值都大致相同。如果出現異常,則異常流量將改變(UD)Netflow的IP地址熵,熵值也將與正常情況下的熵值出現很大差別。不同類型、不同比例的異常流量,熵值也有很大不同。例如,在僵尸網絡感染期間,受控的主機會在很短時間內連接到其他許多主機。受控主機建立的開啟連接會占多數,熵隨之減小。同樣,數據流中的目標IP地址會比正常流量中的IP地址隨機得多。也就是說,目的IP地址的分布會更分散,導致信息熵較高。在僵尸網絡發動DDoS攻擊階段,目的IP地址熵值較小,源IP地址熵值較大,網絡掃描探測階段目的IP地址熵值較大,源IP地址熵值較小。由于正常網絡流量具有較為穩定的IP地址熵,異常流量將破壞這種穩定,從而可以從IP地址熵的角度進行僵尸主機檢測。
(6)上下行流量比:用戶正常訪問網絡時產生的上行流量比下行流量小。流量異常是指用戶訪問網絡時產生的上行流量比下行流量大得多。主要有2種原因造成:1)使用P2P軟件(電驢、迅雷、PPLive、UUSEE等)在外網下載、看視頻(如電影、電視)會產生大量的上行流量,為其他使用P2P軟件的用戶提供自己計算機上的數據。2)感染僵尸病毒,大量向外網發送惡意代碼自動收集危害計算機安全的敏感數據。對于正常的P2P軟件,可以使用白名單列表方式進行過濾,剩下的為僵尸軟件或惡意代碼造成的可疑流量。
(7)流量負載熵:近年來,新的僵尸程序將加密和混淆技術用于其C&C通道,以避免IDS、防火墻或其他方式的網絡偵聽。由于流量負載部分完全是加密或混淆的,基于特征的檢測方法難以提取加密通道的特征,故檢測僵尸網絡難以實現。然而,由于加密算法導致負載中字符出現的隨機性大大提高,每個字符出現的概率變小。也就是說,信道流量加密后,其熵值比較高。因此,可以通過熵值判斷信道是否加密。然后,結合白名單列表方式過濾掉合法加密流量,剩下流量為僵尸軟件或惡意代碼造成的可疑流量。
4.4 檢測模型的建立
通過聚類主機關系鏈包含的1個特征和主機(UD)Netflow圖譜包含的7個特征構成特征向量V,這些特征分別為關系鏈、平均間隔、平均流持續時長、平均流大小、流起始時間的傅里葉變換、IP地址熵、上下行流量比、流量負載熵。在實驗中,通過對僵尸惡意代碼行為進行觀測,這8個特征在總體上是無關的,對每個特征分別進行聚類。例如,一個僵尸代碼的2個版本可能鏈接不同版本C&C服務器,傳輸不同大小的流,IP地址熵不同,流量負載熵不同等。然而,這2個版本的僵尸代碼通信的周期模式仍然相同。聚類過程之后,可以明顯觀測到相當大的聚類簇含可疑的和真實的惡意代碼特定行為。此外,一些小的聚類簇包含多樣的特征行為,這樣的聚類簇往往具有較低的聚類質量,甚至對應的主機訪問關系鏈和Netflow圖譜也相當獨特。訓練結束后,最終的模型將包括8個聚類簇集合,每個集合對應一個特征,集合內包含了該特征的期望值。例如,平均間隔為850 s或2 100 s,目的IP地址到源IP地址傳輸51 KB,源IP地址到目的IP地址傳輸140 KB,上下行流量比為2.745∶1,每個流的持續時間為0.2 s或10 s,FFT為0.001 2 Hz或0.04 Hz,IP地址熵值為7.54(該僵尸程序正在發動DDos攻擊),流量負載熵值為9.65(該僵尸程序使用的是加密信道),以上這些特征表明該僵尸程序為Rustock變種。
為了聚類主機關系鏈和(UD)Netflow圖譜的特征,本文使用CLUES算法[22],該算法無需聚類參數,并且不需要提前指定聚類簇個數。實驗結果表明,完全自動的、無監督的CLUES算法能夠獲得K-means算法相類似的結果。在某些情況下,甚至CLUES算法能夠獲得更好的聚類簇結果,這表明CLUES算法能夠較好地適應本文的應用場景。
在計算完聚類中心和成員后,使用聚類質量評估函數判斷各個聚類簇的質量。聚類評估函數定義如下,。其中,sd為標注方差;c為均值;β為控制因子,默認值為2.53。一般情況下,大的聚類簇具有更高的內部相似性,更為多樣的聚類子簇。所有qclu的均值是評估特征向量相似性的指標。高的聚類質量表明,大多數的僵尸惡意代碼生成高度相似的(UD)Netflow,抽取的特征向量也相近。如果(UD)Netflow是多樣的,則主機關系鏈和(UD)Netflow圖譜也是多樣的,就會產生更多低質量的聚類簇。
4.5 受控僵尸主機檢測
為檢測是否一個給予的特征向量V匹配訓練好的模型M,需要將V中的每個特征與模型中的聚類簇進行比較。例如,如果特征向量V中的平均時間間隔特征處于M的一個聚類簇中,檢測算法將認定為一次命中,并調高檢測得分值γM。檢測得分值γM的提升幅度主要依賴于聚類簇的質量和特征向量的質量(即主機關系鏈和主機(UD)Netflow圖譜的質量)。這些質量定義在一定程度上反映了主機關系鏈和主機(UD)Netflow圖譜建立,以及特征提取過程的不確定性。此外,還需要考慮平均時間間隔特征是何值時可以被認為具有周期性。
對于不同的僵尸網絡家族,為了能夠命中多個模型,需要為每個模型維護一個γM。需要注意的是,在訓練過程中引入的人造訓練數據(與C&C通信無關的流量),將會造成低質量的聚類簇,這僅僅會導致γM輕微上升。通過這種方式,BotScanner系統隱含著對訓練中引入的噪音具有一定程度的免疫能力。最后,將最高的評分γ與BotScanner系統報警閾值α進行比較,若γ>α,則該模型判斷為匹配,BotScanner發出告警。為了降低誤報率,BotScanner系統不僅僅是依賴單一的特征值進行判別,用戶可以根據實際環境情況設定最小的命中特征數h。也就是說,除了每個特征都需要滿足γ>α,至少存在h個這樣的特征向量,1≤h≤8。這樣的約束存在可以降低BotScanner系統由于突發的單一特征匹配導致誤報。例如,對于給定特征向量中的平均時間間隔和FFT,滿足γ>α。若,設定h=3,BotScanner系統需要滿足額外的一個特征才會告警,例如主機關系鏈、流量負載熵、IP地址熵等。
5.1 模型訓練
本文使用4個不同的僵尸惡意代碼家族訓練BotScanner系統,這4個家族當前在互聯網上非常活躍,并且非常有代表性。更確切地講,為了能夠保證BotScanner系統所使用的訓練樣本是活躍的、相關的,觀測了Anubis在2013年5月份的檢測樣本,并從中選出適合BotScanner系統訓練的樣本。Anubis每天收到并分析成千上萬的樣本,在動態檢測領域具有權威性。為了捕捉僵尸網絡產生的通信流量,基于Xen構建了可控的W indow s XP虛擬機環境。同時,該虛擬機與互聯網相連,且包含真實的用戶數據。在可控的虛擬機環境下,每個僵尸惡意代碼家族平均測試了26.5個變種樣本,并捕獲了所有的網絡流量。在實驗中,對垃圾郵件和DDoS攻擊進行了限制。用來訓練的4個僵尸惡意代碼家族描述如下:
(1)Conficker,該僵尸軟件在業內也被稱為Downup,Downadup或Kido,其最早于2008年11月20日被發現的以微軟的W indows操作系統為攻擊目標的計算機僵尸病毒。迄今已出現了A,B,C,E 4個版本,目前全球已有超過1 500萬臺電腦受到感染。Conficker僵尸程序傳播主要通過運行W indow s系統的服務器服務的緩沖區漏洞。它使用特定的RPC請求在目標電腦上執行代碼。
(2)Banbra,一種特洛伊木馬和間諜程序,用來進一步下載和安裝惡意代碼組件。
(3)Rustock,是全球最大的僵尸網絡之一,由僵尸程序Rustock感染的受控主機組成,其主要的非法行為是利用受到惡意軟件感染的主機發送垃圾郵件。據研究人員表示,一臺受控的Rustock病毒感染的主機,可以在一天之內發送24×104封的垃圾郵件,嚴重影響了個人電子郵箱,并且耗費了大量的網絡帶寬。此外,受控的主機可能被竊取敏感信息,并被用來進行DDos攻擊。
(4)Black Energy,該僵尸軟件是由俄羅斯的黑客開發,而且起初被用來進行DDoS的攻擊、垃圾郵件分布和銀行詐欺。但最新的用途是通過一系列的舉動針對性地攻擊政府機構和私人企業。Black Energy僵尸軟件最初使用一種基本的加密技術來使其可執行文件不被殺毒軟件察覺,并使用Base64編碼來擾亂其通信。最新版本的B lack Energy使用了更強大的RC4流加密的一個變種來編碼其通信內容。
表1展示了訓練過程中惡意代碼樣本的詳細分布和與之相關的主機關系鏈和主機Netflow圖譜。在表中,聚類質量反映了質量評分函數的結果。聚類質量分值越高,表明聚類簇中特征向量越接近,方差越低。同時,驗證了本文的核心假設:同一僵尸惡意代碼家族的不同變種將會產生類似的C&C通信流量,這類流量可以使用聚類算法進行有效的描述。例如,在Conficker模型中,對于每個特征,最高的聚類簇質量大于0.9。盡管具有較低聚類質量的小聚類簇降低了總體的聚類質量,但大的、高質量的聚類簇仍然能夠對Conficker的通信行為給予較好的表述。對于Black Energy,由于其樣本通信行為的高可變性,生成的聚類簇也是多樣的,導致建立的模型需要綜合考慮多個特征。對于聚類方法,本文使用文獻[22]提出的CLUES,對于每個僵尸網絡家族,每個特征獲得平均聚類簇個數為3.14個。

表1 用于訓練的惡意代碼家族描述
5.2 系統實現和性能測試
為了兼容后續的開發,實現BotScanner系統使用Java語言。對于全包捕獲和包重組,BotScanner系統使用開源的IDS,OSSEC。由于OSSEC對于萬兆環境的性能問題,實驗中產生了嚴重的丟包問題,不能夠滿足實時性的需求。因此,BotScanner系統在實際應用中分為2種應用環境,分別為基于包分析的(UD)Netflow和標準Netflow,(UD)Netflow通常用于千兆的環境。標準Netflow既可用于千兆環境,也可以用于萬兆環境。在實際環境中,一個8個節點(4路8核3.2 GHz CPU,128 GB內存)的集群被用來部署大數據環境,Clean數據集和ISP-NetFlow數據集存儲在HDFS中。
5.3 交叉驗證
為了評估BotScanner系統的檢測能力,在標注的基準訓練數據集和Clean數據集上執行交叉驗證。2個數據集都來自同一個網絡環境,確保了相似的網絡環境。對于每個不同可接受的α值,執行了50次獨立的交叉驗證,描述如下:
(1)切分基準惡意代碼數據集為訓練集合Tr和測試集合Te,分別為80%和20%。
(2)假設Clean數據集是完全干凈的,并沒有受到惡意代碼感染。混合測試集合Te與Clean數據集,生成一個合適的數據集,用來檢測BotScanner系統的誤報率。
(3)使用訓練數據集Tr訓練BotScanner系統,建立檢測模型。
(4)使用Te與Clean數據集混合數據集檢測訓練好的BotScanner系統。
在實驗中,基于已有的僵尸惡意代碼樣本分析檢測結果,如果一個檢測特征被正確標識為僵尸惡意代碼,則記為準確,否則記為誤判。圖4顯示α∈[0,2]的檢測率,h=3。在圖4中,低的接收率將會產生高于82%的檢測率,但是同時產生了高的誤報率。例如,當α≤0.6時,誤報率大于1%。

圖4 BotScanner系統的檢測率和誤報率
正如圖4(a)所示,當檢測率接近線性下降時,誤報率成指數級下降。當α∈[1.6,1.8]時,與圖4(b)左下角相比,BotScanner系統取得了較好的檢測率和合理的誤報率。因此,α∈[1.6,1.8]為合適的閾值。對于可接收的閾值α=1.6,系統獲得了76.56%的檢測率,7×10-4的誤報率。對于此參數,表2顯示了各個僵尸家族在5交叉驗證情況下的檢測率。所有的Conficker樣本檢測正確率高達87%,平均檢測正確率高達80%。誤判情況僅僅是Conficker和Black Energy存在。

表2 不同僵尸網絡家族的檢測結果(α=0.6)%
正如上文所見,BotScanner系統對于不同的僵尸家族檢測率是比較高的。例如,Conficker家族樣本全部顯示了高度的周期行為,且非常相似,訓練過程中取得了非常高的聚類質量。因此,獲得了87%的檢測率。Rustock存在相對低的聚類質量(較高的標準方差),但是仍然產生了接近相似的行為,獲得了82%的檢測率。在惡意代碼家族中,Black Energy獲得了最低的檢測精度,該家族的聚類簇表現了高度的多樣性,聚類簇范圍大,聚類質量較低,因此,檢測精度較低是合理的。而且,聚類簇范圍大導致了相對高的誤報率,出現了5次誤報。
5.4 模型評估
為了評估BotScanner系統,本文在2個真實數據集上做了大量實驗。第1個數據集是Clean,一個接近20臺機器的安全實驗室2.5個月的全包流量數據。根據實驗室的管理策略,該環境理論上不存在惡意代碼相關的通信流量,可以認為Clean數據集僅包含良性流量。由于實驗室采用的是全包捕獲策略,因此可以人工驗證已報道的感染和入侵情況。第2個數據集是ISP-NetFlow,來自網絡服務提供商,包含7天的Netflow數據,數據規模為10 TB,接近17.3 MB/s。對于ISP-NetFlow數據集,由于不能夠捕獲全流量,檢測結果不能夠進行準確率比較。本文通過將檢測到的IP地址與已知的惡意代碼IP黑名單列表進行比較,確認受控主機的聚類簇,從而驗證本文提出的BotScanner系統應用到大型網絡的可行性。
在建立BotScanner系統原型之后,準備了以下實驗:
(1)基于基準訓練數據集和Clean數據集的交叉驗證實驗。簡言之,訓練數據集首先被切分成訓練數據集和檢測數據集。然后,檢測數據集與不包含惡意流量的Clean數據集混合。BotScanner系統在訓練數據集上已經學習到僵尸惡意代碼的行為之后,測試程序對準確率和誤報率進行分析。由于數據集僅包括僵尸惡意代碼的通信流量和Clean數據集流量,準確率和誤報率分析過程比較簡單。
(2)與相關工作進行比較:在本實例中,相關工作最知名的是基于包檢測的BotHunter系統。本文在BotHunter系統上檢測了實驗(1)的數據。
(3)ISP-NetFlow數據集:使用上文提到的4類僵尸惡意代碼的實際流量訓練BotScanner系統,并使用ISP-NetFlow數據集進行測試。BotScanner系統的告警結果將與僵尸網絡受控主機IP黑名單列表進行比較,實驗結果如圖5所示。BotScanner總體上優于BotHunter,而且黑名單中的Conficker,Banbra和Rustock在一定程度上驗證了本文方法的有效性。由于黑名單列表中不存在Black Energy家族,在圖5中并沒有顯示Black Energy家族的檢測結果。

圖5 檢測到的惡意代碼家族數
本文展示了一種新穎的基于Netflow異常的僵尸主機檢測方法和系統BotScanner,檢測特征是基于網絡流量的統計特征。通過對已知的僵尸家族自動的、非監督的訓練之后,BotScanner系統基于對C&C流量的聚類簇統計結果建立檢測模型。實驗結果表明,基于C&C通信具有周期特性的前提下,通過流量模式分析,BotScanner系統能夠獲得接近80%的檢測準確率。而且,BotScanner系統無需IP黑名單和深度包解析的前提下,能夠以較高的準確率檢測僵尸網絡。同時,BotScanner系統對于通信加密或混淆的僵尸惡意代碼是有效的。
BotScanner系統可以被看成一個僵尸網絡檢測的框架原型,可以在多個層面進行改進,進一步的優化如下:(1)沙箱和虛擬機環境需要進一步的改進,更好地對抗僵尸惡意代碼作者探測運行環境,停止釋放惡意行為。(2)在訓練階段使用非監督的學習方法。據此,選擇一種機器學習方法能夠獲得理想的特征,該特征能夠對惡意代碼家族進行精確的描述,并在檢測步驟賦予合理的權重,也可以嘗試使用深度學習方法進行僵尸主機檢測。(3)僅使用Netflow數據進行檢測是本文的一大特點,但畢竟Netflow數據所含信息量有限,為進一步提高檢測精度、降低誤報率,可以嘗試使用靈活高效的多源數據采集與融合機制,例如引入包解析或關聯其他設備的檢測結果。(4)在極端網絡流量的情況下,例如Netflow流速超過5M eps時,BotScanner不能滿足實時檢測要求,此時需要犧牲檢測精度,對Netflow進行抽樣。因此,引入分布式流處理框架,例如Storm,Spark等,進行實時、高精度檢測是一個值得研究的方向。
[1] Bacher P,Holz T,Kotter M,et al.Know Your Enemy:Tracking Botnets[EB/OL].(2005-03-14).http:// www.honeynet.org/papers/bots.
[2] 諸葛建偉,韓心慧,周勇林,等.僵尸網絡研究[J].軟件學報,2008,19(3):702-715.
[3] Gu Guofei,Porras P,Yegneswaran V,et al.BotHunter:Detecting Malware Infection Through IDS-driven Dialog Correlation[C]//Proceedings of the 16th Usenix Security Sym posium.Berlin,Germany:Springer,2007:167-182.
[4] Goebel J,Holz T.Rishi:Identify Bot Contaminated Hosts by IRC Nickname Evaluation[C]//Proceedings of the 1st Conference on Hot Topics in Understanding Botnets.Berlin,Germ any:Springer,2007:1-8.
[5] Binkley JR,Singh S.An Algorithm for Anomaly-based Botnet Detection[C]//Proceedings of USENIX Steps to Reducing Unwanted Traffic on the Internet Workshop. Berlin,Germ any:Springer,2006:43-48.
[6] Wurzinger P,Bilge L,Holz T,et al.Automatically Generating Models for Botnet Detection[C]// Proceedings of the 14th European Symposium on Research in Computing Security.Saint-Malo,France:[s.n.],2009:232-249.
[7] Perdisci R,Lee W,Feamster N.Behavioral Clustering of HTTP-based Malware and Signature Generation Using Malicious Network Traces[C]//Proceedings of Conference on Networked System Design and Implementation.Berlin,Germany:Springer,2010:391-404.
[8] Giroire F,Chandrashekar J,Taft N,et al.Exploiting Temporal Persistence to Detect Covert Botnet Channels[C]// Proceedings of the 12th International Symposium on Book Subtitle.Saint-Malo,France:[s.n.],2009:326-345.
[9] Gu Guofei,Zhang Junjie,Lee W.BotSniffer:Detecting Botnet Command and Control Channels in Network Traffic[C]//Proceedings of the 16th Annual Network& Distributed System Security Symposium.Berlin,Germany:Springer,2008:1-18.
[10] Gu Guofei,Perdisci R,Zhang Junjie,et al.BotM iner:Clustering Analysis of Network Traffic for Protocol-and Structure-independent Botnet Detection[C]//Proceedings of USENIX Security Symposium.[S.l.]:Academic Search Press,2008:139-154.
[11] Yen Tingfang,Reiter M K.Traffic Aggregation for Malw are Detection[M]//Holz T,Bos H.Detection of Intrusions and Malware,and Vulnerability Assessment. Berlin,Germany:Springer,2008:207-227.
[12] Strayer W T,Walsh R,Livadas C,et al.Detecting Botnets with Tight Command and Control[C]// Proceedings of the 31st IEEE Conference on Local Computing Networks.Washington D.C.,USA:IEEE Press,2006:195-202.
[13] Nagaraja S,Mittal P,Hong Chi-Yao,et al.Bot Grep:Finding P2P Bots with Structured Graph Analysis[C]// Proceedings of USENIX Security Symposium.[S.l.]:Academic Search Press,2010:95-110.
[14] Fran?ois J,Wang Shaonan,Engel T.Bot Track:Tracking Botnets Using Net Flow and Page Rank[C]//Proceedings of the 10th International IFIP TC 6 Networking Conference.Berlin,Germany:Springer,2011:1-14.
[15] Tegeler F,Fu Xiaoming,Vigna G,et al.Botfinder:Finding Bots in Network Traffic Without Deep Packet Inspection[C]//Proceedings of the 8th International Conference on Emerging Networking Experiments and Technologies.New York,USA:ACM Press,2012:349-360.
[16] Coskun B,Dietrich S,Memon N.Friends of an Enemy:Identifying Local Members of Peer-to-Peer Botnets Using Mutual Contacts[C]//Proceedings of the 26th Annual Computing Security Applications Conference. New York,USA:ACM Press,2010:131-140.
[17] Kheir N,Wolley C.BotSuer:Suing Stealthy P2P Bots in Network Traffic Through Netflow Analysis[C]// Proceedings of the 12 th International Conference on Cryptology and Network Security.Berlin,Germany:Springer,2013:162-178.
[18] Fan Yuhui,Xu Ning.A P2P Botnet Detection Method Used On-line Monitoring and Off-line Detection[J]. International Journal of Security and Its Applications,2014,8(3).
[19] Amini P,Azmi R,Araghizadeh M A.Botnet Detection using Net Flow and Clustering[J].International Journal on Advances in Computer Science,2014,3(2):139-149.
[20] Garg S,Sarje A K,Peddoju S K.Improved Detection of P2P Botnets Through Network Behavior Analysis[C]// Proceedings of the 2nd International Conference on Security in Computing Networks and Distributed System s.Berlin,Germany:Springer,2014:334-345.
[21] Vania J,Meniya A,Jethva H B.A Review on Botnet and Detection Technique[J].International Journal of Computing Trends and Technology,2013,4(1):23-29.
[22] Wang Xiaogang,Qiu Weiliang,Zamar R H.CLUES:A Non-parametric Clustering Method Based on Local Shrinking[J].Computational Statistics&Data Analysis,2007,52(1):286-298.
編輯 顧逸斐
Research on Botnet Controlled Host Detection Based on Netflow Abnormity
BA I Tao1,LIU Chenglong1,QU W u2,3,WANG Zhen1
(1.Inform ation&Telecommunication Branch,State Grid Hebei Electric Power Company,Shijiazhuang 050021,China;
2.Core Research Institute,Beijing Venustech Information Security Technology Co.,Ltd.,Beijing 100193,China;
3.Department of Computing Science and Technology,Tsinghua University,Beijing 100084,China)
With extensive botnet arising as one of the major current network security threats,the automatic detection of botnet communication traffic is of high importance for Internet service providers and large corporation network monitoring.To solve the problem,this paper proposes a novel approach for botnet detection,a real-time botnet detection algorithm,where netflow related data is correlated as the host netflow graph structure and the host access chain structure,and a feature extraction method is leveraged for exacting implicit characteristics.Meanwhile,this paper establishes BotScanner detection system,which is a real-time steam processing engine.It trains BotScanner system on the four representative bot families and evaluates BotScanner on simulated network traffic and real-world network traffic. Experimental results show that BotScanner is able to detect bots in network traffic without the need of deep packet inspection,while still achieving high detection rates with very few false positives.W hen the netflow data from the core switch is very large,BotScanner is able to detect botnet in real-time by the efficient algorithm.It proves the feasibility of applying BotScanner system to botnet detection.
abnormity detection;botnet;netflow;real-time detection;malicious code
白 濤,劉成龍,曲 武,等.基于網絡流量異常的僵尸網絡受控主機檢測研究[J].計算機工程,2015,41(11):170-179.
英文引用格式:Bai Tao,Liu Chenglong,Qu Wu,et al.Research on Botnet Controlled Host Detection Based on Netflow Abnormity[J].Computer Engineering,2015,41(11):170-179.
1000-3428(2015)11-0170-10
A
TP309
10.3969/j.issn.1000-3428.2015.11.030
國家自然科學基金資助項目(60875029)。
白 濤(1983-),男,碩士,主研方向:信息網絡安全;劉成龍,學士;曲 武,博士、CCF會員;王 震,碩士。
2015-01-12 修回日期:2015-02-28 E-m ail:quwu-ustb@163.com