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