Web安全產品分析之網頁防篡改產品
企業網頁如果一旦被篡改,其后果是難以預計的。不僅影響了正常的訪問,而且可能還會引起客戶信譽的丟失。防護未知攻擊是難的,但看好我自己的網頁是相對容易的。因此,人們最先想到的就是網頁防篡改技術,保持自己的網頁不受侵害,起碼對社會不會造成大危害。網頁被篡改產品出現在Web早期,幾經風雨,各廠家技術逐漸統一。
網頁防篡改產品的部署:建立一臺單獨的管理服務器(Web服務器數量少可以省略),然后在每臺Web服務器上安裝一個Agent程序,負責該服務器的“網頁文件看護”,管理服務器是管理這些Agent看護策略的。
a)第一代技術
把Web服務器主目錄下的文件做一個備份,用一個定時循環進程,把備份的文件與服務使用的文件逐個進行比較,不一樣的就用備份去覆蓋。網站更新發布時,則同時更新主目錄與備份。這種方法在網站大的情況下,網頁數量巨大,掃描一遍的時間太長,并且對Web服務器性能也是擠占。
b)第二代技術
采用了Hash算法,對主目錄下的每個文件做Hash,生成該文件的“指紋”,定時循環進程直接計算服務用文件的Hash指紋,然后進行指紋核對,指紋一般比較小,比較方便;指紋具有不可逆的特點,不怕仿制。
c)第三代技術
既然網站上頁面太多,三級以下頁面的訪問量,一般使用呈指數級下降,沒人訪問當然也不會被篡改,在這些頁面重復掃描是不劃算的。改變一下思路:對文件讀取應該沒有危險,危險的是對文件的改寫操作。若只對文件被改變時才做檢查,就可以大大降低對服務器資源的占用;具體做法是:開啟一個看守進程,對Web服務器的主目錄文件刪改操作進行監控,發現有此操作,判斷是否有合法身份,是否為授權的維護操作,否則阻斷其執行,文件不被改寫,也就起到了網頁防篡改的目的。這個技術也稱為事件觸發防篡改。
這種技術需要考驗對服務器操作系統的熟悉程度,但黑客也是高手,你的看護進程是用戶級的,黑客可以獲得高級權限,繞過你的“消息鉤子”,監控就成了擺設。
d)第四代技術
既然是比誰的進程權限高,讓操作系統干這個活兒,應該是最合適的,黑客再牛也不可能越過操作系統自己“干活”。因此,在Windows系統中,提供系統級的目錄文件修改看護進程(系統調用),防篡改產品直接調用就可以了,或者利用操作系統自身的文件安全保護功能,對主目錄文件進行鎖定(Windows對自己系統的重要文件也采取了類似的防篡改保護,避免病毒的侵擾),只允許網站發布系統(網頁升級更新)才可以修改文件,其他系統進程也不允許刪改。
這個方法應該說比較徹底,但可以看出,以后防篡改技術將成為操作系統的“專利”了,安全廠家實在是不愿意看到的。好在目前Linux還沒有支持。
網頁防篡改系統可以用于Web服務器,也可以用于中間件服務器,其目的都是保障網頁文件的完整性。
網頁防篡改對保護靜態頁面有很好的效果,但對于動態頁面就沒有辦法了,因為頁面是用戶訪問時生成的,內容與數據庫相關。很多SQL注入就是利用這個漏洞,可以繼續入侵Web服務器。
到目前為止,很多網頁防篡改產品中都提供了一個IPS軟件模塊,用來阻止來針對Web服務的SQL注入、XML注入攻擊。如國內廠家的WebGuard、iGuard、InforGuard等產品。
【編輯推薦】