使用標準流量篩選器規則保護 AEM 網站
了解如何使用 Adobe 建議的標準流量篩選器則,在 AEM as a Cloud Service 中保護 AEM 網站不受阻斷服務 (DoS)、分散式阻斷服務 (DDoS) 攻擊與機器人濫用的侵害。
學習目標
- 審閱 Adobe 建議的標準流量篩選器規則。
- 定義、部署、測試並分析規則的結果。
- 了解根據流量模式調整規則的時機和方式。
- 了解如何使用 AEM 行動中心審閱規則所產生的警示。
實作概觀
實作步驟包括:
- 將標準流量篩選器規則新增至 AEM WKND 專案的
/config/cdn.yaml檔案。 - 提交變更並將其推送至 Cloud Manager Git 存放庫。
- 使用 Cloud Manager 的設定管道將變更部署至 AEM 環境。
- 使用 Vegeta 模擬 DoS 攻擊來測試規則
- 使用 AEMCS CDN 記錄和 ELK 儀表板工具分析結果。
先決條件
繼續進行之前,請確保您已完成如何設定流量篩選器和 WAF 規則教學課程中所述的必要準備工作。此外,您已複製 AEM WKND 網站專案並將其部署至您的 AEM 環境。
規則的關鍵動作
在深入了解標準流量篩選器規則的詳細資料之前,我們先認識這些規則所執行的關鍵動作。每條規則中的 action 屬性定義流量篩選器在條件滿足時的回應方式。相關動作包括:
-
記錄:這些規則會記錄事件以供監視與分析,讓您可以審閱流量模式並視情況所需調整臨界值。這會由
type: log屬性指定。 -
警報:這些規則在條件滿足時觸發警報,協助您找出潛在的問題。這會由
alert: true屬性指定。 -
封鎖:這些規則在條件滿足時封鎖流量,以防止存取您的 AEM 網站。這會由
action: block屬性指定。
審閱和定義規則
以 Adobe 建議的標準流量篩選器規則做為識別潛在惡意流量模式的基礎層,透過記錄事件 (例如超出 IP 速率限制) 進行監視,並封鎖來自特定國家/地區的流量。這些記錄有助於團隊驗證臨界值和做出明智的決策,以便最終在不干擾合法流量的情況下,轉換為封鎖模式規則。
讓我們審閱您應該新增到 AEM WKND 專案 /config/cdn.yaml 檔案的三個標準流量篩選器規則:
- 在邊緣防止 DoS 攻擊:此規則會監視來自用戶端 IP 的每秒要求數 (RPS),以偵測在 CDN 邊緣可能發生的阻斷服務 (DoS) 攻擊。
- 在來源防止 DoS 攻擊:此規則會監視來自用戶端 IP 的擷取要求,以偵測來源可能發生的阻斷服務 (DoS) 攻擊。
- 封鎖 OFAC 國家/地區:此規則會封鎖來自受美國海外資產辦公室 (OFAC) 所限制之特定國家/地區的存取。
1. 在邊緣防止 DoS 攻擊
此規則會在偵測到可能於 CDN 發生的阻斷服務 (DoS) 攻擊時發送警報。當某個使用者在邊緣的每個 CDN POP (網路服務提供點) 超出每秒 500 個要求 (以 10 秒為平均基準) 時,就會滿足推薦準則條件而觸發此規則。
其計算 所有的 要求,並按用戶端 IP 進行分類。
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
data:
trafficFilters:
rules:
- name: prevent-dos-attacks-edge
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 500
window: 10
penalty: 300
count: all
groupBy:
- reqProperty: clientIp
action:
type: log
alert: true
action 屬性指定該規則應在條件滿足時,記錄事件並觸發警報。因此,那有助於監視潛在的阻斷服務 (DoS) 攻擊,卻不會封鎖合法流量。然而,您的目標是在驗證流量模式並調整臨界值之後,最終將此規則轉換為封鎖模式。
2. 在來源防止 DoS 攻擊
此規則會在偵測到可能於來源發生的阻斷服務 (DoS) 攻擊時發送警報。該推薦準則是某個使用者在來源的每個用戶端 IP 超過每秒 100 個要求 (以 10 秒為平均基準) 時,即會觸發此規則。
其計算擷取 (繞過快取的要求) 次數,並按用戶端 IP 進行分組。
...
- name: prevent-dos-attacks-origin
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 100
window: 10
penalty: 300
count: fetches
groupBy:
- reqProperty: clientIp
action:
type: log
alert: true
action 屬性指定該規則應在條件滿足時,記錄事件並觸發警報。因此,那有助於監視潛在的阻斷服務 (DoS) 攻擊,卻不會封鎖合法流量。然而,您的目標是在驗證流量模式並調整臨界值之後,最終將此規則轉換為封鎖模式。
3. 封鎖 OFAC 國家/地區
此規則封鎖受到 OFAC 限制之特定國家/地區的存取。
您可以視情況所需審閱和修改國家/地區清單。
...
- name: block-ofac-countries
when:
allOf:
- { reqProperty: tier, in: ["author", "publish"] }
- reqProperty: clientCountry
in:
- SY
- BY
- MM
- KP
- IQ
- CD
- SD
- IR
- LR
- ZW
- CU
- CI
action: block
action 屬性指定該規則應封鎖來自指定國家/地區的存取。這有助於您防止可能有安全性風險的地區存取您的 AEM 網站。
具有上述規則的完整 cdn.yaml 檔案顯示如下:
部署規則
若要部署上述規則,請依照以下步驟進行:
-
提交變更並將其推送至 Cloud Manager Git 存放庫。
-
使用先前建立的 Cloud Manager 設定管道,將變更部署至 AEM 環境。
測試規則
為了驗證標準流量篩選器規則在 CDN Edge 和 來源 的有效性,可使用多功能的 HTTP 負載測試工具 Vegeta 模擬高要求流量。
-
在邊緣測試 DoS 規則 (500 rps 限制)。以下命令會模擬每秒 200 次要求,持續 15 秒,超出邊緣臨界值 (500 rps)。
code language-shell $echo "GET https://publish-p63947-e1249010.adobeaemcloud.com/us/en.html" | vegeta attack -rate=200 -duration=15s | vegeta report
note important IMPORTANT 注意上述報告中 100% 成功和 200 的狀態代碼。由於規則設定為 log和alert,要求_未遭封鎖_但予以記錄以用於監視、分析和發送警報目的。 -
在來源測試 DoS 規則 (100 rps 限制)。以下命令會模擬每秒 110 次擷取要求,持續 1 秒,超出來源臨界值 (100 rps)。為了模擬繞過快取的要求,會建立一個包含唯一查詢參數的
targets.txt檔案,以確保將每個要求都視為擷取要求。code language-shell # Create targets.txt with unique query parameters $for i in {1..110}; do echo "GET https://publish-p63947-e1249010.adobeaemcloud.com/us/en.html?ts=$(date +%s)$i" done > targets.txt # Use the targets.txt file to simulate fetch requests $vegeta attack -rate=110 -duration=1s -targets=targets.txt | vegeta report
note important IMPORTANT 注意上述報告中 100% 成功和 200 的狀態代碼。由於規則設定為 log和alert,要求_未遭封鎖_但予以記錄以用於監視、分析和發送警報目的。 -
為求簡化,此處並未測試 OFAC 規則。
審閱警報
在觸發流量篩選器規則時會產生警報。您可以在 AEM 行動中心審閱這些警報。
分析結果
您可以使用 AEMCS CDN 記錄和 ELK 儀表板工具分析流量篩選器規則的結果。依照 CDN 記錄攝取設定部分的指示,將 CDN 記錄攝取至 ELK 堆疊。
您可以在下方的螢幕截圖中,看到 AEM Dev 環境的 CDN 記錄已攝取至 ELK 堆疊。
在 ELK 應用程式中,CDN 流量儀表板應該顯示在模擬 DoS 攻擊期間,Edge 和 來源 出現的流量峰值。
兩個面板 邊緣每個用戶端 IP 和 POP 的 RPS 和來源每個用 IP 和 POP 的 RPS 分別顯示邊緣和來源的每秒要求數 (RPS),並依用戶端 IP 與網路服務提供點 (POP) 進行分組。
您也可以使用 CDN 流量儀表板中的其他面板來分析流量模式,例如熱門用戶端 IP、熱門國家/地區和熱門使用者代理程式。這些面板有助於識別潛在威脅,並依此調整流量篩選器規則。
Splunk 整合
已將 Splunk 記錄轉送啟用的客戶可以建立新的儀表板來分析流量模式。
若要在 Splunk 中建立儀表板,請依照用於 AEMCS CDN 記錄分析的 Splunk 儀表板步驟。
下方的螢幕截圖展示一個 Splunk 儀表板範例,其中顯示每個 IP 的來源與邊緣最大要求數,有助於識別潛在的 DoS 攻擊。
調整改善規則的時機和方式
您的目標是避免封鎖合法流量,同時保護您的 AEM 網站不受潛在的威脅。標準流量篩選器規則是針對警告和記錄 (以及最終在模式切換時封鎖) 威脅所設計,並不會封鎖合法流量。
請考量以下步驟以調整改善規則:
-
監視流量模式:使用 CDN 記錄和 ELK 儀表板監視流量模式並識別流量的任何異常或尖峰。
-
調整臨界值:根據流量模式調整規則中的臨界值 (提高或降低速率限制),以更好的方式符合您的特定要求。例如,如果您注意到合法流量觸發警報,則可以提高速率限制或調整分組方式。
下方表格提供關於如何選擇臨界值的指引:table 0-row-2 1-row-2 2-row-2 1-align-left 2-align-left 4-align-left 5-align-left 7-align-left 8-align-left 變化版本 值 來源 取 正常 流量條件下每個 IP/POP 最大來源要求數的最高值 (即不是 DDoS 攻擊時的速率),然後將其增加數倍 邊緣 取 正常 流量條件下每個 IP/POP 最大邊緣要求數的最高值 (即不是 DDoS 攻擊時的速率),然後將其增加數倍 另請參閱選擇臨界值部分以了解更多詳細資訊。
-
移至封鎖規則:在驗證流量模式並調整臨界值之後,就應將規則轉變為封鎖模式。
摘要
在本教學課程可以了解如何使用 Adobe 建議的標準流量篩選器規則,在 AEM as a Cloud Service 中保護 AEM 網站不受阻斷服務 (DoS)、分散式阻斷服務 (DDoS) 攻擊與機器人濫用的侵害。
建議的 WAF 規則
了解如何實作 Adobe 建議的 WAF 規則,以保護您的 AEM 網站免於使用進階技術來繞過傳統安全措施的複雜威脅。
了解如何使用 Adobe 建議的 Web 應用程式防火牆 (WAF) 流量篩選器規則,在 AEM as a Cloud Service 中保護網站不受包括 DoS、DDoS 及機器人濫用攻擊等在內的複雜威脅。
使用案例-超越標準規則
針對較進階的案例,您可以參考以下使用案例,了解如何根據特定業務需求實作自訂的流量篩選器規則。