戰五渣?四大雲WAF實戰測試險遭團滅

戰五渣?四大雲WAF實戰測試險遭團滅

許多企業將Web應用程序防火牆(WAF)默認為保護Web應用程序時的最佳實踐或合規性要求。WAF是一種特定的防火牆,旨在識別和阻止Web應用程序流量的攻擊。期望防火牆將阻止命令注入攻擊、跨站點腳本攻擊、協議違規以及其他針對Web應用程序的常見攻擊。

隨著企業數字轉型和“安全上雲”運動的開展,以及當下疫情加重的Web安全焦慮,越來越多的企業開始考慮雲WAF防火牆產品,使用在雲中預配置的WAF對Web應用進行保護。除了專業WAF廠商外,目前主要的雲供應商都通過收購或者研發豐富了自己的WAF產品,它們與服務商自己的負載均衡器很好地集成在一起。

與傳統硬件WAF相比,除了巨大的價格優勢外,雲WAF還有以下突出優點:

部署簡單,維護成本低

這也是雲WAF最有價值和受用戶喜愛的一點,無需安裝任何軟件或者部署任何硬件設備,只需修改DNS即可將網站部署到雲WAF的防護範圍之內。

用戶無需更新

雲WAF的防護規則都處於雲端,新漏洞爆發時,由雲端負責規則的更新和維護,用戶無需擔心因為疏忽導致受到新型的漏洞攻擊。

可充當CDN

雲WAF在提供防護功能的同時,還同時具有CDN的功能,在進行防護的同時還可以提高網站訪問的速率,CDN通過跨運營商的多線智能解析調度將靜態資源動態負載到全國的雲節點,用戶訪問某個資源時會被引導至最近的雲端節點從而提高訪問速度。

但是,目前國際市場上一些有代表性的雲WAF產品(本文主要討論雲計算服務商提供的雲WAF),到底“能不能打”?

在Gartner的調研報告下面,很多企業安全人員的留言對雲WAF也是褒貶不一,一位軟件工程師認為AWS Web Application Firewall是“最可靠的軟件”。但另一位專家稱雲WAF有“需要進一步解決的問題”。至於Azure,評論似乎更加複雜。一位架構師認為,“仍準備了專用WAF設備作為備份”,儘管許多人認為它“易於實施和使用”。

由於目前市場上很少有第三方機構對雲計算服務商的雲WAF產品進行實戰檢測,因此客戶對雲WAF性能和功能的認知,有時候可能只是一種對雲安全的“蜜汁自信”。雲WAF是否可以很好地阻止常見的Web應用程序攻擊?

近日,網絡安全團隊Fraktal針對AWS WAF (Amazon)、AWS WAF (Fortinet)、AZURE WAF (CRS 3.1)、BARRACUDA(梭子魚)WAF-as-a-service四款常見的雲服務商的雲WAF產品(服務)做了一個實戰測試,結果有些令人吃驚。測試內容如下:

我們在AWS和Azure中搭建了測試環境,以測試雲WAF。我們的設置包括以下內容:

測試團隊為AWS和Azure內部解決方案挑選了雲託管版本的商業WAF產品進行對比測試。四款產品採用的規則/服務如下:

在Azure雲中,總體測試體系結構如下所示,在AWS雲上的測試環境採用了完全相同的設置。

战五渣?四大云WAF实战测试险遭团灭

用於測試連接到Azure和AWS雲負載平衡器的WAF的高級測試體系結構

測試梭子魚WAF即服務需要採用備用設置,測試團隊在Azure雲上配置了服務,對前述設置進行了最小的更改。

战五渣?四大云WAF实战测试险遭团灭

用於在Azure中測試梭子魚WAF即服務的高級體系結構

測試團隊使用2月19日當日上述雲服務上可用的託管默認值進行了測試。為了準確模擬用戶使用這些服務的最常見方式,測試者沒有刪除或添加任何可能影響檢測或阻止攻擊能力的規則或定義。對於AWS託管規則,用戶必須選擇規則組,因為可以同時啟用的規則組數量受到限制,測試者選擇了一種可以最好地覆蓋OWASP十大威脅的規則組合,為測試用例提供最佳保護。

所選規則組

為了測試WAF,測試團隊挑選了幾種現實中常見的幾種攻擊和繞過方法,針對自定義Web服務器通過HTTP發起這些攻擊,目標服務器將記錄那些通過WAF的請求。

測試使用的攻擊方法如下(詞條解釋引用自owasp.org):

命令執行:通過嚮應用程序中注入命令破壞系統。

服務器端包含注入(SSI):SSI是Web應用程序上存在的指令,用於向HTML頁面提供動態內容。服務器端包含攻擊允許通過將腳本注入HTML頁面或遠程執行任意代碼來利用Web應用程序。

SQL注入:向客戶端到應用程序的輸入數據中注入SQL查詢。

路徑遍歷:路徑遍歷攻擊(也稱為目錄遍歷)旨在訪問存儲在Web根文件夾外部的文件和目錄。

格式錯誤的XML文檔:格式錯誤的文檔可用於消耗資源或注入惡意命令。

跨站點腳本(XSS):跨站點腳本(XSS)攻擊是一種注入攻擊,其中,惡意腳本通過網絡瀏覽器從惡意網站注入到原本良性和可信任的網站中。

這組測試方法代表了針對網站的典型攻擊。測試用例的目的不涉及業務邏輯弱點,以及其他可被惡意利用的應用邏輯。

結果是令人震驚的,除了Azure WAF,其他幾款雲WAF的表現都是災難性的。

战五渣?四大云WAF实战测试险遭团灭

四大雲WAF測試結果數據(百分比表示被阻止的攻擊比重,數字越高越好)

肉眼可見,使用CRS 3.1規則的Azure WAF的攻擊防護成功率遠高於其他三款雲WAF產品,也是在整個測試用例集中能可靠執行的唯一雲WAF服務。

測試報告的另外一個有趣發現是,是否使用URL字符編碼,對WAF的安全性能表現影響極大!例如,梭子魚阻止了我們所有未編碼的SSI測試用例,但在編碼時則僅能阻止一半。因此,從攻擊者的角度來看,嘗試使用不同的編碼可能是逃避WAF保護的有效方法。

AWS託管的WAF在本次測試中的表現最為“寬鬆”,它會放行以下有效載荷進行攻擊:

战五渣?四大云WAF实战测试险遭团灭

此外,AWS中託管的Fortinet WAF和Azure中的梭子魚WAF即服務也都允許這兩個示例。

從有效載荷和拒絕的響應來看,很難對WAF的內部運作得出許多結論。有時,WAF的各種行為看上去非常混亂和搞笑,例如:

結果表明,雲WAF服務生下來就是不平等的,而且大多數IaaS雲服務商的WAF服務還遠遠趕不上第三方方案。接受測試的AWS、Azure和梭子魚中,Azure WAF無疑是贏家,並且是唯一運行良好的服務。而AWS和梭子魚的產品,對一些最常見的攻擊類型都“睜一隻眼閉一隻眼”。

如果企業要在雲中構建應用程序,則應留意“選配”的安全服務是否能夠達到安全需求。雖然購買雲WAF可能是一種合規需要,但用戶應當清醒地認識到,雲計算廠商的“免費午餐”,有時候安全性能可能與您想象得不太一樣。

本項雲WAF測試由Fraktal網絡安全團隊的Tuomo、Tommi和Marko完成,其測試結果僅基於特定測試環境和配置,除了在特定測試環境和用例中比較雲WAF服務的相對性能之外,這些測試結果無意在任何其他上下文應用場景中進行解釋或作為用戶選擇產品的依據。


分享到:


相關文章: