曾 斯
(湖南環(huán)境生物職業(yè)技術(shù)學(xué)院,湖南 衡陽 421005)
Botnet網(wǎng)絡(luò)是一種采用多種傳播手段使主機(jī)感染病毒,從而在控制者與被感染主機(jī)間形成的一個(gè)可以一對(duì)多控制的網(wǎng)絡(luò)[1]。與木馬、蠕蟲等惡意軟件相比,其優(yōu)勢(shì)是可以通過獨(dú)立命令與攻擊者進(jìn)行通信,Botnet網(wǎng)絡(luò)可以利用各類通信協(xié)議配置通信信道,使通信信道更具隱蔽性。隨著時(shí)代發(fā)展,Botnet網(wǎng)絡(luò)迅速壯大,例如DDOS攻擊、竊取信息、發(fā)送垃圾郵件以及攻擊基礎(chǔ)設(shè)施等,給當(dāng)前網(wǎng)絡(luò)安全帶來了巨大威脅。Snort是一種開源入侵防御系統(tǒng),其適應(yīng)多類平臺(tái),具有源代碼開放、計(jì)算要求低等特點(diǎn)[2]。為了更好地應(yīng)對(duì)Botnet網(wǎng)絡(luò)的威脅,該文設(shè)計(jì)了一種基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng),其將流量分析方法作為識(shí)別工具,準(zhǔn)確性較高,能夠有效檢測(cè)大規(guī)模惡意Botnet網(wǎng)絡(luò)流量。
系統(tǒng)采用C/S架構(gòu),在這種結(jié)構(gòu)下,通過瀏覽器顯示工作界面,通過服務(wù)器、前端實(shí)現(xiàn)事物邏輯。如圖1所示,系統(tǒng)分為界面層、邏輯層、通信層以及數(shù)據(jù)層等4層架構(gòu)。其中,界面層包括系統(tǒng)管理、Botnet網(wǎng)絡(luò)流量監(jiān)測(cè)以及系統(tǒng)升級(jí)等,該層與用戶直接交互,用戶可以有效使用界面操作系統(tǒng),并根據(jù)檢測(cè)結(jié)果評(píng)估事件對(duì)系統(tǒng)的威脅程度,從而采取最優(yōu)的解決策略;邏輯層是系統(tǒng)核心部分,主要負(fù)責(zé)處理系統(tǒng)軟硬件的業(yè)務(wù)邏輯、數(shù)據(jù)訪問等工作,起到了數(shù)據(jù)交換的承上啟下作用;通信層主要負(fù)責(zé)客戶端與服務(wù)器之間的通信;數(shù)據(jù)層包括Snort規(guī)則和MariaDB數(shù)據(jù)庫,Snort規(guī)則是基于文本的輕量級(jí)語言描述,數(shù)據(jù)庫負(fù)責(zé)檢測(cè)流量特征、可疑行為等信息。
圖1 系統(tǒng)架構(gòu)
系統(tǒng)硬件設(shè)計(jì)如圖2所示,主要包括協(xié)議分析儀、解碼器、流量識(shí)別器以及輸出管理器等部件。
協(xié)議分析儀是檢測(cè)系統(tǒng)最基礎(chǔ)的數(shù)據(jù)監(jiān)視硬件設(shè)備,既可以用于合法網(wǎng)絡(luò)管理,也可以用于網(wǎng)絡(luò)數(shù)據(jù)竊取。該系統(tǒng)采用BEX400協(xié)議分析儀,能夠識(shí)別以太網(wǎng)、令牌環(huán)以及TCP/IP等高層協(xié)議,其具體工作流程如下:網(wǎng)絡(luò)適配卡捕獲網(wǎng)絡(luò)數(shù)據(jù)包,隨后以原始形態(tài)傳遞給解碼器,以對(duì)數(shù)據(jù)鏈路層中的原始數(shù)據(jù)包進(jìn)行深度解碼,解碼器從不同接口獲取包后完成解碼過程。
在系統(tǒng)接收數(shù)據(jù)包后,無法直接將其上傳至流量識(shí)別器,必須進(jìn)行部分處理,并利用環(huán)境定義描述統(tǒng)一采集的數(shù)據(jù)。該系統(tǒng)采用XL-DS1/DD1高速解碼器,該設(shè)備提供軟件開發(fā)SDK及設(shè)備管理控制通信協(xié)議,便于與第三方軟件系統(tǒng)集成,其具體工作流程如下:對(duì)數(shù)據(jù)進(jìn)行歸類、去冗等操作,將主機(jī)數(shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù)、行為數(shù)據(jù)以及通信數(shù)據(jù)結(jié)合,以整體視角對(duì)各事件進(jìn)行關(guān)聯(lián)分析,創(chuàng)建元數(shù)據(jù)與操作集間的依賴關(guān)系,配合流量識(shí)別器完成數(shù)據(jù)處理工作。
流量識(shí)別器是系統(tǒng)核心硬件,除使用Snort自有的監(jiān)測(cè)機(jī)制外,還可以選用Cubro流量探針作為系統(tǒng)流量識(shí)別器,該設(shè)備根據(jù)聚類結(jié)果進(jìn)行網(wǎng)絡(luò)流量類型識(shí)別,準(zhǔn)確率較高,其具體工作包括加密識(shí)別、虛擬構(gòu)建。其中,加密識(shí)別通過計(jì)算隨機(jī)數(shù)據(jù)來識(shí)別數(shù)據(jù)流是否被加密,虛擬構(gòu)建則通過Renode模擬器來模擬Botnet運(yùn)行環(huán)境,并根據(jù)其行為來判斷是否為惡意流量。
2.3.1 加密識(shí)別
Cubro流量探針能夠?qū)用芰髁窟M(jìn)行有效識(shí)別。根據(jù)加密原理,加密后的數(shù)據(jù)與隨機(jī)數(shù)據(jù)較相似,由信息論可知,數(shù)據(jù)隨機(jī)性越大,不確定性就越高,熵值也隨之增加。因此,可以通過數(shù)據(jù)熵值來識(shí)別加密數(shù)據(jù)。
2.3.2 虛擬構(gòu)建
使用Renode模擬器進(jìn)行虛擬構(gòu)建,按照監(jiān)控配置與數(shù)據(jù)流進(jìn)行邏輯分析,標(biāo)記相關(guān)數(shù)據(jù),并對(duì)可疑程序API攔截記錄、污點(diǎn)記錄進(jìn)行深度分析[3]。將網(wǎng)絡(luò)中獲得的數(shù)據(jù)包解碼后,將其放于特定數(shù)據(jù)結(jié)構(gòu)內(nèi),由此完成識(shí)別、過濾以及解碼數(shù)據(jù)包流,隨后將數(shù)據(jù)表流上傳至Cubro流量探針,以此探測(cè)數(shù)據(jù)包中是否存在入侵行為。
輸出管理器負(fù)責(zé)將報(bào)警與日志通過更靈活的格式、形式呈現(xiàn)給管理員,這些信息被記錄于文本文件與數(shù)據(jù)庫內(nèi)。該系統(tǒng)采用MUX-10F輸出管理器,其記錄方式見表1。
表1 MUX-10F記錄方式
為了提高系統(tǒng)檢測(cè)性能,軟件設(shè)計(jì)主要完成的工作包括NXDomain過濾、聚類分析以及交集分析。
在特定周期內(nèi),與正常主機(jī)相比,Botnet感染主機(jī)會(huì)訪問域名,其中多為NXDomain,如果觀察到的源IP是NAT后的IP地址,那么NXDomain訪問量可能更大[4]。因此,在聚類分析前可通過限度值l過濾NXDomain訪問較少的記錄。當(dāng)l為0時(shí),被過濾掉的訪問域名數(shù)僅占總域名數(shù)的0.1%;當(dāng)l為100時(shí),被過濾掉的訪問域名數(shù)約占總域名數(shù)的5%。由此可知,l值越大,過濾掉的域名數(shù)越多,能夠降低誤檢率,但是漏檢率也會(huì)提高。作為軟件設(shè)計(jì)的輔助檢測(cè),該步驟主要考慮降低漏檢率,因此l值為1。過濾后根據(jù)域名字符特征、行為特征進(jìn)行聚類分析。
為了聚類相似域名,在過濾后通過域名字符特征、行為特征對(duì)域名進(jìn)行聚類。在字符特征聚類中,提取2級(jí)域長度、2級(jí)域名數(shù)字占比、2級(jí)域名熵值、全域名熵值以及域名級(jí)別等域名字符特征組成聚類向量(見表2),隨后通過聚類算法對(duì)向量進(jìn)行聚類分析。聚類算法可以根據(jù)數(shù)據(jù)自動(dòng)選擇聚類數(shù)量,減少了因人為選擇聚類而出現(xiàn)的誤差。
表2 域名字符聚類特征
在域名訪問行為特征聚類中,利用感染相同Botnet的主機(jī)也會(huì)有相似的訪問模式特性,以小時(shí)為周期對(duì)域名進(jìn)行統(tǒng)計(jì),得出每日訪問序列,從而對(duì)域名進(jìn)行序列聚類[5]。域名行為聚類仍采用聚類算法,但是其無法有效處理時(shí)間序列的維度特征,因此應(yīng)先進(jìn)行特征提取,得到訪問總量、均值、方差以及訪問最大值等特征(見表3),隨后再對(duì)特征進(jìn)行聚類。
表3 域名行為聚類特征
對(duì)上述軟件設(shè)計(jì)結(jié)果進(jìn)行交集分析,能夠檢測(cè)出高度可疑域名。具體方法如下:設(shè)置集合x={x1、x2,…,xn}為字符聚類結(jié)果,集合y={y1、y2,…,yn}為行為聚類結(jié)果,那么交集集合為Sxy,如果Sxy內(nèi)域名數(shù)量過少,就認(rèn)為該集合內(nèi)域名是可疑域名的可能性較小,不考慮該分組,反之則將其作為高度可疑域名。
為了驗(yàn)證Snort檢測(cè)Botnet網(wǎng)絡(luò)性能,采用誤差矩陣、正確率、精確率以及誤報(bào)率等指標(biāo)進(jìn)行系統(tǒng)性能評(píng)估,誤差矩陣見表4。
表4 誤差矩陣
正確率Acy是指流量被正確檢測(cè)出來的概率,如公式(1)所示。
精確率Pon是指Botnet網(wǎng)絡(luò)被正確檢測(cè)與被檢測(cè)成Botnet網(wǎng)絡(luò)的比值,如公式(2)所示。
誤報(bào)率Fpr是指正常流量被錯(cuò)誤檢測(cè)為Botnet流量的概率,如公式(3)所示。
綜上所述,一個(gè)良好的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)應(yīng)具有較高的檢測(cè)精度和極低的誤報(bào)率。
試驗(yàn)采用深度學(xué)習(xí)框架,架構(gòu)靈活,不僅支持各類網(wǎng)絡(luò)類型、結(jié)構(gòu),而且也支持學(xué)習(xí)率(Constant Warmup,CW)功能。試驗(yàn)計(jì)算機(jī)CPU為I5-13400F,內(nèi)存為XPG 8G*23200 DDR4,顯卡為RTX4070,未使用GPU加速。
以Botnet網(wǎng)絡(luò)數(shù)據(jù)集為基準(zhǔn),分別評(píng)估基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)和傳統(tǒng)Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)的性能。為了訓(xùn)練較高的性能,選定隱藏節(jié)點(diǎn)分別為10、20、30、40和50,基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)、傳統(tǒng)Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)分別在訓(xùn)練集和測(cè)試集上的正確率,結(jié)果見表5。
表5 正確率比較
由表5可知,當(dāng)選擇相同隱藏節(jié)點(diǎn)時(shí),基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)在訓(xùn)練集上的檢測(cè)正確率比傳統(tǒng)檢測(cè)系統(tǒng)高。當(dāng)隱藏節(jié)點(diǎn)數(shù)量為10~40時(shí),基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)在測(cè)試集上的檢測(cè)正確率比傳統(tǒng)檢測(cè)系統(tǒng)該,表明Snort在高維特征模型方面具備更強(qiáng)的建模能力。隨著隱藏節(jié)點(diǎn)數(shù)量不斷增加,當(dāng)隱藏節(jié)點(diǎn)數(shù)量為50時(shí),基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)在訓(xùn)練集上保持了較高的檢測(cè)正確率,但是在測(cè)試集上的檢測(cè)正確率開始降低。當(dāng)隱藏節(jié)點(diǎn)數(shù)量為10時(shí),基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)在訓(xùn)練集、測(cè)試集上檢測(cè)正確率最高,分別為81.15%、75.52%,此時(shí)誤差矩陣見表6。
表6 基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)在訓(xùn)練集、測(cè)試集上的誤差矩陣
當(dāng)隱藏節(jié)點(diǎn)數(shù)量為20時(shí),傳統(tǒng)檢測(cè)系統(tǒng)在訓(xùn)練集、測(cè)試集上的檢測(cè)正確率最高,分別為73.75%、71.97%?;赟nort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)(隱藏節(jié)點(diǎn)數(shù)量為10個(gè))和傳統(tǒng)檢測(cè)系統(tǒng)(隱藏節(jié)點(diǎn)數(shù)量為20個(gè))在訓(xùn)練集上檢測(cè)正確率的變化情況如圖3所示。由試驗(yàn)可知,基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)的檢測(cè)正確率比傳統(tǒng)檢測(cè)系統(tǒng)高。
在精確率方面,處于不同隱藏節(jié)點(diǎn)條件下,基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)和傳統(tǒng)檢測(cè)系統(tǒng)在訓(xùn)練集、測(cè)試集上的精確率見表7。結(jié)果表明,當(dāng)選擇相同隱藏節(jié)點(diǎn)時(shí),基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)在訓(xùn)練集、測(cè)試集上的檢測(cè)精確率比傳統(tǒng)檢測(cè)系統(tǒng)高。
表7 精確率比較
在誤報(bào)率方面,處于不同隱藏節(jié)點(diǎn)條件下,基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)和傳統(tǒng)檢測(cè)系統(tǒng)在訓(xùn)練集、測(cè)試集上的誤報(bào)率見表8。結(jié)果表明,當(dāng)選擇不同隱藏節(jié)點(diǎn)時(shí),基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)在測(cè)試集上的誤報(bào)率比同等條件下傳統(tǒng)檢測(cè)系統(tǒng)的誤報(bào)率低。在訓(xùn)練集上,當(dāng)隱藏節(jié)點(diǎn)為20時(shí),基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)的誤報(bào)率比同等條件下傳統(tǒng)檢測(cè)系統(tǒng)的誤報(bào)率高。
表8 誤報(bào)率比較
綜上所述,Botnet網(wǎng)絡(luò)會(huì)對(duì)互聯(lián)網(wǎng)安全造成嚴(yán)重威脅,關(guān)于其檢測(cè)系統(tǒng)的研究也是當(dāng)今網(wǎng)絡(luò)安全領(lǐng)域的核心課題。Botnet網(wǎng)絡(luò)通過多種傳播手段使大量主機(jī)感染病毒,需要有效的檢測(cè)方法對(duì)其進(jìn)行防御,因此該文設(shè)計(jì)了一種基于Snort的Botnet網(wǎng)絡(luò)檢測(cè)系統(tǒng)。試驗(yàn)結(jié)果表明,與傳統(tǒng)檢測(cè)系統(tǒng)相比,該系統(tǒng)具有較高的檢測(cè)率和較低的誤報(bào)率,可以提高Botnet網(wǎng)絡(luò)檢測(cè)的正確率,能夠?qū)崟r(shí)檢測(cè)惡意網(wǎng)絡(luò)流量、攻擊行為。在后續(xù)研究中,應(yīng)改進(jìn)系統(tǒng)的匹配算法,從而進(jìn)一步提高檢測(cè)精度。