使用 WAF 保護您的應用系統

在透過「Web 應用程式防火牆 (WAF)」遞送應用程式之後,請使用 WAF 提供的各種安全功能來保護您的應用程式。

您可以依下列方式保護您的應用程式:

  • 設定保護規則
  • 使用 Bot 管理
  • 新增存取規則

設定保護規則

您可以保護應用程式的安全性,使用規則封鎖跨站指令碼 (XSS) 和 SQL 資料隱碼 (SQLi) 等攻擊。

設定保護規則:
  1. 登入Oracle Cloud Infrastructure 主控台。
  2. 開啟導覽功能表。在治理與管理底下,移至安全性並按一下 WAF 原則
  3. 按一下保護規則
    就會顯示一個表格,其中包含預先定義的保護規則。
  4. 請使用 RULE ID 篩選條件,並選取規則 941140981300
    規則詳細資料顯示在右側。
  5. 選取每個規則,然後從動作下拉式能表中按一下區塊
  6. 按一下全部發佈
    在 WAF 原則上發布變更可能需要幾分鐘的時間。

驗證保護規則

驗證保護規則是否運作:
  1. 從瀏覽器的開發人員工具頁面開啟網路頁籤。
  2. 從您的瀏覽器存取範例員工應用程式 http://employee.<example.com>/public/
  3. 按一下新建員工,然後在表單填寫任何範例資訊。
  4. 名字欄位中輸入下列「SQL 插入」:
    SomeUser; DROP TABLE users
  5. 開啟瀏覽器的「網路」頁籤後,在新建員工表單上按一下儲存
    POST/employees 的封鎖狀態為 403 Forbidden
  6. 執行下列 cURL 命令:
    curl -X POST http://${WAF_TARGET}/employees \ 
    -H 'host: employee.example.com' \ 
    -d '{"firstName":"Name; DROP TABLE users"}'
    此命令會傳回 403 錯誤。
  7. 在瀏覽器位址列上的查詢參數中嘗試跨站指令碼執行 GET 要求:
    http://employee.<example.com>/employees/?id=%3Cscript%3Ealert(%27bad%27)%3C/script%3Ein

    瀏覽器會傳回下列內容:


    Waf-bidden.png 的描述請參見下方
    waf-bidden.png 圖解描述

前面的步驟會觸發 WAF Block 動作多次。現在,返回Oracle Cloud Infrastructure 主控台中的 WAF 原則詳細資訊以檢查日誌。
  1. 開啟員工示範原則
  2. 按一下日誌
  3. 選取在您嘗試 SQLi 和 XSS 攻擊時間範圍的日期/時間範圍。
  4. 識別含 Action: Block 的項目,展開封鎖之要求的資料列詳細資訊,然後按一下檢視 JSON
  5. protectionRuleDetections 與其他要求詳細資訊的方式檢視列出的訊息。

使用 Bot 管理

另一項Oracle Cloud Infrastructure Web 應用程式防火牆 (WAF) 服務的功能是其主要管理功能。

在許多情況下,非人工流量會造成網站的最大流量百分比。雖然特定的「良好」波札斯有助於,但其他的「無效」波札機可能嘗試修飾內容、垃圾郵件、強制攻擊或應用程式層 DDoS 的攻擊。

例如,您可能想要將某些已知的波札白名單加入「搜尋引擎最佳化 (SEO)」和內容等級的用途,但為某些互動限制人工使用者的驗證。此類型的分析藍本可透過 WAF 原則暫停管理設定值輕鬆完成。

新增圖形驗證碼查問

圖形驗證碼是圖形驗證碼的其中一項。使用圖形驗證碼提供了一種簡單的使用者驗證方法,可確保人力互動,無需變更基礎應用程式。

新增圖形驗證碼查問:
  1. Oracle Cloud Infrastructure 主控台。
  2. 開啟導覽功能表。在治理與管理底下,移至安全性並按一下 WAF 原則
  3. 開啟員工示範原則,然後按一下 Bot Management
  4. 按一下圖形驗證碼查問頁籤,然後按一下新增圖形驗證碼查問
  5. 圖形驗證碼 URL 路徑欄位中輸入 /public/index.html 作為值。
  6. 將其餘欄位中的預設值保留原來
  7. 按一下新增,然後按一下全部發佈
  8. 發布變更之後,WAF 原則會以 ACTIVE 狀態繼續,從您的瀏覽器載入頁面 http://employee.<example.com>/public/index.html
    瀏覽器會顯示下列圖形驗證碼查問:

輸入正確的程式碼之後,您輸入的網站就不會進一步查問與查問組態中之 Session Duration 值對應的期間。

新增存取控制規則

WAF 存取控制藉由限制或封鎖應用程式中可用資料與服務的存取,提供額外的安全性層。

透過存取控制,您可以根據要求條件來定義規則,包括:
  • HTTP 標頭
  • URL 樣式
  • IP 位址
  • 地理位置

在範例 Employee 應用程式中,您可以從資料庫刪除員工詳細資料。您可能需要限制 Delete 功能的安全性用途。您可以建立及套用限制刪除要求的存取規則。

新增存取控制規則:
  1. Oracle Cloud Infrastructure 主控台。
  2. 開啟導覽功能表。在治理與管理底下,移至安全性並按一下 WAF 原則
  3. 開啟員工示範原則,然後按一下存取控制
  4. 按一下新增存取規則
  5. 輸入規則名稱,例如 Prevent Delete
  6. 新增下列規則條件:
    • HTTP 方法為DELETE
    • URL 開頭為/employee
  7. 選取區規則動作,然後選取「設定回應代碼 (區塊動作)」為「禁止 403 (預設選項)」。
  8. 按一下新增存取規則以建立規則,然後按一下全部發佈

發布變更之後,WAF 原則會以 ACTIVE 狀態繼續執行:

  1. 從瀏覽器的開發人員工具頁面開啟網路頁籤。
  2. 從您的瀏覽器存取範例員工應用程式 http://employee.<example.com>/public/
  3. 選取員工記錄,然後按一下「刪除」按鈕。

在您瀏覽器開發人員工具區段的網路頁籤中,您會注意到 WAF 已攔截此要求,並使用 403 Forbidden 回應加以封鎖。

此解決方案所討論的Oracle Cloud Infrastructure WAF 功能,將重點放在保護基本範例應用程式的安全。使用案例將針對每個應用程式是唯一的,而且您可以據此設定 WAF。