白 濤,劉成龍,曲 武,王 震
(1.國網(wǎng)河北省電力公司信息通信分公司,石家莊050021;2.北京啟明星辰信息安全技術(shù)有限公司核心研究院,北京100193;3.清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,北京100084)
基于網(wǎng)絡(luò)流量異常的僵尸網(wǎng)絡(luò)受控主機(jī)檢測研究
白 濤1,劉成龍1,曲 武2,3,王 震1
(1.國網(wǎng)河北省電力公司信息通信分公司,石家莊050021;2.北京啟明星辰信息安全技術(shù)有限公司核心研究院,北京100193;3.清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,北京100084)
大規(guī)模僵尸網(wǎng)絡(luò)已成為當(dāng)前互聯(lián)網(wǎng)的主要威脅之一,僵尸網(wǎng)絡(luò)流量自動(dòng)檢測技術(shù)對于互聯(lián)網(wǎng)服務(wù)提供商和大型企業(yè)網(wǎng)監(jiān)控非常重要。為此,提出一種基于網(wǎng)絡(luò)流量異常的僵尸網(wǎng)絡(luò)實(shí)時(shí)檢測算法,通過將網(wǎng)絡(luò)流量組織成主機(jī)網(wǎng)絡(luò)流量圖譜和主機(jī)關(guān)系鏈,并提取內(nèi)在命令與控制通信特征檢測僵尸網(wǎng)絡(luò),同時(shí)實(shí)現(xiàn)BotScanner檢測系統(tǒng)。使用4個(gè)主流的僵尸惡意代碼家族訓(xùn)練BotScanner,采用模擬網(wǎng)絡(luò)流量和真實(shí)網(wǎng)絡(luò)流量數(shù)據(jù)集進(jìn)行測試。實(shí)驗(yàn)結(jié)果表明,在無需深度包解析的情況下,BotScanner僵尸網(wǎng)絡(luò)檢測系統(tǒng)能夠獲得較高的平均檢測率和較低的誤報(bào)率。在數(shù)據(jù)量較大的交換機(jī)上,BotScanner能夠有效地進(jìn)行實(shí)時(shí)檢測,驗(yàn)證了提出算法用于僵尸網(wǎng)絡(luò)檢測方面的可行性。
異常檢測;僵尸網(wǎng)絡(luò);網(wǎng)絡(luò)流量;實(shí)時(shí)檢測;惡意代碼
對抗惡意軟件的行為已持續(xù)近幾十年,新的攻擊和防御技術(shù)周而復(fù)始的互動(dòng)。在這場攻防戰(zhàn)中,僵尸網(wǎng)絡(luò)是最主要的網(wǎng)絡(luò)安全威脅之一。在僵尸惡意代碼設(shè)計(jì)中,當(dāng)前的趨勢是利用P2P網(wǎng)絡(luò)架構(gòu)進(jìn)行C&C(Command&Control)通信,并且使用最新的加密和混淆技術(shù),這大大降低了僵尸網(wǎng)絡(luò)被檢測到的可能性。僵尸網(wǎng)絡(luò)常在控制者指揮下發(fā)起大規(guī)模網(wǎng)絡(luò)攻擊,如發(fā)送大量垃圾郵件、向網(wǎng)站實(shí)施分布式拒絕服務(wù)攻擊(Distributed Denial of Service,DDoS)、偷竊敏感數(shù)據(jù)、傳播惡意代碼等。其中,DDoS和發(fā)送大量垃圾郵件可以通過對網(wǎng)絡(luò)流量進(jìn)行分析,檢測相對容易。而對于敏感信息竊取和網(wǎng)絡(luò)間諜,檢測更為困難。
為解決上述問題,本文提出基于Netflow異常的僵尸網(wǎng)絡(luò)檢測方法,并實(shí)現(xiàn)了基于該方法的僵尸網(wǎng)絡(luò)檢測系統(tǒng)BotScanner,通過監(jiān)控網(wǎng)絡(luò)流量進(jìn)行僵尸網(wǎng)絡(luò)受控主機(jī)檢測。
BotScanner系統(tǒng)利用C&C通信的觀測結(jié)論進(jìn)行檢測,即對于特定的僵尸網(wǎng)絡(luò)家族往往具有一定C&C通信模式。也就是說,同一個(gè)家族的僵尸惡意軟件會(huì)發(fā)送相似請求命令流量,同時(shí)以一種特別的格式上傳受控主機(jī)的信息。而且,對于命令和控制結(jié)構(gòu)的重復(fù)連接常常遵循一定的時(shí)序模式。對于不同的僵尸惡意代碼家族,BotScanner可以通過建立多個(gè)模型進(jìn)行檢測。最后,在可控的沙箱或虛擬機(jī)環(huán)境中,執(zhí)行同屬于一個(gè)家族的僵尸惡意代碼實(shí)例并將原始流量存儲(chǔ)到Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)中,BotScanner將會(huì)從原始流量中提取自定義的Netflow信息。該過程是BotScanner針對企業(yè)網(wǎng)設(shè)計(jì)的,對于互聯(lián)網(wǎng)服務(wù)提供商(Internet Service Provider,ISP)用戶,該過程使用的是來自交換機(jī)或路由器的標(biāo)準(zhǔn)Netflow信息(自定義的Netflow信息和標(biāo)準(zhǔn)的Netflow信息在本文統(tǒng)稱為(UD)Netflow)。下一步,BotScanner將使用(UD)Netflow進(jìn)行建模。檢測模型將被用來分析未知網(wǎng)絡(luò)流量。當(dāng)流量匹配該模型時(shí),BotScanner將標(biāo)記對應(yīng)該流量的主機(jī)IP被僵尸惡意代碼感染,與之通信的主機(jī)可能是僵尸網(wǎng)絡(luò)的C&C服務(wù)器。
在建模和檢測過程中,為了應(yīng)對大流量的分析要求,BotScanner系統(tǒng)采用的檢測算法可以使用交換機(jī)吐出的Netflow流量進(jìn)行檢測。基于這種設(shè)計(jì),BotScanner系統(tǒng)可以彈性地支持較大的流量。在企業(yè)邊界部署,可以通過提取自定義的Netflow信息進(jìn)行檢測,在ISP主干網(wǎng)上可以使用交換機(jī)或路由器生成的標(biāo)準(zhǔn)Netflow進(jìn)行檢測。此外,BotScanner系統(tǒng)使用了(UD)Netflow信息,并提取了更為顯著的特征,這些特征與以往不同,實(shí)現(xiàn)了之前設(shè)計(jì)的目標(biāo)。在檢測階段,BotScanner系統(tǒng)能夠檢測個(gè)人主機(jī)的僵尸軟件感染,卻無需關(guān)聯(lián)多個(gè)主機(jī)的行為,但BotSniffer,BotM iner和TAMD等系統(tǒng)則必須要采用關(guān)聯(lián)行為。而且,這些系統(tǒng)依賴噪音行為,例如垃圾郵件和DDoS行為,而這類行為妨礙了偷竊類僵尸惡意軟件的檢測。盡管當(dāng)前存在的許多系統(tǒng)都允許檢測主機(jī)僵尸惡意軟件感染,但該類檢測方法通常使用的是深度包解析方法。此類方法特征提取階段時(shí)間代價(jià)較大,僅適用于企業(yè)千兆網(wǎng)絡(luò)環(huán)境,難以應(yīng)用到萬兆企業(yè)環(huán)境(丟包嚴(yán)重),更難以應(yīng)用于ISP客戶環(huán)境。與此相反,BotScanner系統(tǒng)采用以下方式提高檢測性能,即使用更高層次的(UD)Netflow信息,根據(jù)網(wǎng)絡(luò)流量情況可選地分析負(fù)載流量,而且提取的(UD)Netflow無需深層次分析流量,故對于信道加密并不敏感。為了驗(yàn)證BotScanner系統(tǒng)的檢測能力,本文使用4個(gè)僵尸網(wǎng)絡(luò)家族利用BotScanner系統(tǒng)生成檢測模型。這些僵尸網(wǎng)絡(luò)家族在當(dāng)前網(wǎng)絡(luò)中是活躍的,BotScanner系統(tǒng)利用了不同僵尸惡意代碼家族的傳播方式和C&C通信策略。實(shí)驗(yàn)結(jié)果表明,BotScanner系統(tǒng)能夠以較高的精度檢測僵尸惡意代碼,并能夠以較低的誤報(bào)率產(chǎn)生預(yù)期的檢測結(jié)果。
僵尸網(wǎng)絡(luò)本質(zhì)上是一種新型的攻擊方式,其來源通常是傳統(tǒng)的惡意代碼,例如蠕蟲、木馬、偷竊工具、間諜工具、后門工具等。第一個(gè)具有僵尸網(wǎng)絡(luò)特性的惡意代碼PrettyPark于1999年在互聯(lián)網(wǎng)上被發(fā)現(xiàn)。僵尸網(wǎng)絡(luò)快速傳播并成為互聯(lián)網(wǎng)最重要的安全隱患之一是從2002年開始的,主要是2種僵尸網(wǎng)絡(luò)惡意代碼的開源,Agobot和SDbot,導(dǎo)致了普通用戶也可通過開源的代碼從事非法活動(dòng)。在2005年,文獻(xiàn)[1]首次對僵尸網(wǎng)絡(luò)給出了被一致認(rèn)可的定義:僵尸網(wǎng)絡(luò)是可被攻擊者遠(yuǎn)程控制的受控主機(jī)所組成的網(wǎng)絡(luò)。隨著僵尸網(wǎng)絡(luò)的快速發(fā)展,許多新的惡意代碼技術(shù)都被融合到僵尸網(wǎng)絡(luò)中,包括Rootkit技術(shù)、惡意郵件傳播技術(shù)、加殼和變形技術(shù)、蠕蟲主動(dòng)傳播技術(shù)等,這些技術(shù)的融入使得僵尸網(wǎng)絡(luò)攻擊手段更加多樣,傳播更為隱蔽,檢測難度更大。2008年,文獻(xiàn)[2]也對僵尸網(wǎng)絡(luò)給出了定義:僵尸網(wǎng)絡(luò)是攻擊者出于惡意目的,傳播僵尸程序控制大量主機(jī),并通過一對多的命令與控制信道所組成的網(wǎng)絡(luò)。該定義將僵尸網(wǎng)絡(luò)區(qū)別于其他攻擊方式的基本特性是使用一對多的命令與控制機(jī)制。此外,該定義也強(qiáng)調(diào)了僵尸網(wǎng)絡(luò)的惡意性以及具備的網(wǎng)絡(luò)傳播特性。
僵尸網(wǎng)絡(luò)的核心特性就是其C&C機(jī)制,即命令與控制機(jī)制。當(dāng)前,主流的僵尸網(wǎng)絡(luò)主要使用3種命令與控制機(jī)制,即基于3種協(xié)議的C&C機(jī)制,分別為利用IRC協(xié)議的C&C機(jī)制,利用HTTP協(xié)議的C&C機(jī)制,以及利用P2P協(xié)議的C&C機(jī)制。目前,僵尸網(wǎng)絡(luò)已經(jīng)成為互聯(lián)網(wǎng)最大的安全威脅之一。同時(shí),由于僵尸網(wǎng)絡(luò)本身的特性,已經(jīng)成為DDoS、敏感信息偷竊、垃圾郵件發(fā)送等攻擊的高效手段。為了應(yīng)對僵尸網(wǎng)絡(luò)的攻擊手段,安全研究人員已經(jīng)在僵尸網(wǎng)絡(luò)檢測領(lǐng)域展開了深入的研究工作。
在僵尸網(wǎng)絡(luò)檢測領(lǐng)域,基于網(wǎng)絡(luò)的僵尸主機(jī)檢測研究主要包括2個(gè)主要方向,垂直關(guān)聯(lián)檢測和水平關(guān)聯(lián)檢測。在垂直關(guān)聯(lián)檢測中,為了評估主機(jī)受惡意代碼感染的情況,通過主機(jī)流量分析檢測掃描、垃圾郵件和C&C通信等惡意操作。例如,BotHunter系統(tǒng)[3]利用簽名檢測和異常檢測組件對一個(gè)典型的感染生命周期進(jìn)行監(jiān)測。文獻(xiàn)[4-5]分別基于IRC的網(wǎng)絡(luò)流量中僵尸主機(jī)頻繁使用的昵稱模式進(jìn)行建模和檢測。然而,這些技術(shù)僅僅適用于特定的僵尸網(wǎng)絡(luò)結(jié)構(gòu),或者依賴于出現(xiàn)一種特定的僵尸惡意程序感染生命周期。而且,大多數(shù)檢測技術(shù)依賴于噪聲行為,例如掃描、垃圾郵件或是DDoS攻擊流量。文獻(xiàn)[6-7]通過自動(dòng)分析受感染主機(jī)的行為,生成檢測簽名。這些方法的核心思想是,受控主機(jī)收到C&C服務(wù)器的命令,以一種特定的方式進(jìn)行回復(fù),該過程能夠提取簽名。盡管這些方法都表明能夠獲得較高的檢測率和有限的誤報(bào)率,但其局限性在于它們都要求深度包解析,對于加密的C&C通信無能為力。文獻(xiàn)[8]展現(xiàn)了一種方法,該方法主要研究對象是臨時(shí)訪問關(guān)系,并提出了目標(biāo)原子和持久性的概念。目標(biāo)原子之間使用一種通用的服務(wù)或Web地址進(jìn)行通信,構(gòu)成了目標(biāo)原子組。而持久性是對目標(biāo)原子組的臨時(shí)規(guī)律性進(jìn)行多重粒度的評估。其核心思想是使用每個(gè)主機(jī)一段時(shí)間的初始化連接進(jìn)行訓(xùn)練,然后將結(jié)果分組到目標(biāo)原子組。隨后,一段時(shí)間內(nèi)固定一致的目標(biāo)原子組構(gòu)成了白名單,與白名單相比出現(xiàn)較少的連接將被記為異常,以此識(shí)別一個(gè)C&C服務(wù)器。第2個(gè)方向是來自多臺(tái)主機(jī)的網(wǎng)絡(luò)事件水平關(guān)聯(lián),這些事件通常被包含在相似的、惡意的通信中。文獻(xiàn)[9-12]的工作都是圍繞此展開的。除了文獻(xiàn)[12]的工作是針對IRC分析的,其他3個(gè)系統(tǒng)的檢測原理都與僵尸網(wǎng)絡(luò)結(jié)構(gòu)無關(guān),故對于Pull,Push和P2P僵尸網(wǎng)絡(luò)也是有效的。然而,不同主機(jī)之間的關(guān)聯(lián)行為至少在同一個(gè)監(jiān)控網(wǎng)絡(luò)中需要存在2臺(tái)主機(jī),且感染同一種僵尸惡意代碼。因此,這些技術(shù)對于單個(gè)主機(jī)的感染無能為力。此外,這些檢測技術(shù)要求能夠觀測到一些噪音行為,即根據(jù)噪音進(jìn)行檢測。但是,與過去幾年相比,低速、低噪音和利益驅(qū)動(dòng)的僵尸網(wǎng)絡(luò)行為正在增多。另外一種檢測P2P僵尸網(wǎng)絡(luò)的方式是以FoE方法[13-16]、BotSuer檢測系統(tǒng)[17]、Botnet在線監(jiān)控和離線檢測方法[18]、基于非監(jiān)督學(xué)習(xí)的Botnet檢測方法[19]、基于網(wǎng)絡(luò)行為Botnet檢測方法[20]為代表。這種方式利用僵尸網(wǎng)絡(luò)潛在的通信架構(gòu)進(jìn)行檢測。BotGrep利用指定的分布式哈希表交互行為進(jìn)行檢測,BotTrack和 BotFinder兩個(gè)系統(tǒng)都是利用NetFlows數(shù)據(jù)進(jìn)行通信異常檢測,但是統(tǒng)計(jì)方法不同。對于FoE方法,無需進(jìn)行包深度解析,僅需要進(jìn)行交互式通信圖譜計(jì)算檢測。然而,除了BotFinder系統(tǒng),其他系統(tǒng)都是利用蜜罐捕獲僵尸惡意樣本,然后通過監(jiān)控僵尸惡意程序之間的通信定位網(wǎng)絡(luò)中其他的受控主機(jī)。該方案要求蜜罐中存在一個(gè)活躍的僵尸源,在實(shí)際使用中往往受限。BotFinder方法同樣需要利用蜜罐捕獲僵尸惡意樣本。但該方法使用沙箱或虛擬機(jī)執(zhí)行,為其運(yùn)行行為和通信行為建模作最后檢測。文獻(xiàn)[21]對Botnet檢測的方法和發(fā)展趨勢進(jìn)行了綜述,并提出了獨(dú)特的見解。以上這些方案中提到的方法為本文提出的BotScanner系統(tǒng)提供了非常好的借鑒思路。
通過比較當(dāng)前流量的(UD)Netflow統(tǒng)計(jì)特征與僵尸網(wǎng)絡(luò)歷史流量(UD)Netflow行為特征,BotScanner可以通過流量檢測主機(jī)感染的僵尸惡意代碼。在此過程中,BotScanner包含2個(gè)階段,即訓(xùn)練階段和檢測階段。在訓(xùn)練過程中,基于機(jī)器學(xué)習(xí)算法,BotScanner學(xué)習(xí)不同僵尸網(wǎng)絡(luò)家族的C&C通信特征。然后,BotScanner使用這些特征建立檢測模型來識(shí)別相似的流量。在檢測過程中,這些模型被用來檢測網(wǎng)絡(luò)流量。由于訓(xùn)練過程中充分考慮了加密C&C通信問題,BotScanner能夠識(shí)別潛在的僵尸程序感染,即使僵尸程序使用了加密的C&C通信方法。
4.1 系統(tǒng)架構(gòu)
圖1描述了訓(xùn)練階段和檢測階段所包含的步驟:BotScanner需要獲?。║D)Netflow作為輸入。在訓(xùn)練階段,BotScanner通過在沙箱或虛擬機(jī)中執(zhí)行僵尸程序樣本,捕獲這些樣本產(chǎn)生的流量,并提?。║D)Neflow特征(或利用路由器、交換機(jī)上的Netflow特征)。BotScanner構(gòu)造主機(jī)關(guān)系鏈和主機(jī)(UD)Netflow圖譜。通過主機(jī)關(guān)系鏈構(gòu)造可信主機(jī)關(guān)系鏈特征。此外,根據(jù)每個(gè)主機(jī)(UD)Netflow圖譜,提取7個(gè)統(tǒng)計(jì)特征,分別為主機(jī)(UD)Netflow圖譜中的2個(gè)流之間的平均間隔、平均流持續(xù)時(shí)長、平均流大小、對于流起始時(shí)間的傅里葉變換、IP地址熵、上下行流量比、流量負(fù)載熵。最后,BotScanner利用前文提到的8個(gè)特征建立模型。在模型建立過程中,BotScanner使用聚類算法處理觀測到的特征值集合。由于需要檢測多種僵尸網(wǎng)絡(luò),而且各類僵尸網(wǎng)絡(luò)特征相關(guān)性難以判別,因此每類特征將分別進(jìn)行建模。例如,一個(gè)僵尸網(wǎng)絡(luò)家族可能在C&C通信上表現(xiàn)出相似的周期性,但是每個(gè)連接卻傳輸了不同大小的流負(fù)載。多個(gè)特征聚類的聯(lián)合將形成BotScanner的最終僵尸網(wǎng)絡(luò)監(jiān)測模型。
圖1 BotScanner系統(tǒng)架構(gòu)
在檢測階段,BotScanner可以接受不同粒度的數(shù)據(jù),即可以選擇8類特征的若干種,這些特征既可以來自于標(biāo)準(zhǔn)的Netflow設(shè)備,例如交換機(jī)、路由器等,也可以來自用戶使用自定義的(UD)Netflow特征提取。不同的粒度對應(yīng)不同的應(yīng)用場景,也對應(yīng)不同的檢測精度和誤報(bào)率。使用(UD)Netflow特征的BotScanner多部署在流量相對不大的局域網(wǎng)內(nèi),這是由于(UD)Netflow特征提取時(shí)間代價(jià)較高,流量過大造成丟包嚴(yán)重,導(dǎo)致(UD)Netflow特征不準(zhǔn)確。BotScanner使用訓(xùn)練階段建立的模型進(jìn)行僵尸網(wǎng)絡(luò)監(jiān)測。而使用標(biāo)準(zhǔn)Netflow特征的BotScanner多部署于骨干網(wǎng),檢測精度比(UD)Netflow特征相對低,誤報(bào)率相對高。值得注意的是,BotScanner可選輸入數(shù)據(jù)粒度的特點(diǎn),使得BotScanner不依賴于網(wǎng)絡(luò)流量的負(fù)載信息,卻可以產(chǎn)生接近的檢測精度和誤報(bào)率。
在訓(xùn)練階段,僵尸家族樣本在沙箱或虛擬機(jī)這類可控環(huán)境下執(zhí)行,所有的網(wǎng)絡(luò)流量都將被捕獲和記錄。該階段需要正確地分類僵尸惡意樣本,即同一家族的不同樣本需要統(tǒng)一分析。在僵尸樣本分類過程中,BotScanner使用動(dòng)態(tài)檢測和靜態(tài)檢測相結(jié)合,選用業(yè)界知名的檢測和標(biāo)注系統(tǒng)Anubis和VirusTotal,分別用于動(dòng)態(tài)檢測和靜態(tài)檢測。當(dāng)然,不正確的分類肯定會(huì)存在,這可能會(huì)影響生成檢測模型的質(zhì)量。但后期的實(shí)驗(yàn)結(jié)果表明,BotScanner對于訓(xùn)練數(shù)據(jù)集中的噪音具有一定程度的容錯(cuò)性。
4.2 Netflow監(jiān)控
如果標(biāo)準(zhǔn)的Netflow數(shù)據(jù)可用,BotScanner可以直接使用。否則,BotScanner需要將捕獲到的網(wǎng)絡(luò)數(shù)據(jù)包,按照正確的順序重組成流。對于每個(gè)連接,連接起始時(shí)間、結(jié)束時(shí)間、傳輸?shù)淖止?jié)數(shù)、數(shù)據(jù)包數(shù)、上下行流量比、流量負(fù)載熵等特征將被提取。BotScanner的網(wǎng)絡(luò)流量重組模塊將會(huì)輸出與Netflow相似的特征,根據(jù)用戶的需求也可以輸出一些額外的特征。對于進(jìn)一步的處理流程,BotScanner將會(huì)處理這些(UD)Netflow數(shù)據(jù)。
4.3 檢測特征提取
4.3.1 主機(jī)訪問關(guān)系鏈
集中式僵尸網(wǎng)絡(luò),主要是具有IRC協(xié)議和HTTP協(xié)議的僵尸網(wǎng)絡(luò)為主,為防止單點(diǎn)故障通常采用多個(gè)C&C服務(wù)器,同時(shí)多個(gè)C&C服務(wù)器的IP地址對應(yīng)一個(gè)域名。受控主機(jī)通常使用Heartbeat技術(shù)與這些C&C服務(wù)器保持連接。分布式僵尸網(wǎng)絡(luò),主要以基于P2P協(xié)議的C&C為主,沒有單點(diǎn)的C&C服務(wù)器問題,通常采用發(fā)布和訂閱方式進(jìn)行消息通信。僵尸網(wǎng)絡(luò)控制者發(fā)送控制或者命令,受控主機(jī)以一定模式向其相鄰節(jié)點(diǎn)發(fā)送心跳信息。此外,受控主機(jī)也通常以一定模式連接相鄰節(jié)點(diǎn)以交換心跳消息。在分布式僵尸網(wǎng)絡(luò)中,每個(gè)受控主機(jī)都維護(hù)一個(gè)相鄰節(jié)點(diǎn)列表,并以一定模式與名單中的節(jié)點(diǎn)進(jìn)行通信,即不斷與同一組節(jié)點(diǎn)進(jìn)行通信。在上述僵尸網(wǎng)絡(luò)模型中,每個(gè)受控主機(jī)維護(hù)一個(gè)相鄰節(jié)點(diǎn)列表,通過一定模式訪問名單中的僵尸節(jié)點(diǎn)以獲取控制和命令信息。大部分僵尸網(wǎng)絡(luò)符合上述模型,主機(jī)關(guān)系鏈主要描述此類僵尸網(wǎng)絡(luò)。受控主機(jī)連接其鄰居名單中前后相鄰節(jié)點(diǎn)的流總是“相繼出現(xiàn)”,即一個(gè)流先出現(xiàn),另一個(gè)流緊跟前一個(gè)出現(xiàn),這些流具有前驅(qū)后繼的特征,BotScanner系統(tǒng)稱之為“主機(jī)關(guān)系鏈”,如圖2所示。
圖2 主機(jī)關(guān)系鏈
根據(jù)關(guān)系鏈中流的個(gè)數(shù)不同,分為二級(jí)和多級(jí)關(guān)系鏈。二級(jí)關(guān)系鏈指前后2個(gè)流的前驅(qū)后繼關(guān)系,多級(jí)關(guān)系鏈指前后多個(gè)流的前驅(qū)后繼關(guān)系。相比之下,合法用戶的網(wǎng)絡(luò)行為較為隨機(jī),幾乎不會(huì)呈現(xiàn)明顯的關(guān)系鏈。因此,BotScanner系統(tǒng)通過提取流間的關(guān)系鏈識(shí)別C&C流量,從而檢測出僵尸主機(jī)。
4.3.2 主機(jī)Netflow圖譜
主機(jī)(UD)Netflow圖譜和主機(jī)關(guān)系鏈?zhǔn)荁otScanner系統(tǒng)最為核心的2個(gè)概念,主機(jī)關(guān)系鏈在上文已經(jīng)描述。在BotScanner系統(tǒng)中,Netflow圖譜是2個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)間(主機(jī)&端口)時(shí)序的流序列。圖3顯示了不同形狀的Netflow圖譜。例如NG-4使用431端口,從主機(jī)H1到H4顯示了高度的規(guī)律行為。這種規(guī)律性使得BotScanner能夠提取Netflow圖譜的統(tǒng)計(jì)特征。在Netflow圖譜NG-4中,接近常量的流之間時(shí)間間隔和持續(xù)時(shí)間,使用這2個(gè)特征能夠精確描述整個(gè)NG-4圖譜。為了獲得更為有意義的統(tǒng)計(jì)數(shù)據(jù),BotScanner需要Netflow圖譜包含一定量的連接參數(shù),即min,在BotScanner原型中,30≤min≤70。 Netflow圖譜的最小長度是與僵尸網(wǎng)絡(luò)實(shí)際通信一致的,即C&C網(wǎng)絡(luò)通信通常包含多個(gè)主機(jī)與C&C服務(wù)器之間的連接。在自動(dòng)分析僵尸惡意樣本過程中,最主要的挑戰(zhàn)是如何區(qū)分惡意C&C通信與正常C&C通信,在訓(xùn)練過程中,正常C&C通信為噪音數(shù)據(jù)。
圖3 主機(jī)Netflow圖譜
4.3.3 檢測特征提取
主機(jī)Netflow關(guān)系鏈構(gòu)建之后,BotScanner提取主機(jī)關(guān)系鏈特征,即是否具有二級(jí)關(guān)系鏈和多級(jí)特征,該特征較為簡單,上文已經(jīng)描述完畢。對于主機(jī)Netflow圖譜,為了分類圖譜中的子序列,BotScanner處理每個(gè)圖譜抽取統(tǒng)計(jì)特征。BotScanner主要聚焦于以下7個(gè)統(tǒng)計(jì)特征,分別為主機(jī)(UD)Netflow圖譜中2個(gè)流之間的平均間隔、平均流持續(xù)時(shí)長、平均流大小、流起始時(shí)間的傅里葉變換、IP地址熵、上下行流量比、流量負(fù)載熵,具體描述如下:
(1)平均間隔:在主機(jī)Netflow圖譜中,2個(gè)流子序列之間起始的時(shí)間間隔。僵尸主控節(jié)點(diǎn)必須保證其所控節(jié)點(diǎn)能夠接收到新的控制與命令。通常,從C&C服務(wù)器到受控僵尸主機(jī)之間的通信采用Push模式是不可能的。其原因是,許多受控僵尸主機(jī)是在私有網(wǎng)絡(luò)中,并處于網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備NAT后面,或者是還沒有注冊到C&C服務(wù)器上。假設(shè)大部分受控僵尸主機(jī)與C&C服務(wù)器之間通信都使用一個(gè)常量的時(shí)間間隔(或者一個(gè)固定范圍的隨機(jī)值),這將致使通信中可檢測周期性。對于這類通信模式,僵尸主控節(jié)點(diǎn)必須平衡僵尸網(wǎng)絡(luò)的可擴(kuò)展性、靈活性和C&C服務(wù)器連接被檢測到的風(fēng)險(xiǎn)。正如前文所提,一些僵尸網(wǎng)絡(luò)變種為規(guī)避特征提取和惡意代碼檢測系統(tǒng),開始采用隨機(jī)和合法連接。其他方法,例如每天定時(shí)連接也遭遇到主機(jī)時(shí)鐘不同步的問題。而且,僵尸惡意代碼作者可以通過精心設(shè)計(jì)惡意代碼使其不顯示周期行為。但是,模仿隨機(jī)和合法通信是相當(dāng)困難的,而且也是可檢測的。基于對于不同的僵尸惡意代碼家族的觀察,當(dāng)前大部分僵尸惡意代碼都符合上述假設(shè),同時(shí)表現(xiàn)出松散的周期C&C通信特征。
(2)平均持續(xù)時(shí)長:在主機(jī)Netflow圖譜中,每個(gè)流子序列持續(xù)時(shí)間的均值。通常情況下,受控僵尸主機(jī)沒有收到新命令的情況下,大部分通信僅包含簡單的握手信息,即受控僵尸主機(jī)請求新命令,C&C服務(wù)器返回沒有新命令。因此,在主機(jī)Netflow圖譜中,該過程的持續(xù)時(shí)間是相近的。
(3)平均流大?。涸谥鳈C(jī)Netflow圖譜中,平均流大小包含2個(gè)子特征,分別為平均源字節(jié)數(shù)和平均目標(biāo)字節(jié)數(shù)。通過使用源和目標(biāo)字節(jié)數(shù)切分2個(gè)方向的通信,能夠?qū)⒄埱笮诺琅c命令傳輸區(qū)分開。也就是說,請求更新信息可能總是相同的大小,但來自C&C服務(wù)器包含真實(shí)數(shù)據(jù)是可變的。因此,主機(jī)Netflow圖譜可能包含許多具有相同源字節(jié)數(shù)的流子序列。相似的判斷也可應(yīng)用到目標(biāo)字節(jié)數(shù),例如,來自C&C服務(wù)器的響應(yīng)具有固定的格式。
(4)流起始時(shí)間的快速傅里葉變換[15]:為檢測潛在的C&C通信規(guī)律,使用快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)算法處理C&C通信的二進(jìn)制抽樣。在此過程中,對主機(jī)Netflow圖譜進(jìn)行抽樣,每個(gè)子序列起始位置設(shè)定為1,子序列中間位置則設(shè)定為0。通過這種方式,一個(gè)主機(jī)Netflow圖譜被映射為一個(gè)二進(jìn)制序列。為計(jì)算高質(zhì)量的FFT,使用Netflow圖譜中最小時(shí)間間隔的1/4作為抽樣間隔,避免欠采樣問題。盡管如此,若存在2個(gè)流子序列之間距離非常小,其他流子序列之間距離非常大,該抽樣方法將會(huì)產(chǎn)生大量的數(shù)據(jù)點(diǎn)。在此情況下,需要限制單個(gè)Netflow圖譜中包含的采樣點(diǎn)數(shù)為65 536,即216,同時(shí)接受輕微欠采樣情況。在使用該值的情況下,F(xiàn)FT是最快的,而且實(shí)驗(yàn)中僅有少量數(shù)據(jù)點(diǎn)被欠采樣成單一的點(diǎn)。更為精確的描述如下,即對于觀測到的C&C圖譜,12%顯示欠采樣,但是僅平均1%的起始時(shí)間被抽樣到了一個(gè)采樣點(diǎn)。下一步,為抽取最重要的頻率特征,需要計(jì)算主機(jī)Netflow圖譜FFT的功率譜密度(Power Spectral Density,PSD)。FFT的峰值對應(yīng)時(shí)間周期性,并且對于主機(jī)Netflow圖譜中大跨度的間隔具有耐受性。在實(shí)際測試環(huán)境中,僵尸網(wǎng)絡(luò)惡意代碼的C&C服務(wù)器通信是周期性的,然后會(huì)停滯一段時(shí)間。在一定的時(shí)間窗口內(nèi),當(dāng)惡意代碼作者設(shè)計(jì)可隨機(jī)變化的C&C通信頻率的僵尸代碼,這種隨機(jī)變化將會(huì)降低FFT的峰值。然而,F(xiàn)FT的峰值仍然保持可檢測和同樣的頻率,因此可以通過FFT的峰值檢測僵尸網(wǎng)絡(luò)通信。
(5)IP地址熵:同一網(wǎng)絡(luò)的一定范圍內(nèi),計(jì)算正常流量中(UD)Netflow五元組的IP地址熵,熵值都大致相同。如果出現(xiàn)異常,則異常流量將改變(UD)Netflow的IP地址熵,熵值也將與正常情況下的熵值出現(xiàn)很大差別。不同類型、不同比例的異常流量,熵值也有很大不同。例如,在僵尸網(wǎng)絡(luò)感染期間,受控的主機(jī)會(huì)在很短時(shí)間內(nèi)連接到其他許多主機(jī)。受控主機(jī)建立的開啟連接會(huì)占多數(shù),熵隨之減小。同樣,數(shù)據(jù)流中的目標(biāo)IP地址會(huì)比正常流量中的IP地址隨機(jī)得多。也就是說,目的IP地址的分布會(huì)更分散,導(dǎo)致信息熵較高。在僵尸網(wǎng)絡(luò)發(fā)動(dòng)DDoS攻擊階段,目的IP地址熵值較小,源IP地址熵值較大,網(wǎng)絡(luò)掃描探測階段目的IP地址熵值較大,源IP地址熵值較小。由于正常網(wǎng)絡(luò)流量具有較為穩(wěn)定的IP地址熵,異常流量將破壞這種穩(wěn)定,從而可以從IP地址熵的角度進(jìn)行僵尸主機(jī)檢測。
(6)上下行流量比:用戶正常訪問網(wǎng)絡(luò)時(shí)產(chǎn)生的上行流量比下行流量小。流量異常是指用戶訪問網(wǎng)絡(luò)時(shí)產(chǎn)生的上行流量比下行流量大得多。主要有2種原因造成:1)使用P2P軟件(電驢、迅雷、PPLive、UUSEE等)在外網(wǎng)下載、看視頻(如電影、電視)會(huì)產(chǎn)生大量的上行流量,為其他使用P2P軟件的用戶提供自己計(jì)算機(jī)上的數(shù)據(jù)。2)感染僵尸病毒,大量向外網(wǎng)發(fā)送惡意代碼自動(dòng)收集危害計(jì)算機(jī)安全的敏感數(shù)據(jù)。對于正常的P2P軟件,可以使用白名單列表方式進(jìn)行過濾,剩下的為僵尸軟件或惡意代碼造成的可疑流量。
(7)流量負(fù)載熵:近年來,新的僵尸程序?qū)⒓用芎突煜夹g(shù)用于其C&C通道,以避免IDS、防火墻或其他方式的網(wǎng)絡(luò)偵聽。由于流量負(fù)載部分完全是加密或混淆的,基于特征的檢測方法難以提取加密通道的特征,故檢測僵尸網(wǎng)絡(luò)難以實(shí)現(xiàn)。然而,由于加密算法導(dǎo)致負(fù)載中字符出現(xiàn)的隨機(jī)性大大提高,每個(gè)字符出現(xiàn)的概率變小。也就是說,信道流量加密后,其熵值比較高。因此,可以通過熵值判斷信道是否加密。然后,結(jié)合白名單列表方式過濾掉合法加密流量,剩下流量為僵尸軟件或惡意代碼造成的可疑流量。
4.4 檢測模型的建立
通過聚類主機(jī)關(guān)系鏈包含的1個(gè)特征和主機(jī)(UD)Netflow圖譜包含的7個(gè)特征構(gòu)成特征向量V,這些特征分別為關(guān)系鏈、平均間隔、平均流持續(xù)時(shí)長、平均流大小、流起始時(shí)間的傅里葉變換、IP地址熵、上下行流量比、流量負(fù)載熵。在實(shí)驗(yàn)中,通過對僵尸惡意代碼行為進(jìn)行觀測,這8個(gè)特征在總體上是無關(guān)的,對每個(gè)特征分別進(jìn)行聚類。例如,一個(gè)僵尸代碼的2個(gè)版本可能鏈接不同版本C&C服務(wù)器,傳輸不同大小的流,IP地址熵不同,流量負(fù)載熵不同等。然而,這2個(gè)版本的僵尸代碼通信的周期模式仍然相同。聚類過程之后,可以明顯觀測到相當(dāng)大的聚類簇含可疑的和真實(shí)的惡意代碼特定行為。此外,一些小的聚類簇包含多樣的特征行為,這樣的聚類簇往往具有較低的聚類質(zhì)量,甚至對應(yīng)的主機(jī)訪問關(guān)系鏈和Netflow圖譜也相當(dāng)獨(dú)特。訓(xùn)練結(jié)束后,最終的模型將包括8個(gè)聚類簇集合,每個(gè)集合對應(yīng)一個(gè)特征,集合內(nèi)包含了該特征的期望值。例如,平均間隔為850 s或2 100 s,目的IP地址到源IP地址傳輸51 KB,源IP地址到目的IP地址傳輸140 KB,上下行流量比為2.745∶1,每個(gè)流的持續(xù)時(shí)間為0.2 s或10 s,F(xiàn)FT為0.001 2 Hz或0.04 Hz,IP地址熵值為7.54(該僵尸程序正在發(fā)動(dòng)DDos攻擊),流量負(fù)載熵值為9.65(該僵尸程序使用的是加密信道),以上這些特征表明該僵尸程序?yàn)镽ustock變種。
為了聚類主機(jī)關(guān)系鏈和(UD)Netflow圖譜的特征,本文使用CLUES算法[22],該算法無需聚類參數(shù),并且不需要提前指定聚類簇個(gè)數(shù)。實(shí)驗(yàn)結(jié)果表明,完全自動(dòng)的、無監(jiān)督的CLUES算法能夠獲得K-means算法相類似的結(jié)果。在某些情況下,甚至CLUES算法能夠獲得更好的聚類簇結(jié)果,這表明CLUES算法能夠較好地適應(yīng)本文的應(yīng)用場景。
在計(jì)算完聚類中心和成員后,使用聚類質(zhì)量評估函數(shù)判斷各個(gè)聚類簇的質(zhì)量。聚類評估函數(shù)定義如下,。其中,sd為標(biāo)注方差;c為均值;β為控制因子,默認(rèn)值為2.53。一般情況下,大的聚類簇具有更高的內(nèi)部相似性,更為多樣的聚類子簇。所有qclu的均值是評估特征向量相似性的指標(biāo)。高的聚類質(zhì)量表明,大多數(shù)的僵尸惡意代碼生成高度相似的(UD)Netflow,抽取的特征向量也相近。如果(UD)Netflow是多樣的,則主機(jī)關(guān)系鏈和(UD)Netflow圖譜也是多樣的,就會(huì)產(chǎn)生更多低質(zhì)量的聚類簇。
4.5 受控僵尸主機(jī)檢測
為檢測是否一個(gè)給予的特征向量V匹配訓(xùn)練好的模型M,需要將V中的每個(gè)特征與模型中的聚類簇進(jìn)行比較。例如,如果特征向量V中的平均時(shí)間間隔特征處于M的一個(gè)聚類簇中,檢測算法將認(rèn)定為一次命中,并調(diào)高檢測得分值γM。檢測得分值γM的提升幅度主要依賴于聚類簇的質(zhì)量和特征向量的質(zhì)量(即主機(jī)關(guān)系鏈和主機(jī)(UD)Netflow圖譜的質(zhì)量)。這些質(zhì)量定義在一定程度上反映了主機(jī)關(guān)系鏈和主機(jī)(UD)Netflow圖譜建立,以及特征提取過程的不確定性。此外,還需要考慮平均時(shí)間間隔特征是何值時(shí)可以被認(rèn)為具有周期性。
對于不同的僵尸網(wǎng)絡(luò)家族,為了能夠命中多個(gè)模型,需要為每個(gè)模型維護(hù)一個(gè)γM。需要注意的是,在訓(xùn)練過程中引入的人造訓(xùn)練數(shù)據(jù)(與C&C通信無關(guān)的流量),將會(huì)造成低質(zhì)量的聚類簇,這僅僅會(huì)導(dǎo)致γM輕微上升。通過這種方式,BotScanner系統(tǒng)隱含著對訓(xùn)練中引入的噪音具有一定程度的免疫能力。最后,將最高的評分γ與BotScanner系統(tǒng)報(bào)警閾值α進(jìn)行比較,若γ>α,則該模型判斷為匹配,BotScanner發(fā)出告警。為了降低誤報(bào)率,BotScanner系統(tǒng)不僅僅是依賴單一的特征值進(jìn)行判別,用戶可以根據(jù)實(shí)際環(huán)境情況設(shè)定最小的命中特征數(shù)h。也就是說,除了每個(gè)特征都需要滿足γ>α,至少存在h個(gè)這樣的特征向量,1≤h≤8。這樣的約束存在可以降低BotScanner系統(tǒng)由于突發(fā)的單一特征匹配導(dǎo)致誤報(bào)。例如,對于給定特征向量中的平均時(shí)間間隔和FFT,滿足γ>α。若,設(shè)定h=3,BotScanner系統(tǒng)需要滿足額外的一個(gè)特征才會(huì)告警,例如主機(jī)關(guān)系鏈、流量負(fù)載熵、IP地址熵等。
5.1 模型訓(xùn)練
本文使用4個(gè)不同的僵尸惡意代碼家族訓(xùn)練BotScanner系統(tǒng),這4個(gè)家族當(dāng)前在互聯(lián)網(wǎng)上非?;钴S,并且非常有代表性。更確切地講,為了能夠保證BotScanner系統(tǒng)所使用的訓(xùn)練樣本是活躍的、相關(guān)的,觀測了Anubis在2013年5月份的檢測樣本,并從中選出適合BotScanner系統(tǒng)訓(xùn)練的樣本。Anubis每天收到并分析成千上萬的樣本,在動(dòng)態(tài)檢測領(lǐng)域具有權(quán)威性。為了捕捉僵尸網(wǎng)絡(luò)產(chǎn)生的通信流量,基于Xen構(gòu)建了可控的W indow s XP虛擬機(jī)環(huán)境。同時(shí),該虛擬機(jī)與互聯(lián)網(wǎng)相連,且包含真實(shí)的用戶數(shù)據(jù)。在可控的虛擬機(jī)環(huán)境下,每個(gè)僵尸惡意代碼家族平均測試了26.5個(gè)變種樣本,并捕獲了所有的網(wǎng)絡(luò)流量。在實(shí)驗(yàn)中,對垃圾郵件和DDoS攻擊進(jìn)行了限制。用來訓(xùn)練的4個(gè)僵尸惡意代碼家族描述如下:
(1)Conficker,該僵尸軟件在業(yè)內(nèi)也被稱為Downup,Downadup或Kido,其最早于2008年11月20日被發(fā)現(xiàn)的以微軟的W indows操作系統(tǒng)為攻擊目標(biāo)的計(jì)算機(jī)僵尸病毒。迄今已出現(xiàn)了A,B,C,E 4個(gè)版本,目前全球已有超過1 500萬臺(tái)電腦受到感染。Conficker僵尸程序傳播主要通過運(yùn)行W indow s系統(tǒng)的服務(wù)器服務(wù)的緩沖區(qū)漏洞。它使用特定的RPC請求在目標(biāo)電腦上執(zhí)行代碼。
(2)Banbra,一種特洛伊木馬和間諜程序,用來進(jìn)一步下載和安裝惡意代碼組件。
(3)Rustock,是全球最大的僵尸網(wǎng)絡(luò)之一,由僵尸程序Rustock感染的受控主機(jī)組成,其主要的非法行為是利用受到惡意軟件感染的主機(jī)發(fā)送垃圾郵件。據(jù)研究人員表示,一臺(tái)受控的Rustock病毒感染的主機(jī),可以在一天之內(nèi)發(fā)送24×104封的垃圾郵件,嚴(yán)重影響了個(gè)人電子郵箱,并且耗費(fèi)了大量的網(wǎng)絡(luò)帶寬。此外,受控的主機(jī)可能被竊取敏感信息,并被用來進(jìn)行DDos攻擊。
(4)Black Energy,該僵尸軟件是由俄羅斯的黑客開發(fā),而且起初被用來進(jìn)行DDoS的攻擊、垃圾郵件分布和銀行詐欺。但最新的用途是通過一系列的舉動(dòng)針對性地攻擊政府機(jī)構(gòu)和私人企業(yè)。Black Energy僵尸軟件最初使用一種基本的加密技術(shù)來使其可執(zhí)行文件不被殺毒軟件察覺,并使用Base64編碼來擾亂其通信。最新版本的B lack Energy使用了更強(qiáng)大的RC4流加密的一個(gè)變種來編碼其通信內(nèi)容。
表1展示了訓(xùn)練過程中惡意代碼樣本的詳細(xì)分布和與之相關(guān)的主機(jī)關(guān)系鏈和主機(jī)Netflow圖譜。在表中,聚類質(zhì)量反映了質(zhì)量評分函數(shù)的結(jié)果。聚類質(zhì)量分值越高,表明聚類簇中特征向量越接近,方差越低。同時(shí),驗(yàn)證了本文的核心假設(shè):同一僵尸惡意代碼家族的不同變種將會(huì)產(chǎn)生類似的C&C通信流量,這類流量可以使用聚類算法進(jìn)行有效的描述。例如,在Conficker模型中,對于每個(gè)特征,最高的聚類簇質(zhì)量大于0.9。盡管具有較低聚類質(zhì)量的小聚類簇降低了總體的聚類質(zhì)量,但大的、高質(zhì)量的聚類簇仍然能夠?qū)onficker的通信行為給予較好的表述。對于Black Energy,由于其樣本通信行為的高可變性,生成的聚類簇也是多樣的,導(dǎo)致建立的模型需要綜合考慮多個(gè)特征。對于聚類方法,本文使用文獻(xiàn)[22]提出的CLUES,對于每個(gè)僵尸網(wǎng)絡(luò)家族,每個(gè)特征獲得平均聚類簇個(gè)數(shù)為3.14個(gè)。
表1 用于訓(xùn)練的惡意代碼家族描述
5.2 系統(tǒng)實(shí)現(xiàn)和性能測試
為了兼容后續(xù)的開發(fā),實(shí)現(xiàn)BotScanner系統(tǒng)使用Java語言。對于全包捕獲和包重組,BotScanner系統(tǒng)使用開源的IDS,OSSEC。由于OSSEC對于萬兆環(huán)境的性能問題,實(shí)驗(yàn)中產(chǎn)生了嚴(yán)重的丟包問題,不能夠滿足實(shí)時(shí)性的需求。因此,BotScanner系統(tǒng)在實(shí)際應(yīng)用中分為2種應(yīng)用環(huán)境,分別為基于包分析的(UD)Netflow和標(biāo)準(zhǔn)Netflow,(UD)Netflow通常用于千兆的環(huán)境。標(biāo)準(zhǔn)Netflow既可用于千兆環(huán)境,也可以用于萬兆環(huán)境。在實(shí)際環(huán)境中,一個(gè)8個(gè)節(jié)點(diǎn)(4路8核3.2 GHz CPU,128 GB內(nèi)存)的集群被用來部署大數(shù)據(jù)環(huán)境,Clean數(shù)據(jù)集和ISP-NetFlow數(shù)據(jù)集存儲(chǔ)在HDFS中。
5.3 交叉驗(yàn)證
為了評估BotScanner系統(tǒng)的檢測能力,在標(biāo)注的基準(zhǔn)訓(xùn)練數(shù)據(jù)集和Clean數(shù)據(jù)集上執(zhí)行交叉驗(yàn)證。2個(gè)數(shù)據(jù)集都來自同一個(gè)網(wǎng)絡(luò)環(huán)境,確保了相似的網(wǎng)絡(luò)環(huán)境。對于每個(gè)不同可接受的α值,執(zhí)行了50次獨(dú)立的交叉驗(yàn)證,描述如下:
(1)切分基準(zhǔn)惡意代碼數(shù)據(jù)集為訓(xùn)練集合Tr和測試集合Te,分別為80%和20%。
(2)假設(shè)Clean數(shù)據(jù)集是完全干凈的,并沒有受到惡意代碼感染?;旌蠝y試集合Te與Clean數(shù)據(jù)集,生成一個(gè)合適的數(shù)據(jù)集,用來檢測BotScanner系統(tǒng)的誤報(bào)率。
(3)使用訓(xùn)練數(shù)據(jù)集Tr訓(xùn)練BotScanner系統(tǒng),建立檢測模型。
(4)使用Te與Clean數(shù)據(jù)集混合數(shù)據(jù)集檢測訓(xùn)練好的BotScanner系統(tǒng)。
在實(shí)驗(yàn)中,基于已有的僵尸惡意代碼樣本分析檢測結(jié)果,如果一個(gè)檢測特征被正確標(biāo)識(shí)為僵尸惡意代碼,則記為準(zhǔn)確,否則記為誤判。圖4顯示α∈[0,2]的檢測率,h=3。在圖4中,低的接收率將會(huì)產(chǎn)生高于82%的檢測率,但是同時(shí)產(chǎn)生了高的誤報(bào)率。例如,當(dāng)α≤0.6時(shí),誤報(bào)率大于1%。
圖4 BotScanner系統(tǒng)的檢測率和誤報(bào)率
正如圖4(a)所示,當(dāng)檢測率接近線性下降時(shí),誤報(bào)率成指數(shù)級(jí)下降。當(dāng)α∈[1.6,1.8]時(shí),與圖4(b)左下角相比,BotScanner系統(tǒng)取得了較好的檢測率和合理的誤報(bào)率。因此,α∈[1.6,1.8]為合適的閾值。對于可接收的閾值α=1.6,系統(tǒng)獲得了76.56%的檢測率,7×10-4的誤報(bào)率。對于此參數(shù),表2顯示了各個(gè)僵尸家族在5交叉驗(yàn)證情況下的檢測率。所有的Conficker樣本檢測正確率高達(dá)87%,平均檢測正確率高達(dá)80%。誤判情況僅僅是Conficker和Black Energy存在。
表2 不同僵尸網(wǎng)絡(luò)家族的檢測結(jié)果(α=0.6)%
正如上文所見,BotScanner系統(tǒng)對于不同的僵尸家族檢測率是比較高的。例如,Conficker家族樣本全部顯示了高度的周期行為,且非常相似,訓(xùn)練過程中取得了非常高的聚類質(zhì)量。因此,獲得了87%的檢測率。Rustock存在相對低的聚類質(zhì)量(較高的標(biāo)準(zhǔn)方差),但是仍然產(chǎn)生了接近相似的行為,獲得了82%的檢測率。在惡意代碼家族中,Black Energy獲得了最低的檢測精度,該家族的聚類簇表現(xiàn)了高度的多樣性,聚類簇范圍大,聚類質(zhì)量較低,因此,檢測精度較低是合理的。而且,聚類簇范圍大導(dǎo)致了相對高的誤報(bào)率,出現(xiàn)了5次誤報(bào)。
5.4 模型評估
為了評估BotScanner系統(tǒng),本文在2個(gè)真實(shí)數(shù)據(jù)集上做了大量實(shí)驗(yàn)。第1個(gè)數(shù)據(jù)集是Clean,一個(gè)接近20臺(tái)機(jī)器的安全實(shí)驗(yàn)室2.5個(gè)月的全包流量數(shù)據(jù)。根據(jù)實(shí)驗(yàn)室的管理策略,該環(huán)境理論上不存在惡意代碼相關(guān)的通信流量,可以認(rèn)為Clean數(shù)據(jù)集僅包含良性流量。由于實(shí)驗(yàn)室采用的是全包捕獲策略,因此可以人工驗(yàn)證已報(bào)道的感染和入侵情況。第2個(gè)數(shù)據(jù)集是ISP-NetFlow,來自網(wǎng)絡(luò)服務(wù)提供商,包含7天的Netflow數(shù)據(jù),數(shù)據(jù)規(guī)模為10 TB,接近17.3 MB/s。對于ISP-NetFlow數(shù)據(jù)集,由于不能夠捕獲全流量,檢測結(jié)果不能夠進(jìn)行準(zhǔn)確率比較。本文通過將檢測到的IP地址與已知的惡意代碼IP黑名單列表進(jìn)行比較,確認(rèn)受控主機(jī)的聚類簇,從而驗(yàn)證本文提出的BotScanner系統(tǒng)應(yīng)用到大型網(wǎng)絡(luò)的可行性。
在建立BotScanner系統(tǒng)原型之后,準(zhǔn)備了以下實(shí)驗(yàn):
(1)基于基準(zhǔn)訓(xùn)練數(shù)據(jù)集和Clean數(shù)據(jù)集的交叉驗(yàn)證實(shí)驗(yàn)。簡言之,訓(xùn)練數(shù)據(jù)集首先被切分成訓(xùn)練數(shù)據(jù)集和檢測數(shù)據(jù)集。然后,檢測數(shù)據(jù)集與不包含惡意流量的Clean數(shù)據(jù)集混合。BotScanner系統(tǒng)在訓(xùn)練數(shù)據(jù)集上已經(jīng)學(xué)習(xí)到僵尸惡意代碼的行為之后,測試程序?qū)?zhǔn)確率和誤報(bào)率進(jìn)行分析。由于數(shù)據(jù)集僅包括僵尸惡意代碼的通信流量和Clean數(shù)據(jù)集流量,準(zhǔn)確率和誤報(bào)率分析過程比較簡單。
(2)與相關(guān)工作進(jìn)行比較:在本實(shí)例中,相關(guān)工作最知名的是基于包檢測的BotHunter系統(tǒng)。本文在BotHunter系統(tǒng)上檢測了實(shí)驗(yàn)(1)的數(shù)據(jù)。
(3)ISP-NetFlow數(shù)據(jù)集:使用上文提到的4類僵尸惡意代碼的實(shí)際流量訓(xùn)練BotScanner系統(tǒng),并使用ISP-NetFlow數(shù)據(jù)集進(jìn)行測試。BotScanner系統(tǒng)的告警結(jié)果將與僵尸網(wǎng)絡(luò)受控主機(jī)IP黑名單列表進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖5所示。BotScanner總體上優(yōu)于BotHunter,而且黑名單中的Conficker,Banbra和Rustock在一定程度上驗(yàn)證了本文方法的有效性。由于黑名單列表中不存在Black Energy家族,在圖5中并沒有顯示Black Energy家族的檢測結(jié)果。
圖5 檢測到的惡意代碼家族數(shù)
本文展示了一種新穎的基于Netflow異常的僵尸主機(jī)檢測方法和系統(tǒng)BotScanner,檢測特征是基于網(wǎng)絡(luò)流量的統(tǒng)計(jì)特征。通過對已知的僵尸家族自動(dòng)的、非監(jiān)督的訓(xùn)練之后,BotScanner系統(tǒng)基于對C&C流量的聚類簇統(tǒng)計(jì)結(jié)果建立檢測模型。實(shí)驗(yàn)結(jié)果表明,基于C&C通信具有周期特性的前提下,通過流量模式分析,BotScanner系統(tǒng)能夠獲得接近80%的檢測準(zhǔn)確率。而且,BotScanner系統(tǒng)無需IP黑名單和深度包解析的前提下,能夠以較高的準(zhǔn)確率檢測僵尸網(wǎng)絡(luò)。同時(shí),BotScanner系統(tǒng)對于通信加密或混淆的僵尸惡意代碼是有效的。
BotScanner系統(tǒng)可以被看成一個(gè)僵尸網(wǎng)絡(luò)檢測的框架原型,可以在多個(gè)層面進(jìn)行改進(jìn),進(jìn)一步的優(yōu)化如下:(1)沙箱和虛擬機(jī)環(huán)境需要進(jìn)一步的改進(jìn),更好地對抗僵尸惡意代碼作者探測運(yùn)行環(huán)境,停止釋放惡意行為。(2)在訓(xùn)練階段使用非監(jiān)督的學(xué)習(xí)方法。據(jù)此,選擇一種機(jī)器學(xué)習(xí)方法能夠獲得理想的特征,該特征能夠?qū)阂獯a家族進(jìn)行精確的描述,并在檢測步驟賦予合理的權(quán)重,也可以嘗試使用深度學(xué)習(xí)方法進(jìn)行僵尸主機(jī)檢測。(3)僅使用Netflow數(shù)據(jù)進(jìn)行檢測是本文的一大特點(diǎn),但畢竟Netflow數(shù)據(jù)所含信息量有限,為進(jìn)一步提高檢測精度、降低誤報(bào)率,可以嘗試使用靈活高效的多源數(shù)據(jù)采集與融合機(jī)制,例如引入包解析或關(guān)聯(lián)其他設(shè)備的檢測結(jié)果。(4)在極端網(wǎng)絡(luò)流量的情況下,例如Netflow流速超過5M eps時(shí),BotScanner不能滿足實(shí)時(shí)檢測要求,此時(shí)需要犧牲檢測精度,對Netflow進(jìn)行抽樣。因此,引入分布式流處理框架,例如Storm,Spark等,進(jìn)行實(shí)時(shí)、高精度檢測是一個(gè)值得研究的方向。
[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] 諸葛建偉,韓心慧,周勇林,等.僵尸網(wǎng)絡(luò)研究[J].軟件學(xué)報(bào),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,F(xiàn)rance:[s.n.],2009:232-249.
[7] Perdisci R,Lee W,F(xiàn)eamster 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,F(xiàn)rance:[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,F(xiàn)u 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
白 濤,劉成龍,曲 武,等.基于網(wǎng)絡(luò)流量異常的僵尸網(wǎng)絡(luò)受控主機(jī)檢測研究[J].計(jì)算機(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
國家自然科學(xué)基金資助項(xiàng)目(60875029)。
白 濤(1983-),男,碩士,主研方向:信息網(wǎng)絡(luò)安全;劉成龍,學(xué)士;曲 武,博士、CCF會(huì)員;王 震,碩士。
2015-01-12 修回日期:2015-02-28 E-m ail:quwu-ustb@163.com