構(gòu)建Cloudflare Bot Management是一個令人振奮的體驗,它融合了分布式系統(tǒng),Web開發(fā),機器學(xué)習(xí),安全性和調(diào)研以及介于兩者之間的所有學(xué)科。我們正在與不斷適應(yīng)和升級的強大對手作戰(zhàn),因此我們的Bot管理平臺也必須足夠強大!以下內(nèi)容即是Bot Management內(nèi)部機制的簡要概覽。
如何定義Bot
Bot可以與計算機系統(tǒng)或用戶進行交互,模仿或替代人類用戶的行為,用比人類用戶更快的速度執(zhí)行重復(fù)性任務(wù)。
Bot的區(qū)分
Good Bots
合法地與企業(yè)互動,產(chǎn)生效益,例如搜索引擎機器人(Googlebot,Bingbot等),或Facebook Bot等運行在社交媒體平臺上的機器人。
Bad Bots
旨在執(zhí)行惡意行為并最終損害企業(yè)利益,例如憑據(jù)填充機器人,第三方爬蟲機器人,垃圾郵件機器人以及搶鞋機器人(sneakerbot)。
Bot Management的目標與要求
惡意Bot攻擊越來越普遍,而識別惡意Bot流量卻變得越來越困難。
關(guān)鍵要求
功能完整,簡單易用
單擊一下,即可開啟Bot Management,保護網(wǎng)站,移動應(yīng)用程序或API。
顯示可信賴度
客戶能夠知道他們是否可以信任網(wǎng)站訪問者,需要提供確定性指標以判定信任級別。
靈活性
客戶能夠自定義將Bot Management應(yīng)用到哪些流量子集,例如僅登錄URL、定價頁面或站點范圍內(nèi)的流量。
準確性
Bot Management的識別錯誤率應(yīng)該盡可能低,盡可能少地將人類訪客錯識別為Bot。
容錯性
在預(yù)測錯誤的情況下,應(yīng)始終確保真人用戶和好的Bot流量可以通過網(wǎng)站。
目標用例
Bot Management的關(guān)鍵功能
可擴展性
確保計算每個請求的“Bot”分數(shù),無論每秒有多少請求
低延遲
快速執(zhí)行檢測,處理速度在100ms內(nèi)
可配置
可以配置對哪些流量應(yīng)用哪些檢測,細分到每個域/數(shù)據(jù)中心/服務(wù)器級別
可修改性
平臺應(yīng)該易于擴展,具有更多的檢測機制、不同的緩解措施、更豐富的分析和日志
安全性
不使用某個客戶的敏感信息來建立保護另一客戶的模型
可解釋且可調(diào)試
我們應(yīng)該能夠以直觀的方式解釋和調(diào)整預(yù)測
Bot分數(shù)
Bot Management的評分功能由一組微服務(wù)支持,它的總體架構(gòu)如下:
我們的系統(tǒng)使用了多種技術(shù)來處理從邊緣數(shù)據(jù)中心接收的數(shù)據(jù),生成并存儲機器人檢測機制所需的數(shù)據(jù),在構(gòu)建過程中,每一項服務(wù)都考慮到了彈性、性能、可觀察性和安全性。
當(dāng)請求進入時,我們提取并轉(zhuǎn)換所需的請求屬性,并將其提供給我們的檢測機制。Bot Management將輸出防火墻字段,Cookies,JavaScript挑戰(zhàn),檢測日志。隨后,防火墻將接管實際的Bot緩解措施。
整合防火墻
防火墻規(guī)則提供了以下緩解措施
日志
將匹配的請求記錄在提供給客戶的Cloudflare日志中
繞行
允許客戶針對請求動態(tài)禁用Cloudflare安全功能
許可
匹配的請求不受其他防火墻規(guī)則觸發(fā)的質(zhì)詢和阻止
Captcha
用于確保訪問是人為而非自動的
JS挑戰(zhàn)
確保僵尸程序和垃圾郵件無法訪問所請求的資源
阻斷
阻止匹配請求訪問該網(wǎng)站
集成Cloudflare Workers
如果客戶希望根據(jù)分數(shù)對請求進行更靈活的處理——例如,他們可能想注入新的內(nèi)容或更改現(xiàn)有的HTML頁面內(nèi)容,或?qū)⒉徽_的數(shù)據(jù)提供給機器人,或暫停某些請求——Cloudflare Workers提供執(zhí)行這些操作的選項。
檢測機制
Bot Management使用了五種互補的檢測機制,各自產(chǎn)生自己的分數(shù),我們將它們結(jié)合起來得到進入防火墻的單個分數(shù)。
五種檢測機制
機器學(xué)習(xí)
Cloudflare保護著超過2600萬個互聯(lián)網(wǎng)資產(chǎn),我們的機器學(xué)習(xí)模型能通過龐大、豐富且高質(zhì)量的數(shù)據(jù)中不斷得到改進。
啟發(fā)式引擎
基于請求的某些屬性,我們有多種啟發(fā)式類型和數(shù)百種特定規(guī)則,其中的一些很難被欺騙,這有助于我們進一步完善Bot Management。
行為分析
在2019年,我們?yōu)锽ot Management集成了行為分析,用以保護我們的客戶免受潛在攻擊的威脅。
已驗證的Bot
通過一些防火墻字段,客戶可以自定義是否允許或限制某些良好Bot對網(wǎng)站某些部分的訪問。
JS指紋
在不犧牲網(wǎng)站訪問者隱私的情況下,確認請求的用戶代理。
Cloudflare每周能夠從流經(jīng)其網(wǎng)絡(luò)的數(shù)萬億個請求中收集數(shù)據(jù),并通過與其他Cloudflare產(chǎn)品的集成,來識別和管理Bot活動。如果沒有多個團隊的共同努力,這一切都無法實現(xiàn)。我們感謝Bots團隊中的每個人所做出的努力!