由于我們非常重視在代碼不便于維護(hù)、性能下降或無(wú)法擴(kuò)展時(shí)對(duì)代碼進(jìn)行替換,我們經(jīng)常重寫(xiě) Cloudflare 堆棧的關(guān)鍵部分。這樣做很有必要,因?yàn)槲覀兊目焖俪砷L(zhǎng)使得昨日的解決方案不再可行。一段時(shí)間以來(lái),我們一直努力將 John 編寫(xiě)的原始 LuaJIT 代碼替換為用 Rust 編寫(xiě)的新代碼,并改進(jìn)了用戶界面。 我們很高興能推出全新的 Cloudflare Web 應(yīng)用程序防火墻。
今天開(kāi)始,Cloudflare 上新建帳戶的 10% 在開(kāi)通 Pro 或以上計(jì)劃時(shí)即可使用全新 WAF。這個(gè)比例將在 4 月期間增加到 100%,然后將開(kāi)始對(duì)現(xiàn)有客戶進(jìn)行遷移。Enterprise 客戶可以聯(lián)系其帳戶團(tuán)隊(duì)以提前遷移。
有何變化
Web 應(yīng)用程序防火墻(WAF)是 Cloudflare 平臺(tái)的核心組成部分。作為組合中最常用的產(chǎn)品之一,我們從大規(guī)模運(yùn)行中獲得了很多反饋和經(jīng)驗(yàn),在這次重大迭代中給我們提供了指引。全新 WAF 提供:
· 更佳的規(guī)則瀏覽和配置 —— 輕松一鍵部署但不失強(qiáng)大的工具:高級(jí)過(guò)濾、批量編輯、規(guī)則標(biāo)記等。打開(kāi)所有 Wordpress 規(guī)則、將所有 Cloudflare 托管規(guī)則設(shè)置為 LOG 或找出哪些規(guī)則沒(méi)有運(yùn)行現(xiàn)已變得輕而易舉。
·
全新匹配引擎 —— 以 Rust 編寫(xiě),支持 wirefilter 語(yǔ)法 —— 與自定義防火墻規(guī)則所用語(yǔ)法相同。這個(gè)引擎讓我們加快托管規(guī)則的部署,并允許 WAF 部署到更多流量上,從而擴(kuò)展到下一個(gè)級(jí)別。與此同時(shí),性能和安全性都得以改善。· 更新的規(guī)則集 —— 全新 WAF 附帶更新的規(guī)則集,提供更佳的控制以將規(guī)則狀態(tài)與操作分開(kāi)。Cloudflare OWASP 核心規(guī)則集也已基于 OWASP 核心規(guī)則集最新版本(截至撰寫(xiě)時(shí)為 v3.3),與當(dāng)前版本相比,增加了 paranoia 級(jí)別,并改善了誤報(bào)率。
· 全球配置 —— 在您的整個(gè)帳戶部署相同的配置。將規(guī)則以規(guī)則集的方式分組,并使用原生版本控制和回滾能力。
全新 WAF 有很多讓我們感到興奮的特征,以上只是一小部分,其中每一項(xiàng)都值得另文詳述,但這里先介紹一下重點(diǎn)。
更佳的規(guī)則瀏覽和配置
Cloudflare 托管規(guī)則集(包括 Cloudflare Specials1 組)是 WAF 的重要組成部分之一。其中包括數(shù)百條 Cloudflare 提供和維護(hù)的規(guī)則。默認(rèn)配置下,我們旨在實(shí)現(xiàn)極低誤報(bào)率,同時(shí)為任何 web 應(yīng)用程序提供極佳的安全基線。但是,為了獲得最佳的安全狀態(tài),您應(yīng)該啟用盡可能多的規(guī)則。這意味著,某些時(shí)候有必要深入研究并根據(jù)標(biāo)的應(yīng)用程序來(lái)自定義規(guī)則集行為。
對(duì)于新 WAF,我們希望能一鍵啟用默認(rèn)配置的托管規(guī)則集,同時(shí)為感興趣的用戶提供更佳的配置體驗(yàn)。
新的 WAF 用戶界面一鍵打開(kāi) Cloudflare 托管規(guī)則集和Cloudflare OWASP ModSecurity 核心規(guī)則集。
之前,如需啟用 Cloudflare 托管規(guī)則集,您需要打開(kāi)全局 WAF 開(kāi)關(guān)并配置任何感興趣的規(guī)則組。10 個(gè)規(guī)則組(包括 WordPress、Joomla、PHP 等)直接顯示在頁(yè)面上,帶有切換開(kāi)/關(guān)。通過(guò)這個(gè)用戶界面,可輕松過(guò)濾或配置各組中的規(guī)則,而無(wú)需逐一檢查每一項(xiàng)規(guī)則。
當(dāng)前(舊版)托管規(guī)則集 WAF 用戶界面。點(diǎn)擊一個(gè)組顯示每組的規(guī)則列表。
盡管這個(gè)用戶界面很簡(jiǎn)單,但其不允許快速執(zhí)行常見(jiàn)任務(wù)。例如,顯示所有關(guān)閉的規(guī)則或顯示所有環(huán)節(jié) XSS 攻擊的規(guī)則。現(xiàn)在,所有規(guī)則都顯示在一個(gè)表格中——一鍵即可按照規(guī)則狀態(tài)、操作和標(biāo)記過(guò)濾。規(guī)則標(biāo)記也代替了分組,一項(xiàng)規(guī)則可能有一個(gè)或多個(gè)標(biāo)記,大大提高了系統(tǒng)的靈活性。標(biāo)記將用于:
· 識(shí)別某項(xiàng)規(guī)則是否適用于特定軟件組件
· 識(shí)別攻擊手段(如 XSS、SQLi、RCE)
· 識(shí)別針對(duì) CVE 的規(guī)則
最后,除了單個(gè)規(guī)則編輯外,我們還允許批量編輯,從而能更快根據(jù)特定用例來(lái)調(diào)整配置。
全新 WAF 規(guī)則集瀏覽器。批量操作選項(xiàng)、標(biāo)記和過(guò)濾組件匯集一身。
我們預(yù)計(jì)可用規(guī)則數(shù)量將增加,并且為了讓更多用戶采用自定義配置,我們已增加了一個(gè)部署配置更改時(shí)的查看界面。在這里,您可以輕松查看相對(duì)默認(rèn)值的任何變化,并可選擇還原。
規(guī)則集部署查看界面在此可查看自定義配置相對(duì)默認(rèn)的修改。
全新匹配引擎
目前的 Cloudflare WAF 負(fù)責(zé)執(zhí)行托管規(guī)則集,是以 LuaJIT 編寫(xiě)并作為一個(gè) NGINX 模塊部署的。規(guī)則語(yǔ)法遵循 ModSecurity 實(shí)現(xiàn)所用語(yǔ)法的一個(gè)超集,增加了針對(duì) Cloudflare 實(shí)現(xiàn)的功能。 通過(guò)遷移到新引擎,我們旨在實(shí)現(xiàn):
· 更安全、更佳和更高性能的環(huán)境,與 Cloudflare 使用的其他技術(shù)一致
· 提供了更佳的過(guò)濾和匹配能力,實(shí)現(xiàn)靈活部署,更易處理異常
· 采用 wirefilter 語(yǔ)法作為托管規(guī)則集的基礎(chǔ)以統(tǒng)一產(chǎn)品功能集
最后一點(diǎn)對(duì)我們和我們的用戶來(lái)說(shuō)都是特別重要的,因?yàn)檫@種語(yǔ)法已經(jīng)在我們的自定義防火墻規(guī)則中使用,后者甚至使用同樣的基礎(chǔ) Rust 庫(kù)來(lái)執(zhí)行過(guò)濾器。 新引擎是在 Rust 中實(shí)現(xiàn)的,在本博客中我們已經(jīng)多次提到我們對(duì)這種語(yǔ)言的熱愛(ài)。我們也在努力確保新的實(shí)現(xiàn)不僅改善安全,也能提高速度,有關(guān)詳情將在日后的博文中詳細(xì)介紹。 更新的 Cloudflare 規(guī)則集
Cloudflare 規(guī)則集已更新并移植到新的 WAF 上。值得注意的是,該規(guī)則集目前使用 wirefilter 語(yǔ)法,且規(guī)則狀態(tài)與規(guī)則操作分離,使您能獨(dú)立配置兩者。
與現(xiàn)有系統(tǒng)相比,新的 Cloudflare OWASP 核心規(guī)則集以及新增的引擎功能帶來(lái)了一些改進(jìn):
· 更少誤報(bào),更強(qiáng)大的應(yīng)用程序通用規(guī)則
· 對(duì)敏感度得分的更多控制,清晰顯示每項(xiàng)規(guī)則對(duì)分?jǐn)?shù)的貢獻(xiàn)程度以及被觸發(fā)請(qǐng)求的總分?jǐn)?shù)是多少
· 增加 [url=#paranoialevel]paranoia level[/url] —— 可基于誤報(bào)風(fēng)險(xiǎn)輕松包含或排除規(guī)則組
·
規(guī)則標(biāo)記允許使用基于應(yīng)用程序的相關(guān)規(guī)則進(jìn)行部署
Cloudflare OWASP 核心規(guī)則集
Cloudflare OWASP 核心規(guī)則集檢查界面
為了協(xié)助將最新版本的 OWASP ModSecurity 核心規(guī)則集轉(zhuǎn)換為 Cloudflare 部署,我們的團(tuán)隊(duì)還構(gòu)建了一個(gè) ModSecurity 到 wirefilter 語(yǔ)法轉(zhuǎn)換器。這將使我們能在上游發(fā)布任何改進(jìn)后的短時(shí)間內(nèi)輕松部署和更新規(guī)則集,以確?蛻羰冀K獲得最新版本。我們也計(jì)劃將來(lái)開(kāi)源并在用戶界面中公布轉(zhuǎn)換器,以便客戶能更易從基于 ModSecurity 的 WAF 遷移到 Cloudflare。
全球配置
從一開(kāi)始,Cloudflare 一直在基于站點(diǎn)的模型上運(yùn)行 Cloudflare WAF。這種方式非常適用于簡(jiǎn)單的用例,即客戶保護(hù)少量應(yīng)用程序,或者在每個(gè)站點(diǎn)的應(yīng)用程序類(lèi)型非常多樣化。
通過(guò)新 WAF,可在單一帳戶下的任意流量過(guò)濾器上進(jìn)行規(guī)則集部署。例如:
· 在我的所有站點(diǎn)中部署 Cloudflare 托管規(guī)則集。
· 對(duì)路徑中不包含 /api/* 的所流量部署 Cloudflare OWASP 核心規(guī)則集。
· 對(duì)來(lái)自我的 IP 的流量,禁用我?guī)糁械乃型泄芤?guī)則集。
這實(shí)現(xiàn)了一個(gè)強(qiáng)大功能,僅需單擊幾下鼠標(biāo)就能完成整個(gè)帳戶的 WAF 配置。
對(duì)帳戶下任意應(yīng)用程序部署的 3 項(xiàng)規(guī)則。
為了實(shí)現(xiàn)這一點(diǎn),規(guī)則集(一組規(guī)則)成為了頭等概念,并具備原生版本控制,在用戶界面中直接提供回滾和差異功能——我們計(jì)劃在未來(lái)幾個(gè)月內(nèi)開(kāi)始發(fā)布這些功能。
基于帳戶的配置最初僅向 Enterprise 客戶開(kāi)放,這些客戶現(xiàn)在就可以聯(lián)系帳戶管理團(tuán)隊(duì)來(lái)申請(qǐng)?zhí)崆笆褂谩W远x防火墻規(guī)則不久后也將遷移到新引擎上,讓客戶也能創(chuàng)建自己的自定義防火墻規(guī)則集,并按需部署到任何流量過(guò)濾器上。
新平臺(tái)提供新功能
這個(gè) WAF 還有很多看不到的東西,我們的團(tuán)隊(duì)已經(jīng)忙于完成在新 WAF 上構(gòu)建的一套新功能,其中包括對(duì)引擎本身的改進(jìn),對(duì)可據(jù)以行動(dòng)事件的更佳分析和可見(jiàn)性。實(shí)際上,整個(gè)引擎被設(shè)計(jì)為 Cloudflare 許多基于規(guī)則的產(chǎn)品的基礎(chǔ),目標(biāo)是最終將整個(gè) Cloudflare 配置表示為一套規(guī)則。
與此同時(shí),我們期待您的反饋,并希望能再接再厲,繼續(xù)創(chuàng)新。
.......
1Cloudflare Specials 是 Cloudflare 安全團(tuán)隊(duì)根據(jù)對(duì) Cloudflare 平臺(tái)背后數(shù)百萬(wàn)個(gè) web 應(yīng)用程序的觀察和保護(hù)而編寫(xiě)的規(guī)則。