什么是計算機防火墻
什么是計算機防火墻
對于防火墻這個東西,很多小白對此都不是特別了解。下面學習啦小編就為大家介紹一下具體的知識內(nèi)容吧,歡迎大家參考和學習。
一. 防火墻的概念
近年來,隨著普通計算機用戶群的日益增長,“防火墻”一詞已經(jīng)不再是服務器領(lǐng)域的專署,大部分家庭用戶都知道為自己愛機安裝各種“防火墻”軟件了。但是,并不是所有用戶都對“防火墻”有所了解的,一部分用戶甚至認為,“防火墻”是一種軟件的名稱……
到底什么才是防火墻?它工作在什么位置,起著什么作用?查閱歷史書籍可知,古代構(gòu)筑和使用木制結(jié)構(gòu)房屋的時候為防止火災的發(fā)生和蔓延,人們將堅固的石塊堆砌在房屋周圍作為屏障,這種防護構(gòu)筑物就被稱為“防火墻”(FireWall)。時光飛梭,隨著計算機和網(wǎng)絡的發(fā)展,各種攻擊入侵手段也相繼出現(xiàn)了,為了保護計算機的安全,人們開發(fā)出一種能阻止計算機之間直接通信的技術(shù),并沿用了古代類似這個功能的名字——“防火墻”技術(shù)來源于此。用專業(yè)術(shù)語來說,防火墻是一種位于兩個或多個網(wǎng)絡間,實施網(wǎng)絡之間訪問控制的組件集合。對于普通用戶來說,所謂“防火墻”,指的就是一種被放置在自己的計算機與外界網(wǎng)絡之間的防御系統(tǒng),從網(wǎng)絡發(fā)往計算機的所有數(shù)據(jù)都要經(jīng)過它的判斷處理后,才會決定能不能把這些數(shù)據(jù)交給計算機,一旦發(fā)現(xiàn)有害數(shù)據(jù),防火墻就會攔截下來,實現(xiàn)了對計算機的保護功能。
防火墻技術(shù)從誕生開始,就在一刻不停的發(fā)展著,各種不同結(jié)構(gòu)不同功能的防火墻,構(gòu)筑成網(wǎng)絡上的一道道防御大堤。
二. 防火墻的分類
世界上沒有一種事物是唯一的,防火墻也一樣,為了更有效率的對付網(wǎng)絡上各種不同攻擊手段,防火墻也派分出幾種防御架構(gòu)。根據(jù)物理特性,防火墻分為兩大類,硬件防火墻和軟件防火墻。軟件防火墻是一種安裝在負責內(nèi)外網(wǎng)絡轉(zhuǎn)換的網(wǎng)關(guān)服務器或者獨立的個人計算機上的特殊程序,它是以邏輯形式存在的,防火墻程序跟隨系統(tǒng)啟動,通過運行在Ring0級別的特殊驅(qū)動模塊把防御機制插入系統(tǒng)關(guān)于網(wǎng)絡的處理部分和網(wǎng)絡接口設(shè)備驅(qū)動之間,形成一種邏輯上的防御體系。
在沒有軟件防火墻之前,系統(tǒng)和網(wǎng)絡接口設(shè)備之間的通道是直接的,網(wǎng)絡接口設(shè)備通過網(wǎng)絡驅(qū)動程序接口(Network Driver Interface Specification,NDIS)把網(wǎng)絡上傳來的各種報文都忠實的交給系統(tǒng)處理,例如一臺計算機接收到請求列出機器上所有共享資源的數(shù)據(jù)報文,NDIS直接把這個報文提交給系統(tǒng),系統(tǒng)在處理后就會返回相應數(shù)據(jù),在某些情況下就會造成信息泄漏。而使用軟件防火墻后,盡管NDIS接收到仍然的是原封不動的數(shù)據(jù)報文,但是在提交到系統(tǒng)的通道上多了一層防御機制,所有數(shù)據(jù)報文都要經(jīng)過這層機制根據(jù)一定的規(guī)則判斷處理,只有它認為安全的數(shù)據(jù)才能到達系統(tǒng),其他數(shù)據(jù)則被丟棄。因為有規(guī)則提到“列出共享資源的行為是危險的”,因此在防火墻的判斷下,這個報文會被丟棄,這樣一來,系統(tǒng)接收不到報文,則認為什么事情也沒發(fā)生過,也就不會把信息泄漏出去了。
軟件防火墻工作于系統(tǒng)接口與NDIS之間,用于檢查過濾由NDIS發(fā)送過來的數(shù)據(jù),在無需改動硬件的前提下便能實現(xiàn)一定強度的安全保障,但是由于軟件防火墻自身屬于運行于系統(tǒng)上的程序,不可避免的需要占用一部分CPU資源維持工作,而且由于數(shù)據(jù)判斷處理需要一定的時間,在一些數(shù)據(jù)流量大的網(wǎng)絡里,軟件防火墻會使整個系統(tǒng)工作效率和數(shù)據(jù)吞吐速度下降,甚至有些軟件防火墻會存在漏洞,導致有害數(shù)據(jù)可以繞過它的防御體系,給數(shù)據(jù)安全帶來損失,因此,許多企業(yè)并不會考慮用軟件防火墻方案作為公司網(wǎng)絡的防御措施,而是使用看得見摸得著的硬件防火墻。
硬件防火墻是一種以物理形式存在的專用設(shè)備,通常架設(shè)于兩個網(wǎng)絡的駁接處,直接從網(wǎng)絡設(shè)備上檢查過濾有害的數(shù)據(jù)報文,位于防火墻設(shè)備后端的網(wǎng)絡或者服務器接收到的是經(jīng)過防火墻處理的相對安全的數(shù)據(jù),不必另外分出CPU資源去進行基于軟件架構(gòu)的NDIS數(shù)據(jù)檢測,可以大大提高工作效率。
硬件防火墻一般是通過網(wǎng)線連接于外部網(wǎng)絡接口與內(nèi)部服務器或企業(yè)網(wǎng)絡之間的設(shè)備,這里又另外派分出兩種結(jié)構(gòu),一種是普通硬件級別防火墻,它擁有標準計算機的硬件平臺和一些功能經(jīng)過簡化處理的UNIX系列操作系統(tǒng)和防火墻軟件,這種防火墻措施相當于專門拿出一臺計算機安裝了軟件防火墻,除了不需要處理其他事務以外,它畢竟還是一般的操作系統(tǒng),因此有可能會存在漏洞和不穩(wěn)定因素,安全性并不能做到最好;另一種是所謂的“芯片”級硬件防火墻,它采用專門設(shè)計的硬件平臺,在上面搭建的軟件也是專門開發(fā)的,并非流行的操作系統(tǒng),因而可以達到較好的安全性能保障。但無論是哪種硬件防火墻,管理員都可以通過計算機連接上去設(shè)置工作參數(shù)。由于硬件防火墻的主要作用是把傳入的數(shù)據(jù)報文進行過濾處理后轉(zhuǎn)發(fā)到位于防火墻后面的網(wǎng)絡中,因此它自身的硬件規(guī)格也是分檔次的,盡管硬件防火墻已經(jīng)足以實現(xiàn)比較高的信息處理效率,但是在一些對數(shù)據(jù)吞吐量要求很高的網(wǎng)絡里,檔次低的防火墻仍然會形成瓶頸,所以對于一些大企業(yè)而言,芯片級的硬件防火墻才是他們的首選。
有人也許會這么想,既然PC架構(gòu)的防火墻也不過如此,那么購買這種防火墻還不如自己找技術(shù)人員專門騰出一臺計算機來做防火墻方案了。雖然這樣做也是可以的,但是工作效率并不能和真正的PC架構(gòu)防火墻相比,因為PC架構(gòu)防火墻采用的是專門修改簡化過的系統(tǒng)和相應防火墻程序,比一般計算機系統(tǒng)和軟件防火墻更高度緊密集合,而且由于它的工作性質(zhì)決定了它要具備非常高的穩(wěn)定性、實用性和非常高的系統(tǒng)吞吐性能,這些要求并不是安裝了多網(wǎng)卡的計算機就能簡單替代的,因此PC架構(gòu)防火墻雖然是與計算機差不多的配置,價格卻相差很大。
現(xiàn)實中我們往往會發(fā)現(xiàn),并非所有企業(yè)都架設(shè)了芯片級硬件防火墻,而是用PC架構(gòu)防火墻甚至前面提到的計算機替代方案支撐著,為什么?這大概就是硬件防火墻最顯著的缺點了:它太貴了!購進一臺PC架構(gòu)防火墻的成本至少都要幾千元,高檔次的芯片級防火墻方案更是在十萬元以上,這些價格并非是小企業(yè)所能承受的,而且對于一般家庭用戶而言,自己的數(shù)據(jù)和系統(tǒng)安全也無需專門用到一個硬件設(shè)備去保護,何況為一臺防火墻投入的資金足以讓用戶購買更高檔的電腦了,因而廣大用戶只要安裝一種好用的軟件防火墻就夠了。
為防火墻分類的方法很多,除了從形式上把它分為軟件防火墻和硬件防火墻以外,還可以從技術(shù)上分為“包過濾型”、“應用代理型”和“狀態(tài)監(jiān)視”三類;從結(jié)構(gòu)上又分為單一主機防火墻、路由集成式防火墻和分布式防火墻三種;按工作位置分為邊界防火墻、個人防火墻和混合防火墻;按防火墻性能分為百兆級防火墻和千兆級防火墻兩類……雖然看似種類繁多,但這只是因為業(yè)界分類方法不同罷了,例如一臺硬件防火墻就可能由于結(jié)構(gòu)、數(shù)據(jù)吞吐量和工作位置而規(guī)劃為“百兆級狀態(tài)監(jiān)視型邊界防火墻”,因此這里主要介紹的是技術(shù)方面的分類,即“包過濾型”、“應用代理型”和“狀態(tài)監(jiān)視型”防火墻技術(shù)。
那么,那些所謂的“邊界防火墻”、“單一主機防火墻”又是什么概念呢?所謂“邊界”,就是指兩個網(wǎng)絡之間的接口處,工作于此的防火墻就被稱為“邊界防火墻”;與之相對的有“個人防火墻”,它們通常是基于軟件的防火墻,只處理一臺計算機的數(shù)據(jù)而不是整個網(wǎng)絡的數(shù)據(jù),現(xiàn)在一般家庭用戶使用的軟件防火墻就是這個分類了。而“單一主機防火墻”呢,就是我們最常見的一臺臺硬件防火墻了;一些廠商為了節(jié)約成本,直接把防火墻功能嵌進路由設(shè)備里,就形成了路由集成式防火墻……
三. 防火墻技術(shù)
傳統(tǒng)意義上的防火墻技術(shù)分為三大類,“包過濾”(Packet Filtering)、“應用代理”(Application Proxy)和“狀態(tài)監(jiān)視”(Stateful Inspection),無論一個防火墻的實現(xiàn)過程多么復雜,歸根結(jié)底都是在這三種技術(shù)的基礎(chǔ)上進行功能擴展的。
1.包過濾技術(shù)
包過濾是最早使用的一種防火墻技術(shù),它的第一代模型是“靜態(tài)包過濾”(Static Packet Filtering),使用包過濾技術(shù)的防火墻通常工作在OSI模型中的網(wǎng)絡層(Network Layer)上,后來發(fā)展更新的“動態(tài)包過濾”(Dynamic Packet Filtering)增加了傳輸層(Transport Layer),簡而言之,包過濾技術(shù)工作的地方就是各種基于TCP/IP協(xié)議的數(shù)據(jù)報文進出的通道,它把這兩層作為數(shù)據(jù)監(jiān)控的對象,對每個數(shù)據(jù)包的頭部、協(xié)議、地址、端口、類型等信息進行分析,并與預先設(shè)定好的防火墻過濾規(guī)則(Filtering Rule)進行核對,一旦發(fā)現(xiàn)某個包的某個或多個部分與過濾規(guī)則匹配并且條件為“阻止”的時候,這個包就會被丟棄。適當?shù)脑O(shè)置過濾規(guī)則可以讓防火墻工作得更安全有效,但是這種技術(shù)只能根據(jù)預設(shè)的過濾規(guī)則進行判斷,一旦出現(xiàn)一個沒有在設(shè)計人員意料之中的有害數(shù)據(jù)包請求,整個防火墻的保護就相當于擺設(shè)了。也許你會想,讓用戶自行添加不行嗎?但是別忘了,我們要為是普通計算機用戶考慮,并不是所有人都了解網(wǎng)絡協(xié)議的,如果防火墻工具出現(xiàn)了過濾遺漏問題,他們只能等著被入侵了。
一些公司采用定期從網(wǎng)絡升級過濾規(guī)則的方法,這個創(chuàng)意固然可以方便一部分家庭用戶,但是對相對比較專業(yè)的用戶而言,卻不見得就是好事,因為他們可能會有根據(jù)自己的機器環(huán)境設(shè)定和改動的規(guī)則,如果這個規(guī)則剛好和升級到的規(guī)則發(fā)生沖突,用戶就該郁悶了,而且如果兩條規(guī)則沖突了,防火墻該聽誰的,會不會當場“死給你看”(崩潰)?也許就因為考慮到這些因素,至今我沒見過有多少個產(chǎn)品會提供過濾規(guī)則更新功能的,這并不能和殺毒軟件的病毒特征庫升級原理相提并論。
為了解決這種魚與熊掌的問題,人們對包過濾技術(shù)進行了改進,這種改進后的技術(shù)稱為“動態(tài)包過濾”(市場上存在一種“基于狀態(tài)的包過濾防火墻”技術(shù),即Stateful-based Packet Filtering,他們其實是同一類型),與它的前輩相比,動態(tài)包過濾功能在保持著原有靜態(tài)包過濾技術(shù)和過濾規(guī)則的基礎(chǔ)上,會對已經(jīng)成功與計算機連接的報文傳輸進行跟蹤,并且判斷該連接發(fā)送的數(shù)據(jù)包是否會對系統(tǒng)構(gòu)成威脅,一旦觸發(fā)其判斷機制,防火墻就會自動產(chǎn)生新的臨時過濾規(guī)則或者把已經(jīng)存在的過濾規(guī)則進行修改,從而阻止該有害數(shù)據(jù)的繼續(xù)傳輸,但是由于動態(tài)包過濾需要消耗額外的資源和時間來提取數(shù)據(jù)包內(nèi)容進行判斷處理,所以與靜態(tài)包過濾相比,它會降低運行效率,但是靜態(tài)包過濾已經(jīng)幾乎退出市場了,我們能選擇的,大部分也只有動態(tài)包過濾防火墻了。
基于包過濾技術(shù)的防火墻,其缺點是很顯著的:它得以進行正常工作的一切依據(jù)都在于過濾規(guī)則的實施,但是偏又不能滿足建立精細規(guī)則的要求(規(guī)則數(shù)量和防火墻性能成反比),而且它只能工作于網(wǎng)絡層和傳輸層,并不能判斷高級協(xié)議里的數(shù)據(jù)是否有害,但是由于它廉價,容易實現(xiàn),所以它依然服役在各種領(lǐng)域,在技術(shù)人員頻繁的設(shè)置下為我們工作著。
2.應用代理技術(shù)
由于包過濾技術(shù)無法提供完善的數(shù)據(jù)保護措施,而且一些特殊的報文攻擊僅僅使用過濾的方法并不能消除危害(如SYN攻擊、ICMP洪水等),因此人們需要一種更全面的防火墻保護技術(shù),在這樣的需求背景下,采用“應用代理”(Application Proxy)技術(shù)的防火墻誕生了。我們的讀者還記得“代理”的概念嗎?代理服務器作為一個為用戶保密或者突破訪問限制的數(shù)據(jù)轉(zhuǎn)發(fā)通道,在網(wǎng)絡上應用廣泛。我們都知道,一個完整的代理設(shè)備包含一個服務端和客戶端,服務端接收來自用戶的請求,調(diào)用自身的客戶端模擬一個基于用戶請求的連接到目標服務器,再把目標服務器返回的數(shù)據(jù)轉(zhuǎn)發(fā)給用戶,完成一次代理工作過程。那么,如果在一臺代理設(shè)備的服務端和客戶端之間連接一個過濾措施呢?這樣的思想便造就了“應用代理”防火墻,這種防火墻實際上就是一臺小型的帶有數(shù)據(jù)檢測過濾功能的透明代理服務器(Transparent Proxy),但是它并不是單純的在一個代理設(shè)備中嵌入包過濾技術(shù),而是一種被稱為“應用協(xié)議分析”(Application Protocol Analysis)的新技術(shù)。
“應用協(xié)議分析”技術(shù)工作在OSI模型的最高層——應用層上,在這一層里能接觸到的所有數(shù)據(jù)都是最終形式,也就是說,防火墻“看到”的數(shù)據(jù)和我們看到的是一樣的,而不是一個個帶著地址端口協(xié)議等原始內(nèi)容的數(shù)據(jù)包,因而它可以實現(xiàn)更高級的數(shù)據(jù)檢測過程。整個代理防火墻把自身映射為一條透明線路,在用戶方面和外界線路看來,它們之間的連接并沒有任何阻礙,但是這個連接的數(shù)據(jù)收發(fā)實際上是經(jīng)過了代理防火墻轉(zhuǎn)向的,當外界數(shù)據(jù)進入代理防火墻的客戶端時,“應用協(xié)議分析”模塊便根據(jù)應用層協(xié)議處理這個數(shù)據(jù),通過預置的處理規(guī)則(沒錯,又是規(guī)則,防火墻離不開規(guī)則)查詢這個數(shù)據(jù)是否帶有危害。
由于這一層面對的已經(jīng)不再是組合有限的報文協(xié)議,甚至可以識別類似于“GET /sql.asp?id=1 and 1”的數(shù)據(jù)內(nèi)容,所以防火墻不僅能根據(jù)數(shù)據(jù)層提供的信息判斷數(shù)據(jù),更能像管理員分析服務器日志那樣“看”內(nèi)容辨危害。而且由于工作在應用層,防火墻還可以實現(xiàn)雙向限制,在過濾外部網(wǎng)絡有害數(shù)據(jù)的同時也監(jiān)控著內(nèi)部網(wǎng)絡的信息,管理員可以配置防火墻實現(xiàn)一個身份驗證和連接時限的功能,進一步防止內(nèi)部網(wǎng)絡信息泄漏的隱患。最后,由于代理防火墻采取是代理機制進行工作,內(nèi)外部網(wǎng)絡之間的通信都需先經(jīng)過代理服務器審核,通過后再由代理服務器連接,根本沒有給分隔在內(nèi)外部網(wǎng)絡兩邊的計算機直接會話的機會,可以避免入侵者使用“數(shù)據(jù)驅(qū)動”攻擊方式(一種能通過包過濾技術(shù)防火墻規(guī)則的數(shù)據(jù)報文,但是當它進入計算機處理后,卻變成能夠修改系統(tǒng)設(shè)置和用戶數(shù)據(jù)的惡意代碼)滲透內(nèi)部網(wǎng)絡,可以說,“應用代理”是比包過濾技術(shù)更完善的防火墻技術(shù)。
但是,似乎任何東西都不可能逃避“墨菲定律”的規(guī)則,代理型防火墻的結(jié)構(gòu)特征偏偏正是它的最大缺點,由于它是基于代理技術(shù)的,通過防火墻的每個連接都必須建立在為之創(chuàng)建的代理程序進程上,而代理進程自身是要消耗一定時間的,更何況代理進程里還有一套復雜的協(xié)議分析機制在同時工作,于是數(shù)據(jù)在通過代理防火墻時就不可避免的發(fā)生數(shù)據(jù)遲滯現(xiàn)象,換個形象的說法,每個數(shù)據(jù)連接在經(jīng)過代理防火墻時都會先被請進保安室喝杯茶搜搜身再繼續(xù)趕路,而保安的工作速度并不能很快。代理防火墻是以犧牲速度為代價換取了比包過濾防火墻更高的安全性能,在網(wǎng)絡吞吐量不是很大的情況下,也許用戶不會察覺到什么,然而到了數(shù)據(jù)交換頻繁的時刻,代理防火墻就成了整個網(wǎng)絡的瓶頸,而且一旦防火墻的硬件配置支撐不住高強度的數(shù)據(jù)流量而發(fā)生罷工,整個網(wǎng)絡可能就會因此癱瘓了。所以,代理防火墻的普及范圍還遠遠不及包過濾型防火墻,而在軟件防火墻方面更是幾乎沒見過類似產(chǎn)品了——單機并不具備代理技術(shù)所需的條件,所以就目前整個龐大的軟件防火墻市場來說,代理防火墻很難有立足之地。
3.狀態(tài)監(jiān)視技術(shù)
這是繼“包過濾”技術(shù)和“應用代理”技術(shù)后發(fā)展的防火墻技術(shù),它是CheckPoint技術(shù)公司在基于“包過濾”原理的“動態(tài)包過濾”技術(shù)發(fā)展而來的,與之類似的有其他廠商聯(lián)合發(fā)展的“深度包檢測”(Deep Packet Inspection)技術(shù)。這種防火墻技術(shù)通過一種被稱為“狀態(tài)監(jiān)視”的模塊,在不影響網(wǎng)絡安全正常工作的前提下采用抽取相關(guān)數(shù)據(jù)的方法對網(wǎng)絡通信的各個層次實行監(jiān)測,并根據(jù)各種過濾規(guī)則作出安全決策。
“狀態(tài)監(jiān)視”(Stateful Inspection)技術(shù)在保留了對每個數(shù)據(jù)包的頭部、協(xié)議、地址、端口、類型等信息進行分析的基礎(chǔ)上,進一步發(fā)展了“會話過濾”(Session Filtering)功能,在每個連接建立時,防火墻會為這個連接構(gòu)造一個會話狀態(tài),里面包含了這個連接數(shù)據(jù)包的所有信息,以后這個連接都基于這個狀態(tài)信息進行,這種檢測的高明之處是能對每個數(shù)據(jù)包的內(nèi)容進行監(jiān)視,一旦建立了一個會話狀態(tài),則此后的數(shù)據(jù)傳輸都要以此會話狀態(tài)作為依據(jù),例如一個連接的數(shù)據(jù)包源端口是8000,那么在以后的數(shù)據(jù)傳輸過程里防火墻都會審核這個包的源端口還是不是8000,否則這個數(shù)據(jù)包就被攔截,而且會話狀態(tài)的保留是有時間限制的,在超時的范圍內(nèi)如果沒有再進行數(shù)據(jù)傳輸,這個會話狀態(tài)就會被丟棄。狀態(tài)監(jiān)視可以對包內(nèi)容進行分析,從而擺脫了傳統(tǒng)防火墻僅局限于幾個包頭部信息的檢測弱點,而且這種防火墻不必開放過多端口,進一步杜絕了可能因為開放端口過多而帶來的安全隱患。
由于狀態(tài)監(jiān)視技術(shù)相當于結(jié)合了包過濾技術(shù)和應用代理技術(shù),因此是最先進的,但是由于實現(xiàn)技術(shù)復雜,在實際應用中還不能做到真正的完全有效的數(shù)據(jù)安全檢測,而且在一般的計算機硬件系統(tǒng)上很難設(shè)計出基于此技術(shù)的完善防御措施(市面上大部分軟件防火墻使用的其實只是包過濾技術(shù)加上一點其他新特性而已)。
四. 技術(shù)展望
防火墻作為維護網(wǎng)絡安全的關(guān)鍵設(shè)備,在目前采用的網(wǎng)絡安全的防范體系中,占據(jù)著舉足輕重的位置。伴隨計算機技術(shù)的發(fā)展和網(wǎng)絡應用的普及,越來越多的企業(yè)與個體都遭遇到不同程度的安全難題,因此市場對防火墻的設(shè)備需求和技術(shù)要求都在不斷提升,而且越來越嚴峻的網(wǎng)絡安全問題也要求防火墻技術(shù)有更快的提高,否則將會在面對新一輪入侵手法時束手無策。
多功能、高安全性的防火墻可以讓用戶網(wǎng)絡更加無憂,但前提是要確保網(wǎng)絡的運行效率,因此在防火墻發(fā)展過程中,必須始終將高性能放在主要位置,目前各大廠商正在朝這個方向努力,而且豐富的產(chǎn)品功能也是用戶選擇防火墻的依據(jù)之一,一款完善的防火墻產(chǎn)品,應該包含有訪問控制、網(wǎng)絡地址轉(zhuǎn)換、代理、認證、日志審計等基礎(chǔ)功能,并擁有自己特色的安全相關(guān)技術(shù),如規(guī)則簡化方案等,明天的防火墻技術(shù)將會如何發(fā)展,讓我們拭目以待。