羅克韋爾自動(dòng)化(中國(guó))有限公司 華镕
防火墻是一種機(jī)制,用于控制和監(jiān)視網(wǎng)絡(luò)上來(lái)往的信息流,目的是保護(hù)網(wǎng)絡(luò)上的設(shè)備。流過(guò)的信息要與預(yù)定義的安全標(biāo)準(zhǔn)或政策進(jìn)行比較,丟棄不符合政策要求的信息。實(shí)際上,它是一個(gè)過(guò)濾器,阻止了不必要的網(wǎng)絡(luò)流量,限制了受保護(hù)網(wǎng)絡(luò)與其它網(wǎng)絡(luò)(如因特網(wǎng),或站點(diǎn)網(wǎng)絡(luò)的另一部分)之間通信的數(shù)量和類(lèi)型。下圖顯示了一個(gè)簡(jiǎn)單的防火墻,禁止來(lái)自因特網(wǎng)對(duì)個(gè)人計(jì)算機(jī)(PC)和可編程邏輯控制器(PLC)的訪問(wèn),但允許對(duì)企業(yè)Web服務(wù)器的訪問(wèn)。
圖1 一個(gè)簡(jiǎn)化的防火墻舉例
防火墻具有很多不同的設(shè)計(jì)和配置。它可以是一個(gè)連接到網(wǎng)絡(luò)的單獨(dú)物理硬件設(shè)備(如思科的PIX?或賽門(mén)鐵克的安全網(wǎng)關(guān)防火墻),可以是一個(gè)帶有操作系統(tǒng)和防火墻功能(如運(yùn)行在Linux?服務(wù)器上的“iptables”)的硬件/軟件單元,甚至可以是一個(gè)完全基于主機(jī)的軟件解決方案,即直接在工作站上安裝防火墻軟件(如諾頓的個(gè)人防火墻?或Sygate的個(gè)人防火墻)。
獨(dú)立的硬件或硬件/軟件單元通常被稱(chēng)為網(wǎng)絡(luò)防火墻,通常是最安全的解決方案,把企業(yè)網(wǎng)絡(luò)與工業(yè)自動(dòng)化控制網(wǎng)絡(luò)(IACN)分開(kāi)。它們是專(zhuān)用的功能單元,除了個(gè)別例外,加固后可以抵擋一切攻擊。此外,網(wǎng)絡(luò)防火墻通常提供最佳的管理選項(xiàng),因此通常允許對(duì)它們進(jìn)行遠(yuǎn)程管理。
基于主機(jī)的防火墻通常能夠接受某些妥協(xié),因?yàn)橹鳈C(jī)的主要功能不是安保,通常要完成一些工作站或服務(wù)器的任務(wù),例如數(shù)據(jù)庫(kù)訪問(wèn)或Web服務(wù)。
同時(shí),基于主機(jī)的防火墻解決方案目前僅適用于Windows或基于Unix的平臺(tái),只能為網(wǎng)絡(luò)上的嵌入式控制設(shè)備(如PLC)做一定的流量管理?;谥鳈C(jī)的防火墻可以放置在IACN / 監(jiān)控與數(shù)采(SCADA)網(wǎng)絡(luò)上,但它們通常在我們今天要考慮的范圍之外。因此,除少數(shù)情況外,本文假定IACN / SCADA防火墻是一個(gè)專(zhuān)用的硬件或硬件/軟件解決方案,通過(guò)一系列規(guī)則,對(duì)傳送到控制網(wǎng)絡(luò)信息流實(shí)施允許或拒絕。
網(wǎng)絡(luò)使用離散的位組發(fā)送數(shù)據(jù),通常把一定數(shù)量的位組稱(chēng)為數(shù)據(jù)包。每個(gè)數(shù)據(jù)包通常包含若干個(gè)獨(dú)立的信息,包括(但不限于)的項(xiàng)目有:
? 發(fā)件人的身份(源地址);
? 收件人的身份(目的地址);
? 包涉及的服務(wù)(端口號(hào));
? 網(wǎng)絡(luò)操作和狀態(tài)標(biāo)志;
? 把數(shù)據(jù)的有效載荷傳遞到該服務(wù)。
接收一個(gè)數(shù)據(jù)包時(shí),防火墻對(duì)包的這些特征進(jìn)行分析,并決定對(duì)這個(gè)包采取什么行動(dòng)??梢赃x擇丟棄該包、允許立即通過(guò)、因帶寬限制而暫時(shí)緩存,或轉(zhuǎn)發(fā)給不同的收件人–應(yīng)按照網(wǎng)絡(luò)安全策略采取適當(dāng)?shù)男袆?dòng)。
這些決定都基于一系列的規(guī)則,該規(guī)則通常被稱(chēng)為訪問(wèn)控制列表(ACL)。防火墻具有不同的類(lèi)型,每種類(lèi)型都具有復(fù)雜的分析和行動(dòng)能力。下面給予分別介紹。
(1)包過(guò)濾防火墻
最簡(jiǎn)單一類(lèi)的防火墻被稱(chēng)為包過(guò)濾防火墻。它具有一系列的靜態(tài)規(guī)則,對(duì)收到的報(bào)文按規(guī)則采取行動(dòng)。下面的示例表明了包過(guò)濾防火墻是如何按規(guī)則處理數(shù)據(jù)包的:
? 在用戶數(shù)據(jù)報(bào)協(xié)議(UDP)端口53上接受域名服務(wù)(DNS)響應(yīng)數(shù)據(jù)包;
? 阻止因特網(wǎng)協(xié)議(IP)地址為24.116.25.21的任何數(shù)據(jù);
? 通過(guò)阻斷傳輸訪問(wèn)控制協(xié)議(TCP)端口80、443、3128、8000和8080傳出的數(shù)據(jù)包以阻止網(wǎng)上沖浪,除非他們指向企業(yè)內(nèi)部網(wǎng)Web服務(wù)器的IP地址;
? 丟棄源路由包;
? 接受來(lái)自特定IP地址范圍的工程操作站,通過(guò)TCP端口23遠(yuǎn)程登錄(telnet)到一個(gè)特定的分布式控制系統(tǒng)(DCS)IP地址的數(shù)據(jù)。
不幸的是,包過(guò)濾防火墻缺乏理解一系列數(shù)據(jù)包之間關(guān)系的能力。例如,廣泛適用的規(guī)則“接受UDP端口53上的DNS響應(yīng)數(shù)據(jù)包”包含一個(gè)嚴(yán)重的缺陷。如果DNS沒(méi)有發(fā)過(guò)查詢(xún),而用一個(gè)偽造的DNS“響應(yīng)”包來(lái)代替呢?這個(gè)簡(jiǎn)單的防火墻會(huì)接受這個(gè)數(shù)據(jù)包,并提供給“請(qǐng)求”主機(jī),這可能會(huì)帶來(lái)麻煩。比較狡猾的黑客會(huì)利用防火墻的這些弱點(diǎn)潛入內(nèi)部系統(tǒng)。
包過(guò)濾防火墻的優(yōu)點(diǎn)具有:成本低廉且對(duì)網(wǎng)絡(luò)性能影響較小,因?yàn)橹粰z查數(shù)據(jù)包中的IP地址和端口號(hào)。這種方法有時(shí)也稱(chēng)為靜態(tài)過(guò)濾。它往往是直接部署在交換機(jī)或路由器的第3層,而不是專(zhuān)用的“防火墻”。
(2)狀態(tài)防火墻
這是一種更復(fù)雜的防火墻,具有智能跟蹤流經(jīng)的數(shù)據(jù)包,以及了解他們之間的相互關(guān)系。因?yàn)榫哂薪邮瞻臍v史和當(dāng)前連接的狀態(tài),它只能接收“預(yù)期”的數(shù)據(jù)包。由于防火墻是智能的,所以有條件制定狀態(tài)防火墻的規(guī)則集。例如:
? 只有當(dāng)發(fā)出的DNS查詢(xún)與相同的DNS請(qǐng)求標(biāo)識(shí)相匹配時(shí),才接收UDP端口53上的DNS響應(yīng)數(shù)據(jù)包。
? 僅在控制通道協(xié)商成功后,才允許文件傳輸協(xié)議(FTP)通道傳輸數(shù)據(jù)。
? 阻止所有源自TCP端口80傳入的網(wǎng)絡(luò)數(shù)據(jù),除非他是專(zhuān)門(mén)針對(duì)先前傳出的超文本傳輸協(xié)議(HTTP)的請(qǐng)求。
這種類(lèi)型的防火墻提供了一種高層次的安保和性能,以及對(duì)最終用戶的透明度,但價(jià)格比較昂貴。由于它的復(fù)雜性,如果沒(méi)有相關(guān)資質(zhì)的人員管理,這類(lèi)防火墻可以比簡(jiǎn)單類(lèi)型的防火墻更不安保。這種方法有時(shí)也稱(chēng)為動(dòng)態(tài)包過(guò)濾。
(3)應(yīng)用代理防火墻
應(yīng)用代理防火墻在應(yīng)用層打開(kāi)數(shù)據(jù)包,按照特定的應(yīng)用規(guī)則來(lái)處理他們,然后重新組裝,轉(zhuǎn)發(fā)到所需的目標(biāo)設(shè)備。通常,它們被設(shè)計(jì)成針對(duì)于各種應(yīng)用協(xié)議(如Telnet、FTP、HTTP等)的單一機(jī)器,隨后轉(zhuǎn)發(fā)到各個(gè)主機(jī)計(jì)算機(jī)完成各項(xiàng)服務(wù)??蛻舳瞬恢苯舆B接外部服務(wù)器,而是連接代理防火墻,需要時(shí)由代理防火墻發(fā)起連接外部服務(wù)器的請(qǐng)求。有些代理防火墻,支持配置內(nèi)部客戶端自動(dòng)執(zhí)行這種重定向,且不用用戶知道。有些人可能會(huì)要求用戶直接連接代理服務(wù)器,然后通過(guò)指定的格式發(fā)起連接。
代理防火墻提供了一些重要的安保特性,例如防火墻可以識(shí)別和控制有些應(yīng)用協(xié)議。它可以對(duì)應(yīng)用協(xié)議使用訪問(wèn)控制列表,在要求用戶或系統(tǒng)授權(quán)訪問(wèn)之前提供額外的驗(yàn)證。此外,可以創(chuàng)建規(guī)則集,用于理解特定的協(xié)議,可以?xún)H為阻止協(xié)議子集進(jìn)行配置。例如,可以創(chuàng)建這樣的HTTP防火墻規(guī)則:阻止所有含腳本的HTTP數(shù)據(jù)包入站。相比之下,過(guò)濾路由器要么阻止所有的HTTP數(shù)據(jù),要么不阻止,而不是阻止一個(gè)子集。
這種類(lèi)型的防火墻可以提供一個(gè)高水平的安保,但也明顯影響了網(wǎng)絡(luò)性能。此外,大部分應(yīng)用代理防火墻產(chǎn)品只支持幾種常見(jiàn)的因特網(wǎng)協(xié)議,如HTTP、FTP或簡(jiǎn)單郵件傳輸協(xié)議(SMTP)。其結(jié)果是,對(duì)含有工業(yè)應(yīng)用層協(xié)議的報(bào)文,如公共工業(yè)協(xié)議?(CIP)或Modbus / TCP?,需要在防火墻狀態(tài)或包過(guò)濾模式中增加對(duì)工業(yè)應(yīng)用層協(xié)議的數(shù)據(jù)處理。
在過(guò)去的幾年中,市場(chǎng)上出現(xiàn)了很多利用狀態(tài)與應(yīng)用代理技術(shù)組合的防火墻,他們通常被稱(chēng)為混合型防火墻。
(4)深度包檢測(cè)防火墻
防火墻市場(chǎng)目前已經(jīng)遷移到了第四代技術(shù),被稱(chēng)為“深度包檢測(cè)”(DPI)或“應(yīng)用防火墻”。比起傳統(tǒng)的應(yīng)用代理,它通常提供更深入的應(yīng)用層過(guò)濾,但不執(zhí)行完整的TCP連接代理。例如,DPI防火墻能夠用可擴(kuò)展標(biāo)記語(yǔ)言(XML)在Web連接上檢查簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)的對(duì)象,實(shí)施允許/禁止什么對(duì)象進(jìn)入網(wǎng)絡(luò)的政策。
除了數(shù)據(jù)包過(guò)濾的核心服務(wù),現(xiàn)代的防火墻還提供其他基于網(wǎng)絡(luò)的安保服務(wù)。這些服務(wù)可能包括:
(1)執(zhí)行像入侵檢測(cè)系統(tǒng)(IDS)的功能,可以記錄被拒絕訪問(wèn)的數(shù)據(jù)包,識(shí)別專(zhuān)門(mén)導(dǎo)致網(wǎng)絡(luò)問(wèn)題的數(shù)據(jù)包,或報(bào)告異常的信息流。
(2)在防火墻上部署“一線”的防病毒軟件。如果發(fā)現(xiàn)有感染數(shù)據(jù)的特征,這種數(shù)據(jù)在進(jìn)入網(wǎng)絡(luò)前就被阻止。
(3)身份驗(yàn)證服務(wù),要求用戶連接到防火墻另一側(cè)的設(shè)備使用密碼或強(qiáng)大的驗(yàn)證方法(如公共密鑰加密)通過(guò)防火墻驗(yàn)證。
(4)虛擬專(zhuān)用網(wǎng)(VPN)網(wǎng)關(guān)服務(wù),在防火墻和遠(yuǎn)程主機(jī)設(shè)備之間建立一個(gè)加密的隧道。
(5)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),在防火墻一側(cè)的一組IP地址映射到另一側(cè)不同的一組地址。
這些額外的服務(wù)將依賴(lài)于購(gòu)買(mǎi)的防火墻的品牌和型號(hào)。顯然,這些附加功能可能意味著額外的成本,增加了配置的復(fù)雜性并降低了網(wǎng)絡(luò)的性能。然而,利用了這些功能,往往能顯著提高IACN / SCADA網(wǎng)絡(luò)的整體安保性能。