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