流量篩選器規則(包括WAF規則)的範例和結果分析
瞭解如何宣告各種型別的流量篩選規則,並使用Adobe Experience Manager as a Cloud Service (AEMCS) CDN記錄和儀表板工具來分析結果。
在本節中,您將探索流量篩選規則的實用範例,包括WAF規則。 您將瞭解如何使用AEM WKND Sites專案,根據URI (或路徑)、IP位址、要求數目和不同的攻擊型別來記錄、允許和封鎖要求。
此外,您將瞭解如何使用儀表板工具來擷取AEMCS CDN記錄,並透過Adobe提供的範例儀表板將基本量度視覺化。
為符合您的特定需求,您可以增強和建立自訂儀表板,進而獲得更深入的見解,並最佳化AEM網站的規則設定。
範例
讓我們探索各種流量篩選規則的範例,包括WAF規則。 請確定您已依照先前如何設定章節所述完成必要的設定程式,且您已複製AEM WKND Sites專案。
記錄請求
首先針對AEM Publish服務 記錄WKND登入和登出路徑 的請求。
- 將下列規則新增至WKND專案的
/config/cdn.yaml
檔案。
kind: CDN
version: '1'
metadata:
envTypes:
- dev
- stage
- prod
data:
trafficFilters:
rules:
# On AEM Publish service log WKND Login and Logout requests
- name: publish-auth-requests
when:
allOf:
- reqProperty: tier
matches: publish
- reqProperty: path
in:
- /system/sling/login/j_security_check
- /system/sling/logout
action: log
-
提交變更並將其推送到Cloud Manager Git存放庫。
-
使用先前建立的Cloud Manager
Dev-Config
設定管道將變更部署到AEM開發環境。 -
在Publish服務上登入並登出您程式的WKND網站(例如,
https://publish-pXXXX-eYYYY.adobeaemcloud.com/us/en.html
)以測試規則。 您可以使用asmith/asmith
作為使用者名稱和密碼。
分析 analyzing
讓我們從Cloud Manager下載AEMCS CDN記錄檔,並使用您在上一章中設定的儀表板工具,來分析publish-auth-requests
規則的結果。
-
從Cloud Manager的 環境 卡下載AEMCS Publish 服務的CDN記錄。
note tip TIP 新請求可能需要5分鐘的時間才會出現在CDN記錄檔中。 -
將下載的記錄檔(例如底下熒幕擷圖中的
publish_cdn_2023-10-24.log
)複製到Elastic Dashboard工具專案的logs/dev
資料夾中。 -
重新整理「彈性儀表板」工具頁面。
-
在前 個全域篩選器 區段中,編輯
aem_env_name.keyword
篩選器並選取dev
環境值。 -
若要變更時間間隔,請按一下右上角的日曆圖示,然後選取想要的時間間隔。
-
-
檢閱更新儀表板的 分析請求、已標幟的請求 和 已標幟請求詳細資料 面板。 為了比對CDN記錄專案,它應該顯示每個專案的使用者端IP (cli_ip)、主機、url、動作(waf_action)和規則名稱(waf_match)的值。
封鎖要求
在此範例中,讓我們在已部署的WKND專案中位於路徑/content/wknd/internal
的 內部 資料夾中新增頁面。 然後,宣告流量篩選規則,該規則將 封鎖來自符合您組織(例如公司VPN)的指定IP位址以外任何位置的子頁面的流量。
您可以建立自己的內部頁面(例如,demo-page.html
)或使用附加的封裝。
- 在WKND專案的
/config/cdn.yaml
檔案中新增下列規則:
kind: CDN
version: '1'
metadata:
envTypes:
- dev
- stage
- prod
data:
trafficFilters:
rules:
...
# Block requests to (demo) internal only page/s from public IP address but allow from internal IP address.
# Make sure to replace the IP address with your own IP address.
- name: block-internal-paths
when:
allOf:
- reqProperty: path
matches: /content/wknd/internal
- reqProperty: clientIp
notIn: [192.150.10.0/24]
action: block
-
提交變更並將其推送到Cloud Manager Git存放庫。
-
使用Cloud Manager中先前建立的個
Dev-Config
設定管道將變更部署到AEM開發環境。 -
存取WKND網站的內部頁面(例如
https://publish-pXXXX-eYYYY.adobeaemcloud.com/content/wknd/internal/demo-page.html
)或使用下列CURL命令測試規則:code language-bash $ curl -I https://publish-pXXXX-eYYYY.adobeaemcloud.com/content/wknd/internal/demo-page.html
-
從規則中使用的IP位址重複上述步驟,然後使用不同的IP位址(例如使用行動電話)。
分析
若要分析block-internal-paths
規則的結果,請遵循與先前範例中說明的相同步驟。
不過,這次您應該會在使用者端IP (cli_ip)、主機、URL、動作(waf_action)和規則名稱(waf_match)欄中看到 封鎖的要求 和對應值。
防止DoS攻擊
讓 透過封鎖IP位址的請求來避免DoS攻擊,每秒發出100個請求,導致其被封鎖5分鐘。
- 在WKND專案的
/config/cdn.yaml
檔案中新增下列速率限制流量篩選器規則。
kind: CDN
version: '1'
metadata:
envTypes:
- dev
- stage
- prod
data:
trafficFilters:
rules:
...
# Prevent DoS attacks by blocking client for 5 minutes if they make more than 100 requests in 1 second.
- name: prevent-dos-attacks
when:
reqProperty: path
like: '*'
rateLimit:
limit: 100
window: 1
penalty: 300
groupBy:
- reqProperty: clientIp
action: block
rateLimit
的適當值,分析
若要分析prevent-dos-attacks
規則的結果,請遵循與先前範例中說明的相同步驟。
這次您應該會在使用者端IP (cli_ip)、主機、URL、動作(waf_action)和規則名稱(waf_match)欄中看到許多 已封鎖的要求 和對應的值。
此外,使用者端IP、國家/地區和使用者代理程式的 前100名攻擊 面板會顯示其他詳細資料,可用來進一步最佳化規則設定。
如需如何防止DoS和DDoS攻擊的詳細資訊,請檢閱使用流量篩選規則封鎖DoS和DDoS攻擊教學課程。
WAF規則
目前為止的流量篩選器規則範例可供所有Sites和Forms客戶設定。
接下來,讓我們針對已購買增強式安全性或WAF-DDoS保護授權的客戶,探索其使用體驗,該授權可讓他們設定進階規則,以保護網站免受更複雜的攻擊。
在繼續之前,請啟用程式的WAF-DDoS保護,如流量篩選規則檔案設定步驟中所述。
不含WAFFlags
讓我們先看看在WAF規則宣告之前的體驗。 當您的程式啟用WAF-DDoS時,您的CDN會依預設記錄任何相符的惡意流量,因此您擁有正確的資訊以提出適當的規則。
我們從攻擊WKND網站開始,但不新增WAF規則(或使用wafFlags
屬性)並分析結果。
-
若要模擬攻擊,請使用下面的Nikto命令,它會在6分鐘內傳送約700個惡意要求。
code language-shell $ ./nikto.pl -useragent "AttackSimulationAgent (Demo/1.0)" -D V -Tuning 9 -ssl -h https://publish-pXXXX-eYYYY.adobeaemcloud.com/us/en.html
若要瞭解攻擊模擬,請檢閱Nikto - Scan Tuning檔案,其中會說明如何指定要包含或排除的測試攻擊型別。
分析
若要分析攻擊模擬的結果,請遵循與先前範例中所述的相同步驟。
不過,這次您應該會在使用者端IP (cli_ip)、主機、URL、動作(waf_action)和規則名稱(waf_match)欄中看到 標幟的要求 和對應值。 此資訊可讓您分析結果並最佳化規則設定。
請注意 WAF旗標分佈 和 熱門攻擊 面板如何顯示其他詳細資訊,可用來進一步最佳化規則設定。
具有WAFFlags
現在,新增包含wafFlags
屬性的WAF規則做為action
屬性的一部分,並 封鎖模擬的攻擊要求。
從語法的角度來看,WAF規則與先前所見者類似,不過,action
屬性參考一或多個wafFlags
值。 若要深入瞭解wafFlags
,請檢閱WAF旗標清單區段。
- 在WKND專案的
/config/cdn.yaml
檔案中新增下列規則。 請注意,block-waf-flags
規則如何包含某些受到模擬惡意流量攻擊時出現在儀表板工具中的wafFlags。 事實上,隨著威脅的演變,長期分析記錄以判斷要宣告哪些新規則是很好的做法。
kind: CDN
version: '1'
metadata:
envTypes:
- dev
- stage
- prod
data:
trafficFilters:
rules:
...
# Enable WAF protections (only works if WAF is enabled for your environment)
- name: block-waf-flags
when:
reqProperty: tier
matches: "author|publish"
action:
type: block
wafFlags:
- SANS
- TORNODE
- NOUA
- SCANNER
- USERAGENT
- PRIVATEFILE
- ABNORMALPATH
- TRAVERSAL
- NULLBYTE
- BACKDOOR
- LOG4J-JNDI
- SQLI
- XSS
- CODEINJECTION
- CMDEXE
- NO-CONTENT-TYPE
- UTF8
分析
重複與先前範例中說明的相同步驟。
這次您應該會在 已封鎖的要求 下看到專案,以及使用者端IP (cli_ip)、主機、URL、動作(waf_action)和規則名稱(waf_match)欄中的對應值。
此外,WAF旗標分佈 和 熱門攻擊 面板會顯示其他詳細資料。
全面分析
在上述 分析 區段中,您已瞭解如何使用儀表板工具來分析特定規則的結果。 您可以進一步探索使用其他控制面板面板的分析結果,包括:
- 已分析、已標幟和已封鎖的要求
- WAF標示一段時間內的分佈
- 一段時間內觸發的流量篩選規則
- 依WAF旗標ID排名最前的攻擊
- 排名在前的觸發流量篩選器
- 依使用者端IP、國家/地區和使用者代理程式區分的前100名攻擊者
下一步
熟悉建議的最佳實務,以降低安全性遭到破壞的風險。