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