當然,任何一種防護解決方案都不應單打獨鬥,而防火牆則是另一種網路的保護裝置。防火牆是不同信任級別區域之間的屏障,它選擇性地允許流量透過,同時丟棄其他所有資訊。在其最簡單的形式和實現中,防火牆是可信網路和不可信網路之間的屏障,實際上會複雜得多。
在建築領域中,防火牆是指建築物區域之間不可燃的屏障,可防止火災在建築物中蔓延。通常可在建築物中的區域之間找到防火牆,如家庭住宅的車庫與其餘部分之間。
在技術業務中,防火牆執行的功能並沒有太大的不同。與在建築物中的防火牆非常類似,網路防火牆可以作為網路之間或計算機之間的屏障。防火牆阻止或限制主機之間的連線,限制系統間的相互暴露。沒有防火牆,系統將處於易受攻擊的狀態,從而可能使攻擊者對系統造成極大的傷害。
防火牆有兩種主要形式:硬體和軟體。本書將在稍後詳細討論這兩種形式,但這兩種形式均提供了某些設定過濾器以控制資訊透過的能力,以阻止有害的流量破壞系統。
防火牆只不過是置於網路入口或必經之路上的一組規則和程式。與Internet的主要連線等網路關口可作為部署該屏障的理想位置,因為進出網路的流量必須流經此處。
可以將防火牆描述為用於分離所謂的“信任區域”。很顯然,該描述意味著有兩個個同的網路或區域,各區域有著不同的信任級別。在這種情況下,防火牆充當了網路之間的一條非常重要的分界線,為流量設定邊界。
以下是一些需要注意的防火牆相關事項。
- 防火牆的配置由公司自身安全策略所指派,並應及時更改,以適應公司的目標及持線的Internet威脅:
- 防火牆通常配置為僅允許特定型別的流量流入,例如電子郵件協議、web協議或遠端訪問協議:
- 在選定的情況下,防火牆還可以作為一種電話監聽形式,用於識別拔號,接入網路的嘗試;
- 防火牆中配置了處理流量的規則。有用於進入網路和流出網路流量的規則,完全也存在同樣的流量允許透過一個方向而不允許透過另一個方向的可能:
- 對於透過防火牆的流量,防火牆還將充當路由器,幫助引導網路之間各類流量的路徑選擇;
- 防火牆可以根據多種標準過濾流量,標準包括目的地、水源、協議、內容或應用程式;
- 在帶有惡意特徵流量試圖透過防火牆時,可以配置一個警報,提醒系統管理員或其他相關人員。
防火牆配置
並非所有防火牆的設定都相同,不同的設定取決於每種不同情況的需求及要求。以下每種方法都有一些特有功能,即使其他方法提供同類功能,方式也不盡相同。
堡壘主機(Bastion Host)
堡壘主機是指流量經由其進出網路之處。雖然有個花哨的名字,但堡壘主機實際上是一個計算機系統,其上承載的僅供執行其定義的角色——在這種情況下,其角色是保護資源免受攻擊。該型別主機有兩個介面:一個連線到不可信網路,而另一個連線到可信網路。
遮蔽式子網(Screened Subnet)
該型別的設定使用具有三個嵌入式介面的單一防火牆。三個介面分別連線到網際網路、非軍事區(DMZ)(稍後將介紹)和內部網本身。這種設定的顯著優點是,每個區域都連線到其自己的介面,因此區域間彼此分離。這樣做具有防止一個區域被攻陷後影響其他區域的優點。
多宿主防火牆(Multihomed Firewall)
多宿主防火牆是一種由承擔實際物理防火牆功能的單體硬體構成的防火牆,但具有連線到多個網路的三個以上網路介面。
非軍事區(DMZ)
DMZ是組織中公開和私有網路之間的一個級衝區。實際上,DMZ不僅用作緩沖區,而且還用於管理公司希望公開開放,但不允許其直接訪問公司內部網路的服務。
DMZ透過應用防火牆構建,將防火牆的三個或以上的網路介面分配給特定角色,如內部可信網路、DMZ網路和外部不可信網路(即Internet)。
防火牆的型別
並非所有的防火牆都一樣。你必須瞭解各種型別的防火牆,並理解各種防火牆的工作原理
包過濾防火牆(Packet Filtering Firewall)
這是最基本的防火牆型別,工作於OsI模型的第3層。在許至情況下,此類防火牆直接內建到路由器或類似裝置中。這種路由器具有簡單和速度快的優點,但缺點是它們不對經過的資訊進行任何深入的分析。這種型別的防火牆比較資料包的源和目的地址、協議和埠之類屬性。如果資料包屬性與定義的規則不匹配,則最終會丟棄該資料包。
電路層防火牆/閘道器(Circuit-Level Firewall/ Gateway)
任何屬於此類的防火牆都工作於會話層。此類防火牆能夠檢測系統之間的會話是否有效。該型別防火牆的缺點是它們通常不過濾單個資料包。
應用層防火牆(Application-Level Firewall)
該類別的防火牆嚴密檢查流量並分析應用程式資訊,以判定是否傳輸資料包。該類防火牆的一個常見子類是基於代理的解決方案,在請求傳輸資料包時要求驗證。此外,內容快取代理可透過快取經常訪問的資訊,而不需要再次向伺服器請求相同的1舊資料,最佳化效能。
有狀態的多層檢測防火牆(Stateful Muitilayer Inspection Firewalls)
此類防火牆透過組合其他三種防火牆的功能進行運作。它們在網路層過濾資料包,以確定會話資料包是否合法一這意味著如果在網路內部建立一個連線,該連線應從不受信任的網路返回應答——並且防火牆在應用層上評估資料包的內容。透過有狀態的包過濾,克服了由於包過濾防火牆僅檢查資料包的報頭就允許資料包透過的缺陷。
瞭解目標
現在將使用之前學過的一項技能:埠掃描(有關詳細資訊,請參閱第6章“掃描和列舉”)。使用埠掃描,可以更清楚地瞭解防火牆,判斷哪些埠是開放的,還有可能根據獲取的資訊確定防火牆的品牌和型號。一些供應商預設將某些埠開放,作為識別防火牆技術存在的一種方法,用於幫助審計,或者嚇阻一名發現了開放埠的潛在攻擊者。
當然,只有一個開放的埠是不夠的,還必須使用第6章中提到的其他技能:banner抓取。如果發現防火牆開啟了 異常埠,並對其進行研究(以確保它們不是其他不瞭解的工作),請嘗試抓取一個banner並檢視收到的資訊。
防火牆上“蹈火”
知道防火牆品牌只是攻擊的一部分,理解其配置是差別很大的另一回事。可以透過稱為“蹈火”(firewalking)的過程獲得這些規則的配置。“蹈火”是測試和識別特定防火牆規則和配置的過程。該過程使用一系列探測、掃描和資料包處理等步驟,逐一判斷防火牆對其的反應。在完成該過程後,可以獲得相當準確的防火牆配置。
要對防火牆執行 “蹈火,探測,需要以下三個元件。
瞄準主機(Targeting Host)
瞄淮主機是目標網路之外的系統,資料包從瞄準主機傳送到目的主機,以獲得有關目標網路的更多資訊
閘道器主機
閘道器主機是日標網路上連按到ihntemet的系統,資料包到達目標網路的路徑須透過該系統。
目標主機
目標主機是目標網路上資料包的目的系統。它通常是承載防火牆應用程式或角色的系統。
在完成了 “蹈火〞之後,如果幸運的話,應該可以得到相當多有關防火牆如何運作的資訊
可以使用在第6章中討論的工具之一,nmap,執行 “蹈火”行動。nmap恰好包括一個同樣名為firewalk的指令碼。那麼該過程如何工作?
要確定給定閘道器上的規則,掃描器將一個探針資料包傳送給閘道器後面的測試點,並將探針的生存時間(TTL)設定為比閘道器高1。如果探針由閘道器轉發,則可預期接收到由閘道器的下一跳路由器處發出的ICMP_ TIME EXCEEDED應答,或者如果測試點直接連線到閘道器時,則可以收到由度量自身發出的該應答;否則,探針將超時。
該指令碼以等於目標距離的TTL開始傳送資料包。如果探針傳送超時,則將TTL值減1並重新傳送。如果獲得ICMP_ TIME EXCEEDED回覆,則掃描結束。
指令碼將探測所有使用no-reply過濾的TCP和UDP埠。對於UDP掃描而言,如果許多埠被靠近掃描器的閘道器阻塞,則掃描過程可能相當慢。
firewalk指令碼引數列表
firewalk.max-probed-ports 每種協議探測的最大埠數量。將該值設定為-1以掃描所有過濾的埠。
firewalk.max-retries 允許的最大重傳次數。
firewalk.recv-timeout 資料包捕獲迴圈的持續時間(以毫秒為單位)。
frewalk.max-active-probes 最大並行活躍探針數量。
firewalk.probe-timeout 探針有效期(以毫秒為單位)。
使用示例
nmap --script=firevalk --traceroute<主機>
nmap --script=firewalk --traceroute --script-firewalk.max-retries=1 <主機>
nmap --script-firewalk --traceroute --script-args-firewalk.probe- timeout=400ms <主機>
nmap --script-firewalk --traceroute --script-args=firewalk.max-probed-ports=7 <主機>
那麼,在獲得防火牆如何設定和有何防禦措施的相關資訊後,應如何攻擊該裝置?以下是幾種可有助於對付該裝置的攻擊。
網路釣魚
這種型別的攻擊使用電子郵件,以使客戶端在不知不覺中洩露密碼,或誘使他們點選可下載和安裝惡意軟體的連結。下一點功夫,攻擊者即可構建一個看似非常可信的電子郵件,可以誘使受害者點選下載某些內容的連結,或強行讓受害者跳轉到慫恿他們透露自己資訊的網站。防火牆無法抵禦網路釣魚攻擊,因為此類攻擊透過電子郵件傳播,並誘導使用者自行洩露資訊。
暴露的伺服器
暴露在網際網路上的web伺服器、郵件伺服器和應用程式伺服器可能易於被駭客入侵和攻擊。雖然實際上這似乎顯而易見,但仍能見到這種將伺服器部署在未受某種級別的防火牆或其他技術保護的位置上的情況時有發生。理想情況下,需要連線到Internet或面向internet的伺服器應放置在夾在兩個防火牆之間的邊界網路中。
暴露的客戶端
漫遊客戶端如膝上型電腦、 平板電腦和手機等,意味著一個可能有效用作網路入口點的機會目標。攻擊者可以滲透保護薄弱的客戶端裝置,然後使用該裝置滲透網路,從而實現直接攻擊防火牆更好的攻擊效果。考慮到普通使用者可能不會採取最佳的防禦手段或做法保護他們的系統,從而導致弱化的安全勢態和可能被利用的潛在漏洞。如果這些客戶沒有得到充分的保護,或者使用者自身判別能力較差,下載了惡意檔案或受惡意程式碼侵蝕的軟體,那麼防火牆就幾乎無防禦性可言。
防火牆漏洞
防火牆本質上是軟體,和所有的軟體一樣,它們也可能有缺陷和漏洞。多年來,軟體中發現了許多看似簡單的漏洞,它們導致了巨大的安全問題。利用蹈火技術、埠掃描和漏洞掃描,透過研究和努力,有可能發現一些缺陷。如果條件成熟,你也可能會發現可以利用的漏洞。
複雜性
無論硬體還是軟體,防火牆都是一種複雜而精細的技術。需要大量的培訓和經驗,才能充分理解如何設定通常基於硬體或軟體的防火牆,使之配置正確、執行良好。確保達到理想安全性的最佳方法是讓與這些裝置相關的操作人員獲得經驗和培訓,並確保對系統執行審計,以保證防火牆配置得當。
網路安全周界(Network Security Perimeter)
某些網路可能具有從商業網路到其他網路的未受保護的路徑。惡意或無知的使用者可能會安裝一個未授權接入點,使入侵者能夠輕易地繞過防火牆,透過後門進入網路。
網路擺渡(Sneakernet)
攜帶CD、隨身碟甚至膝上型電腦,透過物理邊界和網路安全邊界(傳遞資訊)可能會將工業網路暴露於惡意程式碼之上。這些攻擊可能是由對企業不滿或者是缺乏訓練或遭受欺騙的內部人士所造成的。
拒絕服務
在某些情況下,可能能夠使用一次強力的傳統拒絕服務攻擊壓制防火牆。在這種情況下,有可能會擊垮裝置並導致其失效,從而允許流量透過。
本作品採用《CC 協議》,轉載必須註明作者和本文連結