View a markdown version of this page

為您的使用案例選擇和設定機器人控制 - AWS WAF AWS Firewall Manager、 AWS Shield Advanced和 AWS Shield 網路安全主管

推出 的新主控台體驗 AWS WAF

您現在可以使用更新後的體驗,在主控台的任何位置存取 AWS WAF 功能。如需詳細資訊,請參閱使用 主控台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為您的使用案例選擇和設定機器人控制

Bot Control 可防範各種自動化威脅。正確的組態取決於您要保護的內容,以及您面臨的威脅。使用此主題來選擇正確的保護層級,並針對常見的應用程式案例設定機器人控制。

將機器人控制與您的應用程式相符

機器人威脅通常分為三個類別:

  • 詐騙威脅 – 登入資料填充、仿造帳戶和自動購買。

  • 內容威脅 – 定價資料、產品目錄和已發佈內容的擴展。

  • 可用性威脅 – 降低效能或增加基礎設施成本的機器人流量。

對於大多數這些威脅,我們建議使用用戶端應用程式整合 SDKs進行目標式保護。下列案例說明如何為每個 設定機器人控制。

保護登入和帳戶頁面

登入資料填充和帳戶接管攻擊會使用自動化工具,針對您的登入端點測試遭竊的登入資料。帳戶建立詐騙使用機器人大規模建立仿造帳戶。整合整個網站的應用程式整合 SDK,並將 Bot Control 與 AWS WAF Fraud Control 受管規則群組配對,以進行登入和帳戶建立保護。

保護產品目錄和定價資料

如果您的應用程式顯示產品資訊、定價、庫存層級或其他競爭資料,機器人可能會利用此內容來饋送競爭對手情報、建置比較網站或降低您的定價。這些抓取器通常會模擬真實的瀏覽器,並輪換家用 IP 地址以避免偵測。將機器人控制套用至產品和目錄頁面,而不只是結帳。如此一來,即使機器人似乎是正常瀏覽器,Bot Control 也可以偵測自動化湊集的行為模式。

保護已發佈的內容

內容發佈者、新聞網站和媒體平台面向複製文章、影像和其他原始內容的機器人。此內容盜竊可能會縮減您的搜尋排名、減少廣告收入,並破壞您的競爭地位。將機器人控制套用至您的內容頁面。使用 Bot Control 儀表板來監控哪些機器人正在存取您的內容,並決定如何處理每個類別。如需詳細資訊,請參閱AWS WAF 機器人控制元件

從不需要的爬蟲程式降低基礎設施成本

擴展器、爬蟲程式和自動化工具可以產生高流量,提高運算和資料傳輸成本,而無需提供商業價值。Bot Control 會依類別識別自我宣告機器人,例如抓取器、HTTP 程式庫和爬取架構。然後,您可以使用標籤獨立封鎖或限制每個類別。對於逃避性抓取,有針對性的保護會偵測會掩飾其身分的機器人,包括使用居住代理和無周邊瀏覽器的機器人。

保護高價值交易

結帳流程、有限庫存購買和門票銷售是與合法客戶競爭的自動購買機器人的目標。Bot Control 會偵測自動化瀏覽器,例如 Selenium 和 Puppeteer,並套用工作階段層級速率限制,以防止單一用戶端控制庫存。整合交易頁面上SDKs,以獲得最強大的偵測準確度。

管理 AI 爬蟲程式和訓練資料抓取器

AI 機器人從您的應用程式收集內容,以在 AI 應用程式中訓練模型或表面資料。Bot Control 會分類已知的 AI 機器人。撰寫自訂規則以允許您想要允許的特定 AI 機器人,例如已驗證的搜尋引擎爬蟲程式,以及封鎖或限制其他的速率。對於使用瀏覽器自動化架構與您的應用程式互動的 AI 代理器,Bot Control 會偵測並挑戰這些自動化工作階段。透過 Web Bot Authentication (WBA),合法 AI 代理器可以密碼編譯方式證明其身分。這為您提供可靠的訊號,以區分授權的客服人員與未經授權的客服人員。如需 WBA 的詳細資訊,請參閱 AI 代理器的 Web 機器人身分驗證

保護行動應用程式

行動應用程式面臨類似於 Web 應用程式的機器人威脅,但其流量具有不同的特性。行動用戶端使用非瀏覽器使用者代理程式。來自原生行動應用程式架構的 HTTP 請求會從 Bot Control SignalNonBrowserUserAgent規則中排除,但非標準 HTTP 程式庫和應用程式內瀏覽器則不是。將 AWS WAF Mobile SDK 整合到您的 iOS 或 Android 應用程式,以提供目標防護用於準確偵測的用戶端字符。

在常見保護和目標保護之間進行選擇

Bot Control 提供兩種保護層級。下列指引可協助您為應用程式選擇正確的層級。

常見保護層級

常見保護會偵測透過使用者代理程式字串、IP 地址和其他請求特性來識別自己的機器人。它會驗證聲稱來自已知組織的機器人 (例如搜尋引擎) 實際上來自這些組織。常見保護可讓您了解誰會造訪您的應用程式,並讓您獨立控制每個機器人類別。它不需要 SDKs,而且每次請求成本較低。當您主要需要管理已知的機器人流量時,例如封鎖不需要的抓取器,同時允許搜尋引擎爬蟲程式時,常見的保護是很好的起點。

目標防護層級

目標保護層級會偵測通用保護層級偵測到的所有內容,並為無法自我識別的機器人新增偵測。它使用瀏覽器查詢、TLS 指紋、行為啟發和機器學習來區分自動化用戶端與人類。機器學習會分析特定網站的流量模式,包括時間戳記、瀏覽器特性和導覽行為。當流量變更和機器人策略變更時,它會更新其偵測。建議針對面對登入資料填充、進階抓取、自動購買或攻擊者主動嘗試逃避偵測之任何機器人活動的應用程式提供有針對性的保護。

對於大多數生產 Web 應用程式,我們建議有針對性的保護。如需針對特定案例設定目標防護的指引,請參閱 將機器人控制與您的應用程式相符。如需管理高流量成本的指引,請參閱 管理成本

一般 以目標為目標
偵測自我識別機器人
驗證合法機器人 (搜尋引擎、監控服務)
偵測隱藏其身分的機器人
適用於您流量的機器學習
工作階段層級速率限制
偵測瀏覽器自動化工具 是 (自我識別) 是 (包括逃避性)
用戶端應用程式整合 SDKs 非必要 強烈建議
檢查您的規則群組版本

Bot Control 受管規則群組會隨著時間更新,並具有新的偵測功能。檢查您目前使用的版本,以及是否有較新的靜態版本可用。較新版本包含額外的偵測,可提高您對新機器人威脅的涵蓋範圍。您可以在 中檢閱可用的版本及其變更AWS 受管規則變更日誌

機器人控制偵測的運作方式

Bot Control 會使用精細分類來標記評估的每個請求:機器人名稱、類別、組織和驗證狀態。您可以在這些標籤上撰寫符合的規則,以決定要對每種類型的機器人採取哪些動作。這可讓您完全控制所有機器人流量,而不是單一allow-or-block決策。

在目標保護層級,Bot Control 結合了多種偵測技術。其中包括簽章比對、瀏覽器查詢、TLS 指紋、行為啟發式,以及根據網站流量模式調校的機器學習。逃避某項技術的機器人可能會被另一個技術攔截。機器學習也會偵測協調的機器人活動:多個用戶端以個別請求分析會遺漏的方式一起運作的模式。如需所有 Bot Control 元件的詳細說明,請參閱 AWS WAF 機器人控制元件。如需 Challenge和 CAPTCHA 互動如何在用戶端和 之間運作的逐步解說 AWS WAF,請參閱 CAPTCHA 和 Challenge 中的 AWS WAF

管理成本

使用 Bot Control 受管規則群組的成本會隨著 AWS WAF 評估的 Web 請求數量而增加。對於大多數應用程式而言,機器人控制的成本是由其提供的保護所證明。封鎖機器人流量可降低運算、頻寬和資料傳輸成本,通常比檢查本身的成本高。如果您需要進一步最佳化成本,下列策略可以提供協助。

排除靜態資產

最簡單的成本最佳化是從 .svg Bot Control 檢查中排除靜態檔案類型的請求.css,例如 .jpg、、 .png和 。以您的應用程式資料和功能為目標的機器人會命中動態端點,而不是您的樣式表或映像。這可減少已檢查的請求,而不會降低偵測效率。如需範例,請參閱 機器人控制範例:僅將機器人控制用於動態內容

為效率排序規則

在保護套件 (Web ACL) 中的 Bot Control 受管規則群組之前,先放置較便宜的規則。IP 評價清單、地理限制和以速率為基礎的規則等規則,可以在到達付費的 Bot Control 檢查之前封鎖明顯不需要的流量。Bot Control 永遠不會評估先前規則封鎖的請求,因此您不需要為這些請求支付額外的每次請求費用。

適用時特定端點的範圍

對於某些應用程式,您可能只想將機器人控制套用至網站的特定部分。例如,如果您的應用程式具有不包含敏感資料或重要內容的公開資訊區段,您可以將它排除在檢查之外。請小心不要排除包含值得保護內容的頁面,例如產品目錄、定價資料或發佈的文章。如需範例,請參閱 機器人控制範例:僅針對登入頁面使用機器人控制

整合用戶端應用程式整合 SDKs

使用 JavaScript 和 Mobile SDKs 來最大化目標防護的有效性。SDKs提供目標規則用於工作階段層級偵測的瀏覽器指紋、挑戰字符管理和行為遙測。此處的工作階段由 SDK 取得的用戶端字符識別,代表特定的瀏覽器或裝置。如果沒有 SDKs,目標式保護的內容會少得多,而且無法可靠地區分進階機器人與合法使用者。

從頭開始整合 SDK

部署目標防護時,請同時整合 SDKs。無論您在測試環境中部署到生產環境或評估機器人控制,這都適用。在沒有 SDKs的情況下評估目標防護並不會讓您準確了解其偵測功能,因為許多目標規則取決於只有 SDKs 提供的用戶端訊號。

建議廣泛整合

為了進行最強大的偵測,請在提供動態內容的所有頁面中整合 JavaScript 開發套件,而不只是登入或結帳。Bot Control 會從用戶端瀏覽應用程式的方式建立行為描述檔,包括請求時間、頁面序列和互動模式。當開發套件僅出現在單一頁面上時,機器人控制具有有限的行為內容,以區分實際使用者與已學習模擬頁面載入的機器人。更廣泛的整合可讓 Bot Control 更深入地了解每個用戶端工作階段,進而改善住家代理殭屍網路等進階機器人的偵測。至少,在最關鍵的頁面上整合軟體開發套件,但將此視為起點,而不是結束狀態。

行動應用程式

對於 iOS 和 Android 應用程式,請使用 AWS WAF Mobile SDK。Mobile SDK 會在您的應用程式中處理字符取得和續約。如需 SDK 的詳細資訊,請參閱「中的用戶端應用程式整合 AWS WAF」。

常見的組態調整

大多數的機器人控制部署都需要一些組態調整,以符合應用程式流量的特定特性。以下是最常見的調整。

允許監控和運作狀態檢查工具

內部監控工具、執行時間檢查器和負載平衡器運作狀態檢查會產生自動流量,而 Bot Control 可能會將其識別為機器人活動。使用符合來源 IP 地址範圍的縮小範圍陳述式或監控工具包含的自訂標頭,從 Bot Control 檢查排除這些請求。

排除應用程式內瀏覽器和非標準 HTTP 程式庫

如果使用者透過應用程式內瀏覽器存取您的網站,例如從社交媒體應用程式開啟的連結,或您的行動應用程式使用非標準 HTTP 程式庫,這些用戶端可能會觸發SignalNonBrowserUserAgent規則。此規則排除了標準原生行動架構,但其他非瀏覽器使用者代理程式則不會。在這些用戶端的 Bot Control 規則群組中設定使用者代理程式例外狀況。如需範例,請參閱 機器人控制範例:為封鎖的使用者代理程式建立例外狀況

管理已驗證的機器人爬蟲程式

根據預設,Bot Control 允許已驗證的機器人。如果您想要對甚至經過驗證的爬蟲程式進行速率限制,例如減少積極但合法的搜尋引擎爬取負載,請使用機器人標籤來撰寫自訂速率型規則,以限制特定已驗證機器人類別的請求速率。如需範例,請參閱 機器人控制範例:明確允許已驗證的機器人

將機器人訊號轉送至原始伺服器

您可以將 Bot Control 分類標籤作為自訂請求標頭傳遞至應用程式。然後,您的原始伺服器可以使用標籤將簡化的內容提供給可疑的抓取器、在您自己的分析中記錄機器人活動,或在區塊頁面中包含請求識別符,以進行誤報報告。使用 AWS WAF 自訂請求標頭功能,根據標籤相符項目插入標頭。如需 標頭中動態標籤值的詳細資訊,請參閱 中的自訂 Web 請求和回應 AWS WAF

觸發升級身分驗證

您可以轉送 Bot Control 訊號到您的應用程式,並使用它們來觸發額外的驗證,而不是直接封鎖可疑流量。例如,如果 Bot Control 將工作階段標記為可疑,您的應用程式可能需要多重要素驗證,或在完成敏感動作之前顯示額外的驗證步驟。升級身分驗證可降低誤判的影響,同時仍能防範自動化威脅。使用自訂請求標頭,將相關的機器人控制標籤傳遞至您的原始伺服器。

在強制執行之前進行測試

一律先在計數模式中部署機器人控制。在計數模式中,機器人控制會標記所有請求,但不會封鎖任何流量。檢閱 AWS WAF 日誌中的標籤,以了解 Bot Control 在您的流量中偵測到什麼,確認合法流量未標示錯誤,然後在您對偵測準確度有信心後切換到封鎖模式。如需測試和部署的詳細指引,請參閱 測試和部署 AWS WAF 機器人控制