久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

幫助中心 >  行業資訊 >  網絡安全 >  淺談WAF應用防火墻部署

淺談WAF應用防火墻部署

2020-09-03 09:40:12 2972

淺談WAF應用防火墻部署

一、背景

隨著網上銀行、手機銀行、電子商城等互聯網及移動金融應用的興起,針對WEB類應用的攻擊手段也層出不窮,據統計,2019年出現攻擊方式中,針對WEB類的攻擊占到85.4%左右,相對而言遙遙領先于其他攻擊手段。面對如此多的互聯網攻擊威脅,傳統的通過運維發現、開發項目組從代碼層面進行修復漏洞的效率已經遠遠低于漏洞被利用的效率,于是,一種新的專用于WEB防護的安全產品由此而生——WAF(WEBAPPLICATION FIREWALL),也叫應用防火墻。

雖然WAF應用防火墻叫做防火墻,可是其工作原理和傳統防火墻截然不同。傳統防火墻主要工作在網絡層和傳輸層,針對源目的地址,源目的端口和網絡協議這五元組進行規則匹配過濾。而應用防火墻工作在應用層,其主要通過中間代理的方式,截取網絡通信中的HTTP流量,再通過其過濾規則進行分析和攔截,這里要提醒的是,其防護效果取決與對應用邏輯的理解,與應用邏輯結合越是緊密,防護效果越好,WAF應用防火墻是應用層面安全防護的首道防線。

 

二、WAF應用防火墻部署難題

WAF應用防火墻雖然可以極大地提升應用的安全等級,但是如何部署卻讓很多網絡架構設計者犯難,實際部署過程中面臨的問題主要有三點:

1、與其他安全設備旁路部署的方式不同,應用防火墻的工作原理要求其必須串行部署在Web服務器前面;對于網站啟用SSL加解密的,需要部署在SSL解密設備之后、WEB服務器之前,而這樣的部署會極大的增加網絡的復雜度,對應急排錯造成困難;

2、對于存量的WEB類互聯網系統,新進行串聯部署WAF設備,意味著要將現有網絡連接通路斷開,在變更的過程中可能帶來業務的中斷,對變更的方案設計和實施工藝也帶來很大的挑戰性;

3、應用防火墻和應用邏輯結合緊密,如果策略配置不當,或者WAF應用防火墻本身產品BUG,很容易造成正常數據包被誤攔截的情況,導致業務影響事件。

 

三、WAF應用防火墻的工作模式

首先介紹一下WAF應用防火墻的工作模式、原理和典型部署架構。

1、旁路鏡像方式

旁路鏡像模式通過鏡像方式將請求流量吐給WAF應用防火墻,而WAF只能對訪問流量進行檢測和報警,無法實時攔截。由于失去了主動驗證和攔截的能力,旁路部署的WAF應用防火墻防護能力大大降低,一般不建議這么部署。但是從運維的角度說,旁路部署是最安全的部署方式,如果只是想學習和測試WAF應用防火墻對WEB流量的檢測機制,可以嘗試旁路方式。典型部署如下:

1111111111111111111111.jpg

圖1.旁路方式部署WAF應用防火墻

 

2、二層透明模式部署

WAF應用防火墻可以網橋方式工作在二層網絡,通過截取請求流量來獲取訪問信息。WAF應用防火墻本身不需要配置IP地址,前端請求可以直接發到后端服務器,WAF設備對兩者是透明的,可以當作一根網線,這種部署方式簡單,零配置,如果設備故障可以進行bypass旁路直通,非常適合簡單網絡部署。

但是一般大型互聯網企業網絡都是全冗余架構,意味著從客戶端到服務器絕不會只有一條網絡路徑,那么如果要按照二層代理方式會存在三個問題:一是每條路徑都需要部署WAF應用防火墻將極大地提升成本;二是前后請求可能從不同的路徑經過不同的WAF應用防火墻,而WAF應用防火墻之間的數據并沒有同步機制,那么與上下文相關的策略將會失效,導致防護能力降低;三是網絡路徑確定了,設備數量就確定了,無法再進行靈活的擴容。

 

二層代理方式部署,主要考慮部署在網絡流量的集中點或者WEB服務器前端,因此可以考慮部署在負載均衡前面或者WEB服務器前面:

 

(1)部署在負載均衡前端,WAF應用防火墻需要串聯在交換機和負載均衡的物理鏈路上,由于一般網絡中部署多臺負載均衡集群,每臺負載均衡與交換機可能有多條鏈路連接,因此需要串聯多臺WAF應用防火墻。負載均衡備機前端串聯的WAF設備由于沒有流量經過,成為了熱備機,形成一定的資源浪費。

 

 

2222222222222.jpg

 

圖2.二層部署架構一

 

(2)WEB服務器前端,WAF應用防火墻串聯部署在交換機和WEB服務器的物理鏈路上,WAF應用防火墻設備需要與WEB服務器一一對應,由于WAF應用防火墻設備價格遠高于WEB服務器,這種部署將帶來投入成本增加,也不利于后續的服務器擴容。

3.jpg

 

圖3.二層部署架構二

 

 

3.代理模式

代理模式是將真實服務器的地址映射到代理服務器上,客戶端看起來,訪問的就是代理服務器的地址,此種模式下,WAF應用防火墻分別與客戶端和后面的服務器建立TCP連接,所有流量通過前端網絡連接發送給WAF應用防火墻,在WAF處理后再通過后端連接轉發到后臺服務器。

 

代理模式的典型部署架構如下,采用多層負載均衡實現SSL、WAF和WEB的集群部署,可以降低三層設備之間的耦合性,提供靈活擴容的能力。

444444444444444444444.jpg

 

圖4.反向代理模式的典型部署架構

 

按照不同的連接方式還可以具體分為反向代理和路由代理。

 

(1)反向代理部署

反向代理模式下,WAF應用防火墻與交換機之間僅需單VLAN互聯,WAF防火墻與WEB服務器部署在同一VLAN,默認路由指向前端負載均衡。WEB服務器從網絡層僅能觀察到WAF接口的地址,無法直接觀察到客戶端源地址,建議SSL或者負載均衡層面在HTTP頭中插入XFF字段,將源地址插入進去。

 

55555555555555555555555.jpg

圖5.反向代理模式下WAF的連接方式

 

(2)路由代理部署

在某些情況下,服務器需要從網絡層觀察到客戶端的IP地址,這時候需要用到路由代理模式,路由代理依然屬于代理模式的一種。WAF應用防火墻通過出入兩個VLAN與交換機連接,WAF應用防火墻需要配置出入向的路由,使得流量經過WAF后通過路由方式到達后端WEB服務器。此時,WAF轉發流量將保留源地址,使得WEB服務器可以直接觀察到客戶端的IP地址。

6666666666666666666.jpg

 

圖6.路由代理模式下WAF的連接方式

 

由于負載均衡、SSL、WAF均可以工作在代理模式,目前市場上不乏多功能合一的產品,于是其架構部署也有一些變種的方式:

 

 

負載均衡具備SSL加解密功能,直接可以省略掉SSL層,問題是SSL不再具備橫向擴展能力,隨著業務量的增加,瓶頸將出現在負載均衡設備上;

 

 

 

777777777777777777777.png

圖7.負載均衡具備SSL加解密能力

 

 

SSL具備負載均衡功能,SSL可以直接給后面的WAF做負載,省略掉一層負載均衡。問題是要求WAF產品需要具備二層原路返回功能(autolasthop),如果無此能力,將會出現來回路徑不一致的情況。另外,路徑較為復雜,排錯定位比較困難。

 

88888888888888888.jpg

圖8.SSL具備負載均衡能力

 

 

同時具備負載均衡、SSL、WAF能力,那么可以直接給WEB服務器做負載,架構極為簡單,但是由于SSL加解密和WAF規則過濾都極其消耗設備性能,故只能對小業務量應用進行部署。

9.jpg

 

 

圖9.全功能負載均衡

 

另外想說明的是,雖然所有WAF產品都自稱具備SSL加解密能力,但是因為性能的原因以及實際部署時候解耦的要求,通常WAF廠商不會推薦在自身產品上啟用SSL功能,所以這種方式僅推薦功能測試時使用。

 

四、負載均衡策略設計

 

考慮到模型的通用性,我們還是推薦將WAF應用防火墻部署在路由代理模式下,回到其經典代理部署架構,要將WAF加入到現有的環境中,其實是在SSL集群層和WEB集群層中間新增WAF集群層,可以通過切換第二層負載均衡關聯的地址池實現WAF集群的部署,這種方式切換可以基本實現業務零中斷。

 

 

100000000000000000000000.jpg

圖10.二層集群變三層集群

 

其中,第一層和第三層負載均衡因為沒有架構變化,故策略保持不變。第二層負載均衡,由原先的直接給WEB服務器做負載,改為給WAF集群做負載,這里為了考慮WAF集群整體故障而需要快速隔離的情況,在WAF集群中還添加了WEB服務器集群逃生通道,其中WAF應用防火墻的優先級為高,WEB服務器的優先級低,這樣在WAF故障時,負載均衡可以自動切換到二層負載均衡的方式,直接給WEB做負載,因此負載均衡方式采用優先級+最小連接數的策略。

 

健康檢查方面,建議使用TCP直接監控WAF的業務端口,這里僅需要考慮監控到WAF層面,沒有必要通過HTTP監控到業務層面。由于本層考慮到可能需要直接給WEB服務器做負載,故建議會話保持策略與第三層負載均衡保持一致即可。

 

該架構主要是通過網絡層面調整調整策略支持WAF的接入,但是在日常運維排錯中設計到網絡、應用SSL加解密、安全WAF策略、應用WEB服務器等過多領域,排錯仍然稍顯復雜,結合運維實踐,主要有以下三點建議:

1、在每一層集群前部署監控,探測每一層的頁面返回狀態,故障時可以快速定位到具體出現問題的集群;

2、如短時間內無法快速定位到故障點,提前準備預案,優先通過負載均衡隔離WAF集群,降低問題排查維度;

3、WAF應用防火墻需要具備完整的攔截日志和設備狀態監控,便于后續的問題深入分析和策略持續優化。

 

 

 


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: