接入Web 應用防火墻 WAF(Web Application Firewall)后,您可以通過設置基礎防護規則和防護規則組,幫助Web業務防御SQL注入、XSS跨站、代碼執行、WebShell上傳、命令注入等常見的Web應用攻擊。本文介紹如何設置基礎防護規則和規則組。
背景信息
支持的解碼
基礎防護規則支持23種不同格式的解碼,包括:
JSON、XML、Multipart等數據格式的解析,用以提升檢測的準確率。
Unicode、HTML實體等多種編碼繞過的識別,用以提升檢測的召回率。
支持的檢測模塊
規則防護(默認開啟)
基于模式匹配的防護方法,依賴于預定義的規則(即規則組)來識別已知的攻擊模式,可防御常見Web應用攻擊。
WAF按照防護嚴格程度,內置了三套默認規則組:
中等規則組:默認選用該規則組。
寬松規則組:如需減少誤攔截,可選用該規則組。
嚴格規則組:如需提高攻擊檢測命中率,可選用該規則組。
您也可以根據業務需要,配置自定義規則組。
語義防護(默認開啟)
更智能的防護方法,通過分析請求的內容和上下文來理解語義與語法結構,能夠更好地識別未知的攻擊形式,可防御SQL注入攻擊。
智能運維(默認關閉)
根據歷史業務流量進行AI學習,發現URL粒度不適用的規則,并自動添加白名單,有效降低誤攔截風險。
支持的規則模板
模板 | 默認規則模板 | 自定義規則模板 | |
生成方式 | 系統內置。 | 用戶創建。 | |
檢測模塊 | 規則防護 | 默認開啟,應用中等規則組、攔截模式。 | 自定義應用的規則組(包括默認規則組和自定義規則組)、規則動作。 |
語義防護 | 默認開啟,應用觀察模式,并開啟針對非注入型攻擊的完整SQL語句檢測開關。 | 自定義應用的規則動作,根據業務情況開啟或關閉完整SQL語句檢測。 | |
智能運維 | 默認關閉。 | 根據業務情況開啟或關閉智能白名單。 | |
生效對象 | 接入WAF而沒有關聯自定義規則模板的防護對象或對象組。 | 選中的防護對象或對象組。 |
前提條件
已開通WAF 3.0服務。具體操作,請參見開通包年包月WAF 3.0、開通按量付費WAF 3.0。
如果需要創建自定義規則組,請確認已開通的實例為包年包月企業版或旗艦版,或按量付費版。
已將Web業務添加為WAF 3.0的防護對象。具體操作,請參見配置防護對象和防護對象組。
創建自定義規則組
自定義規則組可以從零創建,也可以在默認規則組的基礎上創建。
登錄Web應用防火墻3.0控制臺。在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。
在左側導航欄,選擇 。
在基礎防護規則區域,單擊規則組管理。
在規則組管理頁面,單擊新建規則組。
配置規則組基本信息后,單擊下一步。
重要自定義規則組創建完畢后,規則組基本信息不允許再次修改。
配置項
說明
規則組名稱
為該規則組設置一個名稱。
支持中文和大小寫英文字母,可包含數字、半角句號(.)、下劃線(_)和短劃線(-)。
選擇規則模板
為該規則組選擇規則模板,可選項:
無模板,從零創建:不指定模板,自定義添加規則。
重要選擇該選項后,是否自動更新開關默認關閉,且不支持修改。
默認規則組:基于阿里云安全內置的防護規則組,支持寬松規則組、中等規則組和嚴格規則組。
是否自動更新
開啟后,官方默認規則組中新增或移除的規則(例如0day應急規則或不再適用的規則)將自動同步到當前自定義規則組。
重要自定義規則組創建完畢后,此設置不允許再次修改。
僅選擇規則模板配置為默認規則組時,支持開啟或關閉該開關。
在設置防護規則配置向導頁,單擊添加規則,通過輸入規則ID或CVEID,設置危險等級、防護類型、應用類型,篩選并選中規則庫的防護規則,單擊添加;或單擊全部添加。
說明如果在步驟5將選擇規則模板配置為默認規則組,且要添加的規則已在規則庫中,可跳過該步驟。
規則列表的規則默認按照更新時間倒序排列。
完成添加后,如果您需要刪除已添加的防護規則,可在規則列表,通過輸入規則ID或CVEID,設置危險等級、防護類型、應用類型,篩選并選中防護規則,單擊移除;或單擊清除所有。
單擊下一步后,在創建完成向導頁,單擊完成。
成功創建規則組后,您可以在規則組列表執行如下操作:
單擊內置規則數列的數字,查看規則組內置的規則。
編輯、復制或刪除規則組。
說明防護規則組基本信息不允許修改。
復制后的規則組默認命名為“原規則組名稱-copy”。復制后的規則組無關聯防護對象。
已關聯防護模板的規則組不允許被刪除。如果您需要刪除該規則組,請先刪除與基礎防護規則的關聯關系。
創建自定義規則模板
在左側導航欄,選擇 。
在Web基礎防護頁面下方基礎防護規則區域,單擊新建模板。
說明首次新建基礎防護規則模板時,也可在Web基礎防護頁面上方的基礎防護規則卡片區域,單擊立即配置。
在新建模板 - 基礎防護規則面板,完成以下模板配置后,單擊確定。
說明新建的規則模板默認開啟。
配置項
說明
模板信息
模板名稱:
為該模板設置一個名稱。
支持中文和大小寫英文字母,可包含數字、半角句號(.)、下劃線(_)和短劃線(-)。
是否設置為默認模板:
選擇是否將該模板設置為當前防護模塊的默認模板。
一個防護模塊只允許設置一個默認模板。默認模板無需設置生效對象,默認應用于所有未關聯到自定義規則模板的防護對象和對象組(包括后續新增、從自定義規則模板中移除的防護對象和對象組)。
規則配置
規則動作:
選擇當請求命中該規則時,要執行的防護動作。可選項:
攔截:表示攔截命中規則的請求,并向發起請求的客戶端返回攔截響應頁面。
說明WAF默認使用統一的攔截響應頁面,您可以通過自定義響應功能,自定義攔截響應頁面。更多信息,請參見設置自定義響應規則配置攔截響應頁面。
觀察:表示不攔截命中規則的請求,只通過日志記錄請求命中了規則。您可以通過WAF日志,查詢命中當前規則的請求,分析規則的防護效果(例如,是否有誤攔截等)。
重要只有開通日志服務,您才可以使用日志查詢功能。更多信息,請參見開啟或關閉日志服務。
觀察模式方便您試運行首次配置的規則,待確認規則沒有產生誤攔截后,再將規則設置為攔截模式。
說明您可以通過安全報表,查詢攔截類、觀察類防護規則的命中詳情。更多信息,請參見安全報表。
規則組類型:
配置基礎防護規則關聯的規則組類型并選擇相應的規則組。可選項:
默認:選擇該項后,關聯默認規則組,支持寬松規則組、中等規則組和嚴格規則組。
自定義:選擇該項后,需在下拉列表中選擇相應的規則組。關于新建規則組的具體操作,請參見創建自定義規則組。
語義引擎
語義引擎默認開啟,可防御SQL注入攻擊。
針對非注入型攻擊,語義引擎提供完整SQL語句檢測開關,用于開啟或關閉該檢測。
說明非完整SQL語句和完整SQL語句區別如下:
非完整SQL語句:指請求中包括SQL片段,后端業務可通過拼接,形成完整的SQL,例如
/query.php?name='and 1=1%23
。完整SQL語句:指請求中包含完整的SQL,例如
/query.php?sql=select name from users where 1=1%23
。
語義引擎支持如下配置:
規則動作:
選擇當請求命中該規則時,要執行的防護動作。可選項:
攔截:表示攔截命中規則的請求,并向發起請求的客戶端返回攔截響應頁面。
說明WAF默認使用統一的攔截響應頁面,您可以通過自定義響應功能,自定義攔截響應頁面。更多信息,請參見設置自定義響應規則配置攔截響應頁面。
觀察:表示不攔截命中規則的請求,只通過日志記錄請求命中了規則。您可以通過WAF日志,查詢命中當前規則的請求,分析規則的防護效果(例如,是否有誤攔截等)。
重要只有開通日志服務,您才可以使用日志查詢功能。更多信息,請參見開啟或關閉日志服務。
觀察模式方便您試運行首次配置的規則,待確認規則沒有產生誤攔截后,再將規則設置為攔截模式。
說明您可以通過安全報表,查詢攔截類、觀察類防護規則的命中詳情。更多信息,請參見安全報表。
完整SQL語句檢測(默認開啟)
如果WAF檢測到請求中包含非注入型攻擊,即包含完整的SQL(例如
/query.php?sql=select name from users where 1=1%23
),WAF會根據設置的規則動作作出相應處置。說明如果您的實際業務存在數據分析場景,例如phpmyadmin、Adminer等,建議關閉此檢測。
協議合規
由于每種語言處理HTTP請求數據格式要求的松散程度不同,從而衍生出多種繞過WAF防御的方式,比較典型的是文件上傳場景,協議合規主要是從協議層面判斷數據格式是否符合標準,是防御文件上傳等類型變種攻擊的利器。
協議合規需要企業版和旗艦版支持,高級版默認不支持,按量單獨計費。
智能運維
打開智能白名單開關后,WAF將根據歷史業務流量進行AI學習,發現URL粒度不適用的規則,并自動添加白名單,有效降低誤攔截風險。
自動添加的白名單規則會在白名單規則列表的AutoTemplate模板中顯示。更多信息,請參見查看白名單。
說明僅按量付費版、包年包月企業版或旗艦版支持該功能。
生效對象
從已添加的防護對象及對象組中,選擇要應用該模板的防護對象和防護對象組。
一個防護對象或對象組只能關聯到當前防護模塊下的一個模板。關于添加防護對象和對象組的具體操作,請參見配置防護對象和防護對象組。
成功創建規則模板后,您可以在規則列表執行如下操作:
查看模板關聯的防護對象/組的數量。
通過模板開關,開啟或關閉模板。
編輯或刪除規則模板。
如果在創建基礎防護模板時,已打開智能白名單開關(防護規則后綴顯示為圖標),您可以單擊操作列的智能下發記錄,查看智能白名單下發記錄。如果未打開智能白名單開關(防護模板后綴顯示為圖標),您可以直接在模板列表,打開或關閉智能白名單開關。
單擊規則模板名稱左側的圖標,查看規則模板包含的規則。
您也可以在基礎防護規則區域,單擊規則組管理,查看規則組與規則模板的關聯關系。
后續操作
您可以在安全報表頁面的基礎防護規則頁簽,查詢具體防護規則的命中記錄。例如,您可以在攻擊事件記錄區域,單擊規則ID對應的查看詳情,了解命中該規則的攻擊詳情。更多信息,請參見基礎防護規則。
Web基礎防護頁面不支持通過規則ID搜索具體的基礎防護規則。如果您認為某個規則誤攔截了正常業務流量,可通過白名單模塊設置針對該規則的白名單規則。關于配置白名單規則的具體操作,請參見設置白名單規則放行特定請求。
相關文檔
如果您想了解WAF 3.0的防護對象、防護模塊及防護流程等信息,請參見防護配置概述。
如果您想使用API創建防護模板,請參見CreateDefenseTemplate - 創建防護模板。
如果您想創建一個基礎防護規則,并配置規則內容,請參見CreateDefenseRule - 創建防護規則。