防火墙原理
防火墻設置在不同網絡或網絡安全域之間,通過監測、限制、更改跨越防火墻的數據流,對外部屏蔽網絡內部的信息、結構和運行狀況,有選擇地接受外部訪問,對內部強化設備監管、控制對服務器和外部網絡的訪問,在被保護網絡和外部網絡之間架起一道屏障,以防止不可預測的、潛在的破壞性侵入。防火墻通常使用的安全控制手段主要有包過濾、應用代理、狀態檢測、深度檢測。
防火墻類型
1、包過濾技術
包過濾防火墻也叫分組過濾防火墻, 工作在網絡層(Network Layer)上,通過網絡間互相連接的設備上加載允許、禁止來自某些特定的源地址、目的地址、端口號(FTP、HTTP、DNS等)及協議類型(TCP、UDP、ICMP、IGMP等)、標志位等規則,對通過設備的數據包進行檢查,限制數據包進出內部網絡。遵循最小特權原則,明確允許管理員希望通過的數據包,禁止其它數據包。
包過濾技術工作的地方就是各種基于TCP/IP協議的數據報文進出的通道,它把這兩層作為數據監控的對象,對每個數據包的頭部、協議、地址、端口、類型等信息進行分析,并與預先設定好的防火墻過濾規則(FilteringRule)進行核對,一旦發現某個包的某個或多個部分與過濾規則匹配并且條件為“阻止”的時候,這個包就會被丟棄。
2、應用代理技術
應用代理防火墻又叫應用網關防火墻,用代理服務器的方式運行于內聯網絡和外聯網絡之間,在應用層實現安全控制功能,起到內聯網絡和外聯網絡之間應用服務的轉接作用。
代理服務器監聽內聯網絡中主機的請求,當請求到達代理服務器后,代理服務器根據安全策略對數據包的首部和數據部分信息進行檢查,檢查之后將內聯網絡中的主機源地址改為自己的地址之后將這個數據包發給外部的目的主機,這樣外部的主機接到的信息是來自于代理服務器而不是源主機。目的主機應答的數據包也將發送到代理服務器,經過代理服務器檢查允許通過后,代理服務器將數據包的目的地址改為內聯主機的地址,之后發往目的主機。類似于在內聯網絡和外聯網絡之間設置一個中轉,外聯網絡并不清楚內聯網絡的拓補結構。
內部的主機只接受代理服務器的信息而不接收任何外部地址主機發來的信息,外部主機只能講信息發往代理服務器,之后由代理服務器將信息轉發給內聯網路中的主機。代理服務器負責監控整個通信過程來保證通信過程的安全性。
3、狀態監測
狀態檢測防火墻又稱動態包過濾防火墻,對于新建立的應用連接,狀態檢測防火墻會先檢查預先設置的安全規則,允許符合規則的連接通過;記錄下該連接的相關信息,生成狀態表;對該鏈接的后續數據包,只要是符合狀態表,就可以通過。
“狀態監測”(Stateful Inspection)技術在保留了對每個數據包的頭部、協議、地址、端口、類型等信息進行分析的基礎上,進一步發展了“會話過濾”(Session Filtering)功能,在每個連接建立時,防火墻會為這個連接構造一個會話狀態,里面包含了這個連接數據包的所有信息,以后這個連接都基于這個狀態信息進行,這種檢測的高明之處是能對每個數據包的內容進行監視,一旦建立了一個會話狀態,則此后的數據傳輸都要以此會話狀態作為依據,例如一個連接的數據包源端口是8000,那么在以后的數據傳輸過程里防火墻都會審核這個包的源端口還是不是8000,否則這個數據包就被攔截,而且會話狀態的保留是有時間限制的,在超時的范圍內如果沒有再進行數據傳輸,這個會話狀態就會被丟棄。狀態監視可以對包內容進行分析,從而擺脫了傳統防火墻僅局限于幾個包頭部信息的檢測弱點,而且這種防火墻不必開放過多端口,進一步杜絕了可能因為開放端口過多而帶來的安全隱患。
4、內核檢測防火墻
又稱深度檢測防火墻,采用DPI(Deep Packet Inspection)技術深入檢查通過防火墻的每個數據包及其應用載荷。基于應用數據的“特征值”檢測、基于應用層協議的識別檢測(指紋匹配)、基于行為模式的數據檢測,決定如何處理數據包,可以更有效的辨識和防護緩沖區溢出攻擊、拒絕服務攻擊、各種欺騙性技術以及蠕蟲病毒等。
防火墻經常遇到的攻擊
1、IP欺騙攻擊
修改數據包的源、目的地址和端口,模仿合法的數據包來騙過防火墻的檢測。
2、DOS拒絕服務攻擊
通過TCP三次握手發送大量半連接請求,耗盡防火墻進程,讓防火墻停止工作。
3、分片攻擊
在IP的分片包中,所有的分片包用一個分片偏移字段標志分片包的順序,但是,只有第一個分片包含有TCP端口號的信息。當IP分片包通過分組過濾防火墻時,防火墻只根據第一個分片包的Tcp信息判斷是否允許通過,而其他后續的分片不作防火墻檢測,直接讓它們通過。
這樣,攻擊者就可以通過先發送第一個合法的IP分片,騙過防火墻的檢測,接著封裝了惡意數據的后續分片包就可以直接穿透防火墻,直接到達內部網絡主機,從而威脅網絡和主機的安全。
4、木馬攻擊,
上傳木馬,利用內部網絡主機開放的服務漏洞。
5、協議隧道攻擊
協議隧道的攻擊思想類似與VPN的實現原理,攻擊者將一些惡意的攻擊數據包隱藏在一些協議分組的頭部,從而穿透防火墻系統對內部網絡進行攻擊。
例如,許多簡單地允許ICMP回射請求、ICMP回射應答和UDP分組通過的防火墻就容易受到ICMP和UDP協議隧道的攻擊。
Loki和lokid(攻擊的客戶端和服務端)是實施這種攻擊的有效的工具。在實際攻擊中,攻擊者首先必須設法在內部網絡的一個系統上安裝上lokid服務端,而后攻擊者就可以通過loki客戶端將希望遠程執行的攻擊命令(對應IP分組)嵌入在ICMP或UDP包頭部,再發送給內部網絡服務端lokid,由它執行其中的命令,并以同樣的方式返回結果。由于許多防火墻允許ICMP和UDP分組自由出入,因此攻擊者的惡意數據就能附帶在正常的分組,繞過防火墻的認證,順利地到達攻擊目標主機下面的命令是用于啟動lokid服務器程序。
6、利用FTP-pasv繞過防火墻認證的攻擊
FTP-pasv攻擊是針對防火墻實施入侵的重要手段之一。目前很多防火墻不能過濾這種攻擊手段。如CheckPoint的Firewall-1,在監視FTP服務器發送給客戶端的包的過程中,它在每個包中尋找”227″這個字符串。如果發現這種包,將從中提取目標地址和端口,并對目標地址加以驗證,通過后,將允許建立到該地址的TCP連接。
7、反彈木馬攻擊
反彈木馬是對付這種防火墻的最有效的方法。攻擊者在內部網絡的反彈木馬定時地連接外部攻擊者控制的主機,由于連接是從內部發起的,防火墻(任何的防火墻)都認為是一個合法的連接,因此基本上防火墻的盲區就是這里了。防火墻不能區分木馬的連接和合法的連接。
防火墻的安全配置原則
a)沉默規則:不記錄“ 噪雜” 流量便放棄它。不對不重要的數據包做響應,減少了日志規模。
b)隱形規則:不允許未經授權的系統訪問防火墻軟件。
c)否定規則:用來代替廣泛允許的“任何規則” 。否定規則規定什么系統能夠被訪問和如何被訪問,對許可權限控制較緊。
d)清理規則:規則庫中的最后一條規則,如果所有的規則都沒有匹配到,數據包將被丟棄。
注:防火墻安全規則遵循從上到下匹配的原則,一旦有一條匹配,剩余的都不進行匹配
防火墻的性能指標
有吞吐量、時延、丟包率、并發連接數、新建連接數這幾個指標。
a)吞吐量:在不丟包的情況下單位時間內通過的數據包數量
b)時延:數據包最后一個比特進入防火墻到第一比特從防火墻輸出的時間間隔
c)丟包率:通過防火墻傳送時所丟失數據包數量占所發送數據包的比率
d)并發連接數:防火墻能夠同時處理的點對點連接的最大數目
e)新建連接數:在不丟包的情況下每秒可以建立的最大連接數
總結