第9章 WAF

NG-UTM 具備 WAF ( Web Application Firewall) 功能,可以提供對外服務的網頁伺服器進階的保護,
一般駭客攻擊網頁伺服器的目的為癱瘓或是竊取網頁資料庫內的重要資料庫資訊,
常用的攻擊手法有 SQL Injection、Cross-site Scripting Attack 等,WAF 都可以將它們阻隔在網頁伺服器外。
網頁伺服器有 2 個協定,HTTP 與 HTTPS。
WAF 的運作有如代理伺服器,如果後端的網頁伺服器是 HTTPS 協定,需要將它的憑證資料匯入 WAF 伺服器,
否則外面的使用者瀏覽網頁時會出現憑證錯誤的狀況,HTTP 協定則不需要額外的設定。
WAF 的啟用有 3 個步驟:
1. 在 4-1、管制規則 中的 Incoming 或 Advance 建有將 HTTP / HTTPS 導入內部網頁伺服器的管制條例,並啟用 WAF 功能。
如圖9-1 所示,內部的伺服器是 https://192.168.189.151
管制條例啟用 WAF

圖 249. 圖9-1 管制條例啟用 WAF

2. NG-UTM 會在「WAF > 網站管理」列出目前啟用 WAF 機制的伺服器,HTTPS 需要匯入網站伺服器的憑證,HTTP 則不需要任何額外設定。
3. 前往「WAF > WAF 設定」啟用 WAF 並選擇管制項目及規則。

9-1、WAF 設定

9-1-1、WAF 設定

NG-UTM 的 WAF 有 19 個分類,括弧內的數字表示每個分類其中的子項目數量,管理者可針對整個分類或其中的項目選擇執行記錄 / 阻擋的動作。
記錄是將符合規則的行為記錄後放行,阻擋則是將符合規則的行為直接阻擋,所以後端的網頁伺服器就不會收到這個從外部過來的服務要求。
第一次啟用 WAF 功能時,若怕誤擋造成使用者瀏覽網頁伺服器不順,可以先單獨啟用記錄,然後再在 WAF 記錄中查詢有哪一些規則被觸發。
WAF 啟用及規則

圖 250. 圖9-2 WAF 啟用及規則

【啟動】:啟用 WAF 功能。
【異常連線封鎖】:當同一來源 IP 位址每分鐘觸發超過設定的次數,暫時封鎖這個來源 IP 位址。設定範圍是 0 ~ 9999,0 表示不封鎖。
【多久解除異常連線封鎖】:當來源 IP 位址觸發異常連線後,系統多久解除封鎖。設定範圍是 0 ~ 9999,0 表示不解除封鎖。
【永久封鎖】:異常連線封鎖次數超過幾次,就將這個 IP 位址永久封鎖。設定範圍是 0 ~ 9999,0 表示沒有限制。
【封鎖 IP】:點選後出現目前被封鎖的來源 IP 位址,管理者可以單個或全部解除被封鎖的 IP。

9-1-2、網站管理

列出每個在管制條例中啟用 WAF 服務的網頁伺服器,按照實際提供服務的內部網頁伺服器 IP 位址列表,而不是根據外面導入的 IP。
例如,在管制條例中有 2 個規則分別啟用 WAF 功能:
www.def.com(合法 IP : 1.1.1.1)內部網頁伺服器(虛擬 IP : 192.168.1.1)
www.def.com(合法 IP : 2.2.2.2)內部網頁伺服器(虛擬 IP : 192.168.1.1)
一個對外服務的網站 www.def.com,因為做線路負載平衡所以有 2 個對外 IP 位址,分別是 1.1.1.1 / 2.2.2.2,
到最後都導向內部的一個網頁伺服器 192.168.1.1 ,則在網站管理只會出現 192.168.1.1 這一個主機 IP。
網站列表

圖 251. 圖9-3 網站列表

【主機 IP】:內部實際網頁伺服器的 IP 位址。
【主機通訊埠】:網頁伺服器使用的通訊 Port,一般而言 80 是 http,443 是 https,管理者也可以根據網路環境改變 Port,例如:8080、8000、8443 等。
【連線協定】:網頁伺服器使用的通訊協定,一般而言 80 是 http,443 是 https, https 協議就需要匯入【原】網頁伺服器使用的憑證,如果沒匯入憑證使用者的瀏覽器就會出現憑證錯誤的警告。
【安全性】:(待補)(待重新截圖)
【伺服器名稱】:網頁伺服器的名稱,如果是空白,則將外部連線需求直接轉給網頁伺服器,如果後端的網頁伺服器支援多台的 Virtual Host,則需要填入實際使用的 Virtual Host ,讓後端的網頁伺服器有 SNI 可以分辨。
【憑證資訊】:https 協定需要把後端伺服器的憑證匯入 WAF 中。
在列表中點選 image330
HTTP 網站名稱

圖 252. 圖9-4 HTTP 網站名稱

在【伺服器、憑證列表】中按下 image332 就可以進行修改,每一個 Virtual Host,都需要匯入相對應的憑證。
後端伺服器的憑證使用來源有 2 個,Local Certificate 跟 User Define,
User Define是匯入後端伺服器既有的憑證,在 Key 檔案、crt 檔案中匯入原本伺服器的憑證檔,Local Certificate 是使用 NG-UTM 的憑證檔。
HTTP 網站名稱及匯入憑證

圖 253. 圖9-5 HTTPS 網站名稱及匯入憑證

9-1-3、阻擋頁面

WAF 在運作時,後端往往有很多伺服器,每一台伺服器的內容不一定相同,在阻擋時呈現給使用者的資料也會不一樣,這些阻擋訊息可以在這裡設定。
• 預設阻擋頁面設定
可以自行設定預設阻擋頁面的主題與內容,輸入完成並儲存後,可以點選【檢視】來預覽頁面是否符合預期。
下方的自訂阻擋頁面列表可檢視自訂的阻擋頁面並做修改或刪除。
WAF 阻擋頁面設定

圖 254. 圖9-6 WAF 阻擋頁面設定

• 自訂阻擋頁面
在自訂阻擋頁面列表下方點選 image20 ,即可進入新增阻擋頁面:
輸入此阻擋頁面的名稱,主題及內容會先帶入預設的阻擋頁面設定,可自行修改。
需要選擇自訂阻擋頁面伺服器,系統會自動列出已經建立的伺服器讓管理者勾選。
新增阻擋頁面

圖 255. 圖9-7 新增阻擋頁面設定

儲存後就完成設定並可於自訂阻擋頁面列表查看。

9-1-4、WAF 白名單

因為 WAF 較為嚴謹,有些網站的程式設計較容易觸發 WAF 規則,而如果違反的是低風險的規則,管理者可以將它設為白名單,系統在比對時就不會套用它。
在 WAF 白名單列表下方點選 image20
WAF 白名單設定

圖 256. 圖9-8 WAF 白名單設定

【名稱】:此白名單的名稱。
【白名單 URL】:想把哪個 URL 設為白名單。
【白名單項目】:不會對此 URL 檢查這些項目。

Note

管理者可以在 WAF 阻擋紀錄中找尋誤擋的項目,直接在紀錄中加入白名單。

9-2、WAF 記錄

9-2-1、WAF 紀錄

每一個被 NG-UTM 的 WAF 分析到的規則,都會列表在這裡,管理者可以從中檢視駭客是使用哪一種手法攻擊。
可依條件查詢,結果會呈現在紀錄列表。
WAF 記錄

圖 257. 圖9-9 WAF 記錄

【動作】:有記錄跟阻擋 2 種,系統用顏色區分,粉紅色為阻擋,白色為記錄。
【來源 IP】:攻擊者的來源 IP 位址。
【URI】:被攻擊的 URI,若為自家的網頁程式寫不標準引起的假攻擊事件,可以藉此發現並調整。
【目的主機】:有啟用 WAF 服務的實際網頁伺服器 IP 位址。
【分類】:此為哪一種 WAF 攻擊分類項目。
【事件】:分類中的哪一個子項目事件。
【連線次數】:同一個來源 IP 位址的攻擊次數。
【白名單】:若管理者確認這是 WAF 誤擋,點選白名單圖示即可將此規則設為白名單。

9-2-2、WAF 封鎖記錄

每一個被 NG-UTM WAF 封鎖的來源 IP 位址都可於此依條件查詢。