天天看點

Web安全(中)---被動類安全産品技術分析

Web安全---被動類安全産品技術分析

Jack zhai

一、 Web 安全産品分析

圍繞Web服務的安全,産品可以說五花八門,最基本的是接入網入口的UTM網關,其中IPS功能與防DDOS功能是Web伺服器系統級入侵的直接防護,但UTM是通用的邊界安全網關,非“專業的”Web入侵防護,一般作為安全的入門級防護,這裡不細說。這裡主要分析專為Web服務開發的安全産品,大概有下面幾方面的産品:

1、網頁防篡改産品:

防護未知攻擊是難的,但看好我自己的“家底”是相對容易的。是以,人們最先想到的就是網頁防篡改技術,保持自己的“純潔”,起碼對社會不會造成大危害。網頁被篡改産品出現在Web早期,幾經風雨,各廠家技術逐漸統一。網頁防篡改技術的基本原理:是對Web伺服器上的頁面檔案(目錄下檔案)進行監控,發現有更改及時恢複。是以該産品實際是一個“修補”的工具,不能阻止攻擊者的篡改,就來個守株待兔,專人看守,減少損失是目标,防篡改屬于典型的被動防護技術。

網頁防篡改産品的部署:建立一台單獨的管理伺服器(Web伺服器數量少可以省略),然後在每台Web伺服器上安裝一個Agent程式,負責該伺服器的“網頁檔案看護”,管理伺服器是管理這些Agent看護政策的。

Web安全(中)---被動類安全産品技術分析

我們先分析一下“頁面檔案看護”技術的變遷:

a)         第一代技術,把Web伺服器主目錄下的檔案做一個備份,用一個定時循環程序,把備份的檔案與服務使用的檔案逐個進行比較,不一樣的就用備份去覆寫。網站更新釋出時,則同時更新主目錄與備份。這種方法在網站大的情況下,網頁數量巨大,掃描一遍的時間太長,并且對Web伺服器性能也是擠占。

b)         第二代技術,采用了Hash算法,對主目錄下的每個檔案做Hash,生成該檔案的“指紋”,定時循環程序直接計算服務用檔案的Hash指紋,然後進行指紋核對,指紋一般比較小,比較友善;指紋具有不可逆的特點,不怕仿制。

c)         第三代技術,既然網站上頁面太多,三級以下頁面的通路量,一般使用呈指數級下降,沒人通路當然也不會被篡改,在這些頁面重複掃描是不劃算的。改變一下思路:對檔案讀取應該沒有危險,危險的是對檔案的改寫操作。若隻對檔案被改變時才做檢查,就可以大大降低對伺服器資源的占用;具體做法是:開啟一個看守程序,對Web伺服器的主目錄檔案删改操作進行監控,發現有此操作,判斷是否有合法身份,是否為授權的維護操作,否則阻斷其執行,檔案不被改寫,也就起到了網頁防篡改的目的。這個技術也稱為事件觸發防篡改。

這種技術需要考驗對伺服器作業系統的熟悉程度,但黑客也是高手,你的看護程序是使用者級的,黑客可以獲得進階權限,繞過你的“消息鈎子”,監控就成了擺設。

d)         第四代技術,既然是比誰的程序權限高,讓作業系統幹這個活兒,應該是最合适的,黑客再牛也不可能越過作業系統自己“幹活”。是以,在Windows系統中,提供系統級的目錄檔案修改看護程序(系統調用),防篡改産品直接調用就可以了,或者利用作業系統自身的檔案安全保護功能,對主目錄檔案進行鎖定(Windows對自己系統的重要檔案也采取了類似的防篡改保護,避免病毒的侵擾),隻允許網站釋出系統(網頁更新更新)才可以修改檔案,其他系統程序也不允許删改。

這個方法應該說比較徹底,但可以看出,以後防篡改技術将成為作業系統的“專利”了,安全廠家實在是不願意看到的。好在目前Linux還沒有支援。

網頁防篡改系統可以用于Web伺服器,也可以用于中間件伺服器,其目的都是保障網頁檔案的完整性。

網頁防篡改對保護靜态頁面有很好的效果,但對于動态頁面就沒有辦法了,因為頁面是使用者通路時生成的,内容與資料庫相關。很多SQL注入就是利用這個漏洞,可以繼續入侵Web伺服器。

到目前為止,很多網頁防篡改産品中都提供了一個IPS軟體子產品,用來阻止來針對Web服務的SQL注入、XML注入攻擊。如國内廠家的WebGuard、iGuard、InforGuard等産品。

2、Web 資料庫審計産品:

有效恢複是安全保障的一個很重要的理念。我們提到動态網頁的防護難點是用資料庫現場生成的,是以對資料庫的修改就變得很關鍵, Web資料庫審計産品的目的就是對資料的所有操作進行記錄,當發現問題時,這些操作可以回溯。打個比方,你在遊戲中的裝備被别人給“劃走”了,過了一周,你發現了,但一周中,遊戲在繼續,你的裝備有很多新動态,合理與不合理變化交織在一起。此時,若管理人員知道确定是“某人”的篡改,就可以把他的動作進行“逆向”操作,你的遊戲仍可以繼續,不受影響;若通過協商,需要恢複到篡改前的某個狀态,則在資料庫中先取得篡改前最近一次的備份資料,再使用資料庫的審計記錄,一直“操作”到篡改前的狀态,遊戲就可以繼續了。這種技術與資料庫的實時同步備份技術是類似的。

Web資料庫審計的目的與通常的安全審計産品的不同,驗證與重制過程是第二位的,而對資料的可回溯操作是第一位的,有人了解為資料恢複是資料備份與容災系統的工作,其實隻是其中的一個方面,對整個資料庫應該是這樣的,但對單個使用者的資料的恢複是這裡的審計來解決的。這裡的審計有些像資料庫的記錄檔,但需要關聯到操作的賬戶,後者是操作者是身份。

當然資料的操作量很大,全部記錄需要很大的資料空間,是以,Web服務中重要資料庫操作才進行詳細審計,審計的目的是為了營運狀态的可恢複。常見的Web審計資料:

²  帳戶操作:涉及權限的改變

²  營運操作:涉及“财與物”的變化

²  維護操作:涉及“特殊權限”人的動作

Web資料庫審計産品一般采用旁路部署,不影響資料庫的業務效率。若在業務流量不很大的情況下,可以采用Agent的軟體方式,但是不建議完全依靠資料庫自身的日志功能,因為,入侵者破壞後一定有“抹去痕迹”的步驟,痕迹一般就是系統本身的日志,單獨的審計機制保障了日志的完整性。

繼續閱讀