查看單個文章
舊 2006-12-19, 02:36 PM   #2 (permalink)
alrex5401 帥哥
註冊會員
 
alrex5401 的頭像
榮譽勳章
UID - 83485
在線等級: 級別:25 | 在線時長:770小時 | 升級還需:10小時級別:25 | 在線時長:770小時 | 升級還需:10小時級別:25 | 在線時長:770小時 | 升級還需:10小時級別:25 | 在線時長:770小時 | 升級還需:10小時級別:25 | 在線時長:770小時 | 升級還需:10小時
註冊日期: 2003-07-05
VIP期限: 2009-03
住址: 天堂地獄
文章: 554
精華: 0
現金: 94 金幣
資產: 220667 金幣
預設

三. 防火牆技術

  傳統意義上的防火牆技術分為三大類,“包過濾”(Packet Filtering)、“應用代理”(Application Proxy)和“狀態監視”(Stateful Inspection),無論一個防火牆的實現過程多麼複雜,歸根結底都是在這三種技術的基礎上進行功能擴展的。

  1.包過濾技術

  包過濾是最早使用的一種防火牆技術,它的第一代模型是“靜態包過濾”(Static Packet Filtering),使用包過濾技術的防火牆通常工作在OSI模型中的網路層(Network Layer)上,後來發展更新的“動態包過濾”(Dynamic Packet Filtering)增加了傳輸層(Transport Layer),簡而言之,包過濾技術工作的地方就是各種基於TCP/IP協議的數據報文進出的通道,它把這兩層作為數據監控的對象,對每個數據包的頭部、協議、地址、連接埠、類型等資訊進行分析,並與預先設定好的防火牆過濾規則(Filtering Rule)進行核對,一旦發現某個包的某個或多個部分與過濾規則匹配並且條件為“阻止”的時候,這個包就會被丟棄。適當的設定過濾規則可以讓防火牆工作得更安全有效,但是這種技術只能根據預設的過濾規則進行判斷,一旦出現一個沒有在設計人員意料之中的有害數據包請求,整個防火牆的保護就相當於襬設了。也許你會想,讓用戶自行添加不行嗎?但是別忘了,我們要為是普通電腦用戶考慮,並不是所有人都了解網路協議的,如果防火牆工具出現了過濾遺漏問題,他們只能等著被入侵了。一些公司採用定期從網路陞級過濾規則的方法,這個創意固然可以方便一部分家庭用戶,但是對相對比較專業的用戶而言,卻不見得就是好事,因為他們可能會有根據自己的機器環境設定和改動的規則,如果這個規則剛好和陞級到的規則發生衝突,用戶就該鬱悶了,而且如果兩條規則衝突了,防火牆該聽誰的,會不會當場“死給你看”(崩潰)?也許就因為考慮到這些因素,至今我沒見過有多少個產品會提供過濾規則更新功能的,這並不能和殺毒軟體的病毒特徵庫陞級原理相提並論。為了解決這種魚與熊掌的問題,人們對包過濾技術進行了改進,這種改進後的技術稱為“動態包過濾”(市場上存在一種“基於狀態的包過濾防火牆”技術,即Stateful-based Packet Filtering,他們其實是同一類型),與它的前輩相比,動態包過濾功能在保持著原有靜態包過濾技術和過濾規則的基礎上,會對已經成功與電腦連接的報文傳輸進行跟蹤,並且判斷該連接發送的數據包是否會對系統構成威脅,一旦觸發其判斷機制,防火牆就會自動產生新的臨時過濾規則或者把已經存在的過濾規則進行修改,從而阻止該有害數據的繼續傳輸,但是由於動態包過濾需要消耗額外的資源和時間來提取數據包內容進行判斷處理,所以與靜態包過濾相比,它會降低運行效率,但是靜態包過濾已經幾乎退出市場了,我們能選擇的,大部分也只有動態包過濾防火牆了。

  基於包過濾技術的防火牆,其缺點是很顯著的:它得以進行正常工作的一切依據都在於過濾規則的實施,但是偏又不能滿足建立精細規則的要求(規則數量和防火牆性能成反比),而且它只能工作於網路層和傳輸層,並不能判斷高級協議裏的數據是否有害,但是由於它廉價,容易實現,所以它依然服役在各種領域,在技術人員頻繁的設定下為我們工作著。

  2.應用代理技術

  由於包過濾技術無法提供完善的數據保護措施,而且一些特殊的報文攻擊僅僅使用過濾的方法並不能消除危害(如SYN攻擊、ICMP洪水等),因此人們需要一種更全面的防火牆保護技術,在這樣的需求背景下,採用“應用代理”(Application Proxy)技術的防火牆誕生了。我們的讀者還記得“代理”的概念嗎?代理伺服器作為一個為用戶保密或者突破訪問限制的數據轉發通道,在網路上應用廣泛。我們都知道,一個完整的代理設備包含一個服務端和用戶端,服務端接收來自用戶的請求,調用自身的用戶端模擬一個基於用戶請求的連接到目標伺服器,再把目標伺服器返回的數據轉發給用戶,完成一次代理工作過程。那麼,如果在一台代理設備的服務端和用戶端之間連接一個過濾措施呢?這樣的思想便造就了“應用代理” 防火牆,這種防火牆實際上就是一台小型的帶有數據偵測過濾功能的透明代理伺服器(Transparent Proxy),但是它並不是單純的在一個代理設備中嵌入包過濾技術,而是一種被稱為“應用協議分析”(Application Protocol Analysis)的新技術。

“應用協議分析”技術工作在OSI模型的最高層--應用層上,在這一層裏能接觸到的所有數據都是最終形式,也就是說,防火牆“看到”的數據和我們看到的是一樣的,而不是一個個帶著地址連接埠協議等原始內容的數據包,因而它可以實現更高級的數據偵測過程。整個代理防火牆把自身映射為一條透明線路,在用戶方面和外界線路看來,它們之間的連接並沒有任何阻礙,但是這個連接的數據收發實際上是經過了代理防火牆轉向的,當外界數據進入代理防火牆的用戶端時, “應用協議分析”模組便根據應用層協議處理這個數據,透過預置的處理規則(沒錯,又是規則,防火牆離不開規則)查詢這個數據是否帶有危害,由於這一層面對的已經不再是組合有限的報文協議,甚至可以識別類似於“GET /sql.asp?id=1 and 1”的數據內容,所以防火牆不僅能根據數據層提供的資訊判斷數據,更能像管理員分析伺服器日誌那樣“看”內容辨危害。而且由於工作在應用層,防火牆還可以實現雙向限制,在過濾外部網路有害數據的同時也監控著內部網路的資訊,管理員可以配置防火牆實現一個身份驗證和連接時限的功能,進一步防止內部網路資訊洩漏的隱患。最後,由於代理防火牆采取是代理機制進行工作,內外部網路之間的通信都需先經過代理伺服器審核,透過後再由代理伺服器連接,根本沒有給分隔在內外部網路兩邊的電腦直接會話的機會,可以避免入侵者使用“數據驅動”攻擊方式(一種能透過包過濾技術防火牆規則的數據報文,但是當它進入電腦處理後,卻變成能夠修改系統設定和用戶數據的惡意代碼)滲透內部網路,可以說,“應用代理”是比包過濾技術更完善的防火牆技術。

  但是,似乎任何東西都不可能逃避“墨菲定律”的規則,代理型防火牆的結構特徵偏偏正是它的最大缺點,由於它是基於代理技術的,透過防火牆的每個連接都必須建立在為之創建的代理程式進程上,而代理進程自身是要消耗一定時間的,更何況代理進程裏還有一套複雜的協議分析機制在同時工作,於是數據在透過代理防火牆時就不可避免的發生數據遲滯現象,換個形象的說法,每個數據連接在經過代理防火牆時都會先被請進保安室喝杯茶搜搜身再繼續趕路,而保安的工作速度並不能很快。代理防火牆是以犧牲速度為代價換取了比包過濾防火牆更高的安全性能,在網路吞吐量不是很大的情況下,也許用戶不會察覺到什麼,然而到了數據交換頻繁的時刻,代理防火牆就成了整個網路的瓶頸,而且一旦防火牆的硬體配置支撐不住高強度的數據流量而發生罷工,整個網路可能就會因此癱瘓了。所以,代理防火牆的普及範圍還遠遠不及包過濾型防火牆,而在軟體防火牆方面更是幾乎沒見過類似產品了--單機並不具備代理技術所需的條件,所以就目前整個龐大的軟體防火牆市場來說,代理防火牆很難有立足之地。

  
alrex5401 目前離線  
送花文章: 538, 收花文章: 71 篇, 收花: 406 次
向 alrex5401 送花的會員:
mozillaya (2008-03-04)
感謝您發表一篇好文章