當前位置:才華齋>設計>網頁設計>

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

網頁設計 閱讀(2.88W)

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伺服器的入侵安全,健康安全的網路環境是一個整體,需要依靠每個網路中的個體都配備上良好的安全配置才得以實現。