?

基于DNS查詢行為的Bot檢測

2015-04-14 12:28李曉利湯光明
計算機工程與應用 2015年1期
關鍵詞:僵尸IP地址進程

李曉利 ,湯光明 ,初 曉

1.信息工程大學,鄭州 450004

2.中國人民解放軍63895部隊

1 引言

作為攻擊者手中最有效的通用網絡攻擊平臺,僵尸網絡[1-2]已成為互聯網安全的最大威脅之一。它是攻擊者出于惡意目的,傳播僵尸程序控制大量主機,并通過一對多的命令與控制信道所組成的網絡[3]。僵尸程序[4-5](Bot)作為運行在僵尸主機上的惡意程序,通過命令與控制信道接收控制者的各種指令,是惡意行為的最終執行者。因此,及早并有效地檢測出主機中感染的Bot,是僵尸網絡對抗中的關鍵環節。

傳統的基于特征碼的檢測方法能夠快速檢測出流行的Bot,但卻無法發現智能變種或新型Bot,基于行為分析的檢測方法彌補了此缺陷[6]。Stinson等人[7]認為從網絡中接收的數據是“被污染的數據”,若一個程序把這些數據作為系統調用的參數,則其具有被外部/遠程控制的行為,據此提出通過監控Win32庫函數的執行來檢測Bot行為,并設計實現了BotSwat檢測系統,由于該方法在庫調用級監控被污染數據的傳播,因此若Bot對網絡數據進行帶外加密就可逃避該系統的檢測。Liu等人[8]指出一個典型的Bot在發作時表現出3種不變的特征:自啟動;建立命令與控制信道;執行本地或遠程的攻擊;基于此設計實現了利用虛擬機技術檢測這3種特征的系統-BotTracer,實驗結果表明系統能夠成功檢測出所給的幾種Bot,但前提是虛擬機不能被Bot檢測到。Wurzinger等人[9]研究發現,Bot在收到攻擊者的命令后會以一種特定的方式作出響應,提出使用基于特征碼和基于異常的方法分別從Bot的命令接收和響應行為兩個方面來構建檢測模型。該系統具有較低的誤報率,但存在信道加密及行為模式改變影響檢測效果的問題。Al-hammadi等人[10]提出了一個通過關聯分析主機中進程的多種行為來實現檢測Bot的算法,算法的輸入為目標不可達數、失敗連接數等特定行為特征以及特定API函數調用。實驗結果表明,該方法能夠檢測到Bot主機,也可根據進程對特定API函數的調用頻率檢測出Bot程序,但文中并沒有給出合適的判斷閾值,而且只能檢測P2P Bot。

為了及早發現主機中感染的Bot,并實現檢測過程的輕量化且不受加密技術的影響,本文在對Bot的內在特征進行分析的基礎上,提出一種綜合Bot自動運行特點和DNS查詢行為(正向DNS查詢和反向DNS查詢)特征的檢測方法。

2 基于DNS查詢的Bot檢測框架

通過對近年來流行僵尸網絡的研究,本文關注Bot的兩種本質特征:(1)Bot為自動運行的程序,不需要人類行為的驅使。(2)無論是采用何種協議結構,Bot通過域名系統查詢相應的C&C僵尸網絡服務器地址并連接通信,是Botnet的核心[11],即Bot高度依賴于DNS以獲得靈活的命令和控制,這是最基本的行為。因此,本文基于Bot的自運行行為與DNS查詢行為提出一個兩階段檢測框架,如圖1所示。

圖1 Bot檢測框架

(1)自動連接檢測。分析進程活動與用戶操作之間的關聯,并記錄與DNS查詢相關的進程,在此基礎上進行人-機-網(用戶-進程-網絡)交互關系分析,過濾掉大部分良性進程,將焦點放在一些與DNS服務器自動聯系的可疑進程上。

(2)DNS反應行為分析檢測階段?;贐ot和其他進程對DNS查詢應答的反應行為的差異構建Bot-DNS反應檢測模型,監控第一階段鎖定的可疑進程的DNS反應行為,使用Bot-DNS反應檢測模型計算被檢進程的可疑度,進而判斷出是否為僵尸程序。

3 自動連接檢測

由于主機中大部分進程是良性的,故直接對所有進程進行詳細地實時監控與分析會增加檢測的耗費。自動連接檢測的作用是對主機中活動的進程進行粗粒度分析,初步過濾掉大部分良性進程。

無論任何類型的僵尸網絡都依賴于DNS查詢來獲得控制服務器的IP地址,因此涉及DNS查詢的網絡連接是僵尸程序與外部網絡連接的重要組成部分,故可以分析此類網絡連接是否由用戶發起來判斷相關進程的“名譽”。如果DNS查詢的網絡連接由真實的用戶發起,則系統必然接收到用戶通過輸入設備傳遞給前臺進程的指令信息,由于鍵盤和鼠標是用戶與計算機交互的主要物理輸入設備,因而本文將兩者引發的事件與DNS查詢連接結合來判斷進程是否具有自動連接行為。

通過對多種Bot行為的觀察,得到僵尸主機中DNS查詢及與其相關的鍵盤/鼠標事件的發生情況如圖2所示。時間區域A、C中的DNS查詢由用戶發起,區域B中是Bot產生的DNS查詢。因此,若與某進程相關的DNS查詢發生的時刻處于鍵盤/鼠標事件發生時刻附近的某一時間域內,則可認為該DNS查詢由用戶交互產生,也即進程不具有自動連接行為。

圖2 鍵鼠事件與DNS查詢發生情況示意圖

檢測的具體實現如下:一方面,掛鉤與鍵盤/鼠標事件相關的系統消息,監視系統中的鍵盤/鼠標事件;另一方面,掛鉤與DNS查詢連接相關的系統調用,記錄所有產生DNS查詢的進程,查詢發生的時間、進程運行狀態。在此基礎上,得到進行自動連接的3個指標:

(1)時間差T=TKM-TDNS,其中TDNS為進程發起一個DNS查詢的時刻,TKM為TDNS時刻之前最近一次鍵盤/鼠標事件的時間。

(2)鍵盤/鼠標事件的來源S,當事件來自于真實的物理設備時S=true,反之S=false。

(3)該進程是否在前臺運行F,F=yes表示進程在前臺運行,F=no表示在后臺運行。

如果T≤Tt(Tt為判斷閾值),且S=true,F=yes,則該進程與用戶產生了交互;否則,為具有自動連接行為的可疑進程。

4 DNS反應行為分析

定義1進程的DNS反應行為:指的是進程進行DNS查詢活動以及對查詢結果的反應事件構成的事件序列,其中反應事件指的是使用DNS查詢中涉及的IP地址嘗試建立連接的行為及結果。

Bot在整個生命周期中,會多次嘗試加入僵尸網絡,該過程主要分為3個步驟:(1)獲取其他Bot節點或中心服務器的IP地址:一些IP地址或域名信息被硬編碼在Bot中,或由Bot通過指定方式動態生成,Bot通過使用這些內部產生的信息來獲取網絡中活躍的Bot主機節點或中心服務器的IP地址;(2)嘗試與已獲取的IP地址進行連接;(3)加入僵尸網絡并獲取指令。在該過程中,DNS反應行為發生在前兩步,且DNS查詢起到了關鍵作用。

DNS查詢的作用主要表現為3點:

(1)對內部獲取的域名的正向DNS查詢能夠得到一個由許多可能活躍的IP地址構成的集合。

(2)一次成功的反向DNS查詢能使Bot確信所查詢的IP地址是活躍的,且可得到一些新的域名用于以后的DNS查詢,從而得到更多活躍的IP地址。

(3)如果Bot對某個內部得到域名的正向DNS查詢成功,它可能會對返回的IP地址進行反向DNS查詢,若反向DNS查詢成功,則可更加確定IP地址的活躍性。

根據對進程DNS反應行為的定義,如果用A、B、C(三者取值均為0或1)分別代表DNS查詢的類型、結果和連接建立的情況,用ABC序列組合表示DNS反應行為事件序列,則有8種不同的組合。由于正向DNS查詢失敗時無法獲取到IP地址,也就不涉及連接的問題,因此不存在序列010和011,其余6種序列的具體描述如表1所示。

表1 DNS反應行為序列與描述

對這6種情況進行初步分析發現,S1和S3屬于正常情況的行為序列,其他4種情況為可疑的行為。在虛擬的實驗環境中分別運行多個Bot樣本和良性程序各1小時,統計這4種情況下的DNS反應行為如表2所示。

表2 Bot樣本和良性程序的DNS反應行為統計

由表2的結果可以得到如下結論:

(1)良性程序只表現出了S2序列的DNS反應行為,同時Bot程序也表現出這種反應行為。分析表現出此種行為的良性程序,發現造成連接失敗的原因是由于其所訪問的對象已關閉或臨時不在線,因此本文認為該序列模式雖然屬于異常行為,但不能作為檢測Bot的指標。

(2)S4、S5、S6序列的DNS反應行為在Bot樣本中有不同程度的體現,特別是S6,每一種Bot樣本都至少包含一次這樣的DNS反應行為,尤以Waledac為最多。經過分析可知,Waledac是一種P2P Bot,在其內部硬編碼了大約30個節點的IP地址,而且該Bot還使用了fast-flux技術[12]以逃避被追蹤,因此它在各種行為序列下擁有的實例個數都比較多。

基于上述觀察,本文以進程是否表現出S4、S5、S6序列的DNS反應行為來識別Bot程序:分別對每一種行為序列賦予權重,根據被檢測進程的各項指標情況計算加權分值,由分值的大小判斷進程是否為Bot。

定義2設某段時間內進程P在3種序列下的DNS反應行為的實例數分別為r1、r2、r3(當ri>0(i=1,2,3)時,S(ri)=1;否則S(ri)=0),三種行為序列的權值分別為a、b、c(0≤a、b、c≤1,a+b+c=1),g為該進程的疑似函數,則進程P的可疑度為g(P)=aS(r1)+bS(r2)+cS(r3)。

根據定義2,假設Tg為可疑度的閾值,于是有:若g(P)>Tg,則進程P為Bot;否則,P為良性程序。

5 實驗與分析

5.1 實驗環境與數據收集

(1)Bot程序數據收集。使用VMWare構建虛擬環境來運行Bot實例,收集相關信息測試本文方法的檢測率。該環境由3個虛擬機組成,分別代表被感染主機、控制端和一個監控機,均安裝Windows XP SP3操作系統及一些基本的應用程序,如Firefox瀏覽器等。用于測試的Bot共有8種,它們的名稱、命令和控制協議如表3所示(“其他”代表Bot使用了自己的協議)。

表3 Bot實例信息

(2)良性程序數據收集。分別在6臺真實主機上(確保主機中無Bot)收集各檢測階段所需的進程活動和DNS行為信息,時間為3天。它們由不同工作、不同層次的用戶使用,數據主要來自于工作日的工作時段。最終收集到526個進程的信息,形成數據集D。使用該數據集來測試本文方法的假陽性率。

5.2 檢測結果與分析

(1)自動連接檢測

為了測試第一階段的檢測效果,將Bot實例安裝在虛擬機中,不進行任何干預。一段時間后,檢測到所有的Bot均向遠程服務器發送連接請求,這些查詢請求都被捕獲到,經過分析判斷(根據前期實驗與分析,本文中Tt的取值為20 ms),發現所有Bot都具有自動連接行為。結果表明,該階段的檢測能夠發現所有Bot的自動DNS查詢行為,既可以在第一時間鎖定可疑進程,縮小系統檢測范圍,又沒有漏報的發生,提高了系統的檢測效率和效果。

(2)DNS反應行為分析檢測

為測試第二階段的檢測效果,在虛擬機上分別運行各Bot樣本,時間為1 h,采集網絡流量中各Bot實例的DNS反應行為信息進行處理,得到各Bot實例的可疑度如表4所示(可疑度的計算中,參數a、b、c分別取0.2、0.3、0.5)。

表4 Bot實例可疑度計算結果

實驗結果表明,所有的Bot均進行了S6序列的DNS反應行為,而且大部分Bot除了具有此種反應行為之外,還不同程度地表現出S4、S5序列的DNS反應行為。本文中可疑閾值Tg取0.45,所有的Bot實例均被檢測出。

(3)假陽性率測試分析

為評估檢測方法的假陽性率,對采集到的集合D中的526個進程信息進行測試。經過第一階段的過濾,鎖定了24個具有自動連接行為的進程,然而第二階段的檢測顯示這些進程不是Bot,出現這種情況的原因是一些良性程序開啟了自動更新等功能,它們會在用戶不干預的情況下主動地與外界網絡聯系。實驗結果說明,該方法具有較低的假陽性率,且達到了檢測過程輕量化的效果。

6 結束語

本文提出了一種基于自運行特性和DNS查詢特征的Bot檢測方法,能夠輕量、有效地檢測出主機中的活躍Bot,具有較低的假陽性率,且可以突破僵尸網絡所采用不同協議結構的限制。為盡早阻止Bot對主機的破壞及傳播,本文重點關注了其生命周期中加入僵尸網絡的階段,而沒有考慮Bot在主機中的各種惡意行為和網絡流量特征。因此,下一步研究的方向是對Bot的全生命周期進行監測,提出適用范圍更廣且檢測準確度更高的檢測方案。

[1]王天佐,王懷發,劉波,等.僵尸網絡中的關鍵問題[J].計算機學報,2012,35(6):1192-1208.

[2]方濱興,崔翔,王威.僵尸網絡綜述[J].計算機研究與發展,2011,48(8):1315-1331.

[3]諸葛建偉,韓心慧,周勇林,等.僵尸網絡研究[J].軟件學報,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]袁春陽,李青山,王永建.基于行為與域名查詢關聯的僵尸網絡聚類聯動監測[J].計算機應用研究,2012,29(3):1084-1087.

[12]江健,諸葛建偉,段海新,等.僵尸網絡機理與防御技術[J].軟件學報,2012,23(1):82-96.

猜你喜歡
僵尸IP地址進程
筆記本電腦“僵尸”
鐵路遠動系統幾種組網方式IP地址的申請和設置
債券市場對外開放的進程與展望
你愿意當吸血鬼還是僵尸?
IP地址切換器(IPCFG)
基于SNMP的IP地址管理系統開發與應用
公安網絡中IP地址智能管理的研究與思考
App已死?80%的僵尸應用帶來的困惑
“僵尸肉”橫行誰之過
社會進程中的新聞學探尋
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合