流量篩選器規則包括 WAF 規則 traffic-filter-rules-including-waf-rules
流量篩選規則會在CDN層封鎖或允許請求,這適用於下列情況:
- 在新網站上線之前,限制內部公司流量存取特定網域。
- 為了減少受到大容量DoS攻擊的影響,請建立速率限制。
- 防止已知為惡意的IP位址鎖定您的頁面。
許多流量篩選規則可供所有 AEM as a Cloud Service Sites 和 Forms 客戶使用。 作為標準流量篩選規則,它們會在要求屬性上運作: IP、主機名稱、路徑和使用者代理程式。 標準流量篩選規則包括速率限制規則,以防止流量尖峰。
流量篩選規則的子類別需要擴充安全性(先前稱為WAF-DdS保護)或醫療保健的擴充安全性(先前稱為增強安全性)授權。 這些強大的規則稱為WAF (Web應用程式防火牆)流量篩選規則(或WAF規則),可存取本文稍後所述的WAF旗標。
流量篩選器規則可以透過 Cloud Manager 設定管道,部署至開發、中繼和生產環境類型。 可以使用命令列工具將設定檔案部署至快速開發環境 (RDE) 中。
若要快速取得有關此功能的專業知識,請完成教學課程。
本文章的組織方式 how-organized
本文章分為以下幾個章節:
- 流量保護概觀:了解如何保護您以避免受惡意流量的傷害。
- 設定規則的建議流程:閱讀關於保護網站的高級方法。
- 設定:探索如何設定、設定和部署流量篩選規則,包括進階WAF規則。
- 規則語法:閱讀有關如何在
cdn.yaml設定檔案宣告流量篩選規則。 此包括可供所有 Sites 和 Forms 客戶使用的流量篩選規則,以及針對那些授權該功能者所提供的 WAF 規則子類別。 - 規則範例:若要開始,請參閱宣告規則的範例。
- 速率限制規則:了解如何使用速率限制規則保護您的網站避免受到大量的攻擊。
- 流量篩選規則警示:設定要在規則觸發時收到通知的警示。
- 來源處的預設流量尖峰警示:當來源處出現提示DDoS攻擊的流量尖峰時,會收到通知。
- CDN 日誌:查看哪些宣告的規則和 WAF 標幟與您的流量相符。
- 儀表板工具:分析您的 CDN 日誌以提出新的流量篩選規則。
- 推薦的入門規則:一組可以開始使用的入門規則。
- 教學課程:功能的相關資訊,包括如何使用儀表板工具來宣告適當的規則。
流量保護概觀 traffic-protection-overview
在目前的數位環境中,惡意流量是一種揮之不去的威脅。 Adobe 了解風險的嚴重性,並提供多種方法保護客戶應用程式,以及在發生時減輕攻擊。
在邊緣,Adobe 管理的內容傳遞網路會吸收網路層上的 DoS 攻擊 (第 3 層和第 4 層),包括洪水攻擊和反射/放大攻擊。
預設情況下,Adobe 會採取措施來防止因超出特定臨界值的意外突發高流量所導致的效能降低。 如果有影響網站可用性的 DoS 攻擊,Adobe 的營運團隊會收到警報並採取減輕影響的步驟。
客戶會透過在內容傳送流程的不同層級設定規則,採取主動措施來減少應用程式層級攻擊(第7層)。
例如,在Apache層,客戶設定Dispatcher模組或ModSecurity來限制特定內容的存取權。
如本文所述,流量篩選器規則會使用Cloud Manager的設定管道部署至Adobe Managed CDN。 超過標準流量篩選規則 (IP、路徑、標頭、速率限制),客戶授權WAF規則。
建議的程式 suggested-process
以下是用來判斷正確流量篩選規則的高階建議端對端程式:
-
設定非生產和生產設定管道,如設定章節的敘述。
-
已授權 WAF流量篩選器規則 的客戶可在Cloud Manager中啟用這些規則。
note important IMPORTANT 授權WAF規則 不會 啟用它們。 在Cloud Manager的 安全性 索引標籤上勾選 WAF-DDOS保護 之前,功能會維持非使用中狀態。 請參閱建立生產計畫或編輯計畫以啟用此功能。 -
閱讀並完成本教學課程,以瞭解如何使用流量篩選規則,包括已授權的WAF規則。 本教學課程將引導您將規則部署到開發環境、模擬惡意流量、下載 CDN 日誌,以及在儀表板工具中進行分析。
-
將建議的入門規則複製至
cdn.yaml,並在記錄模式中使用部分規則將設定部署至生產環境。 -
收集一些流量之後,使用儀表板工具分析結果,以了解是否有任何符合的項目。 找出誤判,並進行任何必要的調整,最終在區塊模式中啟用所有入門規則。
-
如有需要,請根據 CDN 記錄分析新增自訂規則,首先在開發環境中使用模擬流量進行測試,再以記錄模式部署至中繼和生產環境,然後在區塊模式進行部署。
-
持續監控流量,隨著威脅態勢的發展來變更規則。
設定 setup
-
建立包含一組流量篩選規則 (包括 WAF 規則) 的
cdn.yaml檔案。 例如:code language-none kind: "CDN" version: "1" data: trafficFilters: rules: # Block simple path - name: block-path when: allOf: - reqProperty: tier matches: "author|publish" - reqProperty: path equals: '/block/me' action: block請參閱「使用設定管道」,取得
data節點上方屬性的描述。kind屬性值應設定為 CDN,版本應設定為1。 -
如果WAF規則已授權,您 必須 在Cloud Manager中啟用該功能。 授權WAF規則不會啟用它們。 在Cloud Manager的[安全性]索引標籤上勾選 WAF-DDOS保護 之前,功能會保持非使用中狀態。
為新方案和現有方案方案方案啟用此功能,如下所述:
-
依照設定管道文章所述,在 Cloud Manager 中建立設定管道。 管道參考了頂層
config資料夾,並將cdn.yaml檔案放在下方,請參閱使用設定管道。
流量篩選器規則語法 rules-syntax
若要比對IP、使用者代理、標題、主機名稱、地理或URL等模式,您可以設定流量篩選規則。
擁有醫療保健授權延伸安全性或延伸安全性的客戶可設定參照WAF旗標的WAF規則。
以下是一組流量篩選規則的範例,其中也包括 WAF 規則。
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS]
cdn.yaml 檔案中流量篩選規則的格式如下所述。 請參閱後面章節的一些其他範例,和關於速率限制規則的獨立章節。
stringConditionActionRateLimit以下會有一個單獨的章節說明 rateLimit 語法以及範例。
動作結構 action-structure
一個action可以是指定動作 (允許、封鎖或記錄) 的字串,也可以是由動作類型 (允許、封鎖或記錄) 以及 wafFlags 和/或狀態等選項組成的物件。
動作類型
動作根據下表中的類型排定優先順序,以反映動作的執行順序:
wafFlags (可選),alert (可選)如果已指定要發送警報,則當規則在 5 分鐘內觸發 10 次時,系統將發送行動中心通知。 觸發特定規則的警報後,直到第二天(UTC)才會再次引發。
status, wafFlags (可選且互斥),alert (可選)如果已指定要發送警報,則當規則在 5 分鐘內觸發 10 次時,系統將發送行動中心通知。 觸發特定規則的警報後,直到第二天(UTC)才會再次引發。
wafFlags (可選),alert (可選)如果已指定要發送警報,則當規則在 5 分鐘內觸發 10 次時,系統將發送行動中心通知。 觸發特定規則的警報後,直到第二天(UTC)才會再次引發。
WAF旗標清單 waf-flags-list
可授權的WAF流量篩選規則中使用的wafFlags屬性會參考下列專案:
惡意流量
BAD-IP 標幟進行「邏輯上的 AND 運算」,因此如果請求同時符合 ATTACK 和 BAD-IP,則會對其進行標記。 請參閱建議的 WAF 規則區段,了解如何有效使用此標幟。/bin/以外)CMDEXE 等級的保護,但停用 /bin 的誤報。CVE-<CVE Number> 旗標結合使用。 請聯絡Adobe以進一步瞭解Adobe可保護您免受哪些CVE攻擊。可疑的流量
/foo/./bar 會標準化為 /foo/bar)SANS 和 TORNODE 等資料集,或根據 WAF 先前偵測到的惡意行為Content-Encoding: gzip 請求標頭,且 POST 內文並非純文字。.htaccess 檔案或可能洩漏敏感資訊的設定檔案其他流量
考量事項 considerations
-
建立兩個衝突規則時,允許的規則總是優先於封鎖規則。 例如,如果您建立規則來封鎖特定路徑,並建立規則來允許某個特定IP位址,則允許來自封鎖路徑上的該IP位址的請求。
-
如果規則相符並遭封鎖,CDN 會以
406傳回代碼回應。 -
組態檔不包含秘密,因為任何有權存取Git存放庫的人都能讀取。
-
在 Cloud Manager 中定義的 IP 允許清單優先於流量篩選規則。
-
WAF 規則的符合項目只會出現在 CDN 未命中和通過的 CDN 記錄中,而非點擊的記錄中。
規則範例 examples
下面是一些規則範例。 如需進一步探討速率限制規則的範例,請參閱「速率限制」一節。
範例 1
此規則會封鎖來自 IP192.168.1.1 的請求:
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "block-request-from-ip"
when: { reqProperty: clientIp, equals: "192.168.1.1" }
action:
type: block
範例 2
此規則在使用包含Chrome的使用者代理程式發佈時封鎖對路徑/helloworld的請求:
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "block-request-from-chrome-on-path-helloworld-for-publish-tier"
when:
allOf:
- { reqProperty: path, equals: /helloworld }
- { reqProperty: tier, equals: publish }
- { reqHeader: user-agent, matches: '.*Chrome.*' }
action:
type: block
範例 3
此規則會封鎖含有查詢參數 foo 的發佈請求,但會允許來自 IP 192.168.1.1 的每項請求:
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "block-request-that-contains-query-parameter-foo"
when:
allOf:
- { queryParam: url-param, equals: foo }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "allow-all-requests-from-ip"
when: { reqProperty: clientIp, equals: 192.168.1.1 }
action:
type: allow
範例 4
此規則會封鎖發佈時對路徑 /block-me 的要求,並封鎖和 SQLI 或 XSS 模式相符的每個要求。 此範例包含WAF流量篩選規則,該規則參照SQLI和XSS WAF旗標,因此需要單獨的授權。
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS]
範例 5
此規則會封鎖對 OFAC 國家的存取:
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: block-ofac-countries
when:
allOf:
- reqProperty: tier
matches: "author|publish"
- reqProperty: clientCountry
in:
- SY
- BY
- MM
- KP
- IQ
- CD
- SD
- IR
- LR
- ZW
- CU
- CI
action: block
費率限制規則
有時,如果流量超過傳入要求的特定速率 (基於特定條件),則需要封鎖流量。 設定 rateLimit 屬性的值會限制那些和規則條件相符的要求的速率。
速率限制規則不能參考 WAF 標幟。 它們提供給所有網站和表單客戶使用。
速率限制是根據 CDN POP 計算的。 例如,假設蒙特婁、邁阿密和都柏林的 POP 流量分別為每秒 80、90 和 120 個請求。 並且,速率限制規則設定在以 100 為限。 在這種情況下,只有前往都柏林的流量會受到限制。
速率限制是根據到達邊緣的流量、到達來源的流量或錯誤數量進行評估。
rateLimit結構 ratelimit-structure
範例 ratelimiting-examples
範例 1
此規則在使用者端在過去10秒內超過平均每秒60個要求(每個CDN POP)時會封鎖5分鐘:
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: limit-requests-client-ip
when:
reqProperty: tier
matches: "author|publish"
rateLimit:
limit: 60
window: 10
penalty: 300
count: all
groupBy:
- reqProperty: clientIp
action: block
範例 2
當在 10 秒時間內每秒對來源平均發出超過 100 個要求 (每個 CDN POP),系統就會封鎖在 path /critical/resource 上的要求達 60 秒:
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: rate-limit-example
when:
allOf:
- { reqProperty: path, equals: /critical/resource }
- { reqProperty: tier, equals: publish }
action:
type: block
rateLimit: { limit: 100, window: 10, penalty: 60, count: fetches }
如需進階案例的其他程式碼片段,請參閱常見案例的CDN設定片段文章。
CVE規則 cve-rules
如果WAF獲得授權,Adobe會自動套用封鎖規則,以防範許多已知的CVE (常見漏洞和暴露),在發現新的CVE後不久便會新增。 客戶不會自行設定CVE規則。
如果流量請求符合CVE,則會顯示在相對應的CDN記錄專案中。
若對特定CVE有任何疑問,或您的組織想要停用特定CVE規則,請聯絡Adobe支援。
流量篩選器規則警報 traffic-filter-rules-alerts
規則可設定為在 5 分鐘時間內觸發十次時發送行動中心通知。 當出現某些流量模式時,此類規則會向您發送警報,以便您採取任何必要的措施。 觸發特定規則的警報後,要到隔天(UTC)才會再次觸發。
了解更多關於行動中心,包括如何設定接收電子郵件所需的通知設定檔。
警報屬性可以套用到所有動作類型 (允許、封鎖、記錄) 的動作節點。
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
alert: true
來源警示的預設流量尖峰 traffic-spike-at-origin-alert
來自相同IP位址的高流量點選來源時,動作中心電子郵件通知會提醒您,建議發生DDoS攻擊。
如果達到此臨界值,Adobe會封鎖該IP位址的流量;採取其他措施以保護您的來源,例如設定速率限制流量篩選規則。 請參閱使用流量規則教學課程🔗的封鎖DoS和DDoS攻擊,以取得引導式逐步解說。
系統預設會啟用此警示,但您可以使用 defaultTrafficAlerts 屬性(設定為false)來停用它。 觸發警報後,要到隔天(UTC)才會再次觸發。
kind: "CDN"
version: "1"
data:
trafficFilters:
defaultTrafficAlerts: false
CDN記錄 cdn-logs
AEM as a Cloud Service 會提供對 CDN 記錄的存取權,這對於包括快取命中率最佳化以及設定流量篩選規則等使用案例都非常有幫助。 選取作者或發佈服務時,CDN 記錄會顯示在 Cloud Manager 下載記錄對話框中。
CDN記錄檔最多延遲五分鐘。
rules 屬性描述要符合哪些流量篩選規則,並具有以下模式:
"rules": "match=<matching-customer-named-rules-that-are-matched>,waf=<matching-WAF-rules>,action=<action_type>"
例如:
"rules": "match=Block-Traffic-under-private-folder,Enable-SQL-injection-everywhere,waf="SQLI,SANS",action=block"
這些規則的行為方式如下:
- 任何符合規則的客戶宣告規則名稱會列於
match屬性中。 action屬性會確定規則是阻止、允許或記錄。- 如果 WAF 已取得授權並啟用,
waf屬性會列出所有偵測到的 WAF 標幟 (例如 SQLI)。 無論WAF標幟是否列於任何規則中,此行為皆為真。 此記錄可為insight提供可宣告的潛在新規則。 - 如果沒有客戶宣告的規則相符且沒有 WAF 規則相符,則
rules屬性為空。
如前所述,WAF 規則的符合項目只會出現在 CDN 未命中和通過的 CDN 記錄中,而非點擊的記錄中。
以下範例顯示了一個範例 cdn.yaml 和兩個 CDN 記錄條目:
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when: { reqProperty: path, equals: /block-me }
action: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS ]
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"rid": "974e67f6",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"host": "example.com",
"url": "/block-me",
"method": "GET",
"res_ctype": "",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=path-rule,action=blocked"
}
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"rid": "974e67f6",
"host": "example.com",
"url": "/?sqli=%27%29%20UNION%20ALL%20SELECT%20NULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL--%20fAPK",
"method": "GET",
"res_ctype": "image/png",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked"
}
記錄格式 cdn-log-format
以下是 CDN 記錄中使用的欄位名稱清單以及簡要說明。
還會指出該相符程度是否導致封鎖。
例如,「
match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked」如果沒有相符的規則,則為空白。
控制面板工具 dashboard-tooling
Adobe 提供了將儀表板工具下載到您電腦上的機制,以擷取透過 Cloud Manager 下載的 CDN 日誌。 若要分析流量並幫助判斷要宣告的適當流量篩選規則,包括WAF規則,請使用此工具。
儀表板工具可以直接從 AEMCS-CDN-Log-Analysis-Tooling GitHub 存放庫原地複製。
教學課程可供了解如何使用儀表板工具的具體說明。
建議的入門者規則 recommended-starter-rules
Adobe 建議從以下的流量篩選規則開始,然後隨著時間的變化進行調整。 Sites或Forms授權可使用標準規則,而 WAF規則 需要延伸安全性(先前名為WAF-DDoS Protection)或醫療保健延伸安全性(先前名為Enhanced Security)授權。
建議的標準規則 recommended-nonwaf-starter-rules
從以下規則開始:
- 速率限制 (記錄模式):
- 當來自特定 IP 的流量超過速率限制時進行記錄。 在驗證未收到任何警報後,將變更為封鎖模式;如果收到警報,則表示限制值太低。
- 特定國家 (封鎖模式):
- 封鎖來自特定國家的流量 (根據您的業務需求修改國家代碼)
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
# Block client for 5m when it exceeds an average of 100 req/sec to origin on a time window of 10sec
- name: limit-origin-requests-client-ip
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 100
window: 10
count: fetches
penalty: 300
groupBy:
- reqProperty: clientIp
action: log
# Block client for 5m when it exceeds an average of 500 req/sec on a time window of 10sec
- name: limit-requests-client-ip
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 500
window: 10
count: all
penalty: 300
groupBy:
- reqProperty: clientIp
action: log
alert: true
# Block requests coming from OFAC countries
- name: 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
建議的 WAF 規則 recommended-waf-starter-rules
將以下規則新增至您現有的設定中:
-
ATTACK-FROM-BAD-IP 標幟 (封鎖模式):
- 立即封鎖同時符合可疑模式 (包括 WAF 標幟清單中的數種模式) 且來自已知為惡意 IP 位址的流量。
- ATTACK-FROM-BAD-IP旗標同時符合兩個條件(模式比對和已知的惡意IP),將誤判的風險降到最低。 因此,您可以在封鎖模式下安全且立即套用此規則。
-
ATTACK 標誌 (記錄模式):
- 最初記錄 (而非封鎖) 符合可疑模式但並非來自已知惡意 IP 位址的流量。 這種謹慎的記錄而非封鎖的方法有助於避免無意間封鎖合法流量 (誤報)。
- 若要驗證合法要求是否未正確標幟,請在部署此規則後分析CDN記錄。 您確信合法流量未受影響後,請切換至封鎖模式。
# blocks likely attack traffic, which also comes from suspected IPs
- name: attacks-from-bad-ips-globally
when:
reqProperty: tier
in: ["author", "publish"]
action:
type: block
wafFlags:
- ATTACK-FROM-BAD-IP
# log likely attack traffic, and later switch to block mode if false positives aren't observed
- name: attacks-from-any-ips-globally
when:
reqProperty: tier
in: ["author", "publish"]
action:
type: log
wafFlags:
- ATTACK
舊版建議的 WAF 規則 previous-waf-starter-rules
在 2025 年 7 月之前,Adobe 建議使用以下列出的 WAF 規則,這些規則在防禦惡意流量方面仍然有效。 請參閱教學課程,了解有關移轉至新建議規則的考量。
| code language-none |
|---|
|
教學課程 tutorial
若要取得有關流量篩選規則(包括WAF規則)的實用知識和經驗,請完成系列教學課程。
此教學課程包括:
- 標準和WAF流量篩選規則的概觀。
- 若要封鎖攻擊,包括拒絕服務(DoS),請設定建議的標準和WAF流量篩選規則。
- 使用Cloud Manager設定管道來部署規則。
- 使用工具測試您的規則以模擬惡意流量。
- 使用記錄分析工具分析結果。
- 最佳實務。