310 likes | 436 Views
教育部資通訊人才培育先導型計畫 寬頻有線教學推動聯盟中心. 第六章 架設防火牆監控與管理網路封包. 保衛企業網路安全,不可缺少的成員 — 防火牆。 在字典上”防火牆”被解釋為可阻止火勢漫延的耐火牆,在網際網路上防火牆被定義為可遏止網路駭客任意入侵電腦系統的網路裝置。防火牆藉著過濾掉某些不可靠的資料封包來增加企業網路的安全性。 本章先簡述防火牆的觀念及基本型態分類,接著介紹封包過濾技術,最後分別說明在不同的網路裝置 ( 如交換器 、 防火牆 、 路由器等 ) 如何設定過濾政策,以執行保衛企業網路安全的工作。. 前言. 6.1 Firewall Technology
E N D
教育部資通訊人才培育先導型計畫 寬頻有線教學推動聯盟中心 第六章 架設防火牆監控與管理網路封包
保衛企業網路安全,不可缺少的成員—防火牆。保衛企業網路安全,不可缺少的成員—防火牆。 在字典上”防火牆”被解釋為可阻止火勢漫延的耐火牆,在網際網路上防火牆被定義為可遏止網路駭客任意入侵電腦系統的網路裝置。防火牆藉著過濾掉某些不可靠的資料封包來增加企業網路的安全性。 本章先簡述防火牆的觀念及基本型態分類,接著介紹封包過濾技術,最後分別說明在不同的網路裝置(如交換器、防火牆、路由器等)如何設定過濾政策,以執行保衛企業網路安全的工作。 前言 第六章 架設防火牆監控與管理網路封包 6.1 Firewall Technology 6.2 Filtering Technology 6.3 Configure Filtering on a Switch 6.4 Configure Filtering on a Firewall 6.5 Configure Filtering on a Router
第六章 架設防火牆監控與管理網路封包 6.1 Firewall Technology • 防火牆(Firewall) Firewall一詞原是用來阻隔火災蔓延的那一道界線;在網路上的解釋,防火牆可以阻隔在網路上一些不安全或是有危脅性的連線/資料封包。 防火牆是安裝在兩個網路之間的一網路裝置,用來過濾某些不可靠的資料封包、阻止網路駭客(Hacker)的入侵,並提供稽核及控制存取網路資源等服務。防火牆可以是一單純軟體、單純硬體或軟硬體結合的網路裝置,左圖顯示系統架設防火牆之後將網路一分為二: • 內部網路(Internal Network): 可信任的網路,如受保護的公司或企業網路。 • 外部網路(External Network): 不可信任的網路,如開放式的網際網路。 • 管理者架設好防火牆之後,在正常情況下所有的封包(無論封包是從外部網路要進到內部網路,或是從內部網路要到外部網路)都應先經過防火牆的檢查,確認封 包的安全性後,再予以放行,以防止內部網路受到攻擊。 • 防火牆的基本功能 • 正常情況下,所有的封包由防火牆進出,方便管理者對企業網路安全做集中式的管理。 • 過濾企業安全政策所禁止的網路服務。 • 內部網路(或系統內)有些資料需要高度安全的防護,當有外部連線存取高防護性資料時,防火牆可以加以記錄,必要時警告管理者可能有入侵的行為發生。 • 功能較強的防火牆甚至可以記錄所有進出的封包並且加以分析,以便及時警告管理者所有可能的入侵行為:除此之外,並能提供相關的統計資料,供日後稽核、追蹤之用。 Internet 防火牆 內部網路 防火牆架構
防火牆的型態分類 理論上防火牆的型態可以分為過濾型防火牆及代理型防火牆,目前市面上的防火牆大多混合這兩種基本型態。 靜態過濾型防火牆 此類的防火牆是屬於網路層的防火牆,它會針對封包的標頭加以檢查,藉以過濾掉非法的封包;通常此類的防火牆會檢查每個封包標頭內的四項欄位: 來源端的IP位址(Source IP Address) 目的端的IP位址(Destination IP Address) 來源端的TCP/UDP埠(Source TCP/IP Port) 目的端的TCP/UDP埠(Destination TCP/IP Port) 此類防火牆在管理者制定封包過濾規則之後,利用上述的四項欄位來判別封包的審查是否可以通過。 Internet 防火牆 內部網路 第六章 架設防火牆監控與管理網路封包 6.1 Firewall Technology 封包 當Internet傳送封包到內部網路,防火牆會檢查此封包的標頭欄位是從哪裡來的、要去哪裡、要做些什麼事情;同時會去檢查此封包是否符合管理者所制定的過濾規則,根據規則讓封包通過或丟棄封包。
內部網路 WWW 代理伺服端 WWW 代理客戶端 SMTP 代理客戶端 SMTP 代理伺服端 網路介面 網路介面 第六章 架設防火牆監控與管理網路封包 6.1 Firewall Technology • 代理型防火牆 代理型防火牆是屬於應用層的防火牆。在網路上有各式各樣的應用服務,我們稱提供服務的主機為伺服端(server),而要求服務的主機為顧客端(client);當系統安裝了代理型防火牆(就如同你請了一位代理經紀人幫你處理所有對外的事務),它將負責處理及轉送網路上所提供的應用服務。 • 左圖說明代理型防火牆如何控制屬於應用服務的封包,在代理型防火牆必須要安裝代理伺服端及代理顧客端兩個代理軟體,其中代理伺服端軟體是用來模擬遠端真正伺服端的行為,代理顧客端軟體則是用來模擬真正顧客端的行為。當顧客端送出請求服務的要求,代理伺服端軟體將檢查該要求是否合法,若是合法的要求將轉由代理顧客端軟體送出該服務要求;同樣地當伺服端送回服務的結果,代理顧客端軟體將檢查該結果是否合法,若是則轉由代理伺服端軟體送回該服務結果給顧客端。 • 代理型防火牆必須針對每一種網路應用服務設計其特定的代理伺服端及代理顧客端軟體,如左圖顯示當系統允許郵件服務(SMTP)及全球資訊網服(WWW)務存在時,在其代理伺服器上必須安裝相對應的郵件及全球資訊網的代理軟體。 Internet 代理型防火牆 不同的網路應用服務有其特定的代理軟體
左表為靜態過濾型防火牆與代理型防火牆之優缺點比較,不難發現,無論管理者是架設哪一類型的防火牆,首先必須規劃安全政策,依據安全政策來設定防火牆上的過濾規則,同時應該注意如何在安全性以及網路服務品質兩者來取得平衡。左表為靜態過濾型防火牆與代理型防火牆之優缺點比較,不難發現,無論管理者是架設哪一類型的防火牆,首先必須規劃安全政策,依據安全政策來設定防火牆上的過濾規則,同時應該注意如何在安全性以及網路服務品質兩者來取得平衡。 第六章 架設防火牆監控與管理網路封包 6.1 Firewall Technology
6.1 Firewall Technology 防火牆基本存取控制政策 管理者在安裝防火牆時,必須依據公司對企業網路安全度的需求,設定防火牆的基本存取控制政策(Access Control Policy),一般分為全面管制及開放架構兩種基本存取控制政策: 全面管制: 只允許有存取權限的封包進出,其它封包一律過濾並禁止進出,此種政策適用在需高度安全的系統,如公司網路只允許該公司員工使用。 開放架構: 過濾且禁止某些來源可疑的封包進出網路,其它封包則可正常進出,此種政策安全度低,適用在校園網路。 第六章 架設防火牆監控與管理網路封包 7
6.1 Firewall Technology 防火牆的缺點 在正常情況下,所有的封包都需經過防火牆的檢查,易形成網路上的交通瓶頸。尤其當有拒絕服務性的攻擊(Denial-Of-Service attack)出現時,可能造成合法的封包無法進出的現象;如網路駭客不停地送出封包來轟炸防火牆,讓防火牆浪費許多時間在過濾該類封包,影響了合法封包的進出。 防火牆一旦被攻破,入侵者將可肆無忌憚地為所欲為;比較安全的作法是在架設防火牆應儘量隱藏內部網路主機的IP位址及名稱(Domain Name) 。 “家賊難防”這句名言同樣適用在設置有防火牆的系統上,防火牆可以阻止外部網路不明主機的入侵行為,但無法防止內部網路的使用者利用其合法的身份作破壞系統的行為。 無法有效阻止開後門的行為,如有人不經防火牆進出封包,直接利用數據機與外界溝通,提供網路駭客另一個入侵管道。 防火牆無法有效防止病毒(Viruses)的傳播,尤其是那些潛伏在資料檔的病毒(data attack)。 第六章 架設防火牆監控與管理網路封包 8
Static packet filtering 此種過濾方式是靜態過濾型防火牆用來針對封包標頭的下列欄位加以檢查,藉以過濾掉非法封包: 來源端的IP位址(Source IP Address) 目的端的IP位址(Destination IP Address) 來源端的TCP/UDP埠(Source TCP/IP Port) 目的端的TCP/UDP埠(Destination TCP/IP Port) Static packet filtering除了檢查封包所攜帶的IP位址及埠值,並考慮到封包的流向(如封包是從外部網路要進到內部網路,或是從內部網路要到外部網路)來控制資訊的傳播。左表為一範例,管理者在其上設定二個過濾規則,表格內”*”符號表示任意值。過濾規則1允許外部網路主機140.125.3.8的任何封包進入。過濾規則2禁止外部網路主機200.100.5.5的任何封包進入。 封包過濾規則 編號 動作 來源端IP 埠值 目的端IP 埠值 1 允許 140.125.3.8 * * * 2 禁止 200.100.5.5 * * * 第六章 架設防火牆監控與管理網路封包 6.2 Filtering Technology Internet 主機A 200.100.5.5 內部網路主機 外部網路 Static packet filtering 主機B 140.125.3.8
6.2 Filtering Technology Static packet filtering執行過濾封包動作的時機可以在 封包過濾器封包剛進入防火牆的時候(Input time),或是在 封包要離開防火牆的時候(Output time),或是 上述兩種時候(Input/Output)均作過濾動作。 Static packet filtering執行過濾動作時需要參考系統管理者所設定的過濾規則表,表上有許多條的過濾規則,封包過濾器將依序從過濾規則1,過濾規則2,…一條一條檢查封包是否滿足過濾規則的條件,左圖詳細描述封包過濾器的運作流程。 。 第六章 架設防火牆監控與管理網路封包 封包過濾器的運作流程 10
Stateful packet filtering 稱為狀態型過濾式防火牆,與傳統Static packet filtering式防火牆不同的是Stateful packet filtering會持續追蹤通過防火牆封包的連線狀態;Stateful packet filtering提供了較高的安全性,與代理型防火牆相比則有較大的管理彈性(無須針對各別網路應用服務安裝其特定的代理伺服端及代理顧客端軟體)。 Stateful packet filtering的方式會監控經過防火牆的每一個連線的狀態轉換,直到此連線正常關閉為止;Cisco的CBAC機制及Linux的iptables都是執行Stateful packet filtering。 第六章 架設防火牆監控與管理網路封包 6.2 Filtering Technology 3 TCP ACK 1 TCP SYN Internet 外部網路主機 狀態型過濾式 防火牆 內部網路主機 2 TCP ACK+SYN 以TCP建立連線為例,Stateful packet filtering追蹤連線是否滿足three-way handshaking的狀態轉換。
URLfiltering及網頁內容過濾 URLfiltering可以限制員工只能瀏覽哪些網站,即執行網址過濾。目前URLfiltering產品不僅可以管理員工的瀏覽行為防止其誤上惡意網站,還可以阻擋P2P、間諜程式等。 左圖為Websense公司的URLfiltering及網頁內容過濾產品,它可以單獨運作也可以和防火牆、快取伺服器、路由器整合在一起,目前總共支援3Com、Blue Coat、Check Point等25家廠商的產品。 第六章 架設防火牆監控與管理網路封包 6.2 Filtering Technology 資料來源: www.websense.com
Configure Filtering on Switch 一般來說管理員都會在網路層以上的設備(如路由器)設定過濾且禁止來源可疑的封包進出,以保護企業網路;然而管理員往往忽略設定保護第二層設備(如交換器)的安全,本節將介紹如何在交換器啟動過濾機制來防止針對交換器的攻擊。 左圖為交換器上常見的五種攻擊,攻擊手法請參閱第四章。 第六章 架設防火牆監控與管理網路封包 6.3 Configure Filtering on a Switch
第六章 架設防火牆監控與管理網路封包 6.3 Configure Filtering on a Switch • Port security Port security是交換器上經常使用的安全措施之一,可以用來防範CAMTable overflow,也可以用來管理使用者的行為。 Port security藉由設定來限制交換器上實體的Port最多可以容納多少個MAC或是設定MAC位址對Port的存取權限,以下分別列出如何做設定: Portmapped MAC: switchport port-security mac-address 限制實體的Port只允許讓擁有指令上MAC位址的主機封包通過交換器。 switchport port-security maximum 數量(1~132) 限制交換器上實體的Port最多只允許多少個MAC位址的主機封包通過交換器。 • Portsecurity對於超過可允許的MAC位址數量有三種措施: 假設port-security maximum為12,以下三種措施是對於Port上的MAC到達12時所實施的動作: Protect: 在此模式下,交換器會持續監控這12筆的MAC位址有無在使用中,直到此port的MAC位址少於12,才能接受新的MAC位址。 Restrict: 此模式與Protect大致上相同,唯一不同的作法是此模式會紀錄相關的資訊(Port上MAC位址更動)在syslog中。 Shutdown: 當Port上的MAC位址到達上限時,這個Port會暫時關閉,並記錄在syslog中。 Ethernet 0/1 主機B MAC77:88:99:AA:BB:CC 主機A MAC11:22:33:44:55:66 指令說明: 交換器上的實體Portethernet 0/1只可以讓擁有11:22:33:44:55:66這個MAC位址的主機使用。
第六章 架設防火牆監控與管理網路封包 6.3 Configure Filtering on a Switch • DHCPSnooping DHCPSnooping 透過建立DHCP Snooping Binding 資料庫來過濾掉非法使用者的封包。DHCPSnooping啟動之後會監聽DHCP的封包,利用使用者要與DHCPServer取得位址時所發送的DHCPRequest與DHCPAck記錄此使用者的資訊將之儲存於DHCPSnooping binding table。 DHCPSnooping會設定交換器中哪些Port或是哪些vlan為信任的介面,只有信任的介面才可以收送DHCPOffer封包。 • DHCPSnooping binding 資料庫:此資料庫會紀錄使用者主機的MAC位址、IP位址、租用時間、vlan編號等等的資訊。 • DHCPSnooping可以利用binding 資料庫阻擋MAC位址的假造因為當使用者在與DHCPServer取得位址時,會建立使用者主機的IP與所對應的MAC位址,往後使用者主機每送出封包,交換器會去比對binding 資料庫中此使用者主機所記錄的MAC位址有無相同,若是不同則交換器會刪除此封包。 • DHCPSnooping 藉由設定Port信任與非信任來阻擋DHCP starvation的攻擊,因為只有信任的Port才可以發送DHCPOffer,藉此阻隔不合法的DHCP Server分配IP位址給網路上的主機,防範man-in-the-middle attack。 指令說明: vlan34啟動DHCPSnooping功能,將ethernet 0/1設為信任的Port,限制ethernet 0/1 每秒只可以接收70個DHCP封包。
第六章 架設防火牆監控與管理網路封包 6.3 Configure Filtering on a Switch • 防範STP manipulation攻擊 阻擋STP manipulation攻擊的方式主要的就是要確保無論發生什麼樣的情況,所有交換器合作產生的spanning tree上的root不會被改變;可以藉由下列方式達到上述功能: • 使用STPRoot Guard STPRoot Guard有三種運作模式,分別為none、root guard、loop guard,每次只能啟用其中的一種。 none: 關閉rootguard和loop guard運作模式。 rootguard: 設定交換器上所指定的port為spanning tree上的root。 loop guard: 用來防止當交換器上的port在max-age時間內沒有收到BPDU的封包時,port的狀態會自動轉變為forward。 • 使用STPBPDUGuard 一般交換器上的Port若直接與使用者主機或是Server相連,其運作模式可以設定為Portfast,由於Portfast的特性就是不參予建立Spanning Tree,因此Portfast的啟用速度比一般類型的Port快上許多。PortfastPort正常情況不會接收BPDU的訊息,一旦收到BPDU即有可能遭受到攻擊,在交換器啟動STPBPDUGuard,之後當Portfastport收到BPDU的訊息時,port的狀態將改為error-disable。 指令說明: 啟用 BPDU Guard來監控交換器上Portfast類型的Ports是否遭受攻擊,並將交換器上ethernet 0/0設為spanning tree的root。
第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall • 防火牆的架設 防火牆的目的是要將外部網路與內部網路做一個阻隔,不要讓有心人士自由進出內部網路;不同的企業網路可以針對不同的安全需求架設防火牆,以下介紹兩種常見的防火牆架設方式: • 使用單一防火牆 如左上圖所示,使用一台防火牆當作內部網路的閘道,每當有封包要進出內部網路時,都要先經由防火牆過濾。如果有提供對外服務的需求(如WebServer、FTP Server),則將對外服務的主機架設在DMZ的區域;防火牆可對內部網路的主機實施NAT的機制。 • 使用雙防火牆 如左下圖所示, 所有可以對外公開的應用伺服主機均需架設在DMZ區域內,並用一個防火牆隔開外部網路與DMZ區域,另一個防火牆則隔開內部網路與DMZ區域;如此的架構除了可抵擋網路駭客的直接攻擊之外,若不幸DMZ區域的伺服主機遭到入侵,由於內部網路是不對外公開的,因此內部網路的主機才不會受到池魚之殃。 DMZ Internet 外部網路 防火牆 交換器 內部網路 使用單一防火牆 DMZ Internet 外部網路 防火牆1 防火牆2 交換器 使用雙防火牆 內部網路
通用型的閘道防火牆 過濾式防火牆只能讓管理者設定封包來源端/目的端位址、TCP/UDP埠號之過濾規則來限制外部網路或內部網路的封包流通;這樣的過濾規則存在著一些漏洞。目前一通用型的閘道防火牆需要具備以下之功能: 提供Network Address Translation (NAT)服務,讓內部網路的主機使用privateIP位址,增加攻擊者收集內部網路主機情資的困難度。 提供完備的警示系統。 封包過濾規則可以實現安全政策(Policy) 。 可以抵擋以下之網路攻擊: SYNFlood攻擊 IPfragmentation攻擊 連線管控,偵測並記錄連線的狀態。 管控ICMP封包。 第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall 資料來源: http://firewalladmin.sourceforge.net/ http://www.fs-security.com/
第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall • 防火牆的警示系統 防火牆的警示系統包括記錄被丟棄封包的來源IP位址、目的端的IP位址、丟棄此封包的時間等的相關資訊。管理者可以根據這些資訊來做事件追蹤。 • 當有資安事件發生時,防火牆可以用下列方式警示管理員: • Console • E-Mail • Pager • SNMP Trap • User Defined Program 資料來源: http://www.fs-security.com/
第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall • SYNFlood攻擊 在介紹SYN Flood攻擊前,我們先簡述TCP建立連線的過程: • TCP 連線 我們稱請求建立TCP連線的一方為Client,接收連線請求的為Server。TCP為一個可信賴式的協定,建立連線的過程稱為三向交握(three-way handshake)。 1.Client發送TCP 旗標SYN=1 的封包 2.Server收到之後回送TCP旗標SYN=1 + ACK=1的封包給Client 3.Client收到TCP 旗標 SYN=1 + ACK=1的封包之後,回送TCP 旗標ACK=1的封包之後即完成TCP建立連線。 • TCPhalf-open 對Server而言,TCPhalf-open的連線就是在發送完SYN+ACK封包之後等待Client回送ACK訊息期間,TCP協定有規定此half-open的存活時間(一般為30秒~2分鐘),在此存活時間中,Server會等待與重送SYN+ACK的封包,TCPhalf-open的連線量,會消耗Server的資源。 Client Server 1 SYN Half-open SYN+ACK 2 3 ACK TCPthree-way handshake連線示意圖
第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall • SYNFlood攻擊 • 對Server而言,當TCP的連線進入half-open狀態時, Server會配置記憶體來記錄該連線的資訊,攻擊者通常利用這個弱點,在短時間內發出大量的SYN連線要求給Server ,使得Server的記憶體不足而無法再接受新的連線要求。 • 如左圖所示,攻擊者在短時間內不斷地送出連線要求(SYN封包)給受害者主機,而當受害者主機認可該連線要求,並回應SYN+ACK封包,攻擊者並不理會該封包(即攻擊者不送出three-way handshake最後的ACK封包),這將造成受害者主機在 half-open的存活時間到達之前必須不斷的保留攻擊者所發出的連線資訊。當受害者主機所允許的半連線狀態達到最大值時,受害者主機便無法再接受新的連線要求,並進入拒絕服務的狀態,此時即達到攻擊者的目的。 攻擊者 SYN … SYN 受害者 … TCP SYN flooding攻擊範例
第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall • 防火牆用來防範SYNFlood攻擊之方式: • 啟動管控TCP連線功能,並設定TCPhalf-open存活時間。 TCPhalf-open存活時間預設值為30秒到2分鐘,管理員可以在防火牆上設定此時間,建議為20秒以下,但是也不要設定過小;並啟動防火牆執行管控TCP連線工作。通常防火牆偵測到有TCP連線其half-open到達管理者所設定的存活時間,防火牆會發送TCPreset封包給來源端與目的端,中斷連線,保護Server的資源。但是這樣的方式無法阻止攻擊者瞬間發送大量的SYN封包。 • 使用SYNCookies技術。 如左圖所示,使用SYNCookies技術,防火牆必須要執行TCP intercept,攔截SYN封包,並代替Server回傳SYN+ACK封包(此封包會夾帶一個Cookies,例如將封包來源端/目的端位址、TCP/UDP埠號及一私密值計算的結果放在ACK sequence number欄位作為Cookies),當收到Client回應的ACK封包,防火牆可利用Cookies快速驗證此ACK封包是否為一合法連線,如果是合法的,防火牆會將此連線導向真正的Server 。 • 限制固定時間內可以通過防火牆half-open連線數量。 • 限制每秒可以通過防火牆的SYN封包數量。 TCP Intercept SYN SYN+ACK(cookie) ACK(cookie) Client SYN SYN+ACK ACK Server 防火牆 防火牆利用SYNCookies以防範SYNFlood攻擊
第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall • IPfragmentation攻擊 • 如左圖所示,當封包size超過網路實體層所定義的最大傳輸單位(Maximum Transmission Unit)時,封包會被切割成數個碎片傳送,稱為IP fragmentation;目的端主機收到這些碎片,必須執行重組動作(Reassemble)以還原封包。 • IPfragmentation攻擊方式相當多種,主要的方式是讓目的端主機執行碎片重組時發生問題,嚴重時甚至造成當機。 • ping of death的攻擊方式: 攻擊者主機產生一超大size的ping request (ICMP echo request)封包;經過 IP Fragmentation來傳送,當這個封包被受害者主機重新組合時會超出緩衝區 (Buffer) 限制的大小而造成被攻擊的電腦有不正常的動作甚至當機的情況發生。 • Tiny fragment的攻擊方式: 早期的防火牆只會針對封包的第一塊碎片檢查是否符合過濾原則,若第一塊碎片允許通過,防火牆就不會檢查之後的碎片,此攻擊方式就是利用此點漏洞,將攻擊封包利用IP fragmentation切割成數個小碎片,藉此通過防火牆的檢測。 Original Packet … Reassemble Fragmentation Internet 來源端 目的端 • IPfragmentation示意圖
6.4 Configure Firewall 防火牆用來防範IPfragmentation攻擊之方式: 設定防火牆對ICMP封包的碎片要執行重組,確定重組後封包的正確性後才傳送到內部網路;至於其它格式封包的碎片則可以執行Virtual reassembly以節省防火牆資源。 限制固定時間內防火牆的fragment database可以儲存IP 碎片的數量。 限制固定時間內允許多少個封包可以被切割成IP 碎片。 設定防火牆收到某封包的第一塊碎片到可以執行重組的等待時間,當超過等待時間,防火牆將丟棄存在fragment database內屬於該封包的碎片。 啟動防火牆SYSLOG功能,記錄如左圖所示之fragment overlapled、small fragment offset等異常事件。 第六章 架設防火牆監控與管理網路封包 常見的IPfragmentation攻擊方式: • IP fragment overlapped • IP Fragmentation Buffer Full • IP Fragment Overrun - Datagram Too Long • IP Fragment Overwrite - Data is Overwritten • IP Fragment Too Many Datagrams • IP Fragment Incomplete Datagram • IP Fragment Too Small 資料來源: http://en.wikipedia.org/wiki/IP_Fragmentation_Attackes 24
管控ICMP封包 有心人士常會利用ICMP通訊協定的漏洞對企業網路進行攻擊,例如Smurf攻擊結合ICMP與IP位址假冒的方式來癱瘓受害者的主機,左圖所示為Smurf的攻擊流程: 1.攻擊者的主機產生ICMPecho request封包,封包上的來源端位址(Source IP address)設定為受害者的IP位址(140.113.92.22),目的端位址(Destination IP address)則設定為某網段的廣播位址(140.125.30.255)。 2.將此封包傳送出去,封包目的端位址所指定的網段上所有的主機都會收到此封包。 3.網段上所有收到此封包的主機將會回應ICMPecho reply給受害者。 Smurf攻擊只需要傳送少量的ICMPecho request封包,就可以製造大量ICMPecho reply封包傳送給受害者,被歸類為Denial of Service攻擊。 管理者可以設定防火牆的過濾規則,有效控管要讓哪些種類的ICMP封包可以進出企業網路。 第六章 架設防火牆監控與管理網路封包 6.4 Configure Firewall 3 受害者 2 1 攻擊者 Smurf攻擊示意圖
第六章 架設防火牆監控與管理網路封包 6.5 Configure Filtering on a Router • Configure Filtering on a Router • 路由器在網路上最重要的任務就是執行封包轉送的工作,當然也可以設定路由器執行其它的工作,例如:NAT(位址轉譯)、封包流量統計、或者封包過濾等等。 • 路由器通常都會提供Static packet filtering的功能,讓管理員可以設定簡單型的封包過濾規則(在某些路由器稱為Access Control List),提供企業網路基本的保護;功能較強的路由器還可以提供Stateful packet filtering、URLfiltering、Context-based filtering的功能,管理員在啟動路由器執行複雜型的過濾功能之前,應該詳細評估是否會造成路由器的負荷過重(overload),建議管理員可以考慮使用其它設備(如防火牆、URLfiltering Server)執行複雜型的封包過濾功能。 • 左圖所示為路由器整合URLfiltering Server的網路架構,因為有專屬的設備,管理員可以依據公司的安全政策,設定員工只能瀏覽的網址,執行封包內容的檢查以阻擋惡意程式、間諜程式等入侵企業網路。 企業內部網路的主機 6. HTTP Response 1. HTTP Request 2. Look-up Request 3. HTTP Response 路由器 URL-filtering Server 4. HTTP Request Internet 5. HTTP Response Web Server URLfiltering Server執行網址過濾流程
第六章 架設防火牆監控與管理網路封包 6.5 Configure Filtering on Router • 分散式阻斷攻擊(Distributed Denial of Service,DDoS) • WWW Security (http://www.w3.org/Security/Faq)對於分散式阻斷攻擊(DDoS)之定義如下:分散式阻斷攻擊(DDoS)為多台攻擊主機(Agent)同時對一台或多台受害主機(Victim)進行阻斷式攻擊(DoS)。 • 阻斷式攻擊(DoS)並不以篡改或竊取資料為目的,而是癱瘓企業伺服主機之資源或企業網路頻寛,讓企業主機無法提供服務給它的用戶。如:攻擊者在短時間內送出大量的網頁連線請求,造成網頁伺服主機當機,導致其它使用者無法正常瀏覽網頁伺服主機之資料。 • 如左圖所示,DDoS攻擊架構主要有四個成員:真實攻擊者(Attacker)、攻擊發起機器(Handler)、攻擊主機(Agent)及受害者(Victim)。真實攻擊者(Attacker)首先在攻擊發起機器(Handler)及攻擊主機(Agent)上安裝並執行特定攻擊程式。當真實攻擊者(Attacker)發動DDoS攻擊受害者(Victim)時,首先真實攻擊者(Attacker)會發送攻擊的控制命令(Control Command)給攻擊發起機器(Handler),攻擊發起機器(Handler)再將控制命令(Control Command)傳給攻擊主機(Agent),再由攻擊主機(Agent)發送攻擊流量(Attack Traffic)至受害者(Victim)。真實攻擊者(Attacker)利用主從式(Client/Server)技術,來控制攻擊發起機器(Handler)與攻擊主機(Agent),以增加受害者(Victim)在追查真實攻擊者(Attacker)的困難度。 DDoS攻擊架構圖
6.5 Configure Filtering on Router 分散式阻斷攻擊(DDoS)之分類 洪流攻擊(Flood Attack):利用攻擊主機(Agent)發送大量封包,導致受害者(Victim)網路頻寛擁塞,使受害者(Victim)無法提供服務給其它使用者。目前已知洪流攻擊(Flood Attack)有二種方式:UDP洪流攻擊或ICMP洪流攻擊。由於UDP及ICMP協定在傳送時,不必如TCP協定需建立一連線(Connection),使得受害者(Victim)不管願意或不願意都需接受封包。因此,使用洪流攻擊可輕易達到癱瘓受害者(Victim)網路頻寛之目的。 利用協定攻擊(Protocol Exploit Attack):藉由協定上的缺陷而達成攻擊之方式,如之前所介紹的TCP SYN攻擊。 擴展攻擊(Amplification Attack):利用IP廣播位址(Broadcast Address)來完成攻擊的目的。如之前所介紹的Smurf攻擊,攻擊者偽造一封包(來源位置為受害者IP位址,目地位置為某一特定網路之廣播位址),傳送至該特定網路(Intranet),該網路之主機收到此封包後,將依封包上之來源位置,回應至受害者(Victim),使受害者(Victim)的網路頻寛或系統資源遭受到癱瘓。 畸型封包攻擊(Malformed Packet Attack):利用不正確的封包格式送至目地端,導致目地端花費時間處理此類封包,而達成攻擊目的。比較常見的畸型封包如:封包上來源IP位址與目地IP位址相同,或是在封包上之品質服務(Quality of Service)欄位設定為1,導致受害者要花費額外時間去處理此類的封包。 第六章 架設防火牆監控與管理網路封包 28
6.5 Configure Filtering on Router 路由器用來抵擋分散式阻斷攻擊(DDoS)之方式: 設定Session Layer審查規則,例如限制TCP half-open連線的數量並設定TCPhalf-open連線的存活時間,以抵擋TCP SYNFlood攻擊。設定Session的閒置時間防止攻擊者耗盡系統資源。 設定路由器上每個介面單位時間內所允許通過的流量,以抵擋洪流攻擊(Flood Attack)。 設定IPfragmentation審查規則,防止攻擊者持續不斷發送碎片的Dos攻擊。 設定ICMP封包審查規則,防止有心人士利用ICMP通訊協定的漏洞進行攻擊。 設定路由器將目地位址為廣播位址之封包丟棄,避免內部主機成為擴展攻擊(Amplification Attack)之幫凶。 設定路由器將畸型封包丟棄,可減輕擴展畸型封包攻擊(Malformed Packet Attack)所造成的影響。 在路由器上設定那些IP位址是屬於合法或不合法的來源IP位址,避免內部主機成為DDoS攻擊之幫凶。例如:內部網路合法的IP位址為192.168.1.1至192.168.1.254,若路由器收到由內部網路傳送的封包其來源IP位址為10.0.0.1時,則將該封包丟棄,因為該IP位址並不屬於內部網路合法的IP位址。 第六章 架設防火牆監控與管理網路封包 29
第六章 架設防火牆監控與管理網路封包 總結 • 本章介紹防火牆的種類以及封包過濾的相關技術,例如Static與Stateful的過濾方式、URL過濾方式。 • 本章還介紹如何在不同層次的網路裝置(如交換器、防火牆、路由器等)設定過濾政策,以執行保衛企業網路安全的工作。通常封包過濾的功能可以用專屬的設備(防火牆)來實現,或者與其它的網路設備整合(如URLfiltering Server);管理者需要評估架設防火牆之後對網路封包傳送效能的影響,封包過濾主要是利用比對的方式來過濾掉不合法的封包,因此若實現在路由器上,管理者要注意是否會造成路由器設備負載過大的問題。
第六章 架設防火牆監控與管理網路封包 參考資料 • 網路安全與管理,作者:伍麗樵、陳世仁。 • Linux系統安全與防火牆,作者:酆士昌。 • Linux iptables技術實務,作者:施威銘研究室作。 • 防火牆完全指南,作者:Marcus Goncalves著/劉良棟,錢盈秀,吳曜呈譯。 • Cisco (http://www.cisco.com/) 。 • http://firewalladmin.sourceforge.net/ 。 • http://www.fs-security.com/ 。 • http://www.w3.org/Security/Faq / 。