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