郭曉軍
摘要:本地網(wǎng)絡(luò)同類型Bot獲取命令控制信息過程存在網(wǎng)絡(luò)流量相似性,容易被檢測與識別。針對該問題,該文提出一種基于AKP廣播報文的本地網(wǎng)絡(luò)同類型Bot命令控制信息獲取方法,該方法僅允許產(chǎn)生的本地網(wǎng)絡(luò)同類型Bot代表獲取和分發(fā)命令控制信息,降低了網(wǎng)絡(luò)流量相似性,提高了該過程的隱蔽性。
關(guān)鍵詞:僵尸網(wǎng)絡(luò);命令控制信息;Address Resolution Protocol
中圖分類號:TP309 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)22-0054-02
1概述
Botnet是由一組被特制惡意代碼感染計算機、智能手機等終端設(shè)備構(gòu)成的可控邏輯網(wǎng)絡(luò)平臺。這些被感染的設(shè)備稱為Bot。Botnet控制者只有向Bot發(fā)送命令控制(Command andControl,C&C)信息才能實現(xiàn)攻擊或破壞功能。因此,Bot能夠準(zhǔn)確地獲取命令控制信息是Botnet發(fā)揮作用的關(guān)鍵所在。
目前已發(fā)現(xiàn)的多種類型Botnet中,其Bot獲取C&C信息的方法仍然是Bot直接與命令控制服務(wù)器通信的方式。但當(dāng)本地局域網(wǎng)內(nèi)同時存在同一類別Botnet的多個Bot時,這些Bot都會與相同或相似的命令控制服務(wù)器取得通信,在本地網(wǎng)絡(luò)內(nèi)會產(chǎn)生較為相似的流量信息(如IP地址、流數(shù)目、DNS等),這些信息會被網(wǎng)絡(luò)流量行為相似性檢測、IP地址相似性檢測等方法所識別,暴露出本地網(wǎng)絡(luò)中這些同類Bot的位置,從而暴露出整個Botnet,導(dǎo)致Botnet無法正常運行。
針對上述問題,本文提出一種基于ARP協(xié)議(Address Reso-lution Protoc01)的面向本地網(wǎng)絡(luò)Bot命令控制信息獲取方法CIARP,其核心思想是首先在本地網(wǎng)絡(luò)內(nèi)產(chǎn)生一個同類Bot的代表BotL,然后僅由該代表BotL與命令控制服務(wù)器進(jìn)行通信,在獲取C&C信息后,BOtL通過本地網(wǎng)絡(luò)的ARP報文將所獲取的C&C信息發(fā)送給本地網(wǎng)絡(luò)的其它Bot,能有效避開行為相似性檢測,提高了同類Bot獲取C&C信息過程的安全性。
2CIARP方法過程
CIARP方法主要是BotL通過利用ARP報文將所獲得的C&C信息發(fā)送給本地網(wǎng)絡(luò)其它Bot,主要因此包括notL產(chǎn)生過程與利用ARP協(xié)議發(fā)送C&C信息過程。
2.1Bok產(chǎn)生過程
BotL是整個本地網(wǎng)絡(luò)內(nèi)所有同類型Bot的代表,也是僅允許與命令控制服務(wù)器通信的唯一Bot,其作用是先從命令控制服務(wù)器上安全獲取C&C信息,然后再將C&C信息發(fā)送給本地網(wǎng)絡(luò)內(nèi)的其他Bot。這樣就能減少與命令控制服務(wù)器的本地網(wǎng)絡(luò)內(nèi)Bot數(shù)量,從而極大降低被流量行為相似性識別的概率,避免了本地網(wǎng)絡(luò)內(nèi)的Bot被暴露的可能性。
關(guān)于選擇本地網(wǎng)絡(luò)內(nèi)的哪個Bot作為BotL,有很多方法,如采用選舉方法、指派方法等。本文此處借用ARP報文來進(jìn)行產(chǎn)生,圖1給出ARP報文格式,具體過程如下:
(1)每間隔時間T,本地網(wǎng)絡(luò)內(nèi)所有Bot都發(fā)送包含自己IP地址的ARP廣播報文。即每個Bot將自己的IP地址、MAC物理地址填在圖1中對應(yīng)的位置,同時目的MAC地址和目的IP地址可以使用本地網(wǎng)絡(luò)的網(wǎng)關(guān)地址填充,如圖2所示,以方便偽裝在本地網(wǎng)絡(luò)其它ARP流量中。鑒于僵尸網(wǎng)絡(luò)存在周期性特點,間隔時間T的大小,可設(shè)置在周期內(nèi)的某個固定時刻來確定。
(2)所有本地網(wǎng)絡(luò)內(nèi)的Bot接收(1)中來自其他Bot構(gòu)造的ARP廣播報文,并且讀取報文中的源IP地址,并與自身IP地址進(jìn)行比較排序。由于本地網(wǎng)絡(luò)內(nèi)的BotIP地址網(wǎng)絡(luò)號相同,因此為簡單起見,本文此處選出主機號最大或最小的IP地址所對應(yīng)的Bot作為BotL。
至此,本地網(wǎng)絡(luò)內(nèi)同類Bot的代表BotL被確定出來,且僅允許BotL與命令控制服務(wù)器通信以獲取C&C信息。為保證獲取C&C信息的安全性,可使用較為隱蔽的方式來獲取,如基于信息隱藏、基于加密等方法。
2.2C&C信息發(fā)送過程
當(dāng)BotL獲取到C&C信息后,可能會包含有多條不同的指令信息,這些指令信息組合成列表,對于該列表中每項,可再次通過構(gòu)造ARP廣播報文而發(fā)送給本地網(wǎng)絡(luò)的其他Bot。
根據(jù)圖1可知,正常ARP廣播報文格式中分為9個字段,共計28個字節(jié)。為更好地利用ARP廣播報文向本地網(wǎng)絡(luò)內(nèi)的其他Bot發(fā)送C&C信息,本文對ARP廣播報文進(jìn)行重新構(gòu)建,將其分為4個字段,分別為ID、SegID、FIN以及Content字段,其含義如表1所示。Bot。發(fā)送C&C信息列表中某條指令的過程如下:
Step1:BotL將C&C信息列表中的所有指令賦予唯一的編號IDi,
Step2:BotL從C&C信息列表讀取一條指令I(lǐng)Di,構(gòu)造空的ARP廣播報文,使用IDi作為該報文的ID字段。
Step3:判斷指令I(lǐng)Di的內(nèi)容長度Length(IDi)是否大于23字節(jié),如果不大于,則轉(zhuǎn)Step4,否則將指令I(lǐng)Di的內(nèi)容利用式(1)分割為N個部分,再構(gòu)造Ⅳ個空的子ARP廣播報文,將編號1~N分別填入此Ⅳ個報文的SegID字段,1~N-1個子報文的FIN字段設(shè)置為0,且Content字段填人指令I(lǐng)Di內(nèi)容的1~N-1部分填入,然后再將第N個報文的FIN字段設(shè)置為1,并將指令I(lǐng)Di內(nèi)容N部分填入Content字段。至此,指令I(lǐng)Di的內(nèi)容就被N個ARP廣播報文所承載,轉(zhuǎn)Step5。
Step4:將ARP廣播報文的SegID設(shè)置為0,F(xiàn)IN設(shè)置為1,Content設(shè)置為指令I(lǐng)Di的內(nèi)容。
Step5:發(fā)送所構(gòu)造的所有ARP廣播報文,轉(zhuǎn)Step2以處理下一條C&C信息指令。
其他Bot在接收到來自BotL發(fā)送的ARP廣播報文后,再按照表1的格式讀取報文內(nèi)容,恢復(fù)出所包含的指令,以完成C&C信息的獲取過程。
3結(jié)論
為保證本地網(wǎng)絡(luò)內(nèi)的Bot較為安全地獲取C&C信息,本文給出基于ARP廣播報文的命令控制信息的發(fā)送方法,能有效偽裝在本地網(wǎng)絡(luò)的ARP流量中,不易被發(fā)覺,有效提高了Bot獲取C&C信息過程的安全性。endprint