糯米文學吧

位置:首頁 > 設計 > 網頁設計

Web的入侵防禦系統的設計分享

0引言

Web的入侵防禦系統的設計分享

隨着網絡技術的不斷髮展和深入應用,人們對網絡的安全性和可管理性的要求也越來越高,與此同時網絡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 入侵 防禦 系統