天天看點

防火牆進化史

聲明

此文僅代表我個人對防火牆的了解。不誇張的說,基于認識的局限性,本文很可能存在認識的誤區。很多産品可能标注為防火牆,卻不能在本文找到對應的分類,這往往因為包含包含了高度內建的功能,各個功能可以歸在防火牆的子類裡;也有些産品的名字裡不含防火牆,但是可能提供防火牆的一種功能。

另,撰寫此文并未參考公安部對資訊安全産品的分類,也未參考國内任何學術機關的文獻。暫且不說差異之處孰是孰非,如有雷同純屬巧合。

本文僅供讀者參考。

二、前言

無論管理者和規劃人員是否主觀上有所察覺,防火牆作為控制被保護網絡與其他網絡(internet或其他lan)的通路控制元件,它客觀上也提供着某種程度的認證、授權的機制。防火牆規則中每一條Allow規則都是對不信任網絡中的網絡行為的一種授權。随着資訊系統應用的深入,資訊系統安全也越來越多的面臨連接配接問題之外的威脅,例如SQL注入等;防火牆也随之進化,産生了基于代理、過濾器和其他機制的防護産品。

雖然正文部分會有讨論。但是此處可以籠統說,位于網絡邊界的通訊控制裝置--包含伺服器主機、标準機架式一體機等,控制(包括調配)osi layer3 acl的、基于configuration而非knowledge base的,都是一種防火牆。雖然configuration多數基于knowledge base往往僅在更新模式有所差别,但是同時符合兩者并且主要控制osi layer3的産品卻非常罕見。具體的說,本文不認為下列産品是防火牆:

  • 網橋和網閥
  • 純粹意義上的VPN 伺服器和網關
  • 認證伺服器--它基于程式的資料進行授權而不是基于網絡IP層工作。這其中包括了802.1x的認證裝置和伺服器。
  • 所謂的資料防篡改系統(data loss prevention )
  • IDS和IPS--IPS基于IDS,而且規則之外的第一次連接配接是成功的。IDS毫無疑問不能算防火牆,那麼可以視為IDS擴充子產品的IPS本文也認為更不是防火牆。
  • 網絡殺毒伺服器等--這些程式将IP資料包還原成檔案和通訊流,判斷是否存在病毒、網絡攻擊等,最終與用戶端關聯處理相關程式和通訊。這可以以2009年以trendmicro的virus wall為代表。
  • 反垃圾郵件産品--即使叫做垃圾郵件防火牆,它也不在IP連接配接上過濾網絡包。

另外本文認為以下元件(主要指腳本、配置等)構成防火牆的一部分,但單獨來說不可以算做防火牆:

  • 标準代理、反向代理伺服器。它可能是Web Application Security Firewall (國内所說的WAF,哇福)一個重要部分,但它獨立工作很難說能起到防火牆的作用。另外它不工作于OSI Layer3。
  • iptables /netfilter/squid 等等的配置和腳本。确實經過資深管理者的調整群組合,相當多的開源工具可以達到企業級别硬體防火牆的作用,甚至可以超過一系列硬體産品的功效。首先這些腳本或配置檔案,自己不是程式,尤其是iptables更是作業系統核心的一部分;其次它們嚴重依賴IT管理者的knowlege base的配置無法象産品那樣推廣應用。把它說為管理者的技巧更恰當。
  • 一些無說明的開源的、或GPL v2防火牆。很難定性。
  • 對通路網址進行過濾的功能部分,如果單獨構成程式或産品,本文也認為它不是防火牆。毫無疑問這一部分會引起廠商和粉絲的争議,但是作為學術讨論來看,作者堅持這個觀點--它們單獨不能構成防火牆。例如個人/企業防火牆對已知的xss站點、釣魚網站進行屏蔽,這些元件不能單獨構成防火牆。從程式上看,它們與IP連接配接無直接關系、是基于資料包或者程式控制的一部分。總體說,如果您認為垃圾郵件防火牆不能算網絡防火牆,您也應該能了解僅僅提供通路網址過濾的防火牆不能叫做防火牆。舉個極端的例子說明吧:您認為firefox的adblock是防火牆嗎,還是說這個adblock安裝在伺服器端就可以叫做防火牆了?

三、正文

1.什麼是防火牆

美國國防部所屬,資訊安全應對政策局

Defense Information Systems Agency

(DISA,其官方網站貌似被牆了)有定義:

(DISA) A firewall is a device that serves as a barrier between networks providing access control, traffic filtering, and other security features. Firewalls are commonly deployed between trusted and untrusted networks, for example between the Internet (untrusted) and an organization’s trusted private network. They [firewalls] can also be used internally to segment an organization’s network infrastructure, for example; deploying a firewall between the corporate financial information and the rest of the company network.

如果評論國内的定義怕是又有一堆這個那個的人物出來非議,我得罪不起他們。拿DISA做靶子吧!上文值得商榷的地方很多。防火牆不一定是“device”,例如廣為接受的個人防火牆通常就是個程式。知名的企業在同一企業内部,也會部署防火牆的,例如财務部和業務部,用戶端網段與伺服器網段,城市之間的網段等等。随着栅欄防禦體系的破敗和防火牆成本的降低,在企業内網中看見防火牆已經是很常見的事情。而随着硬體處理能力的提高,高度整合的防火牆可能帶有其他功能,使用其附加功能、利用防火牆的易維護性可能使得防火牆應用在今後更加普及。如同我現在用的煙盒帶有打火機一樣,使用多功能的整合防火牆的網址過濾功能、認證功能、日志功能,可能比使用它的IP過濾功能更為常見。但是反過來說,我們不能說打火機就是煙盒吧。

基于上面的讨論,我對防火牆進行下列定義:

防火牆是用于隔離不同網段、網域,對其進行通訊過濾的程式。所有的防火牆都按照政策工作,至少提供OSI Layer3的過濾功能。即使廠商常常為其提供其他安全功能,但是對OSI Layer3進行過濾是防火牆的本質特性。部署防火牆的目的,即隔離網段、網域間的安全風險。

上文說道防火牆是程式,可能會使一些未涉足過嵌入式裝置的粉絲感到迷惑。目前市面上的硬體防火牆,以ARM硬體平台為主,運作作業系統并自動運作系列程式;硬體防火牆仍然是程式控制通訊。也有人根據Web Application Security Firewall對此不解,其實這類防火牆首先阻斷被控網内到被控網外除特定端口以外的所有通訊,再對其收到的services request做相應的分析及過濾;是以它本身首先是阻斷型防火牆(這是它實作安全的首要因素),不過它的附加功能更為人們所歡迎罷了。

1.1常見應用

前言之前對防火牆進行了歸類。下面進行分類讨論。

network firewall,就是傳統意義上的企業防火牆,它所隔離的網段可不言而喻的映射為被控網段、非可控網段等。出于負載和可靠性的考慮,單一功能的network firewall常常是嵌入式的标準機架式(僞)硬體。

Application firewall 也以嵌入式系統為主,但也有伺服器類型的,它隔離和控制的網域卻是某種“系統”,例如apache群集、甚至是另外的一系列Application Firewall等等。雖然分離式Application Firewall較為常見,但是也有将服務系統與應用程式防火牆安裝在一台伺服器上的情況(并不推薦)。

Personal Firewall 個人防火牆就不多說了。

而較為糾集的是Network Firewall與Application Firewall的整合,即複合型防火牆。這種應用受到多種制約--例如帶寬、成本和網絡規模。随着虛拟化的普及,有将兩者運作在虛拟化平台為(實體)網絡提供服務的;但是osi layer3 常見的ddos使得深受其害的使用者不得不将兩者從硬體上分離、有些使用者甚至防止不同攻擊的包過濾防火牆層級連接配接(控制burst rate的,ddos包過濾SPI的,控制内部互相ddos的,WASF防這又防那的,外加一系列監控監管平台);為虛拟化平台(例如雲)提供複合型防火牆的方案更是五花八門、多種多樣,利用web application firewall當負載平衡的也非常之常見,為web request添加cookie、為tcp session 加cookie做四次握手之類的各種冷門控制手段驚人的都能在此看到。

很多防火牆也有認證的支援功能,例如SSO伺服器支援。SSO支援與VPN服務關聯,可以提供完整的integrity控制方案而深受世界知名企業青睐。可惜國内方面對完整性的應用和了解遠遠落後,僅僅有個vpn功能的防火牆已經對于他們來說算是進階貨。毫無疑問這是問責制即accountability在國内沒有受到支援,使用者将所有責任都推給網管的習慣造成的。無論有沒有server log,所有責任都歸IT、操作人員對保密無知和拒絕負責使得對于國内來說SSO功能并不那麼重要。不要問我方案,國内沒見過,我也受保密條款的道德制約。

2. 防火牆的細分

2.1 Network Firewall

2.1.1 Stateless

http://en.wikipedia.org/wiki/...

_firewall 

(看history部分)

2.1.2 Stateful 

_firewall

實際上,多種DDOS清洗器、或者叫做DDOS過濾管道(pipeline)很大程度上依賴SPI技術(stateful),僅僅是安裝有大記憶體和2-128個arm cpu就使得ddos清洗裝置,賣到骨幹網絡上就必須昂貴到幾十萬到幾百萬,實在是燒錢的絕好理由(天頂星人不要來噴水)。在2001年的時候,有業内人士吐槽說給tcp多來次握手或(給ip資料包,包括udp)加個認證的cookie就是市面上所有的抗ddos裝置,是不是這麼回事讀者看後心裡就有數了。

而2013年兩會期間IDF伺服器受到流氓公司(們?)的天文數量流量的ddos攻擊,其攻擊類型就是syn和ack攻擊組成。單主機控制iptables在幾十g的帶寬下,效果不是十分明顯。因為ddos即使在主機上識别為攻擊,作流量控制、并且drop,但是網絡介入服務商的裝置卻在承受高負載攻擊。如果配置為reset,則ISP的裝置就要承受雙重負載。

是以預防ddos可以說比較複雜,ISP方面也需要有足夠經驗去配置裝置。

2.2 Application Security Firewall

ASF是比較新型的防火牆,如前文所說,它第一條安全規則應當是阻止内部伺服器通過ASF裝置連接配接到網際網路。其次,ASF基本都屬于中間件服務程式,運作着經過調試的代理服務程式。例如網頁防護程式應當運作着類似squid的程式。

這種特征使得ASF可以詳細追蹤和分析service request,進行允許(拒絕)的acl控制、紀錄、即啟發式自動分析,或進行類似負載平衡那樣的排程。相比network firwall來說,ASF在OSI上工作在頂層,即application layer。是以network firewall又有lower layer firewall的名字,而application firewall也有higher layer firewall的大号。

ASF很多特征與負載平衡程式相似,根據對通訊解析之後根據request 實作規則的控制、通訊的排程和幹預。不僅僅針對HTTP,ASF也有對POP3 IMAP SMTP FTP的防護程式。不過與大家想象的不同,不僅詳細識别相關程式、對網站、url、ip等等進行控制,ASF對于同一網域的出、入通訊都可以在ASF上控制。已經有那種控制企業内網使用者上網的、可以直接放置于網絡邊界自動識别通訊協定(而非端口),并且進行相關分析、控制的ASF。

中間件結構的優勢使得ASF可以達到傳統Network Firewall無法做到的功能。例如,對惡意url

(xss等)識别,對應用程式漏洞的識别,在惡意入侵達到目标機之前就可被ASF識别和攔截。實際上通過ASF的通訊并沒有直接與目标主機進行連接配接。

ASF有主機型防護程式,或網段型防護程式。主機型host-based ASF可能安裝于被保護終端的主機上--即使如此,ASF也不是Personal Firewall,它們兩者的差別還是非常大的:ASF是根據協定進行識别和控制,而PF主要是根據程式或socket進行控制。

ASF在國内普遍叫做WAF,主要就是國内使用者使用ASF進行網站防護(Web -),換句話說國内應用和研發能力較低造成的。美國稱之為AF,因為他們确實可以做到通過通訊對應用程式和它們的弱點進行識别。

已經普遍應用于保護伺服器網段的ASF,目前有WAF,database firewall,xml 防火牆等等。市面上已經可以找到處理SQL injections, database rootkits,  data loss的ASF産品。

2.3 Multifunction Firewall

CPU速度超過過去很多,剩下的運算能力幹嘛用才好呢?

2.3.1 VPN Gateway

VPN不稀奇了。各大廠商為自己的vpn協定發表各自的用戶端軟體。

2.3.2 Unified Threat Management

防火牆實作基本的控制功能以外,增加了各種非傳統意義防火牆的功能。例如,Network Firewall按照商業資料庫對網站分類,對其進行阻攔等等。所謂UTM不一定是防火牆的标準功能或常見功能,因為耗費巨大運算資源,功能往往也很有限。

2.4 Personal Firewall

2.4.1 曆史

早期的個人防火牆如同Network Firewall一樣,對網卡上的通訊進行統一的規則比對。支援NAT和DNS服務的個人防火牆曾幾何時風靡一世。之後随SDK的開放和OS廠商的推廣,PF防火牆實作了按程式和Socket雙重防護的功能。

随之而來的是産品的整合。防毒軟體、反木馬軟體、DLP資料洩露防護、反釣魚網站保護和網址過濾、防activex惡意代碼,沙盒子sandbox下載下傳與運作保護。一個防毒軟體包攬本地安全是很早之前的故事。

PDA和智能手機帶來新的機遇。現在的主流軟體不僅可以在手機上進行快速的權限和代碼掃瞄,更可以掃瞄短信、email和IM中傳遞的網址。

2.5 Others

虛拟化和雲的應用帶來新的觀點和手段。有很多産品可以在虛拟機内對程式和主機進行認證,再在hyper層進行進一步一體化控制。trendmicro,edenwall(此站在發文時已經被黑)、checkpoint和CA 都在此方面有深入研究。其中checkpoint為amazone 提供安全服務,而美國CA目前為美國海軍第xxx大隊的全球衛星控制中心做安全防護和災難恢複的方案和防護。

不過在應用虛拟化安全方案之前就應當注意,虛拟化體系本身就存在很多安全問題。在2009年時中科院某院士對hyper層發表非官方的安全可信的首肯之後,2010年就有259種hyper層帶來的安全漏洞的分析。覆巢之下,焉有完卵。

2.6 Thanks

首先感謝美國國防部所屬DISA,給我個理由批判傳統觀念。

還有感謝把深度防禦理論公開,控制思想GPL V1,搞的WAF滿天飛卻沒拿到絲毫專利權和著作權的自己。