摘 要:文章提出了Web應(yīng)用防火墻的組成和功能,較詳細(xì)的介紹和分析了實(shí)現(xiàn)網(wǎng)頁(yè)保護(hù)的技術(shù)原理和實(shí)現(xiàn)方法,它可以識(shí)別黑客攻擊,并且根據(jù)應(yīng)用層的會(huì)話請(qǐng)求,處理應(yīng)用層信息。專門(mén)保護(hù)Web應(yīng)用通信流和所有相關(guān)的應(yīng)用資源,避免遭受來(lái)自Web協(xié)議或應(yīng)用程序漏洞方面的攻擊。并將該技術(shù)在校園網(wǎng)站安全保護(hù)中進(jìn)行了實(shí)際應(yīng)用。
關(guān)鍵詞:網(wǎng)頁(yè)保護(hù);散列函數(shù);網(wǎng)絡(luò)安全;報(bào)文摘要
中圖法分類號(hào):TP393
隨著Internet網(wǎng)絡(luò)技術(shù)的發(fā)展和普及,越來(lái)越多的高校建立了自己的web站點(diǎn),其應(yīng)用系統(tǒng)也開(kāi)始向Internet平臺(tái)轉(zhuǎn)移。由于校園網(wǎng)站數(shù)量的迅速增長(zhǎng),隨之而來(lái)的安全問(wèn)題也日益突出,學(xué)校網(wǎng)站常常成為黑客攻擊的對(duì)象,黑客通過(guò)各種手段攻擊網(wǎng)站服務(wù)器系統(tǒng),從而獲取、破壞、篡改網(wǎng)站重要信息,給學(xué)校的教學(xué)等工作造成重大的損失和惡劣的社會(huì)影響。如何防止不法黑客對(duì)網(wǎng)站的惡意攻擊,如何保證學(xué)校網(wǎng)站頁(yè)面不被篡改,防止重要數(shù)據(jù)受到損失,已經(jīng)成為網(wǎng)絡(luò)安全技術(shù)的一個(gè)亟待解決的問(wèn)題。針對(duì)這種現(xiàn)狀,Web應(yīng)用防火墻(web application firewall以下簡(jiǎn)稱WAF)應(yīng)運(yùn)而生,它是一種網(wǎng)頁(yè)監(jiān)控與恢復(fù)系統(tǒng),基于對(duì)HTTP/HTTPS流量的雙向分析,對(duì)網(wǎng)站頁(yè)面進(jìn)行實(shí)時(shí)監(jiān)控,主動(dòng)發(fā)現(xiàn)Web頁(yè)面內(nèi)容是否被非法改動(dòng),一旦發(fā)現(xiàn)被非法篡改,可立即進(jìn)行恢復(fù)。
1 WAF總體架構(gòu)與技術(shù)實(shí)現(xiàn)方法
1.1 WAF系統(tǒng)組成
網(wǎng)頁(yè)防篡改系統(tǒng)主要通過(guò)網(wǎng)絡(luò)掃描網(wǎng)站的網(wǎng)頁(yè),實(shí)時(shí)監(jiān)控Web站點(diǎn),監(jiān)測(cè)Web站點(diǎn)網(wǎng)頁(yè)是否被修改,當(dāng)發(fā)現(xiàn)Web站點(diǎn)上的文件被破壞或非法修改后,系統(tǒng)能夠自動(dòng)報(bào)警,并迅速恢復(fù)被破壞的文件,有效的保證Web數(shù)據(jù)的完整性和真實(shí)性。主要功能有實(shí)時(shí)監(jiān)測(cè)Web站點(diǎn),網(wǎng)頁(yè)恢復(fù),網(wǎng)站頁(yè)面下載備份,實(shí)時(shí)報(bào)警,監(jiān)測(cè)Web站點(diǎn)的動(dòng)態(tài)管理,日志管理等功能[1]。從功能上將系統(tǒng)分為三個(gè)部分備份端、監(jiān)控端、控制端。監(jiān)控端部署在網(wǎng)站系統(tǒng)服務(wù)器上,對(duì)于突破網(wǎng)站防火墻的篡改行為,進(jìn)行實(shí)時(shí)監(jiān)控,確保網(wǎng)站信息安全。一旦發(fā)現(xiàn)網(wǎng)站信息被篡改之后,立刻通知備份端,迅速恢復(fù)正常的網(wǎng)頁(yè)文件。備份端保存被保護(hù)對(duì)象(網(wǎng)頁(yè)、圖片等文件)的備份,等待來(lái)自監(jiān)控端的連接。響應(yīng)監(jiān)控端的請(qǐng)求(備份文件、恢復(fù)文件、刪除文件)??刂贫税惭b在網(wǎng)管員的計(jì)算機(jī)上,作為用戶與系統(tǒng)之間的接口,負(fù)責(zé)傳達(dá)操作指令,以及實(shí)時(shí)接收來(lái)自代理端的各種告警信息并及時(shí)通知用戶。流程模型如圖1所示。
1.2 WAF監(jiān)控原理
WAF的基本理論基礎(chǔ)就是密碼學(xué)中的數(shù)字摘要技術(shù),將單向散列函數(shù)作用于網(wǎng)頁(yè)、圖片文件,得到一個(gè)固定的散列碼。這個(gè)散列碼就像“指紋”一樣,只要文件發(fā)生任何一絲變化,再次通過(guò)散列函數(shù)計(jì)算出的散列碼肯定不同,依此作為網(wǎng)頁(yè)防篡的依據(jù)。散列函數(shù)H是一個(gè)公開(kāi)的函數(shù),它將任意長(zhǎng)度的報(bào)文M變換成固定程度的散列碼h,散列函數(shù)表示為h=H(M),它生成的保文所獨(dú)有的“指紋”[2]。散列函數(shù)是一種算法,算法的輸出內(nèi)容稱為散列碼或報(bào)文摘要,報(bào)文摘要要唯一地對(duì)應(yīng)原始報(bào)文,如果原始報(bào)文改變并且再次通過(guò)散列函數(shù),它將生成不同的報(bào)文摘要,因此散列函數(shù)可以用來(lái)監(jiān)測(cè)報(bào)文的完整性。只要檢測(cè)到網(wǎng)頁(yè)被篡改,那么恢復(fù)就簡(jiǎn)單了,檢測(cè)篡改日志,利用超級(jí)管理員的或者高級(jí)別的用戶將正確的網(wǎng)頁(yè)拷貝過(guò)來(lái)覆蓋就可以了。
1.3 Web頁(yè)面保護(hù)實(shí)現(xiàn)
WAF的關(guān)鍵是對(duì)網(wǎng)頁(yè)文件進(jìn)行校驗(yàn)。在對(duì)網(wǎng)頁(yè)進(jìn)行完整性校驗(yàn)前,首先對(duì)需要保護(hù)的網(wǎng)頁(yè)文件列表進(jìn)行散列函數(shù)處理,提取信息,生成用于比較的文件報(bào)文摘要校驗(yàn)數(shù)據(jù)。然后再定期將這些文件的報(bào)文摘要與原始文件的報(bào)文摘要進(jìn)行比較。下面以要保護(hù)的網(wǎng)頁(yè)是基于IIS的ASP網(wǎng)站為例使用VB的代碼來(lái)實(shí)現(xiàn)文件篡改的檢測(cè)和恢復(fù)。首先創(chuàng)建基于VB的MD5散列碼生成函數(shù),掃描每個(gè)動(dòng)態(tài)網(wǎng)頁(yè)增加一段代碼,實(shí)現(xiàn)自我的MD5生成并且檢測(cè)是否和步驟3中數(shù)據(jù)記錄文件中的MD5碼相同,如果不同則判定文件被篡改,將備份文件覆蓋被篡改的文件[3]。最后將生成每個(gè)動(dòng)態(tài)網(wǎng)頁(yè)MD5碼并且存儲(chǔ)在數(shù)據(jù)記錄文件中。MD5散列碼的應(yīng)用已經(jīng)很廣,其算法非常的成熟,參照網(wǎng)絡(luò)一些代碼和算法,做了基于VB5的MD5加密函數(shù),供掃描時(shí)生成MD5碼之用和網(wǎng)頁(yè)自檢時(shí)調(diào)用。
為了實(shí)現(xiàn)網(wǎng)頁(yè)的自我檢測(cè),我們需要在每個(gè)網(wǎng)頁(yè)的頁(yè)首包含一段自檢的代碼,實(shí)現(xiàn)給自己生成MD5碼并且去比較是否和記錄中的值相同。MD5.asp代碼中存放著生成MD5碼的函數(shù),在頁(yè)面加載的時(shí)候自動(dòng)啟動(dòng)這段代碼實(shí)現(xiàn)自檢和比較的判斷,如果不符則停止響應(yīng),同時(shí)調(diào)用恢復(fù)函數(shù)恢復(fù)被篡改文件。下面是MD5.asp文件中的部分代碼:
public function checkMd5(fileName)
originName=fileName
dim isFirst /*是否是第一次初始化,0代表不是,1是*/
create the fso object
set fso=Server.Createobject(\"Scripting.FileSystemObject\")
path=fileName
dim fstring
set file=fso.opentextfile(path,1)
……
end function
/*恢復(fù)文件函數(shù)*/
function RecoverFile(urlStr)
Dim fstring
set fso=Server.Createobject(\"Scripting.FileSystemObject\")
if err.number=0 then
Response.Write/*已經(jīng)修復(fù),請(qǐng)刷新*/
end if
Set fso=Nothing
end function
<%
checkMD5(Request.ServerVariables(“URL”))
str=Request.ServerVariables(“URL”)
str=server.MapPath(str)
checkMD5(str)
%>
利用vb的遞歸函數(shù)遞歸掃描所有擴(kuò)展名是ASP的文件,給每個(gè)文件的頭部增加一行<!--#include virtual=/security/localhost/md5.asp-->,同時(shí)將md5.asp拷貝到根目錄的security/localhost子目錄下。在修改文件之后直接將文件讀取成一字符串,計(jì)算其MD5碼,將它寫(xiě)入和md5.asp相同的目錄下,名字改為md5.asp。在 IIS 管理器中,展開(kāi)本地計(jì)算機(jī),展開(kāi)“網(wǎng)站”文件夾,右鍵單擊網(wǎng)站、目錄或文件,然后單擊“屬性”。 單擊“文檔”選項(xiàng)卡,然后選中“啟用文檔頁(yè)腳”復(fù)選框。 在“啟用文檔頁(yè)腳”下面的框中,輸入頁(yè)腳文件的完整本地路徑,或者單擊“瀏覽”以找到該文件,單擊“確定”。將這個(gè)代碼嵌入IIS的全局環(huán)境中。確的網(wǎng)頁(yè)拷貝過(guò)來(lái)覆蓋就可以了。
2 WAF在校園網(wǎng)站中的應(yīng)用
目前校園網(wǎng)站主要的保護(hù)措施是利用防火墻進(jìn)行的被動(dòng)防御技術(shù),雖然能夠較好的防范校園網(wǎng)外部的攻擊,但目前從網(wǎng)絡(luò)攻擊趨勢(shì)看百分之八十的攻擊來(lái)自網(wǎng)絡(luò)內(nèi)部,如何較好地防范校園網(wǎng)內(nèi)尤其是對(duì)黑客攻擊非常感興趣的學(xué)生是一大難題,目前為了更好的防止內(nèi)部攻擊問(wèn)題,有效的方法就是將WAF在校園網(wǎng)站。校園網(wǎng)Web服務(wù)器的進(jìn)行應(yīng)用要做的準(zhǔn)備工作就是將WAF系統(tǒng)模型安裝好,備份端裝在FTP服務(wù)器上,監(jiān)控端安裝在校園網(wǎng)站的Web服務(wù)器,控制端安裝在校園網(wǎng)站的管理工作站上。首先啟動(dòng)保護(hù)工作:要在校園網(wǎng)站W(wǎng)eb服務(wù)器啟動(dòng)監(jiān)控端服務(wù),網(wǎng)站這時(shí)處于網(wǎng)頁(yè)的保護(hù)狀態(tài);其次是網(wǎng)頁(yè)保護(hù)設(shè)置、監(jiān)控管理工作:在控制端登陸控制臺(tái),連接監(jiān)控端主機(jī)進(jìn)行設(shè)置,進(jìn)行用戶管理,添加或刪除監(jiān)控的目標(biāo)文件或目錄,設(shè)置備份端服務(wù)器,是否報(bào)警,平時(shí)要注意日志文件的觀察,通過(guò)監(jiān)控和恢復(fù)頁(yè)面的工作日志,能夠查詢到系統(tǒng)對(duì)被篡改的頁(yè)面進(jìn)行的操作結(jié)果,即查看對(duì)校園網(wǎng)主頁(yè)的篡改和恢復(fù)情況;最后是暫停保護(hù)工作:當(dāng)進(jìn)行網(wǎng)站維護(hù),上傳修改網(wǎng)頁(yè)時(shí)要停止。校園網(wǎng)服務(wù)器監(jiān)控端監(jiān)測(cè)服務(wù),當(dāng)網(wǎng)站維護(hù)完畢時(shí),要及時(shí)啟用保護(hù)和監(jiān)控工作[5]。
3 結(jié)束語(yǔ)
隨著黑客對(duì)網(wǎng)站的攻擊手段的不斷變化,在校園網(wǎng)內(nèi)配置硬件防火墻等被動(dòng)的防御技術(shù)已不能完全保障校園網(wǎng)站的絕對(duì)安全。利用事后保護(hù)Web頁(yè)面的WAF可對(duì)校園網(wǎng)站頁(yè)面進(jìn)行實(shí)時(shí)監(jiān)控,及時(shí)恢復(fù)被惡意篡改的Web頁(yè)面信息。本文希望能為校園網(wǎng)站管理者在Web服務(wù)器的安全管理中起到一定的借鑒作用。
參考文獻(xiàn):
[1]黃明祥,林詠章.信息與網(wǎng)絡(luò)安全概論[M].北京:清華大學(xué)出版社,2011:119-122.
[2]魯寅輝.基于網(wǎng)頁(yè)對(duì)比的校園二級(jí)網(wǎng)站防篡改監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2011:119-121.
[3]羅躍國(guó).一種網(wǎng)頁(yè)實(shí)時(shí)防篡改技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[J].石家莊學(xué)院學(xué)報(bào),2011:66-68.
[4]王勇,何倩,何勝韜.基于文件過(guò)濾驅(qū)動(dòng)的網(wǎng)頁(yè)防篡改方法研究[J].桂林電子科技大學(xué)學(xué)報(bào),2010:432-435.
[5]尉阮杰,宏濤.一種新的動(dòng)態(tài)網(wǎng)頁(yè)程序的防篡改系統(tǒng)[J].信息安全,2010:71-73