當前位置:學問君>人在職場>電腦培訓>

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

學問君 人氣:7.29K

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