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