葉揚
福建省教育管理信息中心 福建 350003
目前大多數單位的網頁防篡改系統是直接采購現成的系統,并且現有 CMS的設計沒有考慮與網頁防篡改系統相結合來應用,所以為了配合網頁防篡改系統的部署,必須對CMS進行適當地改造。鑒于此,本文提出一種能與網頁防篡改系統相配合的互動網站內容管理系統改造方案。
首先來看看網頁防篡改技術是如何實現的。網頁防篡改系統可分為三個部分:備份端、監控端和控制端。備份端是網頁源文件存放的服務器,通常部署有CMS;監控端是部署在面向互聯網的WEB服務器上,監控端技術是網頁防篡改技術的核心,目標是實現準確、迅速地檢測、阻止或恢復對目標文件的非法修改、刪除和添加;控制端是防篡改系統的管理工作站,負責與監控端建立連接,準確實時地獲取并顯示監控信息,發送監控命令,進行日志操作,獲取報警信息等。
目前國內外常見的網頁防篡改技術主要有:
(1) 時間輪詢技術:利用一個網頁檢測程序,以輪詢方式讀出要監控的網頁文件,與備份端網頁文件相比較,來判斷網頁內容的完整性,對于被篡改的網頁進行報警和恢復。
(2) 核心內嵌技術+事件觸發技術:核心內嵌技術即密碼水印技術,最初先將網頁內容采取非對稱加密存放,在外來訪問請求時將經過加密驗證過的網頁進行解密對外發布,若未經過驗證則拒絕對外發布,并調用備份端網頁文件進行驗證解密后對外發布。
(3) 文件過濾驅動技術+事件觸發技術:將篡改監測的核心程序通過操作系統文件底層驅動技術應用到服務器中,通過事件觸發方式進行自動監測,對文件夾的所有文件內容,對照其底層文件屬性,經過內置散列快速算法進行實時監測,若發現屬性變更,通過非協議方式,純文件安全拷貝方式將備份路徑文件夾內容拷貝到監測文件夾相應文件位置,通過底層文件驅動技術,整個文件復制過程達到毫秒級,使得公眾無法看到被篡改頁面。
根據網頁防篡改技術的實現原理可以知道,網頁防篡改系統保證了監控端的文件與備份端的文件的一致性,所以為了WEB系統整體的安全性,必須是將備份端服務器部署在安全的內網,也就是產生備份端網頁文件的 CMS也必須部署在內網。
然而很多網站的功能是豐富多采的,比如媒體類網站的“在線投稿”、政務類網站的“網上行政審批”等互動功能,必須要求CMS面向公眾,面向互聯網,這樣就意味著CMS服務器必須部署在外網區,如此,做為數據源的備份端如果受到攻擊,那么防篡改系統的保護就毫無意義了。
為了實現網站的互動功能,又不破壞防篡改系統的整體安全性,本文提出對現有 CMS進行輕量級地改造,將發布功能模塊從 CMS系統中獨立出來,且對用戶操作透明的設計方案。以下就以在線投稿功能為例,闡述方案的設計思路。
先來看看在普通的CMS中,處理一篇投稿的工作流程。首先,在線投稿用戶登錄CMS提交稿件后,CMS將稿件頁面的文字信息保存在后臺數據庫中,頁面中的圖片或其他附件則是上傳到 CMS服務器本地。而后,網站審核員對該稿件進行審核確認后,CMS將自動生成對應的靜態頁面或動態頁面,即在網站上發布了該稿件。在這投稿、審核、發布的流程當中,對于存儲在數據庫中的稿件文字信息的防護,網頁防篡改系統是無能為力的,因此本文并不討論對數據庫信息的防護,而對于投稿用戶提交的圖片和其他類型的附件卻是網頁防篡改系統保護的本職所在。所以,改造方案所要解決的問題的實質就是如何處理用戶提交的圖片及附件。
本文提出的改造方案是將現有的 CMS拆分為內容審核系統和內容發布系統,分別部署于外網區(防火墻 DMZ區)和內網區。待審核員確認一稿件審核通過時,內容審核系統將自動向內容發布系統提交審核員占個賬號、密碼及稿件ID信息,之后由內容發布系統自動下載內容審核服務器上的圖片及附件文件,并連同數據庫中讀取的稿件正文一并生成稿件的靜態網頁文件,至此,審核過程完成,向審核員瀏覽器返回操作成功頁面。最后由防篡改系統將靜態網頁和圖片、附件等網頁文件自動同步到監控端——WEB服務器。系統的數據流如圖1所示。

圖1 系統數據流圖
系統部署的拓樸結構如圖2所示。其中WEB服務器和內容審核服務器是兩個邏輯上獨立的站點,在實際部署中可以部署在同一臺物理服務器上,所以新的部署方案并不會增加硬件的開銷。

圖2 系統布署拓樸圖
(1) 內容審核系統加密提交賬號等信息。為了實現對審核員操作的透明性,審稿操作過程中的自動從內容審核系統切換至內容發布系統。為了保證這一過程的安全,防范最壞情況的出現——內容審核服務器淪陷后被安裝了監聽程序,內容審核系統向內容發布系統提交的審核員賬號、密碼及稿件 ID信息必須經過加密,內容發布系統解密驗證后再進行之后的操作。
(2) 內容發布系統遠程下載的實現方法。內容發布系統復制內容審核系統的圖片及附件文件是通過遠程下載實現的,如果內容審核系統的設計是將附件文件的路徑保存在數據庫中,那么以.NET平臺為例,可以利用WebClient類的DownloadFile()方法實現將內容審核服務器上的文件下載到內容發布服務器;如果內容審核系統的稿件是由網頁編輯器生成,那么可以先通過正則表達式匹配稿件的HTML源代碼獲取附件文件的路徑。如下列返回圖片名稱的正則表達式:
string img = GetUrlByReg(TextContent,@"(IMG SRC="")+([.]*(([/](w+))*([.])(jpg|gif|bmp)))",2).TrimEnd('$').TrimStart('.');
這個表達式可以匹配如“IMG SRC="../image/01/10001.jpg"”類似的字符串,以獲取圖片的相對路徑。
(3) 利用防篡改系統對內容審核服務器進行防護。雖然內容審核服務器面向互聯網,但是也并非無防可守。由于防篡改系統一般都具有指定目錄監控功能,所以可以指定對系統的腳本等關鍵目錄進行保護,充分利用防篡改系統的防護功能。對于附件保存目錄,雖然不能將之設置成寫保護,但是可以嚴格設置其訪問權限,如取消其可執行權限。
本文討論了網頁防篡改系統的技術原理及局限性,并介紹了為配合網頁防篡改系統的部署,實現網站的互動功能,對現有CMS進行輕量級改造的設計方案,不破壞CMS現有的架構,只是將 CMS中內容發布功能獨立出來部署在內網中安全的服務器上運行。方案改造的工作量小,不降低WEB系統的整體安全性,不增加硬件開銷,且操作上對用戶透明,是易于實施和部署的。
此外,對于WEB系統的整體安全而言,由系統的數據流圖可以看出,數據庫在 CMS中的作用貫穿始終,但是網頁防篡改系統對數據庫的防護卻無能為力。雖然數據庫的安全防護不在本文討論之列,但是正如木桶原理所指出的,WEB系統的安全防護應該是一個立體的綜合防護,本文提出的方案應當和其他的網站加固方案一起綜合應用,這樣才能讓CMS不會成為木桶中的那塊短板。
[1]吳瑟,唐保國.網頁防篡改系統方案的研究與實現[J].電腦開發與應用.2010.
[2]姚瀅.網頁防篡改系統的研究與設計方案[J].計算機安全.2010.
[3]黃光芳.正則表達式在遠程網頁下載中的應用[J].計算機與信息技術.2007.