網站接入Web應用防火墻(Web Application Firewall,簡稱WAF)后,您可以為其開啟數據風控功能。數據風控幫助防御網站關鍵業務(例如注冊、登錄、活動、論壇)中可能發生的機器爬蟲欺詐行為。本文介紹如何設置數據風控的防護策略。
背景信息
數據風控基于阿里云的大數據能力,通過風險決策引擎,結合人機識別技術,防止各類場景的關鍵業務欺詐行為。您只需將業務接入WAF即可使用數據風控功能,且無需在服務器或客戶端進行任何改造。
數據風控支持防護的場景包括但不限于以下內容:垃圾注冊、短信驗證碼濫刷、撞庫、暴力破解、惡意搶購、秒殺、薅羊毛、搶紅包、機器人搶票、刷票、惡意投票、垃圾消息。
下圖描述了數據風控的工作流程。關于接入數據風控的應用場景示例和實際效果,請參見數據風控應用示例。
兼容性說明
數據風控僅適用于網頁或H5環境。在某些情況下,可能存在頁面中插入的用于安全防護的JS插件與原頁面不兼容的問題,導致數據風控的滑塊驗證功能出現異常。目前,常見的存在不兼容問題的頁面包括:
訪問者可以直接通過URL地址訪問的靜態頁面,例如各種通過HTML直接展示數據的詳情頁、分享頁、網站首頁、文檔頁等,頁面跳轉方式為直接修改
location.href
和使用window.open
、<a>
標簽的頁面。業務代碼重寫頁面的請求發送方法或自定義請求提交,例如重寫表單提交、重寫XHR、自定義ajax提交等情況。
業務代碼中存在hook相關請求提交的內容。
如果您的業務中可能存在不兼容問題,建議您在接入數據風控功能初期,選用預警模式并結合Web應用防火墻的實時日志分析服務進行兼容性和效果測試。更多信息,請參見日志服務概述。
如果出現不兼容的問題,您可以使用人機驗證服務配合Web應用防火墻一起實現防護。
關于原生App業務的防護,建議您使用App增強防護SDK方案。更多信息,請參見設置App防護。
前提條件
已開通Web應用防火墻實例,且實例滿足以下要求:
包年包月實例:實例地域是中國內地,且實例開啟了Bot管理模塊。
按量計費實例:已在賬單與套餐中心開啟Bot管理模塊下數據風控功能。更多信息,請參見賬單與套餐中心(按量2.0版本)。
已完成網站接入。具體操作,請參見使用教程。
WAF已上線防爬場景化配置功能,支持您基于實際業務場景對防爬規則進行定制,從而更有針對性地對業務進行爬蟲風險防護。如果您有網站防爬的需求,建議您直接使用防爬場景化配置功能。配置防爬場景化規則后,無需再設置數據風控規則,即可實現網頁防爬的效果。此外,數據風控功能已不再維護和更新,為您帶來的不便,敬請諒解。
操作步驟
登錄Web應用防火墻控制臺,在頂部菜單欄,選擇WAF實例的資源組和地域(中國內地、非中國內地)。
在左側導航欄,選擇 。
在網站防護頁面上方,切換到要設置的域名。
單擊Bot管理頁簽,定位到數據風控區域,完成以下功能配置并單擊前去配置。
參數
說明
狀態
開啟或關閉數據風控。開啟數據風控后,Web應用防火墻默認將在網站所有(或指定的)頁面中插入JS插件用于安全防護,頁面響應內容將以非GZIP壓縮方式進行傳輸。即使您的網站配置使用非標端口訪問,也無需添加額外配置。
說明您必須先開啟數據風控,才能調整防護模式和設置防護規則。
數據風控開啟后,所有網站請求默認都會經過數據風控規則的檢測。您可以通過設置Bot管理白名單,讓滿足條件的請求忽略數據風控規則的檢測。更多信息,請參見設置Bot管理白名單。
模式
數據風控的防護模式。可選值:
強攔截:識別到業務攻擊時,網站將被重定向至驗證頁面進行嚴格的二次驗證。
攔截:識別到業務攻擊時,網站將被重定向至驗證頁面進行二次驗證。
告警:識別到業務攻擊時,只記錄風險日志、不進行攔截,可通過業務風控報表查看詳細風險情況。
說明默認使用預警模式,數據風控不會對任何請求進行攔截,但依然會在靜態頁面中插入JS腳本分析客戶端行為。
添加數據風控防護規則。
在數據風控頁面,單擊防護請求頁簽,并單擊新增防護請求。
在新增防護請求對話框,輸入防護請求URL。更多信息,請參見什么是防護請求URL。
單擊確定。
防護請求添加成功后,10分鐘左右生效。您可以在防護請求列表中查看新增的防護請求,并根據需要編輯或刪除防護請求。
可選:指定JS插入頁面。
由于部分頁面前端代碼與數據風控的JavaScript腳本可能存在兼容性問題。如果遇到此類問題,建議您通過指定頁面插入JS功能僅添加部分頁面進行安全防護。
說明僅在部分頁面插入JS插件時,數據風控將可能無法獲取完整的用戶訪問行為,并對最終的防護效果產生影響。
在數據風控頁面,單擊JS插入頁面頁簽。
選中指定頁面插入JS,并單擊添加頁面。
說明最多支持添加20個頁面地址。
在添加URL對話框,輸入要插入JS的頁面的地址(必須以“/”開頭),并單擊確定。
成功添加URL后,數據風控將僅在您所添加的URL路徑下的頁面中插入JS插件。
開啟數據風控后,您可以使用Web應用防火墻的日志服務功能查看防護結果。相關操作,請參見查看防護結果。
什么是防護請求URL
防護請求URL是執行業務動作的接口地址,而不是頁面本身的URL地址。例如,注冊頁面本身的URL地址為www.aliyundoc.com/new_user
,獲取驗證碼按鈕對應的業務接口地址是www.aliyundoc.com/getsmscode
,注冊按鈕對應的業務接口地址是www.aliyundoc.com/register.do
。
這種情況下,您應該為獲取驗證碼按鈕的接口地址www.aliyundoc.com/getsmscode
和注冊按鈕對應的接口地址www.aliyundoc.com/register.do
分別添加防護請求,并設置為防護請求URL,防止驗證碼的短信接口被刷和垃圾注冊風險。如果將注冊頁面地址www.aliyundoc.com/new_user
設置為防護請求URL,當正常用戶訪問該頁面時也將收到滑塊驗證提示,影響用戶體驗。
設置防護請求URL時,請注意以下信息:
防護請求URL必須精確到實際請求URL,不支持模糊匹配。
例如,將
www.aliyundoc.com/test
設置為防護請求URL,則數據風控只匹配test路徑的訪問請求,不會匹配test路徑下所有頁面的訪問請求。數據風控支持對網頁目錄進行防護。
例如,您將防護請求URL設置為
www.aliyundoc.com/book/*
,即可對www.aliyundoc.com/book
路徑下所有頁面的請求實現數據風控防護。但是,不建議您為全站配置防護。假如設置www.aliyundoc.com/*
為防護請求URL,將導致用戶訪問網站首頁時也需要通過滑塊驗證,影響用戶體驗。直接請求數據風控已防護的URL一定會觸發滑塊驗證。因此,請確保所配置的防護請求URL在正常情況下不會被用戶直接請求,即正常用戶通常需要經過一系列的前置訪問后才會請求該URL地址。
直接調用API接口的場景不適合使用數據風控進行防護。由于API調用是直接發起的機器行為,無法通過數據風控的人機識別驗證。但是,對于正常用戶單擊頁面中的某按鈕調用API接口的情況,可以通過數據風控功能進行防護。
查看防護結果
您可以使用Web應用防火墻的日志服務功能來排查數據風控的監控和攔截情況。
為域名開啟日志采集后,您可以在日志查詢頁簽,通過高級搜索功能下的數據風控篩選項,快速查詢數據風控的監控和攔截情況。具體操作,請參見查詢和分析日志。
數據風控應用示例
阿里云用戶小丁在互聯網上搭建網站業務,網站域名是www.aliyundoc.com
,普通用戶可以通過www.aliyundoc.com/register.html
注冊成為網站會員。近來,小丁發現存在黑客通過一些惡意腳本頻繁提交注冊請求,并注冊大量垃圾賬戶來參與網站的抽獎活動。所提交的請求與正常用戶請求相似度很高,且請求頻率不高,傳統的CC攻擊防護功能難以分辨出這些惡意請求。
配置示例
小丁將網站業務接入Web應用防火墻并為www.aliyundoc.com
域名開啟數據風控功能。小丁當前最關心的注冊業務的請求URL是www.aliyundoc.com/register.html
,因此將該URL設置為防護請求URL。
防護效果
防護配置生效后,數據風控通過在所有頁面中插入的JS插件,觀察并分析每一個訪問www.aliyundoc.com
網站域名(包括首頁及其子路徑)的用戶的各種行為,判斷是否存在異常。同時,結合阿里云的大數據信譽庫判斷訪問源IP是否存在風險。
當用戶向www.aliyundoc.com/register.html
地址提交注冊請求時,Web應用防火墻將基于該用戶自開始訪問該網站,到提交注冊請求間的所有行為和環境征來判斷用戶是否可疑。例如,如果用戶沒有任何前置操作直接提交注冊請求,則可基本判斷該請求為可疑請求。具體說明如下:
如果基于之前的行為,數據風控判斷該請求來自正常用戶,則該用戶在注冊過程中將無任何感知。
當數據風控判斷該請求為可疑請求,或者該訪問源IP曾有不良記錄,將通過滑塊驗證的方式驗證用戶身份。只有通過驗證的用戶,才能繼續進行注冊。
如果通過滑塊驗證方式可疑(例如,使用腳本模仿真人滑動過程等),數據風控將繼續通過其他方式再次進行驗證,直到驗證通過且通過方式可信。如果無法通過驗證,數據風控將阻斷該請求。
整個過程中,由于數據風控是針對整個網站域名(www.aliyundoc.com
)開啟的,數據風控需要對該域名下的所有頁面插入JS插件來判斷用戶行為是否可信。而真正的防護和驗證,僅針對www.aliyundoc.com/register.html
注冊接口URL生效,只有在提交注冊請求時數據風控才會對請求進行干涉。