不知道大家是否有記憶,我們花了兩個篇幅介紹CDN的主要功能-緩存(要複習請往這邊走緩存介紹①&緩存介紹②),這一篇則要來介紹CDN另一個非常重要的功能-『WAF』。每家CDN的WAF判斷思維都不太一樣,我們將會花二到三章的篇幅來介紹什麼是WAF、iNODE NINJA的WAF判斷順序以及平台能夠針對什麼特徵來做動作配置的測試結果。
WAF全名是Web Application Firewall,是一種針對網站服務內容的防護機制。隨著雲端服務技術資源與個人行動設備普及,惡意攻擊的頻率也隨著企業數位化的成長而大幅度增加,攻擊手法更是層出不窮,除了針對第三、第四層的高流量攻擊外,還會針對第七層以模擬真人來訪問的方式進行更為複雜的攻擊,藉此來消耗頻寬資源。而WAF就是專門應付複雜的第七層攻擊,我們可以透過配置WAF規則的「條件」,以及滿足條件時觸發的「動作」去過濾流量來阻擋惡意攻擊。
新增WAF規則
WAF配置思維
平台的WAF配置思維是一個WAF規則的「條件-特徵」中,如果設置了多個欄位,那麼各個WAF條件之間的判斷方式是「AND」(如下圖粉紅色框所示),也就是說請求必須與所有設置的欄位匹配時,才會觸發WAF規則。例如在一條WAF中同時設定了「來源IP:1.1.1.1」,以及「請求URI:/login」,並且設置動作為Deny。這時請求必須同時滿足IP=1.1.1.1與URI=/login兩項條件才會觸發阻擋動作。
而在單一欄位中若有多重條件時,可以透過換行表示不同的條件內容,單一欄位內的判斷方式是「OR」(如下圖藍色框所示),只要請求與欄位中任一值匹配時,就會觸發WAF規則。例如在「來源IP」設定了1.1.1.1/32與9.9.9.9/32,這時請求IP只要是1.1.1.1/32或9.9.9.9/32其中之一就會觸發。
配置完成後,新增的WAF規則就會出現在列表中
將WAF規則從「可用規則」到「應用規則」
當我們在「WAF規則」配置完成之後,要到「域名物件」去做套用的動作。如下圖所示,配置完成的WAF規則,會出現在「可用規則」裡面,點擊。而上圖示將想要套用的WAF加到「應用規則」裡面。
Allow優先於Deny
iNODE NINJA的WAF規則判斷順序是由上而下判讀的,也就是說如果用戶先命中了Allow的規則時,即使下方有符合其他規則的條件,也不會產生任何效力。如下圖所示,我第一條規則先Allow了來自臺灣的IP,第二條規則再Deny我們辦公室的IP,但因為系統的判斷在第一條Allow時就已經通過了,因此我還是能順利用辦公室IP訪問網站。!
Deny優先於Allow
我們再調換順序來看,如果我第一條先設置了Deny辦公室IP,第二條再Allow臺灣IP,此時再去訪問網站的話,我的辦公室IP就會被WAF規則阻擋下來,出現錯誤提示頁面。
錯誤提示:被Deny時的錯誤提示頁面
此外,在iNODE NINJA平台,不管是域名物件或是WAF規則,都是需要使用Regex,如下圖。
今天就先到這裡,下一篇會針對iNODE NINJA可以設置的動作和特徵來做介紹。