葉揚
福建省教育管理信息中心 福建 350003
目前大多數(shù)單位的網頁防篡改系統(tǒng)是直接采購現(xiàn)成的系統(tǒng),并且現(xiàn)有 CMS的設計沒有考慮與網頁防篡改系統(tǒng)相結合來應用,所以為了配合網頁防篡改系統(tǒng)的部署,必須對CMS進行適當?shù)馗脑臁hb于此,本文提出一種能與網頁防篡改系統(tǒng)相配合的互動網站內容管理系統(tǒng)改造方案。
首先來看看網頁防篡改技術是如何實現(xiàn)的。網頁防篡改系統(tǒng)可分為三個部分:備份端、監(jiān)控端和控制端。備份端是網頁源文件存放的服務器,通常部署有CMS;監(jiān)控端是部署在面向互聯(lián)網的WEB服務器上,監(jiān)控端技術是網頁防篡改技術的核心,目標是實現(xiàn)準確、迅速地檢測、阻止或恢復對目標文件的非法修改、刪除和添加;控制端是防篡改系統(tǒng)的管理工作站,負責與監(jiān)控端建立連接,準確實時地獲取并顯示監(jiān)控信息,發(fā)送監(jiān)控命令,進行日志操作,獲取報警信息等。
目前國內外常見的網頁防篡改技術主要有:
(1) 時間輪詢技術:利用一個網頁檢測程序,以輪詢方式讀出要監(jiān)控的網頁文件,與備份端網頁文件相比較,來判斷網頁內容的完整性,對于被篡改的網頁進行報警和恢復。
(2) 核心內嵌技術+事件觸發(fā)技術:核心內嵌技術即密碼水印技術,最初先將網頁內容采取非對稱加密存放,在外來訪問請求時將經過加密驗證過的網頁進行解密對外發(fā)布,若未經過驗證則拒絕對外發(fā)布,并調用備份端網頁文件進行驗證解密后對外發(fā)布。
(3) 文件過濾驅動技術+事件觸發(fā)技術:將篡改監(jiān)測的核心程序通過操作系統(tǒng)文件底層驅動技術應用到服務器中,通過事件觸發(fā)方式進行自動監(jiān)測,對文件夾的所有文件內容,對照其底層文件屬性,經過內置散列快速算法進行實時監(jiān)測,若發(fā)現(xiàn)屬性變更,通過非協(xié)議方式,純文件安全拷貝方式將備份路徑文件夾內容拷貝到監(jiān)測文件夾相應文件位置,通過底層文件驅動技術,整個文件復制過程達到毫秒級,使得公眾無法看到被篡改頁面。
根據網頁防篡改技術的實現(xiàn)原理可以知道,網頁防篡改系統(tǒng)保證了監(jiān)控端的文件與備份端的文件的一致性,所以為了WEB系統(tǒng)整體的安全性,必須是將備份端服務器部署在安全的內網,也就是產生備份端網頁文件的 CMS也必須部署在內網。
然而很多網站的功能是豐富多采的,比如媒體類網站的“在線投稿”、政務類網站的“網上行政審批”等互動功能,必須要求CMS面向公眾,面向互聯(lián)網,這樣就意味著CMS服務器必須部署在外網區(qū),如此,做為數(shù)據源的備份端如果受到攻擊,那么防篡改系統(tǒng)的保護就毫無意義了。
為了實現(xiàn)網站的互動功能,又不破壞防篡改系統(tǒng)的整體安全性,本文提出對現(xiàn)有 CMS進行輕量級地改造,將發(fā)布功能模塊從 CMS系統(tǒng)中獨立出來,且對用戶操作透明的設計方案。以下就以在線投稿功能為例,闡述方案的設計思路。
先來看看在普通的CMS中,處理一篇投稿的工作流程。首先,在線投稿用戶登錄CMS提交稿件后,CMS將稿件頁面的文字信息保存在后臺數(shù)據庫中,頁面中的圖片或其他附件則是上傳到 CMS服務器本地。而后,網站審核員對該稿件進行審核確認后,CMS將自動生成對應的靜態(tài)頁面或動態(tài)頁面,即在網站上發(fā)布了該稿件。在這投稿、審核、發(fā)布的流程當中,對于存儲在數(shù)據庫中的稿件文字信息的防護,網頁防篡改系統(tǒng)是無能為力的,因此本文并不討論對數(shù)據庫信息的防護,而對于投稿用戶提交的圖片和其他類型的附件卻是網頁防篡改系統(tǒng)保護的本職所在。所以,改造方案所要解決的問題的實質就是如何處理用戶提交的圖片及附件。
本文提出的改造方案是將現(xiàn)有的 CMS拆分為內容審核系統(tǒng)和內容發(fā)布系統(tǒng),分別部署于外網區(qū)(防火墻 DMZ區(qū))和內網區(qū)。待審核員確認一稿件審核通過時,內容審核系統(tǒng)將自動向內容發(fā)布系統(tǒng)提交審核員占個賬號、密碼及稿件ID信息,之后由內容發(fā)布系統(tǒng)自動下載內容審核服務器上的圖片及附件文件,并連同數(shù)據庫中讀取的稿件正文一并生成稿件的靜態(tài)網頁文件,至此,審核過程完成,向審核員瀏覽器返回操作成功頁面。最后由防篡改系統(tǒng)將靜態(tài)網頁和圖片、附件等網頁文件自動同步到監(jiān)控端——WEB服務器。系統(tǒng)的數(shù)據流如圖1所示。
圖1 系統(tǒng)數(shù)據流圖
系統(tǒng)部署的拓樸結構如圖2所示。其中WEB服務器和內容審核服務器是兩個邏輯上獨立的站點,在實際部署中可以部署在同一臺物理服務器上,所以新的部署方案并不會增加硬件的開銷。
圖2 系統(tǒng)布署拓樸圖
(1) 內容審核系統(tǒng)加密提交賬號等信息。為了實現(xiàn)對審核員操作的透明性,審稿操作過程中的自動從內容審核系統(tǒng)切換至內容發(fā)布系統(tǒng)。為了保證這一過程的安全,防范最壞情況的出現(xiàn)——內容審核服務器淪陷后被安裝了監(jiān)聽程序,內容審核系統(tǒng)向內容發(fā)布系統(tǒng)提交的審核員賬號、密碼及稿件 ID信息必須經過加密,內容發(fā)布系統(tǒng)解密驗證后再進行之后的操作。
(2) 內容發(fā)布系統(tǒng)遠程下載的實現(xiàn)方法。內容發(fā)布系統(tǒng)復制內容審核系統(tǒng)的圖片及附件文件是通過遠程下載實現(xiàn)的,如果內容審核系統(tǒng)的設計是將附件文件的路徑保存在數(shù)據庫中,那么以.NET平臺為例,可以利用WebClient類的DownloadFile()方法實現(xiàn)將內容審核服務器上的文件下載到內容發(fā)布服務器;如果內容審核系統(tǒng)的稿件是由網頁編輯器生成,那么可以先通過正則表達式匹配稿件的HTML源代碼獲取附件文件的路徑。如下列返回圖片名稱的正則表達式:
string img = GetUrlByReg(TextContent,@"(IMG SRC="")+([.]*(([/](w+))*([.])(jpg|gif|bmp)))",2).TrimEnd('$').TrimStart('.');
這個表達式可以匹配如“IMG SRC="../image/01/10001.jpg"”類似的字符串,以獲取圖片的相對路徑。
(3) 利用防篡改系統(tǒng)對內容審核服務器進行防護。雖然內容審核服務器面向互聯(lián)網,但是也并非無防可守。由于防篡改系統(tǒng)一般都具有指定目錄監(jiān)控功能,所以可以指定對系統(tǒng)的腳本等關鍵目錄進行保護,充分利用防篡改系統(tǒng)的防護功能。對于附件保存目錄,雖然不能將之設置成寫保護,但是可以嚴格設置其訪問權限,如取消其可執(zhí)行權限。
本文討論了網頁防篡改系統(tǒng)的技術原理及局限性,并介紹了為配合網頁防篡改系統(tǒng)的部署,實現(xiàn)網站的互動功能,對現(xiàn)有CMS進行輕量級改造的設計方案,不破壞CMS現(xiàn)有的架構,只是將 CMS中內容發(fā)布功能獨立出來部署在內網中安全的服務器上運行。方案改造的工作量小,不降低WEB系統(tǒng)的整體安全性,不增加硬件開銷,且操作上對用戶透明,是易于實施和部署的。
此外,對于WEB系統(tǒng)的整體安全而言,由系統(tǒng)的數(shù)據流圖可以看出,數(shù)據庫在 CMS中的作用貫穿始終,但是網頁防篡改系統(tǒng)對數(shù)據庫的防護卻無能為力。雖然數(shù)據庫的安全防護不在本文討論之列,但是正如木桶原理所指出的,WEB系統(tǒng)的安全防護應該是一個立體的綜合防護,本文提出的方案應當和其他的網站加固方案一起綜合應用,這樣才能讓CMS不會成為木桶中的那塊短板。
[1]吳瑟,唐保國.網頁防篡改系統(tǒng)方案的研究與實現(xiàn)[J].電腦開發(fā)與應用.2010.
[2]姚瀅.網頁防篡改系統(tǒng)的研究與設計方案[J].計算機安全.2010.
[3]黃光芳.正則表達式在遠程網頁下載中的應用[J].計算機與信息技術.2007.