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