李曉利 ,湯光明 ,初 曉
1.信息工程大學(xué),鄭州 450004
2.中國人民解放軍63895部隊
作為攻擊者手中最有效的通用網(wǎng)絡(luò)攻擊平臺,僵尸網(wǎng)絡(luò)[1-2]已成為互聯(lián)網(wǎng)安全的最大威脅之一。它是攻擊者出于惡意目的,傳播僵尸程序控制大量主機(jī),并通過一對多的命令與控制信道所組成的網(wǎng)絡(luò)[3]。僵尸程序[4-5](Bot)作為運(yùn)行在僵尸主機(jī)上的惡意程序,通過命令與控制信道接收控制者的各種指令,是惡意行為的最終執(zhí)行者。因此,及早并有效地檢測出主機(jī)中感染的Bot,是僵尸網(wǎng)絡(luò)對抗中的關(guān)鍵環(huán)節(jié)。
傳統(tǒng)的基于特征碼的檢測方法能夠快速檢測出流行的Bot,但卻無法發(fā)現(xiàn)智能變種或新型Bot,基于行為分析的檢測方法彌補(bǔ)了此缺陷[6]。Stinson等人[7]認(rèn)為從網(wǎng)絡(luò)中接收的數(shù)據(jù)是“被污染的數(shù)據(jù)”,若一個程序把這些數(shù)據(jù)作為系統(tǒng)調(diào)用的參數(shù),則其具有被外部/遠(yuǎn)程控制的行為,據(jù)此提出通過監(jiān)控Win32庫函數(shù)的執(zhí)行來檢測Bot行為,并設(shè)計實(shí)現(xiàn)了BotSwat檢測系統(tǒng),由于該方法在庫調(diào)用級監(jiān)控被污染數(shù)據(jù)的傳播,因此若Bot對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行帶外加密就可逃避該系統(tǒng)的檢測。Liu等人[8]指出一個典型的Bot在發(fā)作時表現(xiàn)出3種不變的特征:自啟動;建立命令與控制信道;執(zhí)行本地或遠(yuǎn)程的攻擊;基于此設(shè)計實(shí)現(xiàn)了利用虛擬機(jī)技術(shù)檢測這3種特征的系統(tǒng)-BotTracer,實(shí)驗結(jié)果表明系統(tǒng)能夠成功檢測出所給的幾種Bot,但前提是虛擬機(jī)不能被Bot檢測到。Wurzinger等人[9]研究發(fā)現(xiàn),Bot在收到攻擊者的命令后會以一種特定的方式作出響應(yīng),提出使用基于特征碼和基于異常的方法分別從Bot的命令接收和響應(yīng)行為兩個方面來構(gòu)建檢測模型。該系統(tǒng)具有較低的誤報率,但存在信道加密及行為模式改變影響檢測效果的問題。Al-hammadi等人[10]提出了一個通過關(guān)聯(lián)分析主機(jī)中進(jìn)程的多種行為來實(shí)現(xiàn)檢測Bot的算法,算法的輸入為目標(biāo)不可達(dá)數(shù)、失敗連接數(shù)等特定行為特征以及特定API函數(shù)調(diào)用。實(shí)驗結(jié)果表明,該方法能夠檢測到Bot主機(jī),也可根據(jù)進(jìn)程對特定API函數(shù)的調(diào)用頻率檢測出Bot程序,但文中并沒有給出合適的判斷閾值,而且只能檢測P2P Bot。
為了及早發(fā)現(xiàn)主機(jī)中感染的Bot,并實(shí)現(xiàn)檢測過程的輕量化且不受加密技術(shù)的影響,本文在對Bot的內(nèi)在特征進(jìn)行分析的基礎(chǔ)上,提出一種綜合Bot自動運(yùn)行特點(diǎn)和DNS查詢行為(正向DNS查詢和反向DNS查詢)特征的檢測方法。
通過對近年來流行僵尸網(wǎng)絡(luò)的研究,本文關(guān)注Bot的兩種本質(zhì)特征:(1)Bot為自動運(yùn)行的程序,不需要人類行為的驅(qū)使。(2)無論是采用何種協(xié)議結(jié)構(gòu),Bot通過域名系統(tǒng)查詢相應(yīng)的C&C僵尸網(wǎng)絡(luò)服務(wù)器地址并連接通信,是Botnet的核心[11],即Bot高度依賴于DNS以獲得靈活的命令和控制,這是最基本的行為。因此,本文基于Bot的自運(yùn)行行為與DNS查詢行為提出一個兩階段檢測框架,如圖1所示。

圖1 Bot檢測框架
(1)自動連接檢測。分析進(jìn)程活動與用戶操作之間的關(guān)聯(lián),并記錄與DNS查詢相關(guān)的進(jìn)程,在此基礎(chǔ)上進(jìn)行人-機(jī)-網(wǎng)(用戶-進(jìn)程-網(wǎng)絡(luò))交互關(guān)系分析,過濾掉大部分良性進(jìn)程,將焦點(diǎn)放在一些與DNS服務(wù)器自動聯(lián)系的可疑進(jìn)程上。
(2)DNS反應(yīng)行為分析檢測階段。基于Bot和其他進(jìn)程對DNS查詢應(yīng)答的反應(yīng)行為的差異構(gòu)建Bot-DNS反應(yīng)檢測模型,監(jiān)控第一階段鎖定的可疑進(jìn)程的DNS反應(yīng)行為,使用Bot-DNS反應(yīng)檢測模型計算被檢進(jìn)程的可疑度,進(jìn)而判斷出是否為僵尸程序。
由于主機(jī)中大部分進(jìn)程是良性的,故直接對所有進(jìn)程進(jìn)行詳細(xì)地實(shí)時監(jiān)控與分析會增加檢測的耗費(fèi)。自動連接檢測的作用是對主機(jī)中活動的進(jìn)程進(jìn)行粗粒度分析,初步過濾掉大部分良性進(jìn)程。
無論任何類型的僵尸網(wǎng)絡(luò)都依賴于DNS查詢來獲得控制服務(wù)器的IP地址,因此涉及DNS查詢的網(wǎng)絡(luò)連接是僵尸程序與外部網(wǎng)絡(luò)連接的重要組成部分,故可以分析此類網(wǎng)絡(luò)連接是否由用戶發(fā)起來判斷相關(guān)進(jìn)程的“名譽(yù)”。如果DNS查詢的網(wǎng)絡(luò)連接由真實(shí)的用戶發(fā)起,則系統(tǒng)必然接收到用戶通過輸入設(shè)備傳遞給前臺進(jìn)程的指令信息,由于鍵盤和鼠標(biāo)是用戶與計算機(jī)交互的主要物理輸入設(shè)備,因而本文將兩者引發(fā)的事件與DNS查詢連接結(jié)合來判斷進(jìn)程是否具有自動連接行為。
通過對多種Bot行為的觀察,得到僵尸主機(jī)中DNS查詢及與其相關(guān)的鍵盤/鼠標(biāo)事件的發(fā)生情況如圖2所示。時間區(qū)域A、C中的DNS查詢由用戶發(fā)起,區(qū)域B中是Bot產(chǎn)生的DNS查詢。因此,若與某進(jìn)程相關(guān)的DNS查詢發(fā)生的時刻處于鍵盤/鼠標(biāo)事件發(fā)生時刻附近的某一時間域內(nèi),則可認(rèn)為該DNS查詢由用戶交互產(chǎn)生,也即進(jìn)程不具有自動連接行為。

圖2 鍵鼠事件與DNS查詢發(fā)生情況示意圖
檢測的具體實(shí)現(xiàn)如下:一方面,掛鉤與鍵盤/鼠標(biāo)事件相關(guān)的系統(tǒng)消息,監(jiān)視系統(tǒng)中的鍵盤/鼠標(biāo)事件;另一方面,掛鉤與DNS查詢連接相關(guān)的系統(tǒng)調(diào)用,記錄所有產(chǎn)生DNS查詢的進(jìn)程,查詢發(fā)生的時間、進(jìn)程運(yùn)行狀態(tài)。在此基礎(chǔ)上,得到進(jìn)行自動連接的3個指標(biāo):
(1)時間差T=TKM-TDNS,其中TDNS為進(jìn)程發(fā)起一個DNS查詢的時刻,TKM為TDNS時刻之前最近一次鍵盤/鼠標(biāo)事件的時間。
(2)鍵盤/鼠標(biāo)事件的來源S,當(dāng)事件來自于真實(shí)的物理設(shè)備時S=true,反之S=false。
(3)該進(jìn)程是否在前臺運(yùn)行F,F(xiàn)=yes表示進(jìn)程在前臺運(yùn)行,F(xiàn)=no表示在后臺運(yùn)行。
如果T≤Tt(Tt為判斷閾值),且S=true,F(xiàn)=yes,則該進(jìn)程與用戶產(chǎn)生了交互;否則,為具有自動連接行為的可疑進(jìn)程。
定義1進(jìn)程的DNS反應(yīng)行為:指的是進(jìn)程進(jìn)行DNS查詢活動以及對查詢結(jié)果的反應(yīng)事件構(gòu)成的事件序列,其中反應(yīng)事件指的是使用DNS查詢中涉及的IP地址嘗試建立連接的行為及結(jié)果。
Bot在整個生命周期中,會多次嘗試加入僵尸網(wǎng)絡(luò),該過程主要分為3個步驟:(1)獲取其他Bot節(jié)點(diǎn)或中心服務(wù)器的IP地址:一些IP地址或域名信息被硬編碼在Bot中,或由Bot通過指定方式動態(tài)生成,Bot通過使用這些內(nèi)部產(chǎn)生的信息來獲取網(wǎng)絡(luò)中活躍的Bot主機(jī)節(jié)點(diǎn)或中心服務(wù)器的IP地址;(2)嘗試與已獲取的IP地址進(jìn)行連接;(3)加入僵尸網(wǎng)絡(luò)并獲取指令。在該過程中,DNS反應(yīng)行為發(fā)生在前兩步,且DNS查詢起到了關(guān)鍵作用。
DNS查詢的作用主要表現(xiàn)為3點(diǎn):
(1)對內(nèi)部獲取的域名的正向DNS查詢能夠得到一個由許多可能活躍的IP地址構(gòu)成的集合。
(2)一次成功的反向DNS查詢能使Bot確信所查詢的IP地址是活躍的,且可得到一些新的域名用于以后的DNS查詢,從而得到更多活躍的IP地址。
(3)如果Bot對某個內(nèi)部得到域名的正向DNS查詢成功,它可能會對返回的IP地址進(jìn)行反向DNS查詢,若反向DNS查詢成功,則可更加確定IP地址的活躍性。
根據(jù)對進(jìn)程DNS反應(yīng)行為的定義,如果用A、B、C(三者取值均為0或1)分別代表DNS查詢的類型、結(jié)果和連接建立的情況,用ABC序列組合表示DNS反應(yīng)行為事件序列,則有8種不同的組合。由于正向DNS查詢失敗時無法獲取到IP地址,也就不涉及連接的問題,因此不存在序列010和011,其余6種序列的具體描述如表1所示。

表1 DNS反應(yīng)行為序列與描述
對這6種情況進(jìn)行初步分析發(fā)現(xiàn),S1和S3屬于正常情況的行為序列,其他4種情況為可疑的行為。在虛擬的實(shí)驗環(huán)境中分別運(yùn)行多個Bot樣本和良性程序各1小時,統(tǒng)計這4種情況下的DNS反應(yīng)行為如表2所示。

表2 Bot樣本和良性程序的DNS反應(yīng)行為統(tǒng)計
由表2的結(jié)果可以得到如下結(jié)論:
(1)良性程序只表現(xiàn)出了S2序列的DNS反應(yīng)行為,同時Bot程序也表現(xiàn)出這種反應(yīng)行為。分析表現(xiàn)出此種行為的良性程序,發(fā)現(xiàn)造成連接失敗的原因是由于其所訪問的對象已關(guān)閉或臨時不在線,因此本文認(rèn)為該序列模式雖然屬于異常行為,但不能作為檢測Bot的指標(biāo)。
(2)S4、S5、S6序列的DNS反應(yīng)行為在Bot樣本中有不同程度的體現(xiàn),特別是S6,每一種Bot樣本都至少包含一次這樣的DNS反應(yīng)行為,尤以Waledac為最多。經(jīng)過分析可知,Waledac是一種P2P Bot,在其內(nèi)部硬編碼了大約30個節(jié)點(diǎn)的IP地址,而且該Bot還使用了fast-flux技術(shù)[12]以逃避被追蹤,因此它在各種行為序列下?lián)碛械膶?shí)例個數(shù)都比較多。
基于上述觀察,本文以進(jìn)程是否表現(xiàn)出S4、S5、S6序列的DNS反應(yīng)行為來識別Bot程序:分別對每一種行為序列賦予權(quán)重,根據(jù)被檢測進(jìn)程的各項指標(biāo)情況計算加權(quán)分值,由分值的大小判斷進(jìn)程是否為Bot。
定義2設(shè)某段時間內(nèi)進(jìn)程P在3種序列下的DNS反應(yīng)行為的實(shí)例數(shù)分別為r1、r2、r3(當(dāng)ri>0(i=1,2,3)時,S(ri)=1;否則S(ri)=0),三種行為序列的權(quán)值分別為a、b、c(0≤a、b、c≤1,a+b+c=1),g為該進(jìn)程的疑似函數(shù),則進(jìn)程P的可疑度為g(P)=aS(r1)+bS(r2)+cS(r3)。
根據(jù)定義2,假設(shè)Tg為可疑度的閾值,于是有:若g(P)>Tg,則進(jìn)程P為Bot;否則,P為良性程序。
(1)Bot程序數(shù)據(jù)收集。使用VMWare構(gòu)建虛擬環(huán)境來運(yùn)行Bot實(shí)例,收集相關(guān)信息測試本文方法的檢測率。該環(huán)境由3個虛擬機(jī)組成,分別代表被感染主機(jī)、控制端和一個監(jiān)控機(jī),均安裝Windows XP SP3操作系統(tǒng)及一些基本的應(yīng)用程序,如Firefox瀏覽器等。用于測試的Bot共有8種,它們的名稱、命令和控制協(xié)議如表3所示(“其他”代表Bot使用了自己的協(xié)議)。

表3 Bot實(shí)例信息
(2)良性程序數(shù)據(jù)收集。分別在6臺真實(shí)主機(jī)上(確保主機(jī)中無Bot)收集各檢測階段所需的進(jìn)程活動和DNS行為信息,時間為3天。它們由不同工作、不同層次的用戶使用,數(shù)據(jù)主要來自于工作日的工作時段。最終收集到526個進(jìn)程的信息,形成數(shù)據(jù)集D。使用該數(shù)據(jù)集來測試本文方法的假陽性率。
(1)自動連接檢測
為了測試第一階段的檢測效果,將Bot實(shí)例安裝在虛擬機(jī)中,不進(jìn)行任何干預(yù)。一段時間后,檢測到所有的Bot均向遠(yuǎn)程服務(wù)器發(fā)送連接請求,這些查詢請求都被捕獲到,經(jīng)過分析判斷(根據(jù)前期實(shí)驗與分析,本文中Tt的取值為20 ms),發(fā)現(xiàn)所有Bot都具有自動連接行為。結(jié)果表明,該階段的檢測能夠發(fā)現(xiàn)所有Bot的自動DNS查詢行為,既可以在第一時間鎖定可疑進(jìn)程,縮小系統(tǒng)檢測范圍,又沒有漏報的發(fā)生,提高了系統(tǒng)的檢測效率和效果。
(2)DNS反應(yīng)行為分析檢測
為測試第二階段的檢測效果,在虛擬機(jī)上分別運(yùn)行各Bot樣本,時間為1 h,采集網(wǎng)絡(luò)流量中各Bot實(shí)例的DNS反應(yīng)行為信息進(jìn)行處理,得到各Bot實(shí)例的可疑度如表4所示(可疑度的計算中,參數(shù)a、b、c分別取0.2、0.3、0.5)。

表4 Bot實(shí)例可疑度計算結(jié)果
實(shí)驗結(jié)果表明,所有的Bot均進(jìn)行了S6序列的DNS反應(yīng)行為,而且大部分Bot除了具有此種反應(yīng)行為之外,還不同程度地表現(xiàn)出S4、S5序列的DNS反應(yīng)行為。本文中可疑閾值Tg取0.45,所有的Bot實(shí)例均被檢測出。
(3)假陽性率測試分析
為評估檢測方法的假陽性率,對采集到的集合D中的526個進(jìn)程信息進(jìn)行測試。經(jīng)過第一階段的過濾,鎖定了24個具有自動連接行為的進(jìn)程,然而第二階段的檢測顯示這些進(jìn)程不是Bot,出現(xiàn)這種情況的原因是一些良性程序開啟了自動更新等功能,它們會在用戶不干預(yù)的情況下主動地與外界網(wǎng)絡(luò)聯(lián)系。實(shí)驗結(jié)果說明,該方法具有較低的假陽性率,且達(dá)到了檢測過程輕量化的效果。
本文提出了一種基于自運(yùn)行特性和DNS查詢特征的Bot檢測方法,能夠輕量、有效地檢測出主機(jī)中的活躍Bot,具有較低的假陽性率,且可以突破僵尸網(wǎng)絡(luò)所采用不同協(xié)議結(jié)構(gòu)的限制。為盡早阻止Bot對主機(jī)的破壞及傳播,本文重點(diǎn)關(guān)注了其生命周期中加入僵尸網(wǎng)絡(luò)的階段,而沒有考慮Bot在主機(jī)中的各種惡意行為和網(wǎng)絡(luò)流量特征。因此,下一步研究的方向是對Bot的全生命周期進(jìn)行監(jiān)測,提出適用范圍更廣且檢測準(zhǔn)確度更高的檢測方案。
[1]王天佐,王懷發(fā),劉波,等.僵尸網(wǎng)絡(luò)中的關(guān)鍵問題[J].計算機(jī)學(xué)報,2012,35(6):1192-1208.
[2]方濱興,崔翔,王威.僵尸網(wǎng)絡(luò)綜述[J].計算機(jī)研究與發(fā)展,2011,48(8):1315-1331.
[3]諸葛建偉,韓心慧,周勇林,等.僵尸網(wǎng)絡(luò)研究[J].軟件學(xué)報,2008,19(3):702-715.
[4]Binsalleeh H,Ormerod T,Boukhtouta A,et al.On the analysis of the Zeus Botnet crimeware toolkit[C]//Proc of the 8th Annual International Conference on Privacy,Security and Trust,2010:31-38.
[5]Sinha P,Boukhtouta A,Belarde V H,et al.Insights from the analysis of the Mariposa Botnet[C]//Proc of the 5th International Conference on Risks and Security of Internet Systems,2010:1-9.
[6]Kolbitsch C,Comparetti P M,Kruegel C,et al.Effective and efficientmalware detection atthe end host[C]//Proc of 18th USENIX Security Symposium,2009:1-16.
[7]Stison E,Mitchell J C.Characterizing Bots remote control behavior[C]//Proc of the 4th Int Conf on Detection of Intrusions and Malware,and Vulnerability Assessment,2007:89-108.
[8]Liu Lei,Chen Songqing,Yan Guanhua,et al.BotTracer:execution-based Bot-like malware detection[C]//Proc of the 11th Information Security Conference,Taipei,China,2008:97-113.
[9]Wruzinger P,Bilge L,Holz T,et al.Automatically generating models for Botnet detection[C]//Proc of the 14th European Symposium on Research in Computer Security,2009:232-249.
[10]Al-Hammadi Y,Aichelin U.Behavioural correlation for detecting P2P Bots[C]//Proc of the 2nd International Conference on Future Networks(ICFN 2010),Sanya,Hainan,China,2010:323-327.
[11]袁春陽,李青山,王永建.基于行為與域名查詢關(guān)聯(lián)的僵尸網(wǎng)絡(luò)聚類聯(lián)動監(jiān)測[J].計算機(jī)應(yīng)用研究,2012,29(3):1084-1087.
[12]江健,諸葛建偉,段海新,等.僵尸網(wǎng)絡(luò)機(jī)理與防御技術(shù)[J].軟件學(xué)報,2012,23(1):82-96.