- 相關(guān)推薦
Web的入侵防御系統(tǒng)的設(shè)計(jì)分享
0引言
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展和深入應(yīng)用,人們對網(wǎng)絡(luò)的安全性和可管理性的要求也越來越高,與此同時網(wǎng)絡(luò)hacker的攻擊方式,也變得越來越多樣化,技術(shù)的復(fù)雜程度也越來越高,網(wǎng)絡(luò)用戶使用網(wǎng)絡(luò)過程中常見的攻擊類型有:未經(jīng)授權(quán)的遠(yuǎn)程訪問、本地超級用戶的非法訪問、掃描與探查、拒絕服務(wù)攻擊以及惡意軟件包。
這就要求對用戶端發(fā)送的HTTP信息進(jìn)行分析比對,但這種報(bào)文解析的方式需要一種截獲下層原始報(bào)文的能力,這可以通過截獲傳輸層或網(wǎng)際層報(bào)文的實(shí)現(xiàn),所以我們通過Web服務(wù)器提供的接口僅僅截獲應(yīng)用層的HTTP報(bào)文。
要求用戶端口發(fā)起的檢測本身全面監(jiān)控用戶端口的行為是不夠的,因?yàn)槲覀冎恢烙脩舳丝诎l(fā)起的請求,但不知道如何在服務(wù)器響應(yīng)到用戶端口。由于完整的HTTP會話,包括用戶端口發(fā)送一個請求,服務(wù)器端響應(yīng)請求,那么服務(wù)器只監(jiān)控的內(nèi)容后,才作出回應(yīng)的HTTP會話將結(jié)束。如果Web服務(wù)器端口提供給用戶端口響應(yīng)HTTP數(shù)據(jù)包封裝的接口,當(dāng)我們試圖調(diào)用Web服務(wù)器也接口,而不是試圖組裝消息的HTTP。因此,這個入侵防御系統(tǒng)的核心是它的策略引擎,通過強(qiáng)大,靈活的策略引擎,實(shí)現(xiàn)功能檢測或異常檢測。
1體系結(jié)構(gòu)
通常一個系統(tǒng)會采用單層或者多層的體系結(jié)構(gòu)。單層的結(jié)構(gòu)將模塊都緊密連接在一起,模塊與模塊間都能交叉調(diào)用,多層的結(jié)構(gòu)劃分了不同功能的模塊,層與層之間是靠已經(jīng)定義好的接口進(jìn)行通信傳輸。單層結(jié)構(gòu)沒多層的結(jié)構(gòu)有良好的擴(kuò)展性,而單層結(jié)構(gòu)可以對模塊之間交互的更加高效。為了能使系統(tǒng)能夠適合不同的Web服務(wù)器平臺,綜合以上的因素考慮后,本系統(tǒng)采取了分層式體系結(jié)構(gòu)。圖1為本系統(tǒng)的體系結(jié)構(gòu)圖。如圖1所示,這個Web的入侵防御系統(tǒng)主要分層了以下三層:
圖1WebIPS的體系結(jié)構(gòu)
解析及響應(yīng)層:這一層的作用是為IPS提供解析客戶端HTTP報(bào)文請求以及封裝服務(wù)響應(yīng)報(bào)文的接口。當(dāng)客戶端要對服務(wù)器進(jìn)行訪問時,該層通知策略引擎調(diào)度策略,客戶端的訪問信息進(jìn)行檢測,并為策略引擎提供響應(yīng)。按照以上的分析結(jié)果,這一層由服務(wù)器提供的接口封裝實(shí)現(xiàn)。如圖2所示。
圖2WebIPS的解析與響應(yīng)流程
策略引擎:這一層的作用是策略調(diào)配,通過“解析及響應(yīng)層”提供的接口來獲取用戶端的信息,并交給“解析及響應(yīng)層”來完成。同時策略加載策略引擎的調(diào)配數(shù)據(jù)管理層來完成,以及日志記錄的功能。
數(shù)據(jù)管理:這一層主要提供日志記錄的信息、策略腳本解析及配置管理的功能。因此數(shù)據(jù)進(jìn)行處理過程都是在這一層里來處理完成。
每一層都獨(dú)立的完成功能,當(dāng)其中某層的發(fā)生變化時,只要接口沒有改變,對另外層沒有影響。這樣整體結(jié)構(gòu)就有較大的擴(kuò)展性,例如:我們可以把響應(yīng)層和解析的具體實(shí)現(xiàn)方法是由調(diào)用Web服務(wù)器的接口方式替換為直接截獲傳輸層網(wǎng)絡(luò)層封包的方式等。
2處理流程
WebIPS的處理流程圖2所示,具體流程如下:當(dāng)用戶端向發(fā)送HTTP請求的時候,解析模塊解析原始的數(shù)據(jù)報(bào)文經(jīng)HTTP報(bào)文,報(bào)文解析模塊會告知策略引擎模塊對用戶端的信息進(jìn)行排查檢測,策略引擎會根據(jù)策略腳本中編寫的策略,告知HTTP響應(yīng)模塊對用戶端的行為做出響應(yīng),并根據(jù)策略腳本中的策略,告知日志記錄信息模塊記錄相應(yīng)的日志。如圖3所示,依據(jù)WebIPS系統(tǒng)的處理流程及體系結(jié)構(gòu),系統(tǒng)主要模塊和實(shí)際作用如下:
圖3WebIPS的處理過程圖
IPS管理模塊
該模塊的主要工作是管理和連接IPS的各個功能模塊,同時管理和監(jiān)控?cái)?shù)據(jù)流,根據(jù)讀取配置文件的相關(guān)設(shè)置完成系統(tǒng)的初始化,對系統(tǒng)的信息狀態(tài)進(jìn)行管理:運(yùn)行、停止、重新加載。當(dāng)HTTP報(bào)文解析模塊告知有用戶端進(jìn)行訪問時,調(diào)用策略引擎對用戶端的信息進(jìn)行和行為進(jìn)行檢測,對策略引擎反饋的結(jié)果告知HTTP響應(yīng)模塊進(jìn)行響應(yīng)。
配置文件模塊
主要完成IPS配置文件的分析、讀取及保存,為IPS提供正確的接口,具體方式可以由管理需求進(jìn)行修改。
HTTP報(bào)文的解析模塊
主要通過服務(wù)器為IPS提供的接口,對用戶端訪問服務(wù)器的數(shù)據(jù)進(jìn)行解析,并通知IPS管理模塊已經(jīng)收到訪問請求,策略引擎檢測訪問用戶端的信息。HTTP完整的數(shù)據(jù)信息解析模塊中都有一個接口,來檢測用戶端口相關(guān)信息。在一般的Web腳本當(dāng)中都有這樣一個接口。
HTTP響應(yīng)模塊
當(dāng)需要針對用戶端口的行為進(jìn)行分析響應(yīng)時,在這一模塊中對完整的數(shù)據(jù)信息進(jìn)行組裝。提供下面幾種方式響應(yīng):調(diào)用了下一條策略、響應(yīng)接受請求、響應(yīng)斷開鏈接、響應(yīng)發(fā)送信息、響應(yīng)發(fā)送文件和重定向。
策略引擎模塊
策略引擎首先對系統(tǒng)預(yù)先制定好的策略腳本進(jìn)行解析比對,并依據(jù)設(shè)定的策略的不同屬性和優(yōu)先級組裝策略鏈。當(dāng)系統(tǒng)的管理員模塊通知策略引擎對用戶端口信息檢測的時候,策略引擎將利用HTTP報(bào)文分析模塊提供的接口獲得用戶端口的信息,分析用戶端口的行為模式,通過一次一次調(diào)配策略來控制用戶端口的訪問。在策略中,可以檢查偵測用戶端口請求的每個字段,并對用戶端口的行為進(jìn)行一次次分析比對或記錄信息,通過已經(jīng)定義好的規(guī)則對用戶端口的不同行為進(jìn)行回應(yīng)。如果沒有的策略回饋響應(yīng),則告知HTTP回應(yīng)模塊完成用戶端口的響應(yīng),并停止調(diào)配策略鏈以后的對應(yīng)策略。如果沒有任何的一種策略能對用戶端口的行為做出反應(yīng),策略引擎將返回到上一層的接受請求回應(yīng)。策略引擎需要封裝的HTTP完整的數(shù)據(jù)信息解析和回饋模塊,及日志記錄的信息模塊,供策略中調(diào)配。
3策略引擎的設(shè)計(jì)
策略引擎是整個的IPS的核心部分,同時可以加載兩種格式不同的策略,或者可以說策略也可以用兩種完全不同的方式表現(xiàn)出來,一種是應(yīng)用策略腳本的文件,一種是應(yīng)用C++編碼的C++類型的。雖然兩種不同格式的策略實(shí)現(xiàn)的方法不同,但是策略引擎的調(diào)配方法是一樣的。C++的效率比較高,而基于腳本驅(qū)動的策略,在編寫和修改時都十分的不方便。這種體系的結(jié)構(gòu)可以很方便的把策略不同的實(shí)現(xiàn)方法擴(kuò)充進(jìn)來。
在系統(tǒng)初始化進(jìn)程結(jié)束之后,如果收到用戶端口發(fā)來的訪問服務(wù)器請求,系統(tǒng)將為用戶端口的訪問進(jìn)行策略調(diào)配。策略的屬性需要進(jìn)行必要的設(shè)置,包括策略的名稱、類型、開啟狀態(tài)、加載狀態(tài)、優(yōu)先級、路徑。
3.1策略的加載
具體步驟如下:
。1)IPS管理模塊利用配置模塊來讀取管理員設(shè)定好的策略屬性列表,將策略名稱相同的項(xiàng)去掉,并將它作為策略引擎初始化的參數(shù)或者策略引擎重新加載的參數(shù)。
。2)策略引擎將按列表當(dāng)策略的型屬性、優(yōu)先級屬性,將策略由高級策略到低級策略的次序進(jìn)行排列。生成一個新的策略列表。
。3)若策略的開啟狀態(tài)屬性值不是Enable,將跳過此策略,繼續(xù)加載下一個策略。
(4)若加載器的屬性為C++,則使用C++的策略加載器進(jìn)行處理,如果是為腳本的就由相同屬性處理器進(jìn)行處理。如果是不能識別的就將跳過這個策略。否則加載器會將策略對象初始化。
(5)如果系統(tǒng)加載成功,該策略的狀態(tài)屬性值將被設(shè)置為Loaded,如果加載出現(xiàn)失敗,則將保持這個選項(xiàng)的狀態(tài)屬性值為Unload。由HTTP解析模塊提供具體實(shí)現(xiàn)方式。
。6)當(dāng)策略列表中的全部項(xiàng)都被處理完后,系統(tǒng)重新編輯該列表,同時把Loaded的項(xiàng)提取出來,形成策略調(diào)配用策略列表。
3.2策略的調(diào)配
策略對象中提供了兩個接口供策略引擎調(diào)配,其中一個是OnSend,另一個則是OnRecv。當(dāng)策略引擎是為偵測這個服務(wù)器端口發(fā)送的數(shù)據(jù)時,都是調(diào)用這個策略中的OnSend接口。而當(dāng)策略引擎是為檢測這個用戶端口的信息而調(diào)配策略的時候,都是調(diào)配的策略中的OnRecv接口。
策略引擎將按下列的步驟對策略鏈上面的策略進(jìn)行調(diào)配:
(1)依次按步驟(2)(3)調(diào)配策略鏈上的策略
(2)如果策略回饋的是一個“調(diào)配下一個策略”的響應(yīng)的時候,則調(diào)用下一條策略。
(3)如果策略回饋的不是“調(diào)用下一個策略”的響應(yīng)的時候,則停止調(diào)度策略鏈上后面的策略并返回該響應(yīng)。
(4)重復(fù)步驟(2)(3)直到策略全都調(diào)配結(jié)束,如果沒有策略的響應(yīng),則策略引擎回饋一個“接受請求”的響應(yīng)。
4總結(jié)
選取Kddcup99數(shù)據(jù)集對本系統(tǒng)進(jìn)行模擬檢測,通過檢測結(jié)果可認(rèn)定:本系統(tǒng)能夠?qū)ΤR姽纛愋妥龀稣_響應(yīng)。本系統(tǒng)為Web服務(wù)器管理員提供了腳本編寫的策略,使其能夠便捷地配置Web服務(wù)器的環(huán)境。這一系統(tǒng)僅適用于防御Web服務(wù)器的入侵安全,健康安全的網(wǎng)絡(luò)環(huán)境是一個整體,需要依靠每個網(wǎng)絡(luò)中的個體都配備上良好的安全配置才得以實(shí)現(xiàn)。
【W(wǎng)eb的入侵防御系統(tǒng)的設(shè)計(jì)分享】相關(guān)文章:
基于Web的MES系統(tǒng)安全架構(gòu)設(shè)計(jì)及分析10-16
Linux系統(tǒng)Web服務(wù)器性能測試01-23
面向電子商務(wù)的Web日志挖掘系統(tǒng)09-27
Web Workers加速移動Web應(yīng)用07-01
設(shè)計(jì)手繪技巧分享10-27
動畫聲音設(shè)計(jì)經(jīng)驗(yàn)分享12-03
首圖設(shè)計(jì)的方法分享08-27