發布日期:2023/01/30
在我們生活的世界中,好人始終受到壞人威脅。在理想的世界中,網路應用防火牆(WAF)的部署與設定的規則總是走在壞人前面,或即使無法走在前面,也會在有需要時,迅速公布必要的補救方案,以便在開拓利用(exploit)公布後數天內,使用已解決該問題的新軟體為系統升級。
問題是,不是所有系統都能以彌補漏洞的軟體及時升級。需要安排時間、調派人員進行保養,以及針對更新項目進行測試。若能在既有之WAF引擎的應用程式交付管道中加入專為因應開拓利用的規則,從而能在漏洞公布後及時鎖住系統,不是很好嗎?
當您在管道中配置了LoadMaster ADC,並啟用其WAF功能時,即能擁有這樣的能力。去年六月出現 CVE-2022-26134 中所述之漏洞正是屬於此情形。

此開拓利用方式可以暴露出Atlassian Confluence伺服器的中漏洞,使未經授權的攻擊者可以透過請求,執行注入的代碼。此開拓利用會影響任何應用本身之Confluence 伺服器(非該產品之雲端版)的組織。
在出現補丁軟體及更新受影響的系統之前,最佳的建議是停用此類Confluence部署之所有透過網際網路的存取途徑。甚至是目前正在設定WAF規則的客戶,無論是免費或透過商業供應商的客戶。專注於此類開拓利用方式的現有規則,將會針對此類開拓利用方式發出警告,但是不會阻止。
救命的 LoadMaster支援與WAF
正在執行WAF的LoadMaster客戶還有另一個選項。我們屢屢獲獎的支援團隊設計出兩套WAF規則,可以加入成為LoadMaster的客製化規則,立即防護Confluence部署,使其在系統修補完成之前不會遭到開拓利用。將能降低LoadMaster客戶的停機時間(以及減少焦慮不安)。

該等規則以兩種方式做到此點:
第一個檔案包含單一規則,如下所示,專注於比對和阻擋請求檔案名稱、cookies及頭端中含有特定特殊字元的開拓利用。
# Generic rule against CVE-2022-26134 (confluence)
SecRule REQUEST_FILENAME|REQUEST_COOKIES|REQUEST_COOKIES_NAMES|REQUEST_HEADERS "@rx \${" \
"id:1210,\
phase:1,\
block,\
t:none,t:urlDecodeUni,t:cmdline\
multimatch,\
log,\
msg:'Potential Remote Command Execution: confluence CVE-2022-26134' \
logdata:'Matched Data: %{MATCHED_VAR} found within %{MATCHED_VAR_NAME}',\
tag:'application-multi',\
tag:'language-java',\
tag:'platform-multi',\
tag:'attack-rce',\
tag:'OWASP_CRS',\
tag:'capec/1000/152/137/6',\
tag:'PCI/6.5.2',\
tag:'paranoia-level/1',\
ver:'OWASP_CRS/3.4.0-dev',\
severity:'CRITICAL',\
setvar:'tx.rce_score=+%{tx.critical_anomaly_score}',\
setvar:'tx.anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
第二個檔案包含十幾條規則,專注於阻擋在該等開拓利用公布時(2022年6月)已知之惡意IP位址清單中的所有請求檔案。這些都是常見漏洞與暴露(CVE)中所述類似開拓利用源頭的[指令與控制]伺服器。
雖然此策略與Confluence漏洞無直接關聯性,但是值得一提的是,可以在發現輸入之請求串流中含有無論任何理由都必須防堵的IP位址時,加入以下客製規則。
# ---------------------------------------------------------------
# Deny New C2 IP/Network Ranges; allow everything else
# ---------------------------------------------------------------
SecRule REMOTE_ADDR "@ipMatch 98.32.230.38" "id:'101',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 67.149.61.16" "id:'102',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 66.115.182.111" "id:'103',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 66.115.182.102" "id:'104',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 64.64.228.239" "id:'105',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 59.163.248.170" "id:'106',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 45.43.19.91" "id:'107',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 221.178.126.244" "id:'108',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 198.147.22.148" "id:'109',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 156.146.56.136" "id:'110',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 156.146.34.9" "id:'111',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 156.146.34.52" "id:'112',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 156.146.34.46" "id:'113',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 154.16.105.147" "id:'114',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "@ipMatch 154.146.34.145" "id:'115',phase:1,t:none,deny,log,msg:'IP deny Rule'"
SecRule REMOTE_ADDR "\." "id:'99999',phase:1,t:none,allow,log,msg:'IP allow Rule'"
如何將這些規則加入LoadMaster?
將上述規則加入LoadMaster WAF:
在VS中選定此類客製化規則之後,將 OWASP規則納入LoadMaster之前,會隨時針對進入VS的請求執行客製化規則。