智能主動(dòng)防御系統(tǒng)(08-100)
2.1.3 智能防火墻的實(shí)現(xiàn)
本文引用地址:http://m.butianyuan.cn/article/91772.htm智能防火墻的實(shí)現(xiàn)可以分為用戶態(tài)程序和NDIS中間層驅(qū)動(dòng)程序兩部分,如圖3所示。
圖3 智能防火墻的實(shí)現(xiàn)
1. 用戶態(tài)程序的實(shí)現(xiàn)
用戶態(tài)程序使用了WinPcap開(kāi)發(fā)庫(kù)和多線程技術(shù)。利用WinPcap可以實(shí)現(xiàn)捕獲原始數(shù)據(jù)包(包括在共享網(wǎng)絡(luò)上各主機(jī)發(fā)送/接收的以及相互之間交換的數(shù)據(jù)包)以及在網(wǎng)絡(luò)上發(fā)送原始的數(shù)據(jù)包;
本程序的監(jiān)聽(tīng)線程中使用了WinPcap的數(shù)據(jù)包捕獲功能,對(duì)到達(dá)主機(jī)每個(gè)網(wǎng)絡(luò)接口的數(shù)據(jù)包進(jìn)行分析。本程序的掃描線程則使用了WinPcap的發(fā)送原始數(shù)據(jù)包的功能,進(jìn)行局域網(wǎng)存活主機(jī)的掃描。
整個(gè)實(shí)現(xiàn)用戶態(tài)程序包括以下三部分的功能:
1) 與攻擊者進(jìn)行交互, 提取未知入侵特征碼
2) 將配置信息傳遞給NDIS中間層驅(qū)動(dòng)
3) 將NDIS中間層驅(qū)動(dòng)反饋信息提示給用戶
智能防火墻為了實(shí)現(xiàn)主機(jī)網(wǎng)絡(luò)的全面保護(hù),對(duì)每個(gè)網(wǎng)絡(luò)接口都啟動(dòng)了單獨(dú)的保護(hù)線程,因此對(duì)于裝有多網(wǎng)卡的計(jì)算機(jī),智能防火墻對(duì)每個(gè)接口都起到了保護(hù)作用。
2. 維護(hù)存活主機(jī)列表
程序內(nèi)部維護(hù)一張存活主機(jī)列表,并且定時(shí)對(duì)其進(jìn)行更新(10s)。由于列表中元素增刪操作比較頻繁,因此存活主機(jī)列表采用便于增刪操作的“單鏈表”描述。
更新存活主機(jī)列表由掃描和監(jiān)聽(tīng)兩個(gè)線程配合進(jìn)行:
1) 掃描線程:程序利用WinPcap逐一向網(wǎng)內(nèi)所有主機(jī)發(fā)出ARP請(qǐng)求數(shù)據(jù)包。
2) 監(jiān)聽(tīng)線程: 程序利用WinPcap對(duì)到達(dá)本機(jī)的ARP應(yīng)答數(shù)據(jù)包進(jìn)行分析,并對(duì)存活主機(jī)列表進(jìn)行更新。
3. 解決智能防火墻的相互干擾
當(dāng)局域網(wǎng)內(nèi)運(yùn)行有兩個(gè)或兩個(gè)以上的智能防火墻實(shí)例時(shí),其中一個(gè)實(shí)例在更新存活主機(jī)列表時(shí)會(huì)向每臺(tái)主機(jī)發(fā)出ARP請(qǐng)求,其中也包括向不存活主機(jī)發(fā)出的請(qǐng)求。如果不做任何處理,其它的智能防火墻就會(huì)認(rèn)為這是攻擊,就會(huì)向其進(jìn)行虛假應(yīng)答,從而導(dǎo)致該智能防火墻不能得到正確的存活主機(jī)列表。如果互相干擾那么智能防火墻就不能正常工作了。
為了解決這個(gè)問(wèn)題,我們?cè)谥悄芊阑饓Πl(fā)出的ARP請(qǐng)求數(shù)據(jù)包的附加數(shù)據(jù)區(qū)設(shè)置了標(biāo)志。智能防火墻就能明確是敵是友了。
4. 發(fā)現(xiàn)未知入侵
當(dāng)程序的監(jiān)聽(tīng)線程檢測(cè)到有ARP請(qǐng)求時(shí),檢查存活主機(jī)列表,如果發(fā)現(xiàn)是對(duì)未存活主機(jī)的ARP請(qǐng)求,則偽裝成目的主機(jī)給出虛假應(yīng)答。
當(dāng)智能防火墻給攻擊者發(fā)出虛假的ARP應(yīng)答時(shí),攻擊主機(jī)發(fā)送給不存活主機(jī)的數(shù)據(jù)都會(huì)發(fā)送給本機(jī)(智能防火墻)。智能防火墻的監(jiān)聽(tīng)線程會(huì)對(duì)接收到的數(shù)據(jù)包進(jìn)行分析并根據(jù)事先設(shè)置好的應(yīng)答規(guī)則對(duì)其進(jìn)行應(yīng)答,并對(duì)攻擊主機(jī)發(fā)送的數(shù)據(jù)包進(jìn)行特征提取,存入特征數(shù)據(jù)庫(kù)。
5. 特征提取采用的方法
入侵?jǐn)?shù)據(jù)包的特征提取是智能防火墻用戶態(tài)程序的核心工作,特征提取的好壞直接影響著整個(gè)防火墻系統(tǒng)的性能。智能防火墻采取的特征提取方法是:去掉數(shù)據(jù)包傳輸層以下的協(xié)議頭數(shù)據(jù),對(duì)剩余部分?jǐn)?shù)據(jù)(應(yīng)用層協(xié)議頭和應(yīng)用層數(shù)據(jù)體)進(jìn)行“摘要算法(MD5)”計(jì)算,計(jì)算的結(jié)果就是我們所要提取的入侵特征。這種特征提取方法具有結(jié)果唯一性和低存貯空間的特點(diǎn)。為在底層驅(qū)動(dòng)中進(jìn)行數(shù)據(jù)包特征的比對(duì)提供了便利。
評(píng)論