全新 Cloudflare Web 應用程式防火牆(WAF)

可可AQ發表於2021-08-12

Cloudflare  每天阻止超過 570 億次 HTTP 請求,按照沒秒計算可達到65萬次。過濾這些流量的原始程式碼是由 Cloudflare 現任 CTO 編寫的,迄今 WAF 已享譽無數,包括

由於我們非常重視在程式碼不便於維護、效能下降或無法擴充套件時對程式碼進行替換,我們經常重寫 Cloudflare 堆疊的關鍵部分。這樣做很有必要,因為我們的快速成長使得昨日的解決方案不再可行。一段時間以來,我們一直努力將  替換為用 Rust 編寫的新程式碼,並改進了使用者介面。

我們很高興能推出全新的 Cloudflare Web 應用程式防火牆。

今天開始, Cloudflare 上新建帳戶的 10% 在開通 Pro 或以上計劃時即可使用全新 WAF。這個比例將在 4 月期間增加到 100%,然後將開始對現有客戶進行遷移。Enterprise 客戶可以聯絡其帳戶團隊以提前遷移。

有何變化

Web 應用程式防火牆(WAF)是 Cloudflare 平臺的核心組成部分。作為組合中最常用的產品之一,我們從大規模執行中獲得了很多反饋和經驗,在這次重大迭代中給我們提供了指引。全新 WAF 提供:

·  更佳的規則瀏覽和配置   —— 輕鬆一鍵部署但不失強大的工具:高階過濾、批次編輯、規則標記等。開啟所有 Wordpress 規則、將所有 Cloudflare 託管規則設定為 LOG 或找出哪些規則沒有執行現已變得輕而易舉。

·  全新匹配引擎  —— 以 Rust 編寫,支援  wirefilter  語法 —— 與自定義防火牆規則所用語法相同。這個引擎讓我們加快託管規則的部署,並允許 WAF 部署到更多流量上,從而擴充套件到下一個級別。與此同時,效能和安全性都得以改善。

·  更新的規則集  ——  全新 WAF 附帶更新的規則集,提供更佳的控制以將規則狀態與操作分開。Cloudflare OWASP 核心規則集也已基於 OWASP 核心規則集最新版本(截至撰寫時為 v3.3),與當前版本相比,增加了 paranoia 級別,並改善了誤報率。

·  全球配置  ——  在您的整個帳戶部署相同的配置。將規則以規則集的方式分組,並使用原生版本控制和回滾能力。

全新 WAF 有很多讓我們感到興奮的特徵,以上只是一小部分,其中每一項都值得另文詳述,但這裡先介紹一下重點。

更佳的規則瀏覽和配置

Cloudflare 託管規則集(包括 Cloudflare Specials 1  組)是 WAF 的重要組成部分之一。其中包括數百條 Cloudflare 提供和維護的規則。預設配置下,我們旨在實現極低誤報率,同時為任何 web 應用程式提供極佳的安全基線。但是,為了獲得最佳的安全狀態,您應該啟用盡可能多的規則。這意味著,某些時候有必要深入研究並根據標的應用程式來自定義規則集行為。

對於新 WAF,我們希望能一鍵啟用預設配置的託管規則集,同時為感興趣的使用者提供更佳的配置體驗。

 

新的 WAF 使用者介面一鍵開啟 Cloudflare 託管規則集和Cloudflare OWASP ModSecurity 核心規則集。

之前,如需啟用 Cloudflare 託管規則集,您需要開啟全域性 WAF 開關並配置任何感興趣的規則組。10 個規則組(包括 WordPress、Joomla、PHP 等)直接顯示在頁面上,帶有切換開/關。透過這個使用者介面,可輕鬆過濾或配置各組中的規則,而無需逐一檢查每一項規則。

 

當前(舊版)託管規則集 WAF 使用者介面。點選一個組顯示每組的規則列表。

儘管這個使用者介面很簡單,但其不允許快速執行常見任務。例如, 顯示所有關閉的規則 顯示所有環節 XSS 攻擊的規則 。現在,所有規則都顯示在一個表格中 ——一鍵即可按照規則狀態、操作和標記過濾。規則標記也代替了分組,一項規則可能有一個或多個標記,大大提高了系統的靈活性。標記將用於:

·  識別某項規則是否適用於特定軟體元件

·  識別攻擊手段(如 XSS、SQLi、RCE)

·  識別針對 CVE 的規則

最後,除了單個規則編輯外,我們還允許批次編輯,從而能更快根據特定用例來調整配置。

 

全新 WAF 規則集瀏覽器。批次操作選項、標記和過濾元件彙集一身。‌‌

我們預計可用規則數量將增加,並且為了讓更多使用者採用自定義配置,我們已增加了一個部署配置更改時的檢視介面。在這裡,您可以輕鬆檢視相對預設值的任何變化,並可選擇還原。

 

規則集部署檢視介面在此可檢視自定義配置相對預設的修改。

全新匹配引擎

目前的 Cloudflare WAF 負責執行託管規則集,是以 LuaJIT 編寫並作為一個 NGINX 模組部署的。規則語法遵循  ModSecurity  實現所用語法的一個超集,增加了針對 Cloudflare 實現的功能。

透過遷移到新引擎,我們旨在實現:

·  更安全、更佳和更高效能的環境,與 Cloudflare 使用的其他技術一致

·  提供了更佳的過濾和匹配能力,實現靈活部署,更易處理異常

·  採用 wirefilter 語法作為託管規則集的基礎以統一產品功能集

最後一點對我們和我們的使用者來說都是特別重要的,因為這種語法已經在我們的自定義 防火牆規則 中使用,後者甚至使用同樣的基礎 Rust 庫來執行過濾器。

新引擎是在    中實現的,在 本部落格中 我們已經多次提到我們對這種語言的熱愛。我們也在努力確保新的實現不僅改善安全,也能提高速度,有關詳情將在日後的博文中詳細介紹。

更新的 Cloudflare 規則集

Cloudflare 規則集已更新並移植到新的 WAF 上。值得注意的是,該規則集目前使用 wirefilter 語法,且規則狀態與規則操作分離,使您能獨立配置兩者。

Cloudflare OWASP 核心規則集也獲得了獨立於引擎的一次重大更新。當前 Cloudflare WAF 實施  OWASP ModSecurity 核心規則集 2.x 版。在新 WAF 中,Cloudflare OWASP 核心規則集直接基於  GitHub 庫 上可用的最新 3.3 版。

與現有系統相比,新的 Cloudflare OWASP 核心規則集以及新增的引擎功能帶來了一些改進:

·  更少誤報,更強大的應用程式通用規則

·  對敏感度得分的更多控制,清晰顯示每項規則對分數的貢獻程度以及被觸發請求的總分數是多少

·  增加    —— 可基於誤報風險輕鬆包含或排除規則組

·  規則標記允許使用基於應用程式的相關規則進行部署

 

Cloudflare OWASP 核心規則集‌‌

 

Cloudflare OWASP 核心規則集檢查介面‌‌

為了協助將最新版本的 OWASP ModSecurity 核心規則集轉換為 Cloudflare 部署,我們的團隊還構建了一個 ModSecurity 到 wirefilter 語法轉換器。這將使我們能在上游釋出任何改進後的短時間內輕鬆部署和更新規則集,以確保客戶始終獲得最新版本。我們也計劃將來開源並在使用者介面中公佈轉換器,以便客戶能更易從基於 ModSecurity 的 WAF 遷移到 Cloudflare。

全球配置

從一開始, Cloudflare 一直在基於站點的模型上執行 Cloudflare WAF。這種方式非常適用於簡單的用例,即客戶保護少量應用程式,或者在每個站點的應用程式型別非常多樣化。

更復雜或統一的跨站點部署通常透過利用   或自動化工具來實現,如我們的

透過新 WAF,可在單一帳戶下的任意流量過濾器上進行規則集部署。例如:

·  在我的所有站點中部署 Cloudflare 託管規則集。

·  對路徑中不包含 /api/* 的所流量部署 Cloudflare OWASP 核心規則集。

·  對來自我的 IP 的流量,禁用我帳戶中的所有託管規則集。

這實現了一個強大功能,僅需單擊幾下滑鼠就能完成整個帳戶的 WAF 配置。

 

對帳戶下任意應用程式部署的 3 項規則。‌‌

為了實現這一點,規則集(一組規則)成為了頭等概念,並具備原生版本控制,在使用者介面中直接提供回滾和差異功能 ——我們計劃在未來幾個月內開始釋出這些功能。

基於帳戶的配置最初僅向 Enterprise 客戶開放,這些客戶現在就可以聯絡帳戶管理團隊來申請提前使用。自定義防火牆規則不久後也將遷移到新引擎上,讓客戶也能建立自己的自定義防火牆規則集,並按需部署到任何流量過濾器上。

新平臺提供新功能

這個 WAF 還有很多看不到的東西,我們的團隊已經忙於完成在新 WAF 上構建的一套新功能,其中包括對引擎本身的改進,對可據以行動事件的更佳分析和可見性。實際上,整個引擎被設計為 Cloudflare 許多基於規則的產品的基礎,目標是最終將整個 Cloudflare 配置表示為一套規則。

與此同時,我們期待您的反饋,並希望能再接再厲,繼續創新。

.......

1 Cloudflare Specials 是 Cloudflare 安全團隊根據對 Cloudflare 平臺背後數百萬個 web 應用程式的觀察和保護而編寫的規則。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69993109/viewspace-2786593/,如需轉載,請註明出處,否則將追究法律責任。

相關文章