段國云,陳 浩,黃 文,唐亞純
(1. 湖南科技學院 a. 網絡中心;b. 計算機與通信工程系,湖南 永州 425199;2. 湖南大學信息科學與工程學院,長沙 410 082)
一種Web程序防篡改系統的設計與實現
段國云1a,陳 浩2,黃 文1b,唐亞純1a
(1. 湖南科技學院 a. 網絡中心;b. 計算機與通信工程系,湖南 永州 425199;2. 湖南大學信息科學與工程學院,長沙 410 082)
常用Web服務器本身缺乏頁面完整性驗證機制,無法防止站點文件被篡改。為確保文件的完整性,防止用戶訪問頁面被篡改,提出一種Web程序防篡改系統。采用MD5算法校驗文件完整性的Web防篡改機制,計算目標文件的數字指紋,運用快照技術恢復被篡改文件,以解決多數防篡改系統對動態站點保護失效及小文件恢復難的問題。描述防篡改系統的工作過程、功能結構及實現方法。實驗結果證明,與現有系統相比,該系統能有效完成篡改防護及快照恢復工作,在保障文件安全的同時,對服務器工作效率影響極少。
防篡改;MD5算法;數字指紋;Web程序;篡改檢測;文件恢復
網頁篡改是指攻擊者利用特定的手段或方法入侵目標網站,并修改網站部分內容或源代碼的攻擊行為,是當前網絡安全中較為普遍的一種網站攻擊方式。據國家計算機網絡應急技術處理協調中心(簡稱CNCERT/CC)發布的2012年網絡安全年報和2013年各期周報報道,網站被篡改的數量呈增長趨勢,2012年比2011年增加了6.1%[1];2013年第44周統計境內網站被篡改的數量比上周增加了2.2%[2]。網頁一旦被篡改且不能及時恢復,將會給網站的所有者甚至整個社會帶來嚴重的損害和負面影響[3];尤其是政府網站帶政治色彩的篡改,給整個社會帶來不可估量的損失。當今業界占統治地位的Web服務器有Apache、Nginx、IIS(Internet Information Services)等平臺,它們對Web程序文件缺乏完整性保護機制,無法有效防止文件被篡改[4-5]。為減少Web程序被篡改,確保文件的完整性,本文提出一種Web程序防篡改系統。
標識程序未遭破壞的指標是程序的完整性[6]。因而,網頁防篡改的目標是保證Web程序的完整性,阻止Web程序中的代碼或數據被非法篡改,檢測篡改并做出及時的響應,對被篡改的程序做臨時處理后響應客戶端請求。
文獻[7]將網頁防篡改安全工作從事前預防、事中阻止和事后恢復三大環節來進行部署。事前預防主要是網絡及Web服務器的安全工作。事中阻止環節一直是Web防篡改領域的前沿課題,經歷了時間輪詢技術、事件觸發+核心內嵌技術、文件過濾驅動+事件觸發技術3個階段的發展[8];文獻[7-9]對以上幾種技術的優缺點進行了詳細介紹。事后恢復是防篡改工作不可缺少的重要環節,與篡改檢測相輔相成;文獻[10]提到的恢復系統專注于大規模集中式備份恢復,未針對網站文件多而小的特殊性及訪問的實時性提出解決方案;文獻[8]提到了采用環式結構來處理多服務器互聯防篡改,但在防篡改客戶端的描述不夠詳細。
針對上述問題,本文提出了一種基于MD5(Message Digest Algorithm 5)算法的Web程序防篡改機制,事中防范首先采用MD5報文摘要算法對網站各文件進行初始化指紋采樣,存儲于遠程安全數據庫和本地安全文件中。文中以IIS為例,結合服務器平臺自帶的ISAPI(Internet Serve r Application Programming Interface)組件,以文件過濾驅動、核心內嵌和事件觸發技術為基礎開發防篡改組件,處理客戶端提交的訪問請求。防篡改組件分析訪問請求,提取訪問路徑,將目標文件指紋與庫中指紋作對比后給出應答方案;該方法是直接追溯到Web頁面文件,適用于動態和靜態頁面的站點。事后恢復將采用調用本地頁面快照和文件校驗對比的方式恢復被篡改的頁面文件。該方法能解決文獻[11-12]中所提到的多數防篡改系統對動態網站防篡改保護失效和小文件無法備份恢復的問題。
3.1 工作機制
文中防篡改系統的主要工作是協調Web工作過程中訪問請求、篡改檢測、站點文件更新和事件告警4個動作之間的關系。防篡改系統工作機制如圖1所示。

圖1 防篡改系統工作機制
當系統接收到Web訪問請求時,調用防篡改檢測模塊對每個HTTP(Hypertext Transfer Protocol)請求進行分析,追蹤被調用文件及訪問路徑;采用掛載在ISAPI內的防篡改組件計算目標文件的數字指紋,將其與安全區域中原始指紋進行對比,判斷目標文件是否被篡改;若未被篡改,Web服務器以正常的HTTP請求響應用戶訪問。否則,立即啟用應急恢復模塊,調用本地頁面快照響應用戶,以保證響應效率,之后啟用篡改恢復模塊調用本地備份替換被篡改文件,完成修復。在啟用快照技術的情況下,即使頁面文件被黑客篡改或重置,Web服務器也不會將篡改后的頁面誤傳給瀏覽者,避免造成不良的后果。系統記錄篡改日志,以手機短信或電子郵件方式通知管理人員。服務器中各網站文件在啟用防篡改后將被鎖定,未經授權將無法更新;經身份認證解鎖后可采用FTP(File Transfer Protocol)或SSL (Secure Sockets Layer)方式進行更新。本地指紋庫、備份文件及快照與遠程庫文件進行適時同步,以保證數據一致。
3.2 功能結構
Web防篡改系統通過提供保護站點文件的完整性、監控及處理HTTP訪問請求、快速恢復被篡改文件、告警和可信發布五大功能來實現防篡改機制。由此,將系統服務端、客戶端和發布端3個部分。
(1)服務端。安裝于DMZ(Demilitarized Z one)中,以數據庫為樞紐完成與多個客戶端之間的通信。為各客戶端提供文件備份、快照存儲、站點文件初始化數字指紋的處理、各類日志及篡改告警信息的保存。服務端在工作過程中僅開放與客戶端及數據庫通信的端口,以最大限度提供系統的安全性;此結構將為系統移植打下基礎。
(2)客戶端。在不改變原有網絡拓撲結構的情況下安裝于受保護的Web服務器中,與服務端和發布端建立可信通信。客戶端包括初始化、被訪文件監控與追蹤、站點目錄鎖、防篡改檢測、篡改恢復和本地資源備份六大功能,是整個防篡改系統的核心部分。
首次啟用時,將對Web服務器受保護站點文件進行初始化,采用MD5(Message Digest Algorithm 5)算法采集各文件的數字指紋,存儲于服務端的安全數據庫中,并將其備份存儲于本地指紋文件中;為保證本地文件的安全,對本地數字指紋和備份文件及快照采用對稱密鑰加密法3DES (Triple Data Encryption Algorithm,又稱Triple DES)進行加密處理。當收到發布端的更新命令后,解鎖其保護目錄,對被更新文件的數字指紋進行更新。防篡改模塊在處理客戶頁面訪問請求時,根據被訪頁面文件名及訪問路徑計算其指紋并與安全區域中的指紋對比,如果一致則響應;否則啟用篡改恢復和事件告警模塊,執行事后處理過程,并記錄訪問請求的源IP、源端口及目的端口號、篡改進程ID、篡改內容,構建警告信息通知管理人員。為快速響應客戶端請求,恢復模塊先讀取頁面快照緩解用戶訪問;再取本地備份文件解密后替換被篡改文件,當本地備份文件被破壞時,將從服務端下發備份文件進行恢復,以處理災難性事件。
(3)發布端。主要完成新網站的發布及原有網站文件的更新。發布端通過客戶端認證后,客戶端根據請求創建新的站點或解鎖被請求站點,完成發布指令;結束時客戶端重新鎖定站點。
4.1 初始化及文件預處理
系統初始化指各客戶端提交Web服務器特征信息后,在服務端服務器指定區域中建立以特征信息命名的文件夾,實現一機一夾的過程。為了保證其唯一性,特征信息采用客戶機的IP地址、CPU(Central Pro cessing Unit) I D (IDentity)、硬盤ID所組成字符串的MD5值來表示。服務端建立統一的數據庫,存儲各站點文件指紋、日志和告警信息。客戶端完成與服務端連接信息驗證后配置本地運行環境,指定當前服務器中需要保護的站點及不同站點的文件類型,以站點名稱和創建時間的MD5密文為文件名創建本地安全文件夾,用來存儲備份及快照文件,存儲指紋數據、日志和告警數據的XML(Extensible Mar kup Lan guage)文檔。
文件預處理組件首先調用加密引擎,采用公鑰加密算法RSA生成一對密鑰;公鑰采用3DES(Triple DES)加密后存于備份服務器中,再將加密后的公鑰副本和私鑰一起保存到本地安全文件夾,并及時與備份服務器交換公鑰,為數據同步及站點恢復提供工作環境。然后讀取需保護的站點目錄及文件類型后調用遍歷引擎,遍歷規定后綴的網站文件,采用MD5算法計算其唯一的、不可逆的數字指紋,將指紋結果按一定的數據結構存入數據庫中,再按站點名稱生成XML文檔存入本地安全文件中,供防篡改組件對比使用。最后將遍歷完的站點數據采用客戶端的公鑰加密,存于本地安全文件夾中等待與備份服務器進行同步。整個工作過程如圖2所示。

圖2 初始化及文件預處理工作流程
4.2 篡改檢測及恢復處理
篡改檢測過程是利用IIS提供的編程接口ISAPI開發防篡改組件,對HTTP請求進行分析,通過HTTP客戶端提交的數據,提取訪問路徑及文件名,對其完整性進行實時監控,文件發生變化的合法性進行驗證。ISAPI包括ISAPI Extension和ISAPI F ilter2類,用戶所有的HTTP請求需先經過ISAPI F ilter過濾后才能觸發IIS響應。因而,采用核心內嵌技術開發防篡改組件,并借助ISAPI Filter接口在IIS映射表中建立映射關系,使TP-HTTP.dll隨系統啟動,被服務器加載到IIS的進程空間中,與IIS共用同一地址空間運行,實現對每個HTTP請求的檢測,完成對每個被訪頁面指紋的計算和原始指紋對比工作,工作流程如圖3所示。

圖3 防篡改組件工作流程
Web服務器收到HTTP請求時,首先調用TP-HTTP.dll對請求目標文件進行追蹤,再調用TP-MD5.dll計算目標文件的MD5值,最后調用指紋對比組件;讀取本地安全區域中目標文件的原始指紋解密后與當前計算指紋進行對比,如果匹配則應答HTTP請求,否則進入恢復處理及應急響應流程。TP-TH.dll為應急響應組件,在接收到對比失敗指令后,系統調用本地同名快照文件解密后生成HTML格式文本響應HTTP請求,保證服務器HTTP請求應答的效率和質量;響應完后以最快的速度調用本地安全區域中原始文件經3DES解密后對被篡改文件進行替換恢復,從最大程度上為文件提供安全的保障;如果恢復失敗則禁用當前文件,將請求重定向到指定頁面。在文件恢復的同時,系統調用TP-Th.DLL記錄篡改日志,調用TP-Trap.dll通過手機短信或電子郵件的方式為管理人員發送告警信息,為日后的數據分析及管理提供依據。
快照調用與訪問重定向過程所需時間在數毫秒內發生,請求者無法收到被篡改頁面的響應內容,其實時性已達到業界較高水平。客戶端按一定的周期時長調用文件底層過濾驅動模塊對當前服務器受保護的站點及規定類型的文件的數字指紋進行計算、對比、檢測,以確保各處數字指紋的一致性。
4.3 HTT P請求處理
常見的HTTP請求訪問方法有GET、Post、Put和Head幾種[13],通過Wire s hark對多條請求數據進行分析統計,只有GET方法能真正反應用戶請求訪問的目標文件;在捕獲的HTTP請求包中,HTTP協議數據部分詳細的給出了GET請求中需要訪問的站點地址、文件、路徑及HTTP頭等請求響應目標,數據包詳細信息如圖4所示。文中在處理HTTP請求時只需由TP-http.dll捕獲HTTP請求中所有的GET方法進行分析、處理,提取當前訪問請求的目標文件及路徑,再按圖3中工作流程調用其它組件進行處理。當服務器未接收到HTTP請求時,IIS自動將TP-HTTP.dll從其內存中卸載,不占用系統內存,DLL庫的工作及卸載整個過程不影響Web服務器本身的運行,也不影響Web服務響應的效率。

圖4 H TTP請求包數據部分內容
4.4 同步與備份
備份文件的同步是一種遠程容災機制,在客戶端本地快照、本地備份均恢復失敗或發生災難時,作為一種必要的手機保護Web服務器數據的安全。文中針對網站文件數量大、容量少、備份難的問題提出了先采用3DES加密,再壓縮打包,最后采用FTP協議完成與服務端的數據同步。但在專門的Web服務器中,數據容量龐大,經壓縮后的備份數據有吉比特或數吉比特,但FTP協議一次傳輸大數據時,傳輸過程中會嚴重影響Web服務質量,給防篡改系統的設計帶來了麻煩。為不影響服務質量,降低系統開銷,采用文件切塊的辦法進行處理;系統在同步備份數據時,采用二進制讀寫的方法分段讀寫打包后的文件,精確連續保存為不超過系統內存緩沖區大小的片段,完成文件的切割。切片后的文件按順序進行傳輸,服務端收到備份文件后按其的逆運算進行還原,以達到同步的目的;同步過程會消耗一部分系統資源,并且具有一定的周期性,常定義在服務器負載比較低的時間段中完成。
4.5 信任機制發布
發布授權是采用目錄鎖和證書認證雙重保護機制完成發布端與防篡改客戶端之間的信任驗證工作,能解決傳統FTP發布方式中登錄及傳輸數據無任何認證及加密的問題,可彌補FTP協議本身的缺點。證書認證是FTP協議啟用SSL(Secure Sockets Layer)后規定發布端和客戶端需通過證書認證成功后方可通信,同時客戶端對通過認證的目錄進行解鎖,允許創建新的站點和接收更新文件,接收完畢后再次鎖定站點目錄并進行更新初始化操作。通過此方式,攻擊者采用Sniffer、Wireshark等包分析工具無法獲取用戶及服務器的安全信息,可杜絕發布數據被攻擊者竊取,提高數據傳輸的安全性。
5.1 實驗環境
系統運行所需的網絡環境是在公網或私網,支持多個客戶端與服務端發生業務關系,模擬實驗與實際工作環境需保持一致。實驗中采用1臺全千兆交換機在真實的網絡環境中組建局域網,3臺Web服務器配置相同,其中Web服務器2臺和備份數據庫服務器1臺,選用一臺PC(Personal Computer)機安裝發布端同時也參與初始化性能對比測試。服務器安裝Microsoft Windows2003企業版操作系統,配置IIS6.0,同時安裝Serv-U和證書插件,支持SSL、FTPS傳輸。數據庫采用微軟的SQL Server2008企業版。PC機安裝Microsoft Windows 8、FTP客戶端工具和證書插件。篡改攻擊采用COCOON Online Disk Manager實時修改Web頁面文件內容,用Process Monitor測試記錄防篡改進程的工作時長,全網各設備之間采用1 000 M雙絞線與交換機互聯。各設備參數如表1所示。

表1 實驗環境參數
5.2 性能測試
5.2.1 資源占用情況
選用1臺Web服務器運行1個ASP站點,用Webload分不同時段模擬日訪問量為21000PV(Page View)的HTTP訪問請求;利用COCOON Online Disk Manager分時段對測站點多個文件進行多次篡改。同時選用深空網頁防篡改系統與文中防篡改系統原型運行相同HTTP請求方案進行對比,記錄系統對Web服務器CPU資源的消耗情況。實驗采用WSH(Windows Scripting Host)和WMI(Windows Management Instrumentation)編寫腳本,以3 s為時間間隔采集系統CPU的占用情況,每分鐘計算1次單顆CPU核心占用率的平均值,取連續工作20 mi n的實驗數據進行繪圖。CPU占用情況如圖5所示。

圖5 防篡改系統對CPU占用情況
測試結果表明:安裝防篡改系統后,網站在受到篡改攻擊時對系統資源占用情況比未受攻擊時略有上升,恢復完成后能正常的釋放資源。在連續受到攻擊時,文中防篡改系統對CPU資源的釋放略快于深空防篡改系統;并且在防篡改系統正常運行的情況下,文中防篡改系統對CPU資源的占有情況略低于深空防篡改系統。
5.2.2 初始化時長
主要測試系統采集被保護站點中指定后綴文件指紋所花費的時長。被測樣本網站共614個文件,最大文件為95 KB,最小文件為1 KB,文件夾最深為5層;通過文中系統初始化模塊調用遍歷引擎,指紋計算模塊采集指定類型文件的數字指紋。從當前網站中隨機挑選50個~600個文件分成12個組,在2臺服器和1臺PC機中進行初始化測試,用Process Monitor記錄初始化開始及結束時間;每臺設備對每組文件進行10次初始化,記錄每臺設備每組文件初始化時長的平均值進繪圖。每個文件初始化的平均時長為36.09 ms;數據顯示,站點初始化所需時長與文件多少、文件存放位置有關,依賴于CPU處理速度。其結果如圖6所示。

圖6 程序文件初始化時長
5.2.3 篡改文件時長恢復
被篡改文件在最快時間內得以恢復是衡量防篡改系統的重要指標。實驗中選用深空網頁防篡改系統與文中功能模塊進行對比測試,用Process Monitor平臺中的Filter功篩選篡改檢測及恢復進程,對此進程進行監視。從網站中任意選用測試文件10個,容量最大的72.6 K B,最小的為0.9 K B,在兩大系統受保護的情況下分別進行對文件內容進行篡改,記錄其工作時差即得出文件恢復時長,按文件大小順序進行繪圖。實驗數據顯示,文件越大,恢復所需時間越長;在恢復過程中,受CPU、內存等硬件資源被其它應用進程占用的影響,同一大小的文件在不同時刻所需時間不同,恢復時長如圖7所示。

圖7 被篡改文件恢復時長
本文針對當前Web服務器缺乏頁面完整性驗證機制、業界多數防篡改系統對動態頁面保護性能差和小文件備份恢復難的問題,提出一種基于MD5算法的Web程序防篡改機制。以過濾驅動、核心內嵌和事件觸發技術為基礎開發防篡改組件,并加載到IIS同一地址空間中運行,提高了篡改檢測和篡改文件恢復的效率,減少了錯報誤報的機率;采用本地壓縮同步和快照恢復技術,解決了小文件備份恢復難的問題。與優秀的防篡改系統做實驗對比,本文防篡改系統具有系統資源的占用率低、篡改恢復時長短的優點。下一步研究工作是如何完善代理端自我保護機制,在為Web服務器提供安全保護的同時,采用三線程提高平臺自身的安全防御能力。
[1] 國家計算機網絡應急技術處理協調中心. 20 12年中國互聯網網絡安全報告[Z]. 2012.
[2] 國家互聯網絡應急中心. 網絡安全信息與動態周報[EB/OL]. (2013-11-11). h ttp://www.cert.org.cn/publish/main/upload/File/ 20131107CNCERT44.pdf.
[3] 趙 幫, 何 倩, 王 勇, 等. 基于LZMA和多版本的網頁防篡改備份恢復機制[J]. 計算機應用, 20 12, 3 2(7): 1998-2002.
[4] 張建華, 李 濤, 張 楠. Web頁面防篡改及防重放機制[J].計算機應用, 2006, 26(2): 327-329.
[5] 凌質億, 劉哲星, 曹 蕾. 高并發環境下Apache與Nginx 的I/O性能比較[J]. 計算機系統應用, 2013, 22(6): 204-208.
[6] 王朝坤, 付軍寧, 王建民, 等. 軟件防篡改技術綜述[J].計算機研究與發展, 2011, 48(6): 923-933.
[7] 姚 瀅, 陸建新. 網站文件保護系統的研究與實現[J].計算機工程與設計, 2007, 28(6): 1300-1302.
[8] 段國云. 基于環結構的動態網頁防篡改系統的設計與實現[D]. 長沙: 湖南大學, 2012.
[9] 高延玲, 張玉清, 白寶明, 等. 網頁保護系統綜述[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] 魏文晗, 鄧一貴. 基于局部變化性的網頁篡改識別模型及方法[J]. 計算機應用, 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
國家自然科學基金資助項目(61173166);湖南省教育廳科研基金資助項目(11C0600);湖南科技學院科研基金資助項目(12X KYTB005)。
段國云(1982-),男,講師、碩士,主研方向:網絡與信息安全;陳 浩,副教授、博士、博士生導師;黃 文,教授;唐亞純,實驗師、碩士。
2013-12-04
2014-01-24E-mail:Dguoyun@163.com
1000-3428(2014)05-0149-05
A
TP309