【摘要】:針對(duì)日前常見的Web服務(wù)器安全威脅設(shè)計(jì)并實(shí)現(xiàn)了一套Web入侵防御系統(tǒng)。系統(tǒng)通過制定安全策略來檢測(cè)所有訪問Web服務(wù)器的行為,可以有效地阻止常見的攻擊從而保護(hù)Web服務(wù)器的安全。由于系統(tǒng)的策略引擎支持加載和調(diào)用Lua語言編寫的策略腳本,使策略腳本的編寫更加簡(jiǎn)單、靈活。
【關(guān)鍵詞】:Web入侵防御;網(wǎng)絡(luò)安全;Lua
1.幾種常見的Web服務(wù)器而臨的威脅
1.1緩沖區(qū)溢出
緩沖區(qū)溢出攻擊是利用緩沖區(qū)溢出漏洞所進(jìn)行的攻擊行動(dòng),具體是指當(dāng)計(jì)算機(jī)向緩沖區(qū)內(nèi)填充數(shù)據(jù)位數(shù)時(shí)超過了緩沖區(qū)本身的容量,溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上,進(jìn)而進(jìn)行威脅。而目前這種緩沖區(qū)溢出是很難杜絕的,因?yàn)閃eb服務(wù)器的開發(fā)的測(cè)試階段不可能對(duì)所有客戶端提交的數(shù)據(jù)進(jìn)程檢測(cè),所以并不能保證Web服務(wù)器上完全沒有緩沖區(qū)溢出。
1.2 SQL注入攻擊
SQL注入攻擊是黑客對(duì)數(shù)據(jù)庫進(jìn)行攻擊的常用手段之一,由于程序員的水平及經(jīng)驗(yàn)也參差不齊,相當(dāng)大一部分程序員在編寫代碼的時(shí)候,沒有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患。
1.3基于腳本的DDos攻擊
DDos的攻擊策略側(cè)重于通過很多“僵尸主機(jī)”(被攻擊者入侵過或可間接利用的主機(jī))向受害主機(jī)發(fā)送大量看似合法的網(wǎng)絡(luò)包,從而造成網(wǎng)絡(luò)阻塞或服務(wù)器資源耗盡而導(dǎo)致拒絕服務(wù)。
2.Web入侵防御系統(tǒng)的設(shè)計(jì)
2. 1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
為了適用于不同的Web服務(wù)器平臺(tái),系統(tǒng)采用分層的體系結(jié)構(gòu)設(shè)計(jì)。Web入侵防御系統(tǒng)主要分3層。
(1)解析及響應(yīng)層。解析及響應(yīng)層為整個(gè)防御系統(tǒng)提供解析客戶端發(fā)送的HTTP報(bào)文請(qǐng)求和封裝服務(wù)器響應(yīng)報(bào)文的接口。當(dāng)有客戶端訪問服務(wù)器時(shí),解析及響應(yīng)層通知策略引擎調(diào)度策略檢測(cè)客戶端的訪問信息,并為策略引擎提供響應(yīng)的實(shí)現(xiàn)。
(2)策略引擎層。策略引擎層的作用是策略的調(diào)度,在策略中通過“解析及響應(yīng)層”提供的接口獲取客戶端的信息,具體的響應(yīng)也交給“解析及響應(yīng)層”完成。同時(shí)策略引擎還需要調(diào)度數(shù)據(jù)管理層完成策略的加載,以及日志記錄的功能。
(3)數(shù)據(jù)管理層。數(shù)據(jù)管理層提供日志記錄、配置管理及策略腳本解析的功能。對(duì)數(shù)據(jù)進(jìn)行處理的過程都是在這一層里完成。
系統(tǒng)每一層功能都相對(duì)獨(dú)立,當(dāng)某一層的實(shí)現(xiàn)發(fā)生變化時(shí),只要提供的接口沒有變化,對(duì)其他幾層就沒有影響。這樣的結(jié)構(gòu)設(shè)計(jì)的最大優(yōu)點(diǎn)是使系統(tǒng)具有良好的擴(kuò)展性。
2.2系統(tǒng)功能模塊設(shè)計(jì)
依據(jù)Web入侵防御系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)和功能需求,系統(tǒng)由以下主要的功能模塊構(gòu)成,下面將簡(jiǎn)單介紹各個(gè)功能模塊的作用。
(1)管理模塊。負(fù)責(zé)管理和連接系統(tǒng)各個(gè)模塊,管理數(shù)據(jù)流,讀取配置文件后完成整個(gè)系統(tǒng)的初始化,對(duì)整個(gè)系統(tǒng)的狀態(tài)進(jìn)行管理:運(yùn)行,停止,重新加載。
(2)配置文件模塊。主要完成配置文件的讀取及保存。提供統(tǒng)一的接口,具體實(shí)現(xiàn)可以根據(jù)需要而作修改。
(3)HTTP報(bào)文的解析模塊。利用Web服務(wù)器提供的接口,對(duì)客戶端訪問Web服務(wù)器時(shí)提交的原始數(shù)據(jù)進(jìn)行解析,并通知管理模塊收到客戶端的訪問請(qǐng)求,請(qǐng)求策略引擎檢測(cè)客戶端的訪問行為。HTTP報(bào)文解析模塊中會(huì)為每一個(gè)客戶端生成一個(gè)實(shí)現(xiàn)了能檢測(cè)客戶端相關(guān)信息的接口對(duì)象。在一般的Web腳本(例如,ASP ,ASP.NET ,PHP等等)中也會(huì)有這樣一種獲取客戶端信息的接口。
(4)策略引擎模塊。策略引擎首先對(duì)策略腳本進(jìn)行解析,根據(jù)策略的屬性和優(yōu)先級(jí)組裝策略鏈。當(dāng)管理模塊通知策略引擎對(duì)某一個(gè)客戶端的信息進(jìn)行檢測(cè)時(shí),策略引擎利用HTTP報(bào)文解析模塊提供的接口獲取所需的客戶端信息,檢測(cè)客戶端請(qǐng)求的各個(gè)字段,對(duì)客戶端的行為進(jìn)行分析或記錄,再依次調(diào)度策略鏈中的策略來控制對(duì)客戶端不同的行為進(jìn)行響應(yīng)。
(5)日志模塊。日志模塊的作用是對(duì)系統(tǒng)運(yùn)行時(shí)產(chǎn)生的日志或?qū)θ肭址烙袨榈倪M(jìn)行記錄。使用統(tǒng)一的格式將日志信息記錄在文本文件中。由于系統(tǒng)采用分層的體系結(jié)構(gòu),所以這一模塊可以方便的替換成其他格式的日志記錄方式。
2.3系統(tǒng)處理流程
系統(tǒng)的處理流程是:接收客戶端發(fā)送的HTTP請(qǐng)求,將原始的請(qǐng)求數(shù)據(jù)報(bào)文提交給HTTP報(bào)文解析模塊解析,報(bào)文解析模塊通知策略引擎模塊對(duì)解析后的數(shù)據(jù)進(jìn)行檢測(cè),策略引擎模塊則依據(jù)策略腳本中編寫的策略,通知HTTP響應(yīng)模塊對(duì)客戶端的行為做出響應(yīng),并依據(jù)策略,通知日志記錄模塊記錄相應(yīng)的日志。
3.Web入侵防御系統(tǒng)的實(shí)現(xiàn)
3.1使用ISAPI Filter獲取HTTP報(bào)文信息
ISAPI Filter提供了Get Filter Version和Http Filter Proc兩個(gè)回調(diào)函數(shù)。
(1)Get FilterVersion:當(dāng)IIS加載ISAPI Filter的DLL時(shí),會(huì)調(diào)用此函數(shù)。通過這個(gè)函數(shù),可以設(shè)置ISAPI Filter的優(yōu)先級(jí)和確定請(qǐng)求的事件。
(2)Http Filter Proc:當(dāng)對(duì)應(yīng)的事件發(fā)生時(shí),服務(wù)器通過調(diào)用ISAPI Filter事件注冊(cè)的每個(gè)篩選器。可以通過Http Filter Proc以提供特殊的事件處理。當(dāng)Http Filter Proc被調(diào)用時(shí),接收到的通知將確定如何處理該事件。
3.2使用ISAPI進(jìn)行Http響應(yīng)
(1)拒絕訪問:ISAPI Filter中直接返回SF_STATUS_REQ_FINISHED時(shí),IIS服務(wù)器就會(huì)斷開和客戶端的連接。
(2)發(fā)送文件:發(fā)送文件的實(shí)現(xiàn)和發(fā)送信息的實(shí)現(xiàn)類似,只是第2個(gè)參數(shù)換成了要發(fā)送文件的路徑,發(fā)送的文件內(nèi)容從該路徑指定的文件中讀取。
(3)重定向:將服務(wù)器端響應(yīng)的HTTP報(bào)頭中的狀態(tài)碼設(shè)置為“302 Moved Permanently \",同時(shí)設(shè)置報(bào)頭中的Location為要轉(zhuǎn)向的地址。客戶端的瀏覽器在收到這樣的報(bào)文后會(huì)重新去訪問新的地址。
4.結(jié)語
總之,網(wǎng)絡(luò)技術(shù)是個(gè)系統(tǒng)工程,不能僅靠防火墻來抵御威脅,要考慮到系統(tǒng)整體的安全,在這里希望大家都能夠在安全、高效的網(wǎng)絡(luò)中暢游。
參考文獻(xiàn):
[1]盧娜. 基于聯(lián)動(dòng)的網(wǎng)絡(luò)入侵防御系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢科技大學(xué),2008.
[2]王剛. 一種分布式網(wǎng)絡(luò)入侵防御系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].天津大學(xué),2007.
[3]聶林. 合作式入侵防御系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2005.
[4]黃小華. 智能化入侵檢測(cè)與防御系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2005.
[5]鄧發(fā)喬. 入侵防御系統(tǒng)研究與設(shè)計(jì)實(shí)現(xiàn)[D].電子科技大學(xué),2004.