段國(guó)云,陳 浩,黃 文,唐亞純
(1. 湖南科技學(xué)院 a. 網(wǎng)絡(luò)中心;b. 計(jì)算機(jī)與通信工程系,湖南 永州 425199;2. 湖南大學(xué)信息科學(xué)與工程學(xué)院,長(zhǎng)沙 410 082)
一種Web程序防篡改系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
段國(guó)云1a,陳 浩2,黃 文1b,唐亞純1a
(1. 湖南科技學(xué)院 a. 網(wǎng)絡(luò)中心;b. 計(jì)算機(jī)與通信工程系,湖南 永州 425199;2. 湖南大學(xué)信息科學(xué)與工程學(xué)院,長(zhǎng)沙 410 082)
常用Web服務(wù)器本身缺乏頁面完整性驗(yàn)證機(jī)制,無法防止站點(diǎn)文件被篡改。為確保文件的完整性,防止用戶訪問頁面被篡改,提出一種Web程序防篡改系統(tǒng)。采用MD5算法校驗(yàn)文件完整性的Web防篡改機(jī)制,計(jì)算目標(biāo)文件的數(shù)字指紋,運(yùn)用快照技術(shù)恢復(fù)被篡改文件,以解決多數(shù)防篡改系統(tǒng)對(duì)動(dòng)態(tài)站點(diǎn)保護(hù)失效及小文件恢復(fù)難的問題。描述防篡改系統(tǒng)的工作過程、功能結(jié)構(gòu)及實(shí)現(xiàn)方法。實(shí)驗(yàn)結(jié)果證明,與現(xiàn)有系統(tǒng)相比,該系統(tǒng)能有效完成篡改防護(hù)及快照恢復(fù)工作,在保障文件安全的同時(shí),對(duì)服務(wù)器工作效率影響極少。
防篡改;MD5算法;數(shù)字指紋;Web程序;篡改檢測(cè);文件恢復(fù)
網(wǎng)頁篡改是指攻擊者利用特定的手段或方法入侵目標(biāo)網(wǎng)站,并修改網(wǎng)站部分內(nèi)容或源代碼的攻擊行為,是當(dāng)前網(wǎng)絡(luò)安全中較為普遍的一種網(wǎng)站攻擊方式。據(jù)國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心(簡(jiǎn)稱CNCERT/CC)發(fā)布的2012年網(wǎng)絡(luò)安全年報(bào)和2013年各期周報(bào)報(bào)道,網(wǎng)站被篡改的數(shù)量呈增長(zhǎng)趨勢(shì),2012年比2011年增加了6.1%[1];2013年第44周統(tǒng)計(jì)境內(nèi)網(wǎng)站被篡改的數(shù)量比上周增加了2.2%[2]。網(wǎng)頁一旦被篡改且不能及時(shí)恢復(fù),將會(huì)給網(wǎng)站的所有者甚至整個(gè)社會(huì)帶來嚴(yán)重的損害和負(fù)面影響[3];尤其是政府網(wǎng)站帶政治色彩的篡改,給整個(gè)社會(huì)帶來不可估量的損失。當(dāng)今業(yè)界占統(tǒng)治地位的Web服務(wù)器有Apache、Nginx、IIS(Internet Information Services)等平臺(tái),它們對(duì)Web程序文件缺乏完整性保護(hù)機(jī)制,無法有效防止文件被篡改[4-5]。為減少Web程序被篡改,確保文件的完整性,本文提出一種Web程序防篡改系統(tǒng)。
標(biāo)識(shí)程序未遭破壞的指標(biāo)是程序的完整性[6]。因而,網(wǎng)頁防篡改的目標(biāo)是保證Web程序的完整性,阻止Web程序中的代碼或數(shù)據(jù)被非法篡改,檢測(cè)篡改并做出及時(shí)的響應(yīng),對(duì)被篡改的程序做臨時(shí)處理后響應(yīng)客戶端請(qǐng)求。
文獻(xiàn)[7]將網(wǎng)頁防篡改安全工作從事前預(yù)防、事中阻止和事后恢復(fù)三大環(huán)節(jié)來進(jìn)行部署。事前預(yù)防主要是網(wǎng)絡(luò)及Web服務(wù)器的安全工作。事中阻止環(huán)節(jié)一直是Web防篡改領(lǐng)域的前沿課題,經(jīng)歷了時(shí)間輪詢技術(shù)、事件觸發(fā)+核心內(nèi)嵌技術(shù)、文件過濾驅(qū)動(dòng)+事件觸發(fā)技術(shù)3個(gè)階段的發(fā)展[8];文獻(xiàn)[7-9]對(duì)以上幾種技術(shù)的優(yōu)缺點(diǎn)進(jìn)行了詳細(xì)介紹。事后恢復(fù)是防篡改工作不可缺少的重要環(huán)節(jié),與篡改檢測(cè)相輔相成;文獻(xiàn)[10]提到的恢復(fù)系統(tǒng)專注于大規(guī)模集中式備份恢復(fù),未針對(duì)網(wǎng)站文件多而小的特殊性及訪問的實(shí)時(shí)性提出解決方案;文獻(xiàn)[8]提到了采用環(huán)式結(jié)構(gòu)來處理多服務(wù)器互聯(lián)防篡改,但在防篡改客戶端的描述不夠詳細(xì)。
針對(duì)上述問題,本文提出了一種基于MD5(Message Digest Algorithm 5)算法的Web程序防篡改機(jī)制,事中防范首先采用MD5報(bào)文摘要算法對(duì)網(wǎng)站各文件進(jìn)行初始化指紋采樣,存儲(chǔ)于遠(yuǎn)程安全數(shù)據(jù)庫和本地安全文件中。文中以IIS為例,結(jié)合服務(wù)器平臺(tái)自帶的ISAPI(Internet Serve r Application Programming Interface)組件,以文件過濾驅(qū)動(dòng)、核心內(nèi)嵌和事件觸發(fā)技術(shù)為基礎(chǔ)開發(fā)防篡改組件,處理客戶端提交的訪問請(qǐng)求。防篡改組件分析訪問請(qǐng)求,提取訪問路徑,將目標(biāo)文件指紋與庫中指紋作對(duì)比后給出應(yīng)答方案;該方法是直接追溯到Web頁面文件,適用于動(dòng)態(tài)和靜態(tài)頁面的站點(diǎn)。事后恢復(fù)將采用調(diào)用本地頁面快照和文件校驗(yàn)對(duì)比的方式恢復(fù)被篡改的頁面文件。該方法能解決文獻(xiàn)[11-12]中所提到的多數(shù)防篡改系統(tǒng)對(duì)動(dòng)態(tài)網(wǎng)站防篡改保護(hù)失效和小文件無法備份恢復(fù)的問題。
3.1 工作機(jī)制
文中防篡改系統(tǒng)的主要工作是協(xié)調(diào)Web工作過程中訪問請(qǐng)求、篡改檢測(cè)、站點(diǎn)文件更新和事件告警4個(gè)動(dòng)作之間的關(guān)系。防篡改系統(tǒng)工作機(jī)制如圖1所示。
圖1 防篡改系統(tǒng)工作機(jī)制
當(dāng)系統(tǒng)接收到Web訪問請(qǐng)求時(shí),調(diào)用防篡改檢測(cè)模塊對(duì)每個(gè)HTTP(Hypertext Transfer Protocol)請(qǐng)求進(jìn)行分析,追蹤被調(diào)用文件及訪問路徑;采用掛載在ISAPI內(nèi)的防篡改組件計(jì)算目標(biāo)文件的數(shù)字指紋,將其與安全區(qū)域中原始指紋進(jìn)行對(duì)比,判斷目標(biāo)文件是否被篡改;若未被篡改,Web服務(wù)器以正常的HTTP請(qǐng)求響應(yīng)用戶訪問。否則,立即啟用應(yīng)急恢復(fù)模塊,調(diào)用本地頁面快照響應(yīng)用戶,以保證響應(yīng)效率,之后啟用篡改恢復(fù)模塊調(diào)用本地備份替換被篡改文件,完成修復(fù)。在啟用快照技術(shù)的情況下,即使頁面文件被黑客篡改或重置,Web服務(wù)器也不會(huì)將篡改后的頁面誤傳給瀏覽者,避免造成不良的后果。系統(tǒng)記錄篡改日志,以手機(jī)短信或電子郵件方式通知管理人員。服務(wù)器中各網(wǎng)站文件在啟用防篡改后將被鎖定,未經(jīng)授權(quán)將無法更新;經(jīng)身份認(rèn)證解鎖后可采用FTP(File Transfer Protocol)或SSL (Secure Sockets Layer)方式進(jìn)行更新。本地指紋庫、備份文件及快照與遠(yuǎn)程庫文件進(jìn)行適時(shí)同步,以保證數(shù)據(jù)一致。
3.2 功能結(jié)構(gòu)
Web防篡改系統(tǒng)通過提供保護(hù)站點(diǎn)文件的完整性、監(jiān)控及處理HTTP訪問請(qǐng)求、快速恢復(fù)被篡改文件、告警和可信發(fā)布五大功能來實(shí)現(xiàn)防篡改機(jī)制。由此,將系統(tǒng)服務(wù)端、客戶端和發(fā)布端3個(gè)部分。
(1)服務(wù)端。安裝于DMZ(Demilitarized Z one)中,以數(shù)據(jù)庫為樞紐完成與多個(gè)客戶端之間的通信。為各客戶端提供文件備份、快照存儲(chǔ)、站點(diǎn)文件初始化數(shù)字指紋的處理、各類日志及篡改告警信息的保存。服務(wù)端在工作過程中僅開放與客戶端及數(shù)據(jù)庫通信的端口,以最大限度提供系統(tǒng)的安全性;此結(jié)構(gòu)將為系統(tǒng)移植打下基礎(chǔ)。
(2)客戶端。在不改變?cè)芯W(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的情況下安裝于受保護(hù)的Web服務(wù)器中,與服務(wù)端和發(fā)布端建立可信通信??蛻舳税ǔ跏蓟?、被訪文件監(jiān)控與追蹤、站點(diǎn)目錄鎖、防篡改檢測(cè)、篡改恢復(fù)和本地資源備份六大功能,是整個(gè)防篡改系統(tǒng)的核心部分。
首次啟用時(shí),將對(duì)Web服務(wù)器受保護(hù)站點(diǎn)文件進(jìn)行初始化,采用MD5(Message Digest Algorithm 5)算法采集各文件的數(shù)字指紋,存儲(chǔ)于服務(wù)端的安全數(shù)據(jù)庫中,并將其備份存儲(chǔ)于本地指紋文件中;為保證本地文件的安全,對(duì)本地?cái)?shù)字指紋和備份文件及快照采用對(duì)稱密鑰加密法3DES (Triple Data Encryption Algorithm,又稱Triple DES)進(jìn)行加密處理。當(dāng)收到發(fā)布端的更新命令后,解鎖其保護(hù)目錄,對(duì)被更新文件的數(shù)字指紋進(jìn)行更新。防篡改模塊在處理客戶頁面訪問請(qǐng)求時(shí),根據(jù)被訪頁面文件名及訪問路徑計(jì)算其指紋并與安全區(qū)域中的指紋對(duì)比,如果一致則響應(yīng);否則啟用篡改恢復(fù)和事件告警模塊,執(zhí)行事后處理過程,并記錄訪問請(qǐng)求的源IP、源端口及目的端口號(hào)、篡改進(jìn)程ID、篡改內(nèi)容,構(gòu)建警告信息通知管理人員。為快速響應(yīng)客戶端請(qǐng)求,恢復(fù)模塊先讀取頁面快照緩解用戶訪問;再取本地備份文件解密后替換被篡改文件,當(dāng)本地備份文件被破壞時(shí),將從服務(wù)端下發(fā)備份文件進(jìn)行恢復(fù),以處理災(zāi)難性事件。
(3)發(fā)布端。主要完成新網(wǎng)站的發(fā)布及原有網(wǎng)站文件的更新。發(fā)布端通過客戶端認(rèn)證后,客戶端根據(jù)請(qǐng)求創(chuàng)建新的站點(diǎn)或解鎖被請(qǐng)求站點(diǎn),完成發(fā)布指令;結(jié)束時(shí)客戶端重新鎖定站點(diǎn)。
4.1 初始化及文件預(yù)處理
系統(tǒng)初始化指各客戶端提交Web服務(wù)器特征信息后,在服務(wù)端服務(wù)器指定區(qū)域中建立以特征信息命名的文件夾,實(shí)現(xiàn)一機(jī)一夾的過程。為了保證其唯一性,特征信息采用客戶機(jī)的IP地址、CPU(Central Pro cessing Unit) I D (IDentity)、硬盤ID所組成字符串的MD5值來表示。服務(wù)端建立統(tǒng)一的數(shù)據(jù)庫,存儲(chǔ)各站點(diǎn)文件指紋、日志和告警信息。客戶端完成與服務(wù)端連接信息驗(yàn)證后配置本地運(yùn)行環(huán)境,指定當(dāng)前服務(wù)器中需要保護(hù)的站點(diǎn)及不同站點(diǎn)的文件類型,以站點(diǎn)名稱和創(chuàng)建時(shí)間的MD5密文為文件名創(chuàng)建本地安全文件夾,用來存儲(chǔ)備份及快照文件,存儲(chǔ)指紋數(shù)據(jù)、日志和告警數(shù)據(jù)的XML(Extensible Mar kup Lan guage)文檔。
文件預(yù)處理組件首先調(diào)用加密引擎,采用公鑰加密算法RSA生成一對(duì)密鑰;公鑰采用3DES(Triple DES)加密后存于備份服務(wù)器中,再將加密后的公鑰副本和私鑰一起保存到本地安全文件夾,并及時(shí)與備份服務(wù)器交換公鑰,為數(shù)據(jù)同步及站點(diǎn)恢復(fù)提供工作環(huán)境。然后讀取需保護(hù)的站點(diǎn)目錄及文件類型后調(diào)用遍歷引擎,遍歷規(guī)定后綴的網(wǎng)站文件,采用MD5算法計(jì)算其唯一的、不可逆的數(shù)字指紋,將指紋結(jié)果按一定的數(shù)據(jù)結(jié)構(gòu)存入數(shù)據(jù)庫中,再按站點(diǎn)名稱生成XML文檔存入本地安全文件中,供防篡改組件對(duì)比使用。最后將遍歷完的站點(diǎn)數(shù)據(jù)采用客戶端的公鑰加密,存于本地安全文件夾中等待與備份服務(wù)器進(jìn)行同步。整個(gè)工作過程如圖2所示。
圖2 初始化及文件預(yù)處理工作流程
4.2 篡改檢測(cè)及恢復(fù)處理
篡改檢測(cè)過程是利用IIS提供的編程接口ISAPI開發(fā)防篡改組件,對(duì)HTTP請(qǐng)求進(jìn)行分析,通過HTTP客戶端提交的數(shù)據(jù),提取訪問路徑及文件名,對(duì)其完整性進(jìn)行實(shí)時(shí)監(jiān)控,文件發(fā)生變化的合法性進(jìn)行驗(yàn)證。ISAPI包括ISAPI Extension和ISAPI F ilter2類,用戶所有的HTTP請(qǐng)求需先經(jīng)過ISAPI F ilter過濾后才能觸發(fā)IIS響應(yīng)。因而,采用核心內(nèi)嵌技術(shù)開發(fā)防篡改組件,并借助ISAPI Filter接口在IIS映射表中建立映射關(guān)系,使TP-HTTP.dll隨系統(tǒng)啟動(dòng),被服務(wù)器加載到IIS的進(jìn)程空間中,與IIS共用同一地址空間運(yùn)行,實(shí)現(xiàn)對(duì)每個(gè)HTTP請(qǐng)求的檢測(cè),完成對(duì)每個(gè)被訪頁面指紋的計(jì)算和原始指紋對(duì)比工作,工作流程如圖3所示。
圖3 防篡改組件工作流程
Web服務(wù)器收到HTTP請(qǐng)求時(shí),首先調(diào)用TP-HTTP.dll對(duì)請(qǐng)求目標(biāo)文件進(jìn)行追蹤,再調(diào)用TP-MD5.dll計(jì)算目標(biāo)文件的MD5值,最后調(diào)用指紋對(duì)比組件;讀取本地安全區(qū)域中目標(biāo)文件的原始指紋解密后與當(dāng)前計(jì)算指紋進(jìn)行對(duì)比,如果匹配則應(yīng)答HTTP請(qǐng)求,否則進(jìn)入恢復(fù)處理及應(yīng)急響應(yīng)流程。TP-TH.dll為應(yīng)急響應(yīng)組件,在接收到對(duì)比失敗指令后,系統(tǒng)調(diào)用本地同名快照文件解密后生成HTML格式文本響應(yīng)HTTP請(qǐng)求,保證服務(wù)器HTTP請(qǐng)求應(yīng)答的效率和質(zhì)量;響應(yīng)完后以最快的速度調(diào)用本地安全區(qū)域中原始文件經(jīng)3DES解密后對(duì)被篡改文件進(jìn)行替換恢復(fù),從最大程度上為文件提供安全的保障;如果恢復(fù)失敗則禁用當(dāng)前文件,將請(qǐng)求重定向到指定頁面。在文件恢復(fù)的同時(shí),系統(tǒng)調(diào)用TP-Th.DLL記錄篡改日志,調(diào)用TP-Trap.dll通過手機(jī)短信或電子郵件的方式為管理人員發(fā)送告警信息,為日后的數(shù)據(jù)分析及管理提供依據(jù)。
快照調(diào)用與訪問重定向過程所需時(shí)間在數(shù)毫秒內(nèi)發(fā)生,請(qǐng)求者無法收到被篡改頁面的響應(yīng)內(nèi)容,其實(shí)時(shí)性已達(dá)到業(yè)界較高水平??蛻舳税匆欢ǖ闹芷跁r(shí)長(zhǎng)調(diào)用文件底層過濾驅(qū)動(dòng)模塊對(duì)當(dāng)前服務(wù)器受保護(hù)的站點(diǎn)及規(guī)定類型的文件的數(shù)字指紋進(jìn)行計(jì)算、對(duì)比、檢測(cè),以確保各處數(shù)字指紋的一致性。
4.3 HTT P請(qǐng)求處理
常見的HTTP請(qǐng)求訪問方法有GET、Post、Put和Head幾種[13],通過Wire s hark對(duì)多條請(qǐng)求數(shù)據(jù)進(jìn)行分析統(tǒng)計(jì),只有GET方法能真正反應(yīng)用戶請(qǐng)求訪問的目標(biāo)文件;在捕獲的HTTP請(qǐng)求包中,HTTP協(xié)議數(shù)據(jù)部分詳細(xì)的給出了GET請(qǐng)求中需要訪問的站點(diǎn)地址、文件、路徑及HTTP頭等請(qǐng)求響應(yīng)目標(biāo),數(shù)據(jù)包詳細(xì)信息如圖4所示。文中在處理HTTP請(qǐng)求時(shí)只需由TP-http.dll捕獲HTTP請(qǐng)求中所有的GET方法進(jìn)行分析、處理,提取當(dāng)前訪問請(qǐng)求的目標(biāo)文件及路徑,再按圖3中工作流程調(diào)用其它組件進(jìn)行處理。當(dāng)服務(wù)器未接收到HTTP請(qǐng)求時(shí),IIS自動(dòng)將TP-HTTP.dll從其內(nèi)存中卸載,不占用系統(tǒng)內(nèi)存,DLL庫的工作及卸載整個(gè)過程不影響Web服務(wù)器本身的運(yùn)行,也不影響Web服務(wù)響應(yīng)的效率。
圖4 H TTP請(qǐng)求包數(shù)據(jù)部分內(nèi)容
4.4 同步與備份
備份文件的同步是一種遠(yuǎn)程容災(zāi)機(jī)制,在客戶端本地快照、本地備份均恢復(fù)失敗或發(fā)生災(zāi)難時(shí),作為一種必要的手機(jī)保護(hù)Web服務(wù)器數(shù)據(jù)的安全。文中針對(duì)網(wǎng)站文件數(shù)量大、容量少、備份難的問題提出了先采用3DES加密,再壓縮打包,最后采用FTP協(xié)議完成與服務(wù)端的數(shù)據(jù)同步。但在專門的Web服務(wù)器中,數(shù)據(jù)容量龐大,經(jīng)壓縮后的備份數(shù)據(jù)有吉比特或數(shù)吉比特,但FTP協(xié)議一次傳輸大數(shù)據(jù)時(shí),傳輸過程中會(huì)嚴(yán)重影響Web服務(wù)質(zhì)量,給防篡改系統(tǒng)的設(shè)計(jì)帶來了麻煩。為不影響服務(wù)質(zhì)量,降低系統(tǒng)開銷,采用文件切塊的辦法進(jìn)行處理;系統(tǒng)在同步備份數(shù)據(jù)時(shí),采用二進(jìn)制讀寫的方法分段讀寫打包后的文件,精確連續(xù)保存為不超過系統(tǒng)內(nèi)存緩沖區(qū)大小的片段,完成文件的切割。切片后的文件按順序進(jìn)行傳輸,服務(wù)端收到備份文件后按其的逆運(yùn)算進(jìn)行還原,以達(dá)到同步的目的;同步過程會(huì)消耗一部分系統(tǒng)資源,并且具有一定的周期性,常定義在服務(wù)器負(fù)載比較低的時(shí)間段中完成。
4.5 信任機(jī)制發(fā)布
發(fā)布授權(quán)是采用目錄鎖和證書認(rèn)證雙重保護(hù)機(jī)制完成發(fā)布端與防篡改客戶端之間的信任驗(yàn)證工作,能解決傳統(tǒng)FTP發(fā)布方式中登錄及傳輸數(shù)據(jù)無任何認(rèn)證及加密的問題,可彌補(bǔ)FTP協(xié)議本身的缺點(diǎn)。證書認(rèn)證是FTP協(xié)議啟用SSL(Secure Sockets Layer)后規(guī)定發(fā)布端和客戶端需通過證書認(rèn)證成功后方可通信,同時(shí)客戶端對(duì)通過認(rèn)證的目錄進(jìn)行解鎖,允許創(chuàng)建新的站點(diǎn)和接收更新文件,接收完畢后再次鎖定站點(diǎn)目錄并進(jìn)行更新初始化操作。通過此方式,攻擊者采用Sniffer、Wireshark等包分析工具無法獲取用戶及服務(wù)器的安全信息,可杜絕發(fā)布數(shù)據(jù)被攻擊者竊取,提高數(shù)據(jù)傳輸?shù)陌踩浴?/p>
5.1 實(shí)驗(yàn)環(huán)境
系統(tǒng)運(yùn)行所需的網(wǎng)絡(luò)環(huán)境是在公網(wǎng)或私網(wǎng),支持多個(gè)客戶端與服務(wù)端發(fā)生業(yè)務(wù)關(guān)系,模擬實(shí)驗(yàn)與實(shí)際工作環(huán)境需保持一致。實(shí)驗(yàn)中采用1臺(tái)全千兆交換機(jī)在真實(shí)的網(wǎng)絡(luò)環(huán)境中組建局域網(wǎng),3臺(tái)Web服務(wù)器配置相同,其中Web服務(wù)器2臺(tái)和備份數(shù)據(jù)庫服務(wù)器1臺(tái),選用一臺(tái)PC(Personal Computer)機(jī)安裝發(fā)布端同時(shí)也參與初始化性能對(duì)比測(cè)試。服務(wù)器安裝Microsoft Windows2003企業(yè)版操作系統(tǒng),配置IIS6.0,同時(shí)安裝Serv-U和證書插件,支持SSL、FTPS傳輸。數(shù)據(jù)庫采用微軟的SQL Server2008企業(yè)版。PC機(jī)安裝Microsoft Windows 8、FTP客戶端工具和證書插件。篡改攻擊采用COCOON Online Disk Manager實(shí)時(shí)修改Web頁面文件內(nèi)容,用Process Monitor測(cè)試記錄防篡改進(jìn)程的工作時(shí)長(zhǎng),全網(wǎng)各設(shè)備之間采用1 000 M雙絞線與交換機(jī)互聯(lián)。各設(shè)備參數(shù)如表1所示。
表1 實(shí)驗(yàn)環(huán)境參數(shù)
5.2 性能測(cè)試
5.2.1 資源占用情況
選用1臺(tái)Web服務(wù)器運(yùn)行1個(gè)ASP站點(diǎn),用Webload分不同時(shí)段模擬日訪問量為21000PV(Page View)的HTTP訪問請(qǐng)求;利用COCOON Online Disk Manager分時(shí)段對(duì)測(cè)站點(diǎn)多個(gè)文件進(jìn)行多次篡改。同時(shí)選用深空網(wǎng)頁防篡改系統(tǒng)與文中防篡改系統(tǒng)原型運(yùn)行相同HTTP請(qǐng)求方案進(jìn)行對(duì)比,記錄系統(tǒng)對(duì)Web服務(wù)器CPU資源的消耗情況。實(shí)驗(yàn)采用WSH(Windows Scripting Host)和WMI(Windows Management Instrumentation)編寫腳本,以3 s為時(shí)間間隔采集系統(tǒng)CPU的占用情況,每分鐘計(jì)算1次單顆CPU核心占用率的平均值,取連續(xù)工作20 mi n的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行繪圖。CPU占用情況如圖5所示。
圖5 防篡改系統(tǒng)對(duì)CPU占用情況
測(cè)試結(jié)果表明:安裝防篡改系統(tǒng)后,網(wǎng)站在受到篡改攻擊時(shí)對(duì)系統(tǒng)資源占用情況比未受攻擊時(shí)略有上升,恢復(fù)完成后能正常的釋放資源。在連續(xù)受到攻擊時(shí),文中防篡改系統(tǒng)對(duì)CPU資源的釋放略快于深空防篡改系統(tǒng);并且在防篡改系統(tǒng)正常運(yùn)行的情況下,文中防篡改系統(tǒng)對(duì)CPU資源的占有情況略低于深空防篡改系統(tǒng)。
5.2.2 初始化時(shí)長(zhǎng)
主要測(cè)試系統(tǒng)采集被保護(hù)站點(diǎn)中指定后綴文件指紋所花費(fèi)的時(shí)長(zhǎng)。被測(cè)樣本網(wǎng)站共614個(gè)文件,最大文件為95 KB,最小文件為1 KB,文件夾最深為5層;通過文中系統(tǒng)初始化模塊調(diào)用遍歷引擎,指紋計(jì)算模塊采集指定類型文件的數(shù)字指紋。從當(dāng)前網(wǎng)站中隨機(jī)挑選50個(gè)~600個(gè)文件分成12個(gè)組,在2臺(tái)服器和1臺(tái)PC機(jī)中進(jìn)行初始化測(cè)試,用Process Monitor記錄初始化開始及結(jié)束時(shí)間;每臺(tái)設(shè)備對(duì)每組文件進(jìn)行10次初始化,記錄每臺(tái)設(shè)備每組文件初始化時(shí)長(zhǎng)的平均值進(jìn)繪圖。每個(gè)文件初始化的平均時(shí)長(zhǎng)為36.09 ms;數(shù)據(jù)顯示,站點(diǎn)初始化所需時(shí)長(zhǎng)與文件多少、文件存放位置有關(guān),依賴于CPU處理速度。其結(jié)果如圖6所示。
圖6 程序文件初始化時(shí)長(zhǎng)
5.2.3 篡改文件時(shí)長(zhǎng)恢復(fù)
被篡改文件在最快時(shí)間內(nèi)得以恢復(fù)是衡量防篡改系統(tǒng)的重要指標(biāo)。實(shí)驗(yàn)中選用深空網(wǎng)頁防篡改系統(tǒng)與文中功能模塊進(jìn)行對(duì)比測(cè)試,用Process Monitor平臺(tái)中的Filter功篩選篡改檢測(cè)及恢復(fù)進(jìn)程,對(duì)此進(jìn)程進(jìn)行監(jiān)視。從網(wǎng)站中任意選用測(cè)試文件10個(gè),容量最大的72.6 K B,最小的為0.9 K B,在兩大系統(tǒng)受保護(hù)的情況下分別進(jìn)行對(duì)文件內(nèi)容進(jìn)行篡改,記錄其工作時(shí)差即得出文件恢復(fù)時(shí)長(zhǎng),按文件大小順序進(jìn)行繪圖。實(shí)驗(yàn)數(shù)據(jù)顯示,文件越大,恢復(fù)所需時(shí)間越長(zhǎng);在恢復(fù)過程中,受CPU、內(nèi)存等硬件資源被其它應(yīng)用進(jìn)程占用的影響,同一大小的文件在不同時(shí)刻所需時(shí)間不同,恢復(fù)時(shí)長(zhǎng)如圖7所示。
圖7 被篡改文件恢復(fù)時(shí)長(zhǎng)
本文針對(duì)當(dāng)前Web服務(wù)器缺乏頁面完整性驗(yàn)證機(jī)制、業(yè)界多數(shù)防篡改系統(tǒng)對(duì)動(dòng)態(tài)頁面保護(hù)性能差和小文件備份恢復(fù)難的問題,提出一種基于MD5算法的Web程序防篡改機(jī)制。以過濾驅(qū)動(dòng)、核心內(nèi)嵌和事件觸發(fā)技術(shù)為基礎(chǔ)開發(fā)防篡改組件,并加載到IIS同一地址空間中運(yùn)行,提高了篡改檢測(cè)和篡改文件恢復(fù)的效率,減少了錯(cuò)報(bào)誤報(bào)的機(jī)率;采用本地壓縮同步和快照恢復(fù)技術(shù),解決了小文件備份恢復(fù)難的問題。與優(yōu)秀的防篡改系統(tǒng)做實(shí)驗(yàn)對(duì)比,本文防篡改系統(tǒng)具有系統(tǒng)資源的占用率低、篡改恢復(fù)時(shí)長(zhǎng)短的優(yōu)點(diǎn)。下一步研究工作是如何完善代理端自我保護(hù)機(jī)制,在為Web服務(wù)器提供安全保護(hù)的同時(shí),采用三線程提高平臺(tái)自身的安全防御能力。
[1] 國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心. 20 12年中國(guó)互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報(bào)告[Z]. 2012.
[2] 國(guó)家互聯(lián)網(wǎng)絡(luò)應(yīng)急中心. 網(wǎng)絡(luò)安全信息與動(dòng)態(tài)周報(bào)[EB/OL]. (2013-11-11). h ttp://www.cert.org.cn/publish/main/upload/File/ 20131107CNCERT44.pdf.
[3] 趙 幫, 何 倩, 王 勇, 等. 基于LZMA和多版本的網(wǎng)頁防篡改備份恢復(fù)機(jī)制[J]. 計(jì)算機(jī)應(yīng)用, 20 12, 3 2(7): 1998-2002.
[4] 張建華, 李 濤, 張 楠. Web頁面防篡改及防重放機(jī)制[J].計(jì)算機(jī)應(yīng)用, 2006, 26(2): 327-329.
[5] 凌質(zhì)億, 劉哲星, 曹 蕾. 高并發(fā)環(huán)境下Apache與Nginx 的I/O性能比較[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2013, 22(6): 204-208.
[6] 王朝坤, 付軍寧, 王建民, 等. 軟件防篡改技術(shù)綜述[J].計(jì)算機(jī)研究與發(fā)展, 2011, 48(6): 923-933.
[7] 姚 瀅, 陸建新. 網(wǎng)站文件保護(hù)系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2007, 28(6): 1300-1302.
[8] 段國(guó)云. 基于環(huán)結(jié)構(gòu)的動(dòng)態(tài)網(wǎng)頁防篡改系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 長(zhǎng)沙: 湖南大學(xué), 2012.
[9] 高延玲, 張玉清, 白寶明, 等. 網(wǎng)頁保護(hù)系統(tǒng)綜述[J]. 計(jì)算機(jī)工程, 2004, 30(10): 113-115.
[10] Xu W ei, Wang Min, He Xiang, et al. BM-CVI: A Backup Method Based on a Cross-version Integration Mechanism[C]// Proceedings of 2007 International Conference on Convergence Information Technology. W ashington D. C., USA: IEEE Computer Society, 2007: 781-789.
[11] 魏文晗, 鄧一貴. 基于局部變化性的網(wǎng)頁篡改識(shí)別模型及方法[J]. 計(jì)算機(jī)應(yīng)用, 2013, 33(2): 430-433.
[12] Tushar K, Vineet R, V ivek R. Implementing a Web Browser with W eb Defacement Detectio n T echniques[J]. W orld of Computer Science and Information Technology Journal, 2011, 1(7): 307-310.
[13] Fielding R, Gettys J. Hypertext Transfer Protocol HTTP/1.1[S]. RFC 2616, 1999.
編輯 索書志
Design and Implementation of a Web Program Tamper-proof System
DUAN Guo-yun1a, CHEN Hao2, HUANG Wen1b, TANG Ya-chun1a
(1a. Network Center; 1b. Department of Computer and Communication Engineering, Hunan University of Science and Engineering, Yongzhou 425199, China; 2. School of Information Science and Engineering, Hunan University, Changsha 410082, China)
Commonly used Web servers lack page integrity pr otection mechanisms, which makes the tar get website exploitable to potential attackers. To ensure the integrity of the website an d prevent users from visiting the tampered pa ge, this paper prop oses a tamper-proof mechanism, based on the technique of file content hash. By calculating the tar get file fingerprints, adopting the snapshot technology to recover the tampered files, the system can provide protection for dynamic websites to recover from failure or targeted attacks efficiently. This paper presents the design and implementation of a tamper-proof system for Web applications in detail. Experimental results show that compared with existing systems, the system can impleme nt the tamper protection and the snapshot recovery effectively, and imposes little runtime cost on the server being protected.
tamper-proof; MD5 algorithm; digital fingerprint; Web program; tamper detection; file recovery
10.3969/j.issn.1000-3428.2014.05.031
國(guó)家自然科學(xué)基金資助項(xiàng)目(61173166);湖南省教育廳科研基金資助項(xiàng)目(11C0600);湖南科技學(xué)院科研基金資助項(xiàng)目(12X KYTB005)。
段國(guó)云(1982-),男,講師、碩士,主研方向:網(wǎng)絡(luò)與信息安全;陳 浩,副教授、博士、博士生導(dǎo)師;黃 文,教授;唐亞純,實(shí)驗(yàn)師、碩士。
2013-12-04
2014-01-24E-mail:Dguoyun@163.com
1000-3428(2014)05-0149-05
A
TP309