• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種多粒度DNS隧道攻擊檢測(cè)方法

      2021-08-07 10:26:54陳治昊
      現(xiàn)代計(jì)算機(jī) 2021年17期
      關(guān)鍵詞:粗粒度細(xì)粒度數(shù)據(jù)包

      陳治昊

      (四川大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,成都 610065)

      0 引言

      DNS隧道攻擊是指利用DNS請(qǐng)求建立起隧道,繞過防火墻、入侵檢測(cè)系統(tǒng)等網(wǎng)絡(luò)安全策略,實(shí)現(xiàn)信息竊取、遠(yuǎn)程命令執(zhí)行等網(wǎng)絡(luò)攻擊行為。攻擊者搭建一個(gè)含有惡意軟件的DNS權(quán)威服務(wù)器并注冊(cè)一個(gè)域名后,內(nèi)網(wǎng)中的受控主機(jī)能通過該域名將編碼后DNS請(qǐng)求發(fā)往攻擊者的服務(wù)器建立隧道并進(jìn)行交互,建立隧道后服務(wù)器能夠?qū)?nèi)網(wǎng)主機(jī)發(fā)送的DNS請(qǐng)求數(shù)據(jù)包進(jìn)行解碼獲取傳輸數(shù)據(jù),同時(shí)也能夠向受控主機(jī)發(fā)送編碼后的控制指令,達(dá)到遠(yuǎn)程命令執(zhí)行的目的。根據(jù)RFC1034[1]和RFC1035[2]中定義的DNS格式,DNS除了通常解析域名所使用的A類型請(qǐng)求,還存在MX、TXT、CNAME等類型,允許填充任意類型的字符信息,這就使得攻擊者能夠使用DNS隧道進(jìn)行信息竊取以及遠(yuǎn)程命令執(zhí)行等攻擊。同時(shí)由于DNS協(xié)議受到的監(jiān)控力度較小,許多木馬、僵尸網(wǎng)絡(luò)和APT攻擊也使用了DNS隧道進(jìn)行控制通信,保持攻擊服務(wù)器與內(nèi)網(wǎng)受控主機(jī)之間的連接。在2016年5月,在Palo Alto公開的一起APT攻擊事件中[3],攻擊團(tuán)隊(duì)利用DNS請(qǐng)求應(yīng)答機(jī)制作為攻擊滲透的命令控制通道。

      目前對(duì)于DNS隧道攻擊的檢測(cè)方法主要有兩類:基于載荷分析與基于行為檢測(cè)。

      基于載荷是指將DNS請(qǐng)求與響應(yīng)數(shù)據(jù)包中的有效載荷進(jìn)行分析。章航等通過請(qǐng)求載荷的域名長(zhǎng)度、字符占比、隨機(jī)性特征和語義特征來檢測(cè)DNS隧道攻擊[4];Homem I等人分析了DNS隧道攻擊的內(nèi)部數(shù)據(jù)包結(jié)構(gòu),使用數(shù)據(jù)包內(nèi)容信息熵進(jìn)行檢測(cè)[5];Lai C M等人使用每個(gè)DNS數(shù)據(jù)包的前512個(gè)字節(jié)進(jìn)行檢測(cè)[6];Liu C等人將DNS數(shù)據(jù)包的內(nèi)容壓縮為一個(gè)字節(jié)大小的數(shù)據(jù),使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí)[7]。但是基于載荷分析的DNS隧道攻擊檢測(cè)方法有著很大的局限性,一些經(jīng)過URL Encoding編碼的合法域名長(zhǎng)度較長(zhǎng)并且不符合常規(guī)的語言習(xí)慣,容易產(chǎn)生誤報(bào)。

      基于行為的檢測(cè)方法主要是針對(duì)網(wǎng)絡(luò)中DNS流量的變化情況與整體特征。羅友強(qiáng)等對(duì)DNS會(huì)話進(jìn)行重組,提取了7種DNS隧道攻擊行為特征組成特征向量進(jìn)行檢測(cè)[8];單康康等人混合了三種常用分類算法并加權(quán)求優(yōu),構(gòu)建了基于通信行為的檢測(cè)模型[9];Liu J等人提取了時(shí)間間隔、請(qǐng)求數(shù)據(jù)包大小、DNS類型和子域名熵四種行為特征進(jìn)行檢測(cè)[10];Ishikura N等人提出根據(jù)DNS請(qǐng)求命中緩存的情況來判斷是否為隧道攻擊[11];Pomorova等人使用了域名長(zhǎng)度、與域名相關(guān)的IP數(shù)量、TTL值、DNS查詢成功標(biāo)志等多種行為特征來檢測(cè)隧道攻擊行為[12]。多種行為特征組成特征向量,能很好地表現(xiàn)出攻擊流量與正常流量之間的差異性,降低基于載荷方法中因編碼導(dǎo)致的誤報(bào)情況,但是正常網(wǎng)絡(luò)通信環(huán)境中,DNS隧道攻擊流量出現(xiàn)頻率會(huì)遠(yuǎn)小于正常流量出現(xiàn)的頻率,若對(duì)每個(gè)DNS會(huì)話進(jìn)行重組、計(jì)算特征與檢測(cè),會(huì)消耗大量的計(jì)算資源,從而導(dǎo)致檢測(cè)效率不高。

      1 DNS隧道攻擊特征提取

      針對(duì)DNS隧道攻擊特征提取,分析了現(xiàn)有研究在特征提取與選擇上存在的問題,提出了DNS流量行為的粗粒度特征與細(xì)粒度特征,并且使用兩種特征相結(jié)合對(duì)DNS流量進(jìn)行分類判斷。粗粒度與細(xì)粒度特征相結(jié)合的方式如圖1所示,首先將通信流量按時(shí)間片劃分,使用粗粒度特征判斷存在DNS隧道攻擊的時(shí)間片,再將可疑時(shí)間片中的DNS會(huì)話進(jìn)行重組,通過細(xì)粒度特征檢測(cè)出DNS隧道會(huì)話流量。

      圖1 粗細(xì)粒度結(jié)合方式

      1.1 粗粒度特征

      由于對(duì)每條DNS會(huì)話進(jìn)行重組、計(jì)算特征與檢測(cè)會(huì)導(dǎo)致檢測(cè)效率低下,因此提出了粗細(xì)粒度相結(jié)合的檢測(cè)方法。粗粒度特征針對(duì)一段時(shí)間片內(nèi)所有的DNS流量,用于判斷當(dāng)前時(shí)間片內(nèi)的DNS流量是否存在異常,而無需重組并定位具體的DNS會(huì)話流量。針對(duì)時(shí)間片內(nèi)DNS流量,本文選取了7種粗粒度特征,如表1所示。

      表1 粗粒度特征

      (1)熵值計(jì)算方法

      以源IP地址熵為例,源IP地址熵是使用時(shí)間片中不同源IP的數(shù)量占總的網(wǎng)絡(luò)流數(shù)量比值來計(jì)算信息熵,采用向量X=(x1,x2,…,xn)表示單位時(shí)間片中的數(shù)據(jù)流有n個(gè)不同的源IP地址,針對(duì)其中任一取值xi,設(shè)時(shí)間片中存在ki條網(wǎng)絡(luò)流的源IP地址為xi,主機(jī)在該時(shí)間窗口中的源IP地址熵H(X)計(jì)算公式為式1所示。其中S對(duì)應(yīng)不同源IP地址出現(xiàn)個(gè)數(shù),如式2所示。

      (1)

      (2)

      (2)源IP地址熵

      正常內(nèi)網(wǎng)環(huán)境中,大部分DNS會(huì)話數(shù)據(jù)包數(shù)量較少,每臺(tái)主機(jī)在正常網(wǎng)絡(luò)連接中都會(huì)產(chǎn)生一些長(zhǎng)度相似DNS會(huì)話,因此時(shí)間片內(nèi)源IP地址熵值會(huì)較高?;赨DP的DNS協(xié)議限制載荷最大為512字節(jié),因此DNS隧道攻擊發(fā)送的數(shù)據(jù)會(huì)被切分為很多DNS請(qǐng)求數(shù)據(jù)包,因此當(dāng)有主機(jī)與DNS隧道攻擊服務(wù)器進(jìn)行交互時(shí),單位時(shí)間內(nèi)該主機(jī)產(chǎn)生的DNS請(qǐng)求數(shù)量會(huì)遠(yuǎn)大于其他主機(jī),因此時(shí)間片內(nèi)源IP地址熵值會(huì)降低。

      (3)目的IP地址熵

      選取此特征原因類似于源IP地址熵,在內(nèi)網(wǎng)各個(gè)主機(jī)沒有制定相同的DNS服務(wù)器地址時(shí),對(duì)存在攻擊行為的時(shí)間片會(huì)有較好的檢測(cè)效果。

      (4)DNS類型熵

      正常網(wǎng)絡(luò)環(huán)境中DNS協(xié)議是用于域名解析,大部分DNS請(qǐng)求與響應(yīng)數(shù)據(jù)包都是A類型(解析為IPv4地址)與AAAA類型(解析為IPv6地址),因此時(shí)間片內(nèi)DNS類型熵值較小。若時(shí)間片內(nèi)存在攻擊流量,有大量其他類型的DNS請(qǐng)求時(shí),DNS類型熵值會(huì)提高。

      (5)A、AAAA、PTR比例

      正常DNS請(qǐng)求多為A、AAAA、PTR三種類型,用于返回解析后的IP地址信息,因其載荷小而不適應(yīng)于作為DNS隧道攻擊的類型,DNS隧道攻擊使用這三種協(xié)議會(huì)導(dǎo)致分片過多影響傳輸速度且容易被偵測(cè)到,因此當(dāng)內(nèi)網(wǎng)中有主機(jī)與DNS隧道攻擊服務(wù)器進(jìn)行交互,該時(shí)間片內(nèi)此比例較低。

      (6)MX、TXT、CNAME比例

      MX、TXT、CNAME為DNS隧道攻擊常用的類型,因其載荷較大且可以存儲(chǔ)任意字符而易于傳輸隱蔽數(shù)據(jù)信息,因此內(nèi)網(wǎng)中如果有主機(jī)與DNS隧道攻擊服務(wù)器進(jìn)行交互,大量的MX、TXT、CNAME類型DNS流量會(huì)使得時(shí)間片內(nèi)此比例較高。

      (7)平均請(qǐng)求域名長(zhǎng)度

      DNS隧道攻擊會(huì)將通信的內(nèi)容編碼后作為請(qǐng)求域名的子域名進(jìn)行傳輸,因此與DNS隧道攻擊服務(wù)器進(jìn)行交互時(shí)發(fā)出的DNS請(qǐng)求中域名長(zhǎng)度較長(zhǎng)。內(nèi)網(wǎng)中如果有主機(jī)與DNS隧道攻擊服務(wù)器進(jìn)行交互,在通信時(shí)間片內(nèi)會(huì)產(chǎn)生大量長(zhǎng)域名請(qǐng)求,從而導(dǎo)致平均請(qǐng)求域名長(zhǎng)度會(huì)大于正常網(wǎng)絡(luò)請(qǐng)求時(shí)間片。

      (8)平均響應(yīng)數(shù)據(jù)長(zhǎng)度

      進(jìn)行DNS隧道攻擊時(shí),DNS隧道攻擊服務(wù)器會(huì)將響應(yīng)控制信息編碼進(jìn)行回傳,而正常DNS相應(yīng)多為解析域名后返回的IP地址信息,因此DNS隧道攻擊的響應(yīng)數(shù)據(jù)包會(huì)大于正常DNS服務(wù)器響應(yīng)數(shù)據(jù)包。

      1.2 細(xì)粒度特征

      細(xì)粒度特征用于粗粒度特征之后,用來定位具體的隧道攻擊會(huì)話。將時(shí)間片內(nèi)的DNS會(huì)話進(jìn)行重組后,為了保證能夠準(zhǔn)確定位具體的DNS隧道攻擊會(huì)話,因此針對(duì)每一條DNS會(huì)話,本文提取了17種細(xì)粒度特征,如表2所示。

      表2 細(xì)粒度特征

      (1)DNS會(huì)話時(shí)長(zhǎng)與會(huì)話中數(shù)據(jù)包總數(shù)

      不同于基于TCP協(xié)議的會(huì)話在通信過程中存在三次握手與四次揮手行為,DNS基于無連接的UDP協(xié)議,因此DNS沒有嚴(yán)格意義上會(huì)話時(shí)長(zhǎng)的定義。本文將在一次會(huì)話中最后一條DNS報(bào)文與第一條DNS報(bào)文時(shí)間的差值作為會(huì)話時(shí)長(zhǎng)的定義。正常情況下的DNS請(qǐng)求,是由請(qǐng)求域名解析的主機(jī)在本地開啟一個(gè)任意端口,向域名服務(wù)器的53端口發(fā)出請(qǐng)求,服務(wù)器響應(yīng)之后DNS解析過程就結(jié)束了,客戶機(jī)創(chuàng)建的套接字也會(huì)在一段時(shí)間內(nèi)關(guān)閉。因此DNS隧道攻擊會(huì)話與正常DNS請(qǐng)求相比,會(huì)話時(shí)長(zhǎng)更長(zhǎng),會(huì)話中數(shù)據(jù)包總數(shù)更大。

      (2)最大包長(zhǎng)與平均包長(zhǎng)

      在DNS隧道攻擊流程中,會(huì)存在內(nèi)網(wǎng)主機(jī)向外部攻擊服務(wù)器發(fā)送信息以及外部攻擊服務(wù)器向內(nèi)網(wǎng)主機(jī)發(fā)送指令信息的情況,在傳輸信息或指令時(shí),通常是將其編碼再由DNS協(xié)議作為載體傳輸,因此此時(shí)的DNS會(huì)話的UDP數(shù)據(jù)包會(huì)較長(zhǎng)。

      (3)請(qǐng)求數(shù)據(jù)長(zhǎng)度、響應(yīng)數(shù)據(jù)長(zhǎng)度與上傳下載載荷比

      對(duì)于會(huì)話中請(qǐng)求數(shù)據(jù)長(zhǎng)度與響應(yīng)數(shù)據(jù)長(zhǎng)度,分別計(jì)算了其最大值、平均值與總大小。若DNS隧道用于內(nèi)網(wǎng)信息竊取,則請(qǐng)求數(shù)據(jù)的長(zhǎng)度相比于正常DNS會(huì)話會(huì)較長(zhǎng);若DNS隧道用于外部遠(yuǎn)程命令執(zhí)行攻擊,則響應(yīng)數(shù)據(jù)的長(zhǎng)度相比于正常DNS會(huì)話會(huì)較長(zhǎng)。這種情況下,上傳下載載荷比也會(huì)與正常DNS會(huì)話不同。

      (4)可疑flag與常用flag占比

      正常DNS請(qǐng)求主要是A、AAAA、PTR類型的DNS報(bào)文,而DNS隧道攻擊為了提高傳輸效率,會(huì)更多使用TXT、MX、CNAME類型的DNS報(bào)文。

      (5)域名信息熵

      與正常DNS請(qǐng)求的域名信息不同,DNS隧道攻擊會(huì)采用多種編碼方式對(duì)傳輸數(shù)據(jù)進(jìn)行編碼,因此請(qǐng)求的域名信息熵值會(huì)偏高,整個(gè)DNS隧道攻擊會(huì)話中最大與平均域名信息熵會(huì)比正常DNS會(huì)話要高。

      2 多粒度DNS隧道攻擊檢測(cè)方法

      基于第1.2小節(jié)分析的粗細(xì)粒度的特征,可以從DNS會(huì)話中提取出兩類特征構(gòu)建兩種評(píng)估向量。為了減少會(huì)話重組與提取過多特征并聚類導(dǎo)致的計(jì)算資源消耗,提高檢測(cè)效率,本文提出了一種多粒度DNS隧道攻擊檢測(cè)方法,使用粗粒度與細(xì)粒度特征相結(jié)合,在保證檢測(cè)準(zhǔn)確率的同時(shí)能夠提升特征提取與檢測(cè)效率。同時(shí)根據(jù)DNS隧道攻擊檢測(cè)的特性,選擇了基于層次的聚類算法BIRCH算法進(jìn)行聚類分析。

      2.1 檢測(cè)框架

      本文提出的多粒度DNS隧道攻擊檢測(cè)方法的基本流程如圖2所示。

      圖2 基于網(wǎng)絡(luò)行為的多粒度DNS隧道檢測(cè)方法的基本流程

      與其他直接重組所有DNS會(huì)話,并同時(shí)提取所有特征進(jìn)行檢測(cè)的方法不同,本方法整體流程分主要分為粗粒度檢測(cè)與細(xì)粒度檢測(cè)兩部分。如圖2所示,傳入待檢測(cè)的數(shù)據(jù)包后,首先進(jìn)入粗粒度檢測(cè)階段,此階段不會(huì)進(jìn)行重組DNS會(huì)話這一耗費(fèi)大量計(jì)算資源的行為,而是先將數(shù)據(jù)包按時(shí)間片切分,對(duì)切分后的每一時(shí)間片內(nèi)的數(shù)據(jù)提取粗粒度特征構(gòu)建特征向量,使用BIRCH算法對(duì)異常時(shí)間片進(jìn)行檢測(cè),正常時(shí)間片內(nèi)的數(shù)據(jù)包放行,不做下一步檢測(cè),若發(fā)現(xiàn)異常時(shí)間片,記錄異常時(shí)間片內(nèi)的數(shù)據(jù)包進(jìn)行下一檢測(cè)階段,因此在粗粒度檢測(cè)階段需要保證較低的漏報(bào)率,確保異常時(shí)間片都能進(jìn)入下一檢測(cè)階段;進(jìn)入細(xì)粒度的檢測(cè)階段后,先對(duì)異常時(shí)間片內(nèi)的各個(gè)DNS會(huì)話進(jìn)行重組,提取更多的細(xì)粒度特征構(gòu)建向量,進(jìn)而更準(zhǔn)確地定位DNS隧道攻擊會(huì)話。由于通常網(wǎng)絡(luò)環(huán)境中,正常DNS會(huì)話數(shù)量遠(yuǎn)大于DNS隧道攻擊數(shù)量,因此采用了多粒度檢測(cè)方法后,絕大多數(shù)DNS數(shù)據(jù)包在粗粒度階段判斷為正常被放行,減少了大量重組會(huì)話與提取特征并聚類的時(shí)間;同時(shí)相較于其他行為檢測(cè)方法,能夠?qū)崿F(xiàn)細(xì)粒度階段提取更多特征而不降低檢測(cè)效率的效果,為較好地集成到實(shí)時(shí)入侵檢測(cè)系統(tǒng)提供了可能。

      2.2 方法實(shí)現(xiàn)

      根據(jù)處理的先后順序以及對(duì)數(shù)據(jù)包的處理方法,整個(gè)流程分為粗粒度與細(xì)粒度兩個(gè)模塊。

      2.2.1 粗粒度檢測(cè)模塊

      粗粒度檢測(cè)模塊輸入為從網(wǎng)絡(luò)環(huán)境中獲取的數(shù)據(jù)包文件,輸出為存在DNS隧道攻擊的時(shí)間片信息。具體實(shí)現(xiàn)步驟如下:

      ①提取pcap格式數(shù)據(jù)包中所需的數(shù)據(jù)。此步驟僅從輸入的pcap數(shù)據(jù)包中按條提取出所需要的基本數(shù)據(jù)并記錄,例如數(shù)據(jù)包時(shí)間戳、源目的地址與端口、數(shù)據(jù)包長(zhǎng)度、分片標(biāo)志位、遞歸標(biāo)志位和TTL值等數(shù)據(jù),特征的計(jì)算過程交由后續(xù)步驟處理以縮短時(shí)間;

      ②劃分時(shí)間片并計(jì)算粗粒度特征。根據(jù)預(yù)設(shè)的時(shí)間窗口大小與數(shù)據(jù)包的時(shí)間戳,將數(shù)據(jù)包數(shù)據(jù)按照切分成多個(gè)時(shí)間片,對(duì)于每一個(gè)時(shí)間片計(jì)算出2.1小節(jié)中選取的粗粒度特征,提取出所有時(shí)間片的粗粒度特征后進(jìn)行歸一化處理并進(jìn)入下一步驟;

      ③選取適合的算法進(jìn)行檢測(cè)并記錄異常時(shí)間片。此步驟選取了BIRCH算法進(jìn)行聚類,將少數(shù)存在攻擊行為的異常時(shí)間片作為異常點(diǎn)進(jìn)行檢測(cè),標(biāo)記異常時(shí)間片并將其基本數(shù)據(jù)送入細(xì)粒度檢測(cè)模塊進(jìn)行下一步檢測(cè)。

      2.2.2 細(xì)粒度檢測(cè)模塊

      細(xì)粒度檢測(cè)模塊輸入為異常時(shí)間片中數(shù)據(jù)包的基本信息,輸出為DNS隧道攻擊信息。具體實(shí)現(xiàn)步驟如下:

      ①將時(shí)間片中的數(shù)據(jù)包按會(huì)話進(jìn)行重組。根據(jù)預(yù)設(shè)的會(huì)話延時(shí)時(shí)間與四元組信息,將時(shí)間片內(nèi)的數(shù)據(jù)包重組成多組會(huì)話,每組會(huì)話中包含多條數(shù)據(jù)包的信息,每個(gè)時(shí)間片以三維矩陣的形式記錄;

      ②計(jì)算細(xì)粒度特征。對(duì)于時(shí)間片中的每一組會(huì)話計(jì)算出2.2小節(jié)中選取的細(xì)粒度特征,提取出所有會(huì)話的細(xì)粒度特征后進(jìn)行歸一化處理并進(jìn)入下一步驟;

      ③選取適合的算法進(jìn)行檢測(cè)并記錄DNS隧道攻擊信息。此步驟同樣選取了BIRCH算法進(jìn)行聚類,將少數(shù)DNS隧道攻擊會(huì)話作為異常點(diǎn)進(jìn)行檢測(cè),記錄下其信息完成DNS隧道攻擊檢測(cè)。

      2.2.3 算法選擇

      對(duì)于上述模塊第三步中算法的選擇,分析了本方法的整個(gè)檢測(cè)流程后,總結(jié)出了以下幾個(gè)特點(diǎn):

      ①正常DNS請(qǐng)求行為單一,提取特征聚類輪廓近似球形;

      ②只抓取了DNS流量,噪聲數(shù)據(jù)或突發(fā)情況較少;

      ③提升粗細(xì)粒度檢測(cè)速度,算法效率盡可能高;

      ④正常樣本與DNS隧道數(shù)量差別過大,可以將正常樣本聚類成簇、將隧道樣本作為異常點(diǎn)進(jìn)行檢測(cè)。

      針對(duì)以上特點(diǎn),本文選取了BIRCH算法作為檢測(cè)算法,BIRCH算法雖然抗干擾性不佳,但其有著聚類形狀為球形、算法效率高、能夠?qū)崿F(xiàn)無監(jiān)督異常點(diǎn)檢測(cè)的特點(diǎn),能夠較好地滿足本方法的要求。

      BIRCH算法是一種基于層次的聚類算法,其使用了一個(gè)樹型結(jié)構(gòu)來快速聚類,這個(gè)樹型結(jié)構(gòu)類似于B+樹,稱為聚類特征樹,樹的每一個(gè)節(jié)點(diǎn)都是若干個(gè)聚類特征(CF),內(nèi)部節(jié)點(diǎn)的CF的指針指向其孩子節(jié)點(diǎn),所有的葉子節(jié)點(diǎn)用一個(gè)雙向鏈表鏈接起來。其構(gòu)建過程也類似于B+樹的構(gòu)建,每個(gè)節(jié)點(diǎn)中CF數(shù)需設(shè)定上限,達(dá)到上限該節(jié)點(diǎn)進(jìn)行分裂,因此BIRCH算法的訓(xùn)練過程就是建立聚類特征樹的過程[14]。

      BIRCH算法的CF是一個(gè)三元組,用(N,LS,SS)表示,其中N代表了這個(gè)CF中擁有樣本點(diǎn)的數(shù)量,LS代表了這個(gè)CF中擁有的樣本點(diǎn)各特征維度的和向量,SS代表了這個(gè)CF中擁有的樣本點(diǎn)各特征維度的平方和。若聚類特征中有N個(gè)D維數(shù)據(jù)點(diǎn)如式(3)所示,則LS與SS的計(jì)算方法分別為式(4)和式(5)。

      (3)

      (4)

      (5)

      可以發(fā)現(xiàn)CF滿足線性關(guān)系,從而在聚類特征樹中,父節(jié)點(diǎn)CF是由其所有子節(jié)點(diǎn)CF線性相加所得到的,因此BIRCH算法能夠很好地表示成一個(gè)層次樹型結(jié)構(gòu)。

      在構(gòu)建BIRCH算法模型時(shí)我們需要調(diào)整的參數(shù)為內(nèi)部節(jié)點(diǎn)的最大CF數(shù)B、葉子節(jié)點(diǎn)的最大CF數(shù)L、葉節(jié)點(diǎn)每個(gè)CF的最大樣本半徑閾值T,讀入讓樣本點(diǎn)時(shí)根據(jù)T值決定是否聚為同一個(gè)CF,再根據(jù)B與L值決定該節(jié)點(diǎn)是否分裂。

      從BIRCH的定義我們就能看出此算法的特性:聚類速度快,只需要一遍掃描訓(xùn)練集就可以建立CF Tree,CF Tree的增刪改都很快;聚類結(jié)果分布簇為超球體;BIRCH除了聚類還可以做一些異常點(diǎn)檢測(cè)和數(shù)據(jù)初步按類別規(guī)約的預(yù)處理[15]。因此能夠較好的滿足本方法的要求。

      3 實(shí)驗(yàn)與分析

      為驗(yàn)證此方法能夠有效地檢測(cè)出DNS隧道攻擊會(huì)話,以及驗(yàn)證使用粗細(xì)粒度相結(jié)合的方法后能夠提高檢測(cè)效率,設(shè)計(jì)了兩組實(shí)驗(yàn)來對(duì)本文提出方法的有效性與檢測(cè)效率進(jìn)行試驗(yàn)。第一組實(shí)驗(yàn)為使用多種聚類算法來驗(yàn)證本方法的有效性,并驗(yàn)證BRICH算法為最適用于此類情景的算法;第二組實(shí)驗(yàn)對(duì)比了重組所有DNS會(huì)話并同時(shí)提取特征與使用多粒度模型進(jìn)行檢測(cè)的時(shí)間消耗,驗(yàn)證使用多粒度模型對(duì)檢測(cè)效率提升的效果。

      3.1 實(shí)驗(yàn)數(shù)據(jù)

      本次實(shí)現(xiàn)所使用的DNS數(shù)據(jù)為四川大學(xué)某實(shí)驗(yàn)室內(nèi)部網(wǎng)絡(luò)拓?fù)湎碌氖占膶?shí)驗(yàn)數(shù)據(jù)。在實(shí)驗(yàn)室內(nèi)部網(wǎng)絡(luò)中的兩臺(tái)主機(jī)上分別使用dns2tcp、iodine搭建環(huán)境,不定期與搭建在外部阿里云服務(wù)器上的DNS隧道攻擊服務(wù)器進(jìn)行交互,期間實(shí)驗(yàn)室內(nèi)網(wǎng)絡(luò)通信正常使用,使用Tcpdump在出口網(wǎng)關(guān)上抓取流出與流入的所有數(shù)據(jù)包,過濾其余協(xié)議只保留DNS協(xié)議數(shù)據(jù)包,最后收集了包含隧道攻擊流量的DNS數(shù)據(jù)包共計(jì)1,007,883條。

      3.2 評(píng)價(jià)標(biāo)準(zhǔn)

      為了驗(yàn)證該方法在具有較好檢測(cè)效果的同時(shí)能夠提高檢測(cè)效率,將召回率、誤報(bào)率以及檢測(cè)時(shí)長(zhǎng)作為衡量實(shí)驗(yàn)結(jié)果的指標(biāo)。召回率、誤報(bào)率具體計(jì)算公式如式(6)與式(7)所示。檢測(cè)時(shí)長(zhǎng)為從劃分時(shí)間片開始到輸出結(jié)果的總時(shí)長(zhǎng)。

      (6)

      (7)

      在實(shí)驗(yàn)中由于DNS隧道攻擊流量為檢測(cè)主體部分,所以隧道攻擊流量為正樣本,正常流量為負(fù)樣本。因此召回率能夠很好地反映從大量正常DNS會(huì)話中檢測(cè)出少量隧道會(huì)話的能力。

      3.3 實(shí)驗(yàn)結(jié)果

      本文實(shí)驗(yàn)采用Python sklearn模塊對(duì)數(shù)據(jù)集進(jìn)行聚類分析,設(shè)定粗粒度時(shí)間片間隔為300秒,分別使用BIRCH算法、DBSCAN算法、K-means算法進(jìn)行聚類,驗(yàn)證其召回率、誤報(bào)率與處理時(shí)間;同時(shí)采用BIRCH算法,比較使用多粒度模型與不使用多粒度模型的召回率、誤報(bào)率與處理時(shí)間對(duì)差異。

      將含有DNS隧道流量的數(shù)據(jù)包按日期分成五份,使用多粒度模型,BIRCH算法、DBSCAN算法、K-means算法的召回率、誤報(bào)率與處理時(shí)長(zhǎng)如表3所示。其中時(shí)長(zhǎng)為劃分時(shí)間片、重組DNS回話以及檢測(cè)的總時(shí)長(zhǎng),單位為秒。

      表3 三種算法檢測(cè)效果對(duì)比

      因?yàn)镈BSCAN算法與K-means算法在粗粒度檢測(cè)階段誤報(bào)率略高,因此更多的時(shí)間片被用于細(xì)粒度檢測(cè),導(dǎo)致檢測(cè)時(shí)長(zhǎng)增加。

      為了更好地對(duì)比,其召回率、誤報(bào)率與時(shí)長(zhǎng)如圖3、圖4與圖5所示。

      圖3 三種算法召回率對(duì)比

      圖4 三種算法誤報(bào)率對(duì)比

      圖5 三種算法檢測(cè)時(shí)長(zhǎng)對(duì)比

      對(duì)于BIRCH算法,不使用多粒度模型對(duì)每個(gè)DNS會(huì)話進(jìn)行檢測(cè),與使用多粒度模型進(jìn)行檢測(cè)的實(shí)驗(yàn)結(jié)果如表4所示。其中時(shí)長(zhǎng)為劃分時(shí)間片、重組DNS回話以及檢測(cè)的總時(shí)長(zhǎng),單位為秒。

      表4 使用與不使用多粒度識(shí)別效果對(duì)比

      為了更好地對(duì)比,其檢測(cè)時(shí)長(zhǎng)如圖6所示。

      圖6 使用與不使用多粒度模型檢測(cè)時(shí)間對(duì)比

      通過表3的實(shí)驗(yàn)結(jié)果可以看出,對(duì)于從大量正常DNS會(huì)話中檢測(cè)出少量隧道攻擊流量,使用多粒度模型進(jìn)行檢測(cè)能夠取得較高的召回率以及較低的誤報(bào)率,并且對(duì)于DNS這一種單一類別的協(xié)議進(jìn)行檢測(cè),BIRCH算法在檢測(cè)時(shí)長(zhǎng)上較有優(yōu)勢(shì),與之前分析相符。

      同時(shí)從圖6可以發(fā)現(xiàn),采用了多粒度模型后,能夠減少大量DNS會(huì)話重組與細(xì)粒度特征提取的次數(shù),節(jié)省計(jì)算資源,能夠在不降低檢測(cè)準(zhǔn)確率的情況下,極大提高檢測(cè)速度。

      4 結(jié)語

      本文提出的方法在保持良好的檢出率的情況下,檢測(cè)效率有了很大的提升,為較好地集成到實(shí)時(shí)入侵檢測(cè)系統(tǒng)提供了可能。進(jìn)一步挖掘可用于DNS隧道檢測(cè)的新特征、改進(jìn)算法性能、應(yīng)用于實(shí)時(shí)入侵檢測(cè)系統(tǒng)將是下一步的研究重點(diǎn)。

      猜你喜歡
      粗粒度細(xì)粒度數(shù)據(jù)包
      一種端到端的加密流量多分類粗粒度融合算法*
      融合判別性與細(xì)粒度特征的抗遮擋紅外目標(biāo)跟蹤算法
      細(xì)粒度的流計(jì)算執(zhí)行效率優(yōu)化方法
      基于卷積神經(jīng)網(wǎng)絡(luò)的粗粒度數(shù)據(jù)分布式算法
      SmartSniff
      在線評(píng)論情感分析研究綜述
      基于雙線性卷積網(wǎng)絡(luò)的細(xì)粒度圖像定位
      支持細(xì)粒度權(quán)限控制且可搜索的PHR云服務(wù)系統(tǒng)
      基于公共池自適應(yīng)遷移策略的并行遺傳算法
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
      郴州市| 武强县| 洛宁县| 收藏| 黔西| 察雅县| 石城县| 同仁县| 嘉黎县| 资阳市| 铜川市| 潮州市| 固镇县| 清丰县| 巴马| 三江| 普宁市| 凤台县| 许昌县| 同德县| 晋江市| 贞丰县| 休宁县| 天峻县| 山丹县| 理塘县| 阳朔县| 雅江县| 成武县| 佛山市| 都兰县| 宁蒗| 孙吴县| 盐源县| 五寨县| 城口县| 汪清县| 成都市| 芷江| 徐水县| 油尖旺区|